コード例 #1
0
        internal static AudioSourceExtension AddSpatializerExtension(AudioSource source)
        {
            AudioSourceExtension result;

            if (!source.spatialize)
            {
                result = null;
            }
            else if (source.spatializerExtension != null)
            {
                result = source.spatializerExtension;
            }
            else
            {
                AudioExtensionManager.RegisterBuiltinDefinitions();
                foreach (AudioSpatializerExtensionDefinition audioSpatializerExtensionDefinition in AudioExtensionManager.m_SourceSpatializerExtensionDefinitions)
                {
                    if (AudioSettings.GetSpatializerPluginName() == audioSpatializerExtensionDefinition.spatializerName)
                    {
                        AudioSourceExtension audioSourceExtension = source.AddSpatializerExtension(audioSpatializerExtensionDefinition.definition.GetExtensionType());
                        if (audioSourceExtension != null)
                        {
                            audioSourceExtension.audioSource = source;
                            source.spatializerExtension      = audioSourceExtension;
                            AudioExtensionManager.WriteExtensionProperties(audioSourceExtension, audioSpatializerExtensionDefinition.definition.GetExtensionType().Name);
                            return(audioSourceExtension);
                        }
                    }
                }
                result = null;
            }
            return(result);
        }
コード例 #2
0
        internal static AudioListenerExtension AddSpatializerExtension(AudioListener listener)
        {
            AudioListenerExtension result;

            if (listener.spatializerExtension != null)
            {
                result = listener.spatializerExtension;
            }
            else
            {
                AudioExtensionManager.RegisterBuiltinDefinitions();
                foreach (AudioSpatializerExtensionDefinition audioSpatializerExtensionDefinition in AudioExtensionManager.m_ListenerSpatializerExtensionDefinitions)
                {
                    if (AudioSettings.GetSpatializerPluginName() == audioSpatializerExtensionDefinition.spatializerName || AudioSettings.GetAmbisonicDecoderPluginName() == audioSpatializerExtensionDefinition.spatializerName)
                    {
                        AudioListenerExtension audioListenerExtension = listener.AddExtension(audioSpatializerExtensionDefinition.definition.GetExtensionType());
                        if (audioListenerExtension != null)
                        {
                            audioListenerExtension.audioListener = listener;
                            listener.spatializerExtension        = audioListenerExtension;
                            AudioExtensionManager.WriteExtensionProperties(audioListenerExtension, audioSpatializerExtensionDefinition.definition.GetExtensionType().Name);
                            return(audioListenerExtension);
                        }
                    }
                }
                result = null;
            }
            return(result);
        }
コード例 #3
0
        // Check to see if we need to add a spatializer extension to the audio listener.
        static internal AudioListenerExtension AddSpatializerExtension(AudioListener listener)
        {
            if (listener.spatializerExtension != null)
            {
                return(listener.spatializerExtension);
            }

            RegisterBuiltinDefinitions();

            foreach (AudioSpatializerExtensionDefinition extensionDefinition in m_ListenerSpatializerExtensionDefinitions)
            {
                if ((AudioSettings.GetSpatializerPluginName() == extensionDefinition.spatializerName) ||
                    (AudioSettings.GetAmbisonicDecoderPluginName() == extensionDefinition.spatializerName))
                {
                    AudioListenerExtension newExtension = listener.AddExtension(extensionDefinition.definition.GetExtensionType());
                    if (newExtension != null)
                    {
                        newExtension.audioListener    = listener;
                        listener.spatializerExtension = newExtension;

                        WriteExtensionProperties(newExtension, extensionDefinition.definition.GetExtensionType().Name);
                        return(newExtension);
                    }
                }
            }

            return(null);
        }
コード例 #4
0
        // Check to see if we need to add a spatializer extension to this audio source, based on the currently-registered extensions.
        static internal AudioSourceExtension AddSpatializerExtension(AudioSource source)
        {
            if (!source.spatialize)
            {
                return(null);
            }

            if (source.spatializerExtension != null)
            {
                return(source.spatializerExtension);
            }

            RegisterBuiltinDefinitions();

            foreach (AudioSpatializerExtensionDefinition extensionDefinition in m_SourceSpatializerExtensionDefinitions)
            {
                if (AudioSettings.GetSpatializerPluginName() == extensionDefinition.spatializerName)
                {
                    AudioSourceExtension newExtension = source.AddSpatializerExtension(extensionDefinition.definition.GetExtensionType());
                    if (newExtension != null)
                    {
                        newExtension.audioSource    = source;
                        source.spatializerExtension = newExtension;

                        WriteExtensionProperties(newExtension, extensionDefinition.definition.GetExtensionType().Name);
                        return(newExtension);
                    }
                }
            }

            return(null);
        }
コード例 #5
0
 internal static bool IsSourceSpatializerExtensionRegistered()
 {
     foreach (AudioSpatializerExtensionDefinition audioSpatializerExtensionDefinition in AudioExtensionManager.m_SourceSpatializerExtensionDefinitions)
     {
         if (AudioSettings.GetSpatializerPluginName() == audioSpatializerExtensionDefinition.spatializerName)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #6
0
 internal static Type GetSourceSpatializerExtensionEditorType()
 {
     foreach (AudioSpatializerExtensionDefinition audioSpatializerExtensionDefinition in AudioExtensionManager.m_SourceSpatializerExtensionDefinitions)
     {
         if (AudioSettings.GetSpatializerPluginName() == audioSpatializerExtensionDefinition.spatializerName)
         {
             return(audioSpatializerExtensionDefinition.editorDefinition.GetExtensionType());
         }
     }
     return(null);
 }
コード例 #7
0
        static internal Type GetSourceSpatializerExtensionEditorType()
        {
            foreach (AudioSpatializerExtensionDefinition definition in m_SourceSpatializerExtensionDefinitions)
            {
                if (AudioSettings.GetSpatializerPluginName() == definition.spatializerName)
                {
                    return(definition.editorDefinition.GetExtensionType());
                }
            }

            return(null);
        }
コード例 #8
0
        static internal Type GetListenerSpatializerExtensionType()
        {
            foreach (AudioSpatializerExtensionDefinition definition in m_ListenerSpatializerExtensionDefinitions)
            {
                if (AudioSettings.GetSpatializerPluginName() == definition.spatializerName)
                {
                    return(definition.definition.GetExtensionType());
                }
            }

            return(null);
        }
コード例 #9
0
        static internal bool IsListenerSpatializerExtensionRegistered()
        {
            foreach (AudioSpatializerExtensionDefinition extensionDefinition in m_ListenerSpatializerExtensionDefinitions)
            {
                if (AudioSettings.GetSpatializerPluginName() == extensionDefinition.spatializerName)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #10
0
        private static void RegisterBuiltinDefinitions()
        {
            bool flag = false;

            if (!AudioExtensionManager.m_BuiltinDefinitionsRegistered)
            {
                if (flag || AudioSettings.GetSpatializerPluginName() == "GVR Audio Spatializer")
                {
                }
                if (flag || AudioSettings.GetAmbisonicDecoderPluginName() == "GVR Audio Spatializer")
                {
                }
                AudioExtensionManager.m_BuiltinDefinitionsRegistered = true;
            }
        }
コード例 #11
0
        internal static bool IsSourceSpatializerExtensionRegistered()
        {
            bool result;

            foreach (AudioSpatializerExtensionDefinition current in AudioExtensionManager.m_SourceSpatializerExtensionDefinitions)
            {
                if (AudioSettings.GetSpatializerPluginName() == current.spatializerName)
                {
                    result = true;
                    return(result);
                }
            }
            result = false;
            return(result);
        }
コード例 #12
0
        internal static Type GetSourceSpatializerExtensionEditorType()
        {
            Type result;

            foreach (AudioSpatializerExtensionDefinition current in AudioExtensionManager.m_SourceSpatializerExtensionDefinitions)
            {
                if (AudioSettings.GetSpatializerPluginName() == current.spatializerName)
                {
                    result = current.editorDefinition.GetExtensionType();
                    return(result);
                }
            }
            result = null;
            return(result);
        }
コード例 #13
0
        internal static void Update()
        {
            AudioExtensionManager.RegisterBuiltinDefinitions();
            if (AudioExtensionManager.m_SpatializerName != AudioSettings.GetSpatializerPluginName())
            {
                AudioExtensionManager.m_SpatializerName = AudioSettings.GetSpatializerPluginName();
                if (AudioExtensionManager.GetSourceSpatializerExtensionType() != null)
                {
                    AudioExtensionManager.m_SpatializerExtensionName = AudioExtensionManager.GetSourceSpatializerExtensionType().Name;
                }
                if (AudioExtensionManager.GetListenerSpatializerExtensionEditorType() != null)
                {
                    AudioExtensionManager.m_ListenerSpatializerExtensionName = AudioExtensionManager.GetListenerSpatializerExtensionType().Name;
                }
            }
            AudioListener audioListener = AudioExtensionManager.GetAudioListener() as AudioListener;

            if (audioListener != null)
            {
                AudioListenerExtension audioListenerExtension = AudioExtensionManager.AddSpatializerExtension(audioListener);
                if (audioListenerExtension != null)
                {
                    audioListenerExtension.ExtensionUpdate();
                }
            }
            for (int i = 0; i < AudioExtensionManager.m_SourceExtensionsToUpdate.Count; i++)
            {
                AudioExtensionManager.m_SourceExtensionsToUpdate[i].ExtensionUpdate();
            }
            AudioExtensionManager.m_NextStopIndex = ((AudioExtensionManager.m_NextStopIndex < AudioExtensionManager.m_SourceExtensionsToUpdate.Count) ? AudioExtensionManager.m_NextStopIndex : 0);
            int num = (AudioExtensionManager.m_SourceExtensionsToUpdate.Count <= 0) ? 0 : (1 + AudioExtensionManager.m_SourceExtensionsToUpdate.Count / 8);

            for (int j = 0; j < num; j++)
            {
                AudioSourceExtension audioSourceExtension = AudioExtensionManager.m_SourceExtensionsToUpdate[AudioExtensionManager.m_NextStopIndex];
                if (audioSourceExtension.audioSource == null || !audioSourceExtension.audioSource.enabled || !audioSourceExtension.audioSource.isPlaying)
                {
                    audioSourceExtension.Stop();
                    AudioExtensionManager.RemoveExtensionFromManager(audioSourceExtension);
                }
                else
                {
                    AudioExtensionManager.m_NextStopIndex++;
                    AudioExtensionManager.m_NextStopIndex = ((AudioExtensionManager.m_NextStopIndex < AudioExtensionManager.m_SourceExtensionsToUpdate.Count) ? AudioExtensionManager.m_NextStopIndex : 0);
                }
            }
        }
コード例 #14
0
        // This is where we register our built-in spatializer extensions.
        static private void RegisterBuiltinDefinitions()
        {
            bool bRegisterAllDefinitions = true;

            if (!m_BuiltinDefinitionsRegistered)
            {
                if (bRegisterAllDefinitions || (AudioSettings.GetSpatializerPluginName() == "GVR Audio Spatializer"))
                {
                }

                if (bRegisterAllDefinitions || (AudioSettings.GetAmbisonicDecoderPluginName() == "GVR Audio Spatializer"))
                {
                }

                m_BuiltinDefinitionsRegistered = true;
            }
        }