Ejemplo n.º 1
0
 private static void ProcessCallbacks()
 {
     if (!UnityEditor.EditorApplication.isCompiling && IsConnected)
     {
         AkWaapiClient_PINVOKE.ProcessCallbacks();
     }
 }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
    /// <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);
    }
Ejemplo n.º 5
0
 static AkWaapiClient()
 {
     try
     {
         AkWaapiClient_PINVOKE.SetWampEventCallback(InternalWampEventCallback);
         UnityEditor.EditorApplication.update += ProcessCallbacks;
     }
     catch { }
 }
Ejemplo n.º 6
0
    /// <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);
    }
Ejemplo n.º 7
0
 private static void ProcessCallbacks()
 {
     if (UnityEditor.EditorApplication.isCompiling)
     {
         UnityEditor.EditorApplication.update -= ProcessCallbacks;
     }
     else if (IsConnected)
     {
         AkWaapiClient_PINVOKE.ProcessCallbacks();
     }
 }
Ejemplo n.º 8
0
    /// <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();
    }
Ejemplo n.º 9
0
    /// <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);
    }
Ejemplo n.º 10
0
 /// <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);
     }
 }
Ejemplo n.º 11
0
    /// <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);
        }
    }
Ejemplo n.º 12
0
 /// <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);
     }
 }
Ejemplo n.º 13
0
 static AkWaapiClient()
 {
     UnityEditor.EditorApplication.update += ProcessCallbacks;
     AkWaapiClient_PINVOKE.SetWampEventCallback(InternalWampEventCallback);
     UnityEditor.Compilation.CompilationPipeline.assemblyCompilationStarted += CompileStarted;
 }
Ejemplo n.º 14
0
 private static void CompileFinished(string s, UnityEditor.Compilation.CompilerMessage[] message)
 {
     AkWaapiClient_PINVOKE.SetWampEventCallback(InternalWampEventCallback);
 }