Wwise SDK 2021.1.9
This page explains an example on how to use the Wwise Authoring API in C++. It also contains the library code supporting the WAMP protocol used by Wwise, which you can use in your own C++ project.
The Visual Studio solution is located in "samples/WwiseAuthoringApi/cpp/SampleClient". You must install the Wwise SDK to access it.
Simply open SampleClientWindows_TOOLSET.sln (where TOOLSET is vc140, vc150 or vc160) build the solution.
|Note: This example requires Visual Studio 2015 (vc140), 2017 (vc150) or 2019 (vc160).|
You can build all targets with: "samples/WwiseAuthoringApi/cpp/SampleClient/mac_build.sh"
This sample runs on the command line. By default, when no parameter is provided, it runs the getInfo RPC call to Wwise Authoring and displays basic information.
More extended examples are available, which you can run by using the associated command line parameter:
TestWampClient:Example demonstrating basic operations such as connect, call and subscribe, using the
TestWampClientJsonString:Mostly the same as
TestWampClient, but using
std::stringfor JSON instead of the
PerfTest:Basic performance test which repeatedly makes the same call and displays the average execution time per call, as well as the total time.
TestErrors:Generates and handles different kinds of errors and shows how to use the logging feature.
TestMonitoring:This example demonstrates how to monitor the current status of Wwise. It detects when Wwise starts, exits, loads or closes a project, and which project is loaded at any given time.
This sample contains the AkAutobahn library, which is a modified version of the WAMP_POCO library (itself based on Autobahn|Cpp), civetweb library and the
Client class. AkAutobahn is provided as part of the Wwise SDK. The class
Client provides a simple interface to our API, internally using the "session" class to connect to Wwise Authoring using the WAMP protocol. Feel free to use the
Client as-is or modify it to better suit your needs.
Out of convenience, the
Client class uses blocking calls (by calling std::future::get). Therefore, the caller thread gets blocked until Wwise Authoring provides a result. A timeout parameter is available to block for only a specific amount of time. The "session" class returns std::future for thread synchronization, which means that you could implement your own asynchronous version of the
Client class if it better suits your needs.
Client class does not support being called from within a callback. In other words, you should not call a method of
Client is already calling you.
Logging is optional, but it often helps the debugging process. You can call
Logger::Get()->SetLoggerFunction(logFunction) to provide your own logging function.