コード例 #1
0
    /// Loads a SoundBank. This version returns right away and loads in background. See AK::SoundEngine::LoadBank for more information.
    public static void LoadBankAsync(string name, AkCallbackManager.BankCallback callback = null)
    {
        BankHandle handle = null;

        lock (m_BankHandles)
        {
            if (m_BankHandles.TryGetValue(name, out handle))
            {
                // Bank already loaded, increment its ref count.
                handle.IncRef();
                return;
            }

            handle = new AsyncBankHandle(name, callback);
            m_BankHandles.Add(name, handle);
        }
        handle.LoadBank();
    }
コード例 #2
0
ファイル: AkBankManager.cs プロジェクト: EsbenNyboe/WwiseTest
    /// Loads a SoundBank. This version returns right away and loads in background. See AK::SoundEngine::LoadBank for more information.
    public static void LoadBankAsync(string name, AkCallbackManager.BankCallback callback = null)
    {
        m_Mutex.WaitOne();
        BankHandle handle = null;

        if (!m_BankHandles.TryGetValue(name, out handle))
        {
            AsyncBankHandle asyncHandle = new AsyncBankHandle(name, callback);
            m_BankHandles.Add(name, asyncHandle);
            m_Mutex.ReleaseMutex();
            asyncHandle.LoadBank();
        }
        else
        {
            // Bank already loaded, increment its ref count.
            handle.IncRef();
            m_Mutex.ReleaseMutex();
        }
    }
コード例 #3
0
    public static AKRESULT LoadBankResAsync(string name, AkCallbackManager.BankCallback callback, System.Object in_cookie)
    {
        m_Mutex.WaitOne();
        BankHandle handle = null;

        if (!m_BankHandles.TryGetValue(name, out handle))
        {
            var asyncHandle = new AsyncBankHandle(name, callback, in_cookie);
            m_BankHandles.Add(name, asyncHandle);
            m_Mutex.ReleaseMutex();
            asyncHandle.DoLoadBank();
            return(AKRESULT.AK_WaitBankLoadingFinish);
        }
        else
        {
            m_Mutex.ReleaseMutex();
            return(AKRESULT.AK_BankAlreadyLoaded);
        }
    }
コード例 #4
0
    /// Loads a SoundBank. This version returns right away and loads in background. See AK::SoundEngine::LoadBank for more information.
    public static AKRESULT LoadBank(string name, bool decodeBank, bool saveDecodedBank, AkCallbackManager.BankCallback callback = null)
    {
        m_Mutex.WaitOne();
        if (m_AyncloadingBanks.Count > 0)
        {
            foreach (var lAyncloadingBank in m_AyncloadingBanks)
            {
                if (lAyncloadingBank.bankName == name)
                {
                    return(AKRESULT.AK_BankAsyncLoading);
                }
            }
        }
        BankHandle handle = null;

        if (!m_BankHandles.TryGetValue(name, out handle))
        {
            if (callback != null)
            {
                handle = new AsyncBankHandle(name, callback, null);
            }
            else if (decodeBank)
            {
                handle = new DecodableBankHandle(name, saveDecodedBank);
            }
            else
            {
                handle = new BankHandle(name);
            }
            if (callback == null)
            {
                m_BankHandles.Add(name, handle);
            }
            m_Mutex.ReleaseMutex();
            return(handle.LoadBank());
        }
        else
        {
            // Bank already loaded, increment its ref count.
            m_Mutex.ReleaseMutex();
            return(AKRESULT.AK_BankAlreadyLoaded);
        }
    }