audiokinetic / waapi-client-python

Decoupled autobahn WAMP client with support for plain options and bindable subscription callbacks
Apache License 2.0
41 stars 6 forks source link

Wwise Authoring API (Waapi) Client for Python

Decoupled autobahn WAMP client with support for plain options and bindable subscription callbacks.

Requirements

Setup

On Windows, it is recommended to use the Python Launcher for Windows which is installed with Python 3 from python.org.

Usage

from waapi import WaapiClient

with WaapiClient() as client:
    result = client.call("ak.wwise.core.getInfo")

The with statement automatically closes the connection and unregisters subscribers. To keep the connection alive, instantiate WaapiClient and call disconnect when you are done.

from waapi import WaapiClient

# Connect (default URL)
client = WaapiClient()

# RPC
result = client.call("ak.wwise.core.getInfo")

# Subscribe
handler = client.subscribe(
    "ak.wwise.core.object.created",
    lambda object: print("Object created: " + str(object))
)

# Bind a different callback at any time
def my_callback(object):
    print("Different callback: " + str(object))

handler.bind(my_callback)

# Unsubscribe
handler.unsubscribe()

# Disconnect
client.disconnect()

Be aware that failing to call disconnect will result in the program to appear unresponsive, as the background thread running the connection will remain active.

Contribute

This repository accepts pull requests. You may open an issue for any bugs or improvement requests.

Local Install

You may install the package locally using either pip or pipenv.

Clone this repository, then from the repository root run:

or

pipenv install --three

Running the Tests

Install the tox package:

Open a blank project in Wwise, then you may execute tox in the terminal from the root of the repository

The test suite will run for all supported versions of Python. Use -e pyXX to run for a single version, e.g., tox -e py312 for Python 3.12).