The Wwise Authoring API can be used to issue remote procedure calls from within a Wwise plug-in using the AK::Wwise::IAudioPlugin::WaapiCall()
method.
![]() |
Note: Calls to the AK::Wwise::IAudioPlugin::WaapiCall() method are always blocking. |
Utility classes are provided so that callers can provide a strategy for memory allocation. AK::Wwise::Mallocator
offers a default implementation using malloc
and free
, but a custom one can easily be provided by defining a class that implements AK::IAkPluginMemAlloc
. Finally, a wrapper class AK::Wwise::SafeAllocator
is used to ensure type-safety and automatic memory management.
Examples:
#include <AK/Tools/Common/AkAllocator.h> #include <rapidjson/document.h> // Use the default allocation strategy for results and errors AK::Wwise::Mallocator alloc; AK::Wwise::SafeAllocator<char> szResults(&alloc); AK::Wwise::SafeAllocator<char> szError(&alloc); // Issue a remote procedure call to the Wwise Authoring API m_pPSet->WaapiCall("ak.wwise.core.getInfo", NULL, NULL, &alloc, szResults, szError); if (!szError) { // Parse the results JSON string rapidjson::Document results; results.Parse(szResults); // ... }
#include <AK/Tools/Common/AkAllocator.h> #include <rapidjson/document.h> #include <rapidjson/stringbuffer.h> #include <rapidjson/writer.h> // Use the default allocation strategy for results and errors AK::Wwise::Mallocator alloc; AK::Wwise::SafeAllocator<char> szResults(&alloc); AK::Wwise::SafeAllocator<char> szError(&alloc); // Build a JSON object that contains the procedure's parameters rapidjson::Document args; args.SetObject(); args.AddMember("classId", 8192003, args.GetAllocator()); args.AddMember("property", "ModDepth", args.GetAllocator()); // Stringify the JSON object rapidjson::StringBuffer buffer; rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); args.Accept(writer); // Issue a remote procedure call to the Wwise Authoring API m_pPSet->WaapiCall("ak.wwise.core.plugin.getProperty", buffer.GetString(), NULL, &alloc, szResults, szError); if (!szError) { // Parse the results JSON string rapidjson::Document results; results.Parse(szResults); // ... }
![]() |
Note: Here, RapidJSON is only used for demonstration purposes and is in no way mandatory. The library of your choice can be used to manipulate JSON. |
Refer to How to Create a Wwise Plug-in DLL for more information on Wwise plug-ins.
Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !
Visitez notre page d'AideEnregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !
Partir du bon pied avec Wwise