private static void ProcessCallbacks() { if (!UnityEditor.EditorApplication.isCompiling && IsConnected) { AkWaapiClient_PINVOKE.ProcessCallbacks(); } }
private static bool GetLastString(int StringLength, out string Result) { var ResultBuilder = new System.Text.StringBuilder(StringLength); bool res = AkWaapiClient_PINVOKE.GetLastString(ResultBuilder, ResultBuilder.Capacity); Result = ResultBuilder.ToString(); return(res); }
private static bool UnsubscribeInternal(ulong SubscriptionID, int TimeoutMs, out string Result) { int ResultLength; bool res = AkWaapiClient_PINVOKE.Unsubscribe(SubscriptionID, TimeoutMs, out ResultLength); res &= GetLastString(ResultLength, out Result); return(res); }
/// <summary> /// Perform a call to the Wwise Authoring. See <a href="https://www.audiokinetic.com/library/edge/?source=SDK&id=waapi__query.html" target="_blank">Querying the Wwise Project</a> for more information. /// </summary> /// <param name="Uri">Function to call</param> /// <param name="Args">Arguments required by the function</param> /// <param name="Options">Elements of the Wwise objects to return</param> /// <param name="TimeoutMs">Timeout in milliseconds to wait on the Wwise Authoring application to respond</param> /// <param name="Result">Result of the subscription attempt</param> /// <returns>Call success</returns> public static bool Call(string Uri, string Args, string Options, int TimeoutMs, out string Result) { int ResultLength; bool res = AkWaapiClient_PINVOKE.Call(Uri, Args, Options, TimeoutMs, out ResultLength); res &= GetLastString(ResultLength, out Result); return(res); }
static AkWaapiClient() { try { AkWaapiClient_PINVOKE.SetWampEventCallback(InternalWampEventCallback); UnityEditor.EditorApplication.update += ProcessCallbacks; } catch { } }
/// <summary> /// Connects to a Wwise Authoring application /// </summary> /// <param name="Uri">IP to connect to</param> /// <param name="Port">Port to connect to</param> /// <returns>Connection success</returns> public static bool Connect(string Uri, uint Port) { if (!IsConnected) { return(AkWaapiClient_PINVOKE.Connect(Uri, Port)); } return(true); }
private static void ProcessCallbacks() { if (UnityEditor.EditorApplication.isCompiling) { UnityEditor.EditorApplication.update -= ProcessCallbacks; } else if (IsConnected) { AkWaapiClient_PINVOKE.ProcessCallbacks(); } }
/// <summary> /// Disconnects from the connected Wwise Authoring application /// </summary> public static void Disconnect() { foreach (var Callback in WaapiEventCallbacks) { string Result; UnsubscribeInternal(Callback.Key, -1, out Result); } WaapiEventCallbacks.Clear(); AkWaapiClient_PINVOKE.Disconnect(); }
/// <summary> /// Subscribes to a topic. See <a href="https://www.audiokinetic.com/library/edge/?source=SDK&id=waapi__subscribe.html" target="_blank">Subscribing to Topics in the Wwise Authoring API</a> for more information. /// </summary> /// <param name="Uri">Topic to subscribe to</param> /// <param name="Options">Elements of the Wwise objects to return</param> /// <param name="Callback">C# delegate to execute when subscription is triggered</param> /// <param name="TimeoutMs">Timeout in milliseconds to wait on the Wwise Authoring application to respond</param> /// <param name="SubscriptionID">Unique ID representing the subscription</param> /// <param name="Result">Result of the subscription attempt</param> /// <returns>Subscription success</returns> public static bool Subscribe(string Uri, string Options, WaapiEventCallback Callback, int TimeoutMs, out ulong SubscriptionID, out string Result) { int ResultLength; bool res = AkWaapiClient_PINVOKE.Subscribe(Uri, Options, out SubscriptionID, TimeoutMs, out ResultLength); if (res) { WaapiEventCallbacks.Add(SubscriptionID, Callback); } res &= GetLastString(ResultLength, out Result); return(res); }
/// <summary> /// Perform a call to the Wwise Authoring. See <a href="https://www.audiokinetic.com/library/edge/?source=SDK&id=waapi__query.html" target="_blank">Querying the Wwise Project</a> for more information. /// </summary> /// <param name="Uri">Function to call</param> /// <param name="Args">Arguments required by the function</param> /// <param name="Options">Elements of the Wwise objects to return</param> /// <param name="Result">Result of the subscription attempt</param> /// <returns>Call success</returns> public static bool Call(string Uri, string Args, string Options, out string Result) { try { int ResultLength; bool res = AkWaapiClient_PINVOKE.Call(Uri, Args, Options, out ResultLength); res &= GetLastString(ResultLength, out Result); return(res); } catch { Result = string.Empty; return(false); } }
/// <summary> /// Connects to a Wwise Authoring application /// </summary> /// <param name="Uri">IP to connect to</param> /// <param name="Port">Port to connect to</param> /// <returns>Connection success</returns> public static bool Connect(string Uri, uint Port) { try { if (AkWaapiClient_PINVOKE.IsConnected()) { return(true); } return(AkWaapiClient_PINVOKE.Connect(Uri, Port)); } catch { return(false); } }
/// <summary> /// Subscribes to a topic. See <a href="https://www.audiokinetic.com/library/edge/?source=SDK&id=waapi__subscribe.html" target="_blank">Subscribing to Topics in the Wwise Authoring API</a> for more information. /// </summary> /// <param name="Uri">Topic to subscribe to</param> /// <param name="Options">Elements of the Wwise objects to return</param> /// <param name="Callback">C# delegate to execute when subscription is triggered</param> /// <param name="SubscriptionID">Unique ID representing the subscription</param> /// <param name="Result">Result of the subscription attempt</param> /// <returns>Subscription success</returns> public static bool Subscribe(string Uri, string Options, WaapiEventCallback Callback, out ulong SubscriptionID, out string Result) { try { int ResultLength; bool res = AkWaapiClient_PINVOKE.Subscribe(Uri, Options, out SubscriptionID, out ResultLength); if (res) { WaapiEventCallbacks.Add(SubscriptionID, Callback); } res &= GetLastString(ResultLength, out Result); return(res); } catch { SubscriptionID = 0; Result = string.Empty; return(false); } }
static AkWaapiClient() { UnityEditor.EditorApplication.update += ProcessCallbacks; AkWaapiClient_PINVOKE.SetWampEventCallback(InternalWampEventCallback); UnityEditor.Compilation.CompilationPipeline.assemblyCompilationStarted += CompileStarted; }
private static void CompileFinished(string s, UnityEditor.Compilation.CompilerMessage[] message) { AkWaapiClient_PINVOKE.SetWampEventCallback(InternalWampEventCallback); }