/// 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(); }
/// 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(); } }
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); } }
/// 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); } }