Skip to content

Waapi GDExtension Interface

Alessandro Famà edited this page Aug 23, 2023 · 3 revisions

Methods

Return value Signature
bool connect_client(uri: String, port: unsigned int)
bool is_client_connected()
void disconnect_client()
Dictionary subscribe(uri: String, options: String)
Dictionary subscribe_with_timeout(uri: String, options: String, timeout_ms: int)
Dictionary unsubscribe(subscription_id: int)
Dictionary unsubscribe_with_timeout(subscription_id: int, timeout_ms: int)
Dictionary client_call(uri: String, args: String, options: String)
Dictionary client_call_with_timeout(uri: String, args: String, options: String, timeout_ms: int)
String get_last_string()

Method Descriptions

  • connect_client(uri: String, port: unsigned int) -> bool

Connects the Waapi client at the given uri and port. The Wwise authoring application should be open and available at the given location and port in order for this call to succeed. Example:

var connectResult = Waapi.connect_client("127.0.0.1", 8080)

if connectResult:
   # Do something...

Returns true if connection succeeded.


  • is_client_connected() -> bool

Checks the connection status of the Waapi client.

Returns true if the client is connected, false otherwise.


  • disconnect_client()

Disconnects the client.


  • subscribe(uri: String, options: String) -> Dictionary

Subscribes the Waapi client to changes to e.g. the Wwise project in the authoring app. In order to get the data dictionary with keys subscription_id, subscribe_result and result_string. The signal wamp_event should be connected in GDScripts, e.g.

Waapi.connect("wamp_event", Callable(self, "_on_wamp_event"))

func _on_wamp_event(data):
   print(data)

Returns a Dictionary with keys subscription_id, subscribe_result and result_string


  • subscribe_with_timeout(uri: String, options: String, timeout_ms: int) -> Dictionary

Subscribes the Waapi client to changes to e.g. the Wwise project in the authoring app and returns after some timeout in milliseconds has passed. Works similarly to subscribe but with a timeout.

Returns a Dictionary with keys subscription_id, subscribe_result and result_string


  • unsubscribe(subscription_id: int) -> Dictionary

Unsubscribes the Waapi client to changes to e.g. the Wwise project in the authoring app, given a subscription ID.

Returns a Dictionary with keys unsubscribe_result, result_string


  • unsubscribe_with_timeout(subscription_id: int, timeout_ms: int) -> Dictionary

Unsubscribes the Waapi client to changes to e.g. the Wwise project in the authoring app with a timeout in milliseconds. Works similarly to unsubscribe but adding a timeout.

Returns a Dictionary with keys unsubscribe_result, result_string


  • client_call(uri: String, args: String, options: String) -> Dictionary

Calls the Waapi client with a given uri, arguments and options. Example of usage:

var json: JSON = JSON.new()
var connectResult = Waapi.connect_client("127.0.0.1", 8080)

if connectResult:	
   var args = {"from": {"ofType": ["Project", "Bus", "Switch", "State", "Event", "SoundBank"]}}
   var options = {"return": ["name", "type", "workunit", "path", "shortId"]}
	
   var dict = Waapi.client_call("ak.wwise.core.object.get", JSON.stringify(args), JSON.stringify(options))
   
   var json_document = json.parse(dict["result_string"])

   if json_document == OK:
      if json.data.has("return"):
         print(json.data["return"])

if Waapi.is_client_connected():
   Waapi.disconnect_client()

Returns a Dictionary with keys call_result, result_string.


  • client_call_with_timeout(uri: String, args: String, options: String, timeout_ms: int) -> Dictionary

Calls the Waapi with a given uri, arguments and options, specifying a timeout in milliseconds.

Returns a Dictionary with keys call_result, result_string


  • get_last_string() -> String

Gets the last string result from subscribe, unsubscribe or call. Useful for debugging.

Returns a result String