release() public method

public release ( ) : RESULT
return RESULT
Ejemplo n.º 1
0
 private void CheckInitResult(RESULT result, string cause)
 {
     if (result != 0)
     {
         if (studioSystem.isValid())
         {
             studioSystem.release();
             studioSystem.clearHandle();
         }
         throw new SystemNotInitializedException(result, cause);
     }
 }
Ejemplo n.º 2
0
 void OnDisable()
 {
     if (isInitialized)
     {
         ERRCHECK(system.release());
     }
 }
Ejemplo n.º 3
0
 void OnDisable()
 {
     if (isInitialized)
     {
         FMOD.Studio.UnityUtil.Log("__ SHUT DOWN FMOD SYSTEM __");
         ERRCHECK(system.release());
     }
 }
Ejemplo n.º 4
0
    void OnDisable()
    {
        if (isInitialized)
        {
            FMOD.Studio.UnityUtil.Log("__ SHUT DOWN FMOD SYSTEM __");
            ERRCHECK(system.release());

            if (this == sInstance)
            {
                sInstance = null;
            }
        }
    }
Ejemplo n.º 5
0
        private void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    // Dispose our LowLevelSystem class
                    LowLevelSystem.Dispose();
                    LowLevelSystem = null;
                }

                _system.release().Check();

                _disposed = true;
            }
        }
Ejemplo n.º 6
0
    static void UnloadAllBanks()
    {
        if (sFMODSystem != null)
        {
            foreach (var bank in loadedBanks)
            {
                ERRCHECK(bank.unload());
            }

            loadedBanks.Clear();
            events.Clear();

            sFMODSystem.release();
            sFMODSystem = null;
        }
        else if (loadedBanks.Count != 0)
        {
            FMOD.Studio.UnityUtil.LogError("Banks not unloaded!");
        }
    }
Ejemplo n.º 7
0
    void Init()
    {
        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: Initialize");

        if (isInitialized)
        {
            return;
        }

        DontDestroyOnLoad(gameObject);

        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: System_Create");
        ERRCHECK(FMOD.Studio.System.create(out system));

        FMOD.Studio.INITFLAGS flags = FMOD.Studio.INITFLAGS.NORMAL;

#if FMOD_LIVEUPDATE
        flags |= FMOD.Studio.INITFLAGS.LIVEUPDATE;

        // Unity 5 liveupdate workaround
        if (Application.unityVersion.StartsWith("5"))
        {
            FMOD.Studio.UnityUtil.LogWarning("FMOD_StudioSystem: detected Unity 5, running on port 9265");
            FMOD.System sys;
            ERRCHECK(system.getLowLevelSystem(out sys));
            FMOD.ADVANCEDSETTINGS advancedSettings = new FMOD.ADVANCEDSETTINGS();
            advancedSettings.profilePort = 9265;
            ERRCHECK(sys.setAdvancedSettings(ref advancedSettings));
        }
#endif

        int outputRate = 48000;
#if true //UNITY_ANDROID && !UNITY_EDITOR
        // Force the system sample rate to the output rate to allow for the fast mixer
        if (FMOD.VERSION.number >= 0x00010500)
        {
            FMOD.System sys;
            ERRCHECK(system.getLowLevelSystem(out sys));
            {
                System.Text.StringBuilder str = new System.Text.StringBuilder();
                FMOD.GUID        guid;
                FMOD.SPEAKERMODE speakermode;
                int speakermodechannels;
                ERRCHECK(sys.getDriverInfo(0, str, str.Capacity, out guid, out outputRate, out speakermode, out speakermodechannels));
            }

            ERRCHECK(sys.setSoftwareFormat(outputRate, FMOD.SPEAKERMODE.DEFAULT, 0));
        }
#endif

        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: system.init");
        FMOD.RESULT result = FMOD.RESULT.OK;
        result = system.initialize(1024, flags, FMOD.INITFLAGS.NORMAL, global::System.IntPtr.Zero);

        if (result == FMOD.RESULT.ERR_HEADER_MISMATCH)
        {
            FMOD.Studio.UnityUtil.LogError("Version mismatch between C# script and FMOD binary, restart Unity and reimport the integration package to resolve this issue.");
        }
        else
        {
            ERRCHECK(result);
        }

        // Dummy flush and update to get network state
        ERRCHECK(system.flushCommands());
        result = system.update();

        // Restart without liveupdate if there was a socket error
        if (result == FMOD.RESULT.ERR_NET_SOCKET_ERROR)
        {
            FMOD.Studio.UnityUtil.LogWarning("LiveUpdate disabled: socket in already in use");
            flags &= ~FMOD.Studio.INITFLAGS.LIVEUPDATE;
            ERRCHECK(system.release());
            ERRCHECK(FMOD.Studio.System.create(out system));
            FMOD.System sys;
            ERRCHECK(system.getLowLevelSystem(out sys));
            ERRCHECK(sys.setSoftwareFormat(outputRate, FMOD.SPEAKERMODE.DEFAULT, 0));
            result = system.initialize(1024, flags, FMOD.INITFLAGS.NORMAL, global::System.IntPtr.Zero);
            ERRCHECK(result);
        }

        isInitialized = true;
    }
    void Init()
    {
        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: Initialize");

        if (isInitialized)
        {
            return;
        }

        DontDestroyOnLoad(gameObject);

        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: System_Create");
        ERRCHECK(FMOD.Studio.System.create(out system));

        FMOD.Studio.INITFLAGS flags = FMOD.Studio.INITFLAGS.NORMAL;

        FMOD.System sys;
        ERRCHECK(system.getLowLevelSystem(out sys));
        FMOD.ADVANCEDSETTINGS advancedSettings = new FMOD.ADVANCEDSETTINGS();
        advancedSettings.randomSeed = (uint)DateTime.Now.Ticks;

#if FMOD_LIVEUPDATE
        flags |= FMOD.Studio.INITFLAGS.LIVEUPDATE;

        // Unity 5 liveupdate workaround
        if (Application.unityVersion.StartsWith("5"))
        {
            FMOD.Studio.UnityUtil.LogWarning("FMOD_StudioSystem: detected Unity 5, running on port 9265");
            advancedSettings.profilePort = 9265;
        }
#endif

        ERRCHECK(sys.setAdvancedSettings(ref advancedSettings));

                #if FMOD_DEBUG
        FMOD.Debug.Initialize(FMOD.DEBUG_FLAGS.LOG, FMOD.DEBUG_MODE.FILE, null, "fmod.log");
                #endif

        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: system.init");
        FMOD.RESULT result = FMOD.RESULT.OK;
        result = system.initialize(1024, flags, FMOD.INITFLAGS.NORMAL, global::System.IntPtr.Zero);

        if (result == FMOD.RESULT.ERR_HEADER_MISMATCH)
        {
            FMOD.Studio.UnityUtil.LogError("Version mismatch between C# script and FMOD binary, restart Unity and reimport the integration package to resolve this issue.");
        }
        else
        {
            ERRCHECK(result);
        }

        // Dummy flush and update to get network state
        ERRCHECK(system.flushCommands());
        result = system.update();

        // Restart without liveupdate if there was a socket error
        if (result == FMOD.RESULT.ERR_NET_SOCKET_ERROR)
        {
            FMOD.Studio.UnityUtil.LogWarning("LiveUpdate disabled: socket in already in use");
            flags &= ~FMOD.Studio.INITFLAGS.LIVEUPDATE;
            ERRCHECK(system.release());
            ERRCHECK(FMOD.Studio.System.create(out system));
            ERRCHECK(system.getLowLevelSystem(out sys));
            advancedSettings            = new FMOD.ADVANCEDSETTINGS();
            advancedSettings.randomSeed = (uint)DateTime.Now.Ticks;
            ERRCHECK(sys.setAdvancedSettings(ref advancedSettings));
            result = system.initialize(1024, flags, FMOD.INITFLAGS.NORMAL, global::System.IntPtr.Zero);
            ERRCHECK(result);
        }

        #if UNITY_EDITOR && FMOD_DEBUG
        var fileStream = new FileStream("fmod.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
        logReader = new StreamReader(fileStream);
        #endif

        isInitialized = true;
    }
Ejemplo n.º 9
0
    void Init()
    {
        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: Initialize");

        if (isInitialized)
        {
            return;
        }

        DontDestroyOnLoad(gameObject);

        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: System_Create");
        ERRCHECK(FMOD.Studio.System.create(out system));

        FMOD.Studio.INITFLAGS flags = FMOD.Studio.INITFLAGS.NORMAL;

#if FMOD_LIVEUPDATE
        flags |= FMOD.Studio.INITFLAGS.LIVEUPDATE;

        // Unity 5 liveupdate workaround
        if (Application.unityVersion.StartsWith("5"))
        {
            FMOD.Studio.UnityUtil.LogWarning("FMOD_StudioSystem: detected Unity 5, running on port 9265");
            FMOD.System sys;
            ERRCHECK(system.getLowLevelSystem(out sys));
            FMOD.ADVANCEDSETTINGS advancedSettings = new FMOD.ADVANCEDSETTINGS();
            advancedSettings.profilePort = 9265;
            ERRCHECK(sys.setAdvancedSettings(ref advancedSettings));
        }
#endif

                #if FMOD_DEBUG
                        #if UNITY_XBOXONE
        // Can't go managed -> native -> managed apparently so log to a file
        FMOD.Debug.Initialize(FMOD.DEBUG_FLAGS.LOG, FMOD.DEBUG_MODE.FILE, null, "fmod.log");
                        #else
        FMOD.Debug.Initialize(FMOD.DEBUG_FLAGS.LOG, FMOD.DEBUG_MODE.CALLBACK, LogCallback, null);
                        #endif
                #endif


        FMOD.Studio.UnityUtil.Log("FMOD_StudioSystem: system.init");
        FMOD.RESULT result = FMOD.RESULT.OK;
        result = system.initialize(1024, flags, FMOD.INITFLAGS.NORMAL, global::System.IntPtr.Zero);

        if (result == FMOD.RESULT.ERR_HEADER_MISMATCH)
        {
            FMOD.Studio.UnityUtil.LogError("Version mismatch between C# script and FMOD binary, restart Unity and reimport the integration package to resolve this issue.");
        }
        else
        {
            ERRCHECK(result);
        }

        // Dummy flush and update to get network state
        ERRCHECK(system.flushCommands());
        result = system.update();

        // Restart without liveupdate if there was a socket error
        if (result == FMOD.RESULT.ERR_NET_SOCKET_ERROR)
        {
            FMOD.Studio.UnityUtil.LogWarning("LiveUpdate disabled: socket in already in use");
            flags &= ~FMOD.Studio.INITFLAGS.LIVEUPDATE;
            ERRCHECK(system.release());
            ERRCHECK(FMOD.Studio.System.create(out system));
            FMOD.System sys;
            ERRCHECK(system.getLowLevelSystem(out sys));
            result = system.initialize(1024, flags, FMOD.INITFLAGS.NORMAL, global::System.IntPtr.Zero);
            ERRCHECK(result);
        }

        isInitialized = true;
    }
Ejemplo n.º 10
0
 public static void Release()
 {
     system.release();
 }