UnloadBank() public static method

public static UnloadBank ( string in_pszString, IntPtr in_pInMemoryBankPtr ) : AKRESULT
in_pszString string
in_pInMemoryBankPtr IntPtr
return AKRESULT
Ejemplo n.º 1
0
    public void UnloadBank(string inBankFilename)
    {
        CBankEntry entry;

        if (!_DicBankLoad.TryGetValue(inBankFilename.ToLower(), out entry))
        {
            return;
        }

        if (entry.InMemoryBankPtr != IntPtr.Zero)
        {
            AKRESULT result = AkSoundEngine.UnloadBank(entry.BankID, entry.InMemoryBankPtr);
            if (result == AKRESULT.AK_Success)
            {
                entry.PinnedArray.Free();
            }
            else
            {
                HobaDebuger.LogWarningFormat("UnloadBank Failed: {0} {1}", inBankFilename, result);
            }
            entry.InMemoryBankPtr = IntPtr.Zero;
        }
        else
        {
            AkSoundEngine.UnloadBank(entry.BankID, IntPtr.Zero, null, null);
        }

        if (entry.GameObject != null)
        {
            GameObject.Destroy(entry.GameObject);
        }
        _DicBankLoad.Remove(inBankFilename.ToLower());
    }
Ejemplo n.º 2
0
        /// Unloads a bank.
        public virtual void UnloadBank()
        {
            AkSoundEngine.UnloadBank(m_BankID, System.IntPtr.Zero, null, null);

            lock (m_BankHandles)
                m_BankHandles.Remove(bankName);
        }
Ejemplo n.º 3
0
    public void ClearAllBanks()
    {
        foreach (var kv in _DicBankLoad)
        {
            string     bankName = kv.Key;
            CBankEntry entry    = kv.Value;
            if (entry.InMemoryBankPtr != IntPtr.Zero)
            {
                AKRESULT result = AkSoundEngine.UnloadBank(entry.BankID, entry.InMemoryBankPtr);
                if (result == AKRESULT.AK_Success)
                {
                    entry.PinnedArray.Free();
                }
                else
                {
                    HobaDebuger.LogWarningFormat("UnloadBank Failed: {0} {1}", bankName, result);
                }
                entry.InMemoryBankPtr = IntPtr.Zero;
            }
            else
            {
                AkSoundEngine.UnloadBank(entry.BankID, IntPtr.Zero, null, null);
            }

            GameObject.Destroy(entry.GameObject);
        }
        _DicBankLoad.Clear();
    }
Ejemplo n.º 4
0
        public void ReloadBanks()
        {
            uint num;
            int  num2  = 0;
            int  count = this.soundBankScaleStack.Count;

            while (num2 < count)
            {
                SoundBankScale scale  = this.soundBankScaleStack[num2];
                int            index  = 0;
                int            length = scale.soundBankNames.Length;
                while (index < length)
                {
                    AkSoundEngine.UnloadBank(scale.soundBankNames[index], IntPtr.Zero, null, null);
                    AkSoundEngine.LoadBank(scale.soundBankNames[index], -1, out num);
                    index++;
                }
                num2++;
            }
            int num6 = 0;
            int num7 = this.manualPrepareBanks.Count;

            while (num6 < num7)
            {
                AkSoundEngine.UnloadBank(this.manualPrepareBanks[num6], IntPtr.Zero, null, null);
                AkSoundEngine.LoadBank(this.manualPrepareBanks[num6], -1, out num);
                num6++;
            }
        }
    private void Term()
    {
        AkSoundEngine.StopPlayingID(m_PlayingID);

        IntPtr in_pInMemoryBankPtr = IntPtr.Zero;

        AkSoundEngine.UnloadBank(m_BankName, in_pInMemoryBankPtr);
    }
Ejemplo n.º 6
0
 /// Unloads a bank.
 public virtual AKRESULT UnloadBank()
 {
     if (m_BankID == AkSoundEngine.AK_INVALID_BANK_ID)
     {
         return(AkSoundEngine.UnloadBank(bankName, System.IntPtr.Zero, null, null));
     }
     return(AkSoundEngine.UnloadBank(m_BankID, System.IntPtr.Zero, null, null));
 }
Ejemplo n.º 7
0
 void OnDisable()
 {
     foreach (var bankIdIt in m_BankIDs)
     {
         IntPtr in_pInMemoryBankPtr = IntPtr.Zero;
         AkSoundEngine.UnloadBank(bankIdIt, in_pInMemoryBankPtr);
     }
 }
Ejemplo n.º 8
0
 public static void DoUnloadBanks()
 {
     for (int i = 0; i < AkBankManager.BanksToUnload.Count; i++)
     {
         AkSoundEngine.UnloadBank(AkBankManager.BanksToUnload[i], IntPtr.Zero, null, null);
     }
     AkBankManager.BanksToUnload.Clear();
 }
Ejemplo n.º 9
0
 public override void delete()
 {
     base.delete();
     if (this.bank_id != 0)
     {
         int memory_pool_id;
         AkSoundEngine.UnloadBank(this.bank_id, IntPtr.Zero, out memory_pool_id);
     }
 }
Ejemplo n.º 10
0
	private void OnDestroy()
	{
		if (ms_pInMemoryBankPtr != System.IntPtr.Zero)
		{
			var result = AkSoundEngine.UnloadBank(ms_bankID, ms_pInMemoryBankPtr);
			if (result == AKRESULT.AK_Success)
				ms_pinnedArray.Free();
		}
	}
Ejemplo n.º 11
0
 public void DecRef()
 {
     m_RefCount--;
     if (m_RefCount == 0)
     {
         IntPtr in_pInMemoryBankPtr = IntPtr.Zero;
         AkSoundEngine.UnloadBank(m_BankID, in_pInMemoryBankPtr, null, null);
     }
 }
Ejemplo n.º 12
0
    static public void DoUnloadBanks()
    {
        foreach (uint bankID in BanksToUnload)
        {
            Debug.Log("WwiseUnity: Unloading bank");
            AkSoundEngine.UnloadBank(bankID, IntPtr.Zero, null, null);
        }

        BanksToUnload.Clear();
    }
Ejemplo n.º 13
0
        /// Unloads a bank.
        public virtual void UnloadBank(bool remove = true)
        {
            AkSoundEngine.UnloadBank(m_BankID, System.IntPtr.Zero, null, null);

            if (remove)
            {
                lock (m_BankHandles)
                    m_BankHandles.Remove(bankName);
            }
        }
Ejemplo n.º 14
0
                /// <summary>
                /// Unloads the bank from the wwise engine
                /// </summary>
                /// <returns>The AKRESULT of unloading itself</returns>
                internal AKRESULT UnLoad()
                {
                    var result = AkSoundEngine.UnloadBank(BankID, Memory);

                    if (result != AKRESULT.AK_Success)
                    {
                        Debug.LogError("Failed to unload bank " + PublicID.ToString() + ": " + result.ToString());
                        return(result);
                    }
                    Marshal.FreeHGlobal(Memory);
                    soundBanks.Remove(this);
                    return(result);
                }
Ejemplo n.º 15
0
 public void DecRef()
 {
     this.m_RefCount--;
     if ((this.m_RefCount == 0) && (this.m_BankID > 0))
     {
         AKRESULT akresult = AkSoundEngine.UnloadBank(this.m_BankID, IntPtr.Zero);
         if (akresult != AKRESULT.AK_Success)
         {
             Debug.LogWarning("Wwise: Bank " + this.bankName + " failed to unload (" + akresult.ToString() + ")");
         }
         this.m_BankID = 0;
     }
 }
    private void Term()
    {
        if (IsPlaying())
        {
            AkSoundEngine.CancelEventCallback(m_PlayingID);
            AkSoundEngine.StopPlayingID(m_PlayingID);
        }

        IntPtr in_pInMemoryBankPtr = IntPtr.Zero;

        AkSoundEngine.UnloadBank(m_BankName, in_pInMemoryBankPtr);

        m_PlayingID = 0;
    }
Ejemplo n.º 17
0
        /// <summary>
        /// Unloads an bank using the ID (ID is returned at the Add() of the bank)
        /// </summary>
        /// <param name="ID">BankID</param>
        /// <returns></returns>
        public static AKRESULT Remove(uint ID)
        {
            var bankToUnload = soundBanks.Find(bank => bank.PublicID == ID);
            var result       = AkSoundEngine.UnloadBank(bankToUnload.BankID, bankToUnload.Memory);

            if (result != AKRESULT.AK_Success)
            {
                Debug.LogError("Failed to unload bank " + ID.ToString() + ": " + result.ToString());
                return(result);
            }
            Marshal.FreeHGlobal(bankToUnload.Memory);
            soundBanks.Remove(bankToUnload);
            return(result);
        }
Ejemplo n.º 18
0
    static public void DoUnloadBanks()
    {
        foreach (AkBankHandle bank in BanksToUnload)
        {
            if (bank.decodeBank == true && bank.saveDecodedBank == false)
            {
                AkSoundEngine.PrepareBank(PreparationType.Preparation_Unload, bank.m_BankID);
            }
            else
            {
                AkSoundEngine.UnloadBank(bank.m_BankID, IntPtr.Zero, null, null);
            }
        }

        BanksToUnload.Clear();
    }
        public void UnloadBank(WwiseAddressableSoundBank bank, bool ignoreRefCount = false, bool removeFromBankDictionary = true)
        {
            if (!ignoreRefCount)
            {
                bank.refCount = Math.Max(0, bank.refCount - 1);
                if (bank.refCount != 0)
                {
                    return;
                }
            }

            if (bank.loadState == BankLoadState.Loading)
            {
                UnityEngine.Debug.Log($"Wwise Addressable Bank Manager: {bank.name} will be unloaded after it is done loading");
                m_banksToUnload.TryAdd(bank.name, bank.name);
                return;
            }

            if (bank.loadState == BankLoadState.Loaded)
            {
                UnityEngine.Debug.Log($"Wwise Addressable Bank Manager: Unloading {bank.name} sound bank - Bank ID : {bank.soundbankId}");
                AkSoundEngine.UnloadBank(bank.soundbankId, System.IntPtr.Zero);
            }

            m_banksToUnload.TryRemove(bank.name, out _);
            bank.soundbankId = 0;
            bank.refCount    = 0;
            bank.loadState   = BankLoadState.Unloaded;

            if (removeFromBankDictionary)
            {
                if (!m_AddressableBanks.TryRemove(bank.name, out _))
                {
#if UNITY_EDITOR
                    // Don't unnecessarily log messages when caused by domain reload
                    if (UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode && !UnityEditor.EditorApplication.isPlaying)
                    {
                        return;
                    }
#endif
                    if (InitBank && bank.name != InitBank.name)
                    {
                        UnityEngine.Debug.LogError($"Wwise Addressable Bank Manager: Unloaded {bank.name}, but it was not in the list of loaded banks");
                    }
                }
            }
        }
Ejemplo n.º 20
0
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public static void UnloadSoundbank(UInt32 index)
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
        {
            if (!loaded)
            {
                throw new CoreNotLoadedException(nameof(SoundsCore));
            }

            if (activeIndicies.TryGetValue(index, out IntPtr val))
            {
                _ = AkSoundEngine.UnloadBank(index, val);
            }
            else
            {
                throw new Exception("No bank with that index loaded");
            }
        }
Ejemplo n.º 21
0
    static public void DoUnloadBanks()
    {
        int count = BanksToUnload.Count;

        for (int i = 0; i < count; ++i)
        {
            var bank = BanksToUnload[i];
            if (bank.decodeBank == true && bank.saveDecodedBank == false)
            {
                AkSoundEngine.PrepareBank(PreparationType.Preparation_Unload, bank.m_BankID);
            }
            else
            {
                AkSoundEngine.UnloadBank(bank.m_BankID, IntPtr.Zero, null, null);
            }
        }

        BanksToUnload.Clear();
    }
Ejemplo n.º 22
0
 public void DecRef()
 {
     this.m_RefCount--;
     if (this.m_RefCount == 0 && this.m_BankID > 0u)
     {
         AKRESULT aKRESULT = AkSoundEngine.UnloadBank(this.m_BankID, IntPtr.Zero);
         if (aKRESULT != AKRESULT.AK_Success)
         {
             Debug.LogWarning(string.Concat(new string[]
             {
                 "Wwise: Bank ",
                 this.bankName,
                 " failed to unload (",
                 aKRESULT.ToString(),
                 ")"
             }));
         }
         this.m_BankID = 0u;
     }
 }
Ejemplo n.º 23
0
    private void SwitchLanguage()
    {
        if (!AkSoundEngine.IsInitialized())
        {
            m_logger.Error("Error_EngineNotInit");
            return;
        }

        string language = m_languageDict[gameObject.name];

        AkSoundEngine.SetCurrentLanguage(language);

        IntPtr in_pInMemoryBankPtr = IntPtr.Zero;

        AkSoundEngine.UnloadBank(m_BankName, in_pInMemoryBankPtr);
        uint bankID;

        AkSoundEngine.LoadBank(m_BankName, AkSoundEngine.AK_DEFAULT_POOL_ID, out bankID);
        m_logger.Info("Prog_SwitchLanguage", language);
    }
Ejemplo n.º 24
0
        public void UnloadBank(WwiseAddressableSoundBank bank, bool ignoreRefCount = false, bool removeFromBankDictionary = true)
        {
            if (bank.loadState == BankLoadState.Loading || bank.loadState == BankLoadState.WaitingForInitBankToLoad)
            {
                UnityEngine.Debug.LogError($"Wwise Addressable Bank Manager: Will unload {bank.name} when it has finished loading");
                m_banksToUnload.TryAdd(bank.name, bank.name);
                return;
            }

            if (!ignoreRefCount)
            {
                bank.refCount = Math.Max(0, bank.refCount - 1);
                if (bank.refCount != 0)
                {
                    return;
                }
            }

            if (bank.loadState == BankLoadState.Loaded)
            {
                UnityEngine.Debug.Log($"Wwise Addressable Bank Manager: Unloading {bank.name} sound bank - Bank ID : {bank.soundbankId}");
                AkSoundEngine.UnloadBank(bank.soundbankId, System.IntPtr.Zero);
                bank.soundbankId = 0;
                bank.loadState   = BankLoadState.Unloaded;
                bank.refCount    = 0;

                if (removeFromBankDictionary)
                {
                    if (!m_AddressableBanks.TryRemove(bank.name, out _))
                    {
#if UNITY_EDITOR
                        if (UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode && !UnityEditor.EditorApplication.isPlaying)
                        {
                            return;
                        }
#endif
                        UnityEngine.Debug.LogError($"Wwise Addressable Bank Manager: Did not unload {bank.name} as it was not in the list of loaded banks");
                    }
                }
            }
        }
Ejemplo n.º 25
0
    public static void UnloadBank(string name, bool realy = false, int skin = 0)
    {
        if (name.Equals("[]"))
        {
            return;
        }
        if (skin > 0)
        {
            if (!AkBankManager.m_BankHandles.ContainsKey(name + skin))
            {
                return;
            }
            name += skin;
        }
        AkBankManager.m_Mutex.WaitOne();
        AkBankHandle akBankHandle = null;

        if (AkBankManager.m_BankHandles.TryGetValue(name, out akBankHandle))
        {
            if (!realy)
            {
                akBankHandle.DecRef();
                if (akBankHandle.RefCount == 0)
                {
                    AkBankManager.m_BankHandles.Remove(name);
                }
            }
            else
            {
                akBankHandle.m_RefCount = 0;
                AkSoundEngine.UnloadBank(akBankHandle.m_BankID, IntPtr.Zero, null, null);
                AkBankManager.m_BankHandles.Remove(name);
            }
        }
        AkBankManager.m_Mutex.ReleaseMutex();
    }
Ejemplo n.º 26
0
 public static void UnloadInitBank()
 {
     AkSoundEngine.UnloadBank("Init.bnk", System.IntPtr.Zero);
 }
Ejemplo n.º 27
0
    void OnTriggerExit(Collider other)
    {
        IntPtr in_pInMemoryBankPtr = IntPtr.Zero;

        AkSoundEngine.UnloadBank(m_BankID, in_pInMemoryBankPtr, BankCallback, null);
    }
Ejemplo n.º 28
0
    void OnDestroy()
    {
        IntPtr in_pInMemoryBankPtr = IntPtr.Zero;

        AkSoundEngine.UnloadBank(m_BankName, in_pInMemoryBankPtr);
    }
Ejemplo n.º 29
0
 /// Unloads a bank.
 public virtual void UnloadBank()
 {
     AkSoundEngine.UnloadBank(m_BankID, IntPtr.Zero, null, null);
 }
Ejemplo n.º 30
0
 public void CleanUp()
 {
     AkSoundEngine.UnloadBank(__soundBank, (System.IntPtr)__bankID);
 }