public bool RegisterCustomGUI(IAudioEffectPluginGUI gui)
        {
            string name = gui.Name;

            if (this.m_CustomEffectGUIs.ContainsKey(name))
            {
                IAudioEffectPluginGUI audioEffectPluginGUI = this.m_CustomEffectGUIs[name];
                Debug.LogError("Attempt to register custom GUI for plugin " + name + " failed as another plugin is already registered under this name.");
                Debug.LogError(string.Concat(new string[]
                {
                    "Plugin trying to register itself: ",
                    gui.Description,
                    " (Vendor: ",
                    gui.Vendor,
                    ")"
                }));
                Debug.LogError(string.Concat(new string[]
                {
                    "Plugin already registered: ",
                    audioEffectPluginGUI.Description,
                    " (Vendor: ",
                    audioEffectPluginGUI.Vendor,
                    ")"
                }));
                return(false);
            }
            this.m_CustomEffectGUIs[name] = gui;
            return(true);
        }
 public bool RegisterCustomGUI(IAudioEffectPluginGUI gui)
 {
   string name = gui.Name;
   if (this.m_CustomEffectGUIs.ContainsKey(name))
   {
     IAudioEffectPluginGUI customEffectGuI = this.m_CustomEffectGUIs[name];
     Debug.LogError((object) ("Attempt to register custom GUI for plugin " + name + " failed as another plugin is already registered under this name."));
     Debug.LogError((object) ("Plugin trying to register itself: " + gui.Description + " (Vendor: " + gui.Vendor + ")"));
     Debug.LogError((object) ("Plugin already registered: " + customEffectGuI.Description + " (Vendor: " + customEffectGuI.Vendor + ")"));
     return false;
   }
   this.m_CustomEffectGUIs[name] = gui;
   return true;
 }
        public bool RegisterCustomGUI(IAudioEffectPluginGUI gui)
        {
            string name = gui.Name;

            if (this.m_CustomEffectGUIs.ContainsKey(name))
            {
                IAudioEffectPluginGUI customEffectGuI = this.m_CustomEffectGUIs[name];
                Debug.LogError((object)("Attempt to register custom GUI for plugin " + name + " failed as another plugin is already registered under this name."));
                Debug.LogError((object)("Plugin trying to register itself: " + gui.Description + " (Vendor: " + gui.Vendor + ")"));
                Debug.LogError((object)("Plugin already registered: " + customEffectGuI.Description + " (Vendor: " + customEffectGuI.Vendor + ")"));
                return(false);
            }
            this.m_CustomEffectGUIs[name] = gui;
            return(true);
        }
        public void DoEffectGUI(int effectIndex, AudioMixerGroupController group, List <AudioMixerGroupController> allGroups, Dictionary <AudioMixerEffectController, AudioMixerGroupController> effectMap, ref int highlightEffectIndex)
        {
            Event current = Event.current;
            AudioMixerController       controller = group.controller;
            AudioMixerEffectController audioMixerEffectController = group.effects[effectIndex];

            MixerParameterDefinition[] effectParameters = MixerEffectDefinitions.GetEffectParameters(audioMixerEffectController.effectName);
            Rect      effectRect     = EditorGUILayout.BeginVertical(new GUILayoutOption[0]);
            bool      flag           = effectRect.Contains(current.mousePosition);
            EventType typeForControl = current.GetTypeForControl(this.m_EffectDragging.dragControlID);

            if (typeForControl == EventType.MouseMove && flag && highlightEffectIndex != effectIndex)
            {
                highlightEffectIndex = effectIndex;
                AudioMixerUtility.RepaintAudioMixerAndInspectors();
            }
            Rect  rect     = GUILayoutUtility.GetRect(1f, 17f);
            Rect  rect2    = new Rect(rect.x + 6f, rect.y + 5f, 6f, 6f);
            Rect  position = new Rect(rect.x + 8f + 6f, rect.y, rect.width - 8f - 6f - 14f - 5f, rect.height);
            Rect  rect3    = new Rect(position.xMax, rect.y, 14f, 14f);
            Rect  rect4    = new Rect(rect.x, rect.y, rect.width - 14f - 5f, rect.height);
            bool  flag2    = EditorPrefs.GetBool(AudioMixerGroupEditor.kPrefKeyForShowCpuUsage, false) && EditorUtility.audioProfilingEnabled;
            float num      = (!EditorGUIUtility.isProSkin) ? 1f : 0.1f;
            Color color    = new Color(num, num, num, 0.2f);
            Color color2   = GUI.color;

            GUI.color = color;
            GUI.DrawTexture(rect, EditorGUIUtility.whiteTexture);
            GUI.color = color2;
            Color effectColor = AudioMixerDrawUtils.GetEffectColor(audioMixerEffectController);

            EditorGUI.DrawRect(rect2, effectColor);
            GUI.Label(position, (!flag2) ? audioMixerEffectController.effectName : (audioMixerEffectController.effectName + string.Format(AudioMixerEffectView.Texts.cpuFormatString, audioMixerEffectController.GetCPUUsage(controller))), EditorStyles.boldLabel);
            if (EditorGUI.ButtonMouseDown(rect3, EditorGUI.GUIContents.titleSettingsIcon, FocusType.Passive, EditorStyles.inspectorTitlebarText))
            {
                AudioMixerEffectView.ShowEffectContextMenu(group, audioMixerEffectController, effectIndex, controller, rect3);
            }
            if (current.type == EventType.ContextClick && rect.Contains(current.mousePosition))
            {
                AudioMixerEffectView.ShowEffectContextMenu(group, audioMixerEffectController, effectIndex, controller, new Rect(current.mousePosition.x, rect.y, 1f, rect.height));
                current.Use();
            }
            if (typeForControl == EventType.Repaint)
            {
                EditorGUIUtility.AddCursorRect(rect4, MouseCursor.ResizeVertical, this.m_EffectDragging.dragControlID);
            }
            using (new EditorGUI.DisabledScope(audioMixerEffectController.bypass || group.bypassEffects))
            {
                EditorGUILayout.BeginVertical(EditorStyles.inspectorDefaultMargins, new GUILayoutOption[0]);
                if (audioMixerEffectController.IsAttenuation())
                {
                    EditorGUILayout.BeginVertical(new GUILayoutOption[0]);
                    float valueForVolume = group.GetValueForVolume(controller, controller.TargetSnapshot);
                    if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.volume, ref valueForVolume, 1f, 1f, AudioMixerEffectView.Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume(), controller, new AudioGroupParameterPath(group, group.GetGUIDForVolume()), new GUILayoutOption[0]))
                    {
                        Undo.RecordObject(controller.TargetSnapshot, "Change Volume Fader");
                        group.SetValueForVolume(controller, controller.TargetSnapshot, valueForVolume);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    }
                    float[] array  = new float[9];
                    float[] array2 = new float[9];
                    int     num2   = group.controller.GetGroupVUInfo(group.groupID, true, ref array, ref array2);
                    if (current.type == EventType.Layout)
                    {
                        this.m_LastNumChannels = num2;
                    }
                    else
                    {
                        if (num2 != this.m_LastNumChannels)
                        {
                            HandleUtility.Repaint();
                        }
                        num2 = this.m_LastNumChannels;
                    }
                    GUILayout.Space(4f);
                    for (int i = 0; i < num2; i++)
                    {
                        float value = 1f - AudioMixerController.VolumeToScreenMapping(Mathf.Clamp(array[i], AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume()), 1f, true);
                        float num3  = 1f - AudioMixerController.VolumeToScreenMapping(Mathf.Clamp(array2[i], AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume()), 1f, true);
                        EditorGUILayout.VUMeterHorizontal(value, num3, new GUILayoutOption[]
                        {
                            GUILayout.Height(10f)
                        });
                        if (!EditorApplication.isPlaying && num3 > 0f)
                        {
                            AudioMixerUtility.RepaintAudioMixerAndInspectors();
                        }
                    }
                    GUILayout.Space(4f);
                    EditorGUILayout.EndVertical();
                }
                if (audioMixerEffectController.IsSend())
                {
                    GUIContent buttonContent = (!(audioMixerEffectController.sendTarget == null)) ? GUIContent.Temp(audioMixerEffectController.GetSendTargetDisplayString(effectMap)) : AudioMixerEffectView.Texts.none;
                    Rect       buttonRect;
                    if (AudioMixerEffectGUI.PopupButton(AudioMixerEffectView.Texts.bus, buttonContent, EditorStyles.popup, out buttonRect, new GUILayoutOption[0]))
                    {
                        AudioMixerEffectView.ShowBusPopupMenu(effectIndex, group, allGroups, effectMap, audioMixerEffectController, buttonRect);
                    }
                    if (audioMixerEffectController.sendTarget != null)
                    {
                        float valueForMixLevel = audioMixerEffectController.GetValueForMixLevel(controller, controller.TargetSnapshot);
                        if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.sendLevel, ref valueForMixLevel, 1f, 1f, AudioMixerEffectView.Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, new AudioEffectParameterPath(group, audioMixerEffectController, audioMixerEffectController.GetGUIDForMixLevel()), new GUILayoutOption[0]))
                        {
                            Undo.RecordObject(controller.TargetSnapshot, "Change Send Level");
                            audioMixerEffectController.SetValueForMixLevel(controller, controller.TargetSnapshot, valueForMixLevel);
                            AudioMixerUtility.RepaintAudioMixerAndInspectors();
                        }
                    }
                }
                if (MixerEffectDefinitions.EffectCanBeSidechainTarget(audioMixerEffectController))
                {
                    bool flag3 = false;
                    foreach (AudioMixerGroupController current2 in allGroups)
                    {
                        AudioMixerEffectController[] effects = current2.effects;
                        for (int j = 0; j < effects.Length; j++)
                        {
                            AudioMixerEffectController audioMixerEffectController2 = effects[j];
                            if (audioMixerEffectController2.IsSend() && audioMixerEffectController2.sendTarget == audioMixerEffectController)
                            {
                                flag3 = true;
                                break;
                            }
                            if (flag3)
                            {
                                break;
                            }
                        }
                        if (flag3)
                        {
                            break;
                        }
                    }
                    if (!flag3)
                    {
                        GUILayout.Label(new GUIContent("No Send sources connected.", EditorGUIUtility.warningIcon), new GUILayoutOption[0]);
                    }
                }
                if (audioMixerEffectController.enableWetMix && !audioMixerEffectController.IsReceive() && !audioMixerEffectController.IsDuckVolume() && !audioMixerEffectController.IsAttenuation() && !audioMixerEffectController.IsSend())
                {
                    float valueForMixLevel2 = audioMixerEffectController.GetValueForMixLevel(controller, controller.TargetSnapshot);
                    if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.wet, ref valueForMixLevel2, 1f, 1f, AudioMixerEffectView.Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, new AudioEffectParameterPath(group, audioMixerEffectController, audioMixerEffectController.GetGUIDForMixLevel()), new GUILayoutOption[0]))
                    {
                        Undo.RecordObject(controller.TargetSnapshot, "Change Mix Level");
                        audioMixerEffectController.SetValueForMixLevel(controller, controller.TargetSnapshot, valueForMixLevel2);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    }
                }
                bool flag4 = true;
                if (this.m_CustomEffectGUIs.ContainsKey(audioMixerEffectController.effectName))
                {
                    IAudioEffectPluginGUI audioEffectPluginGUI = this.m_CustomEffectGUIs[audioMixerEffectController.effectName];
                    this.m_SharedPlugin.m_Controller = controller;
                    this.m_SharedPlugin.m_Effect     = audioMixerEffectController;
                    this.m_SharedPlugin.m_ParamDefs  = effectParameters;
                    flag4 = audioEffectPluginGUI.OnGUI(this.m_SharedPlugin);
                }
                if (flag4)
                {
                    MixerParameterDefinition[] array3 = effectParameters;
                    for (int k = 0; k < array3.Length; k++)
                    {
                        MixerParameterDefinition mixerParameterDefinition = array3[k];
                        float valueForParameter = audioMixerEffectController.GetValueForParameter(controller, controller.TargetSnapshot, mixerParameterDefinition.name);
                        if (AudioMixerEffectGUI.Slider(GUIContent.Temp(mixerParameterDefinition.name, mixerParameterDefinition.description), ref valueForParameter, mixerParameterDefinition.displayScale, mixerParameterDefinition.displayExponent, mixerParameterDefinition.units, mixerParameterDefinition.minRange, mixerParameterDefinition.maxRange, controller, new AudioEffectParameterPath(group, audioMixerEffectController, audioMixerEffectController.GetGUIDForParameter(mixerParameterDefinition.name)), new GUILayoutOption[0]))
                        {
                            Undo.RecordObject(controller.TargetSnapshot, "Change " + mixerParameterDefinition.name);
                            audioMixerEffectController.SetValueForParameter(controller, controller.TargetSnapshot, mixerParameterDefinition.name, valueForParameter);
                        }
                    }
                    if (effectParameters.Length > 0)
                    {
                        GUILayout.Space(6f);
                    }
                }
            }
            this.m_EffectDragging.HandleDragElement(effectIndex, effectRect, rect4, group, allGroups);
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndVertical();
            AudioMixerDrawUtils.DrawSplitter();
        }
        public void DoEffectGUI(int effectIndex, AudioMixerGroupController group, List <AudioMixerGroupController> allGroups, Dictionary <AudioMixerEffectController, AudioMixerGroupController> effectMap, ref int highlightEffectIndex)
        {
            Event current = Event.current;
            AudioMixerController       controller = group.controller;
            AudioMixerEffectController effect1    = group.effects[effectIndex];

            MixerParameterDefinition[] effectParameters = MixerEffectDefinitions.GetEffectParameters(effect1.effectName);
            Rect      effectRect     = EditorGUILayout.BeginVertical();
            bool      flag1          = effectRect.Contains(current.mousePosition);
            EventType typeForControl = current.GetTypeForControl(this.m_EffectDragging.dragControlID);

            if (typeForControl == EventType.MouseMove && flag1 && highlightEffectIndex != effectIndex)
            {
                highlightEffectIndex = effectIndex;
                AudioMixerUtility.RepaintAudioMixerAndInspectors();
            }
            Rect  rect1    = GUILayoutUtility.GetRect(1f, 17f);
            Rect  rect2    = new Rect(rect1.x + 6f, rect1.y + 5f, 6f, 6f);
            Rect  position = new Rect((float)((double)rect1.x + 8.0 + 6.0), rect1.y, (float)((double)rect1.width - 8.0 - 6.0 - 14.0 - 5.0), rect1.height);
            Rect  rect3    = new Rect(position.xMax, rect1.y, 14f, 14f);
            Rect  rect4    = new Rect(rect1.x, rect1.y, (float)((double)rect1.width - 14.0 - 5.0), rect1.height);
            bool  flag2    = EditorPrefs.GetBool(AudioMixerGroupEditor.kPrefKeyForShowCpuUsage, false) && EditorUtility.audioProfilingEnabled;
            float num1     = !EditorGUIUtility.isProSkin ? 1f : 0.1f;
            Color color1   = new Color(num1, num1, num1, 0.2f);
            Color color2   = GUI.color;

            GUI.color = color1;
            GUI.DrawTexture(rect1, (Texture)EditorGUIUtility.whiteTexture);
            GUI.color = color2;
            Color effectColor = AudioMixerDrawUtils.GetEffectColor(effect1);

            EditorGUI.DrawRect(rect2, effectColor);
            GUI.Label(position, !flag2 ? effect1.effectName : effect1.effectName + string.Format(AudioMixerEffectView.Texts.cpuFormatString, (object)effect1.GetCPUUsage(controller)), EditorStyles.boldLabel);
            if (EditorGUI.ButtonMouseDown(rect3, EditorGUI.GUIContents.titleSettingsIcon, FocusType.Passive, EditorStyles.inspectorTitlebarText))
            {
                AudioMixerEffectView.ShowEffectContextMenu(group, effect1, effectIndex, controller, rect3);
            }
            if (current.type == EventType.ContextClick && rect1.Contains(current.mousePosition))
            {
                AudioMixerEffectView.ShowEffectContextMenu(group, effect1, effectIndex, controller, new Rect(current.mousePosition.x, rect1.y, 1f, rect1.height));
                current.Use();
            }
            if (typeForControl == EventType.Repaint)
            {
                EditorGUIUtility.AddCursorRect(rect4, MouseCursor.ResizeVertical, this.m_EffectDragging.dragControlID);
            }
            EditorGUI.BeginDisabledGroup(effect1.bypass || group.bypassEffects);
            EditorGUILayout.BeginVertical(EditorStyles.inspectorDefaultMargins, new GUILayoutOption[0]);
            if (effect1.IsAttenuation())
            {
                EditorGUILayout.BeginVertical();
                float valueForVolume = group.GetValueForVolume(controller, controller.TargetSnapshot);
                if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.volume, ref valueForVolume, 1f, 1f, AudioMixerEffectView.Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume(), controller, (AudioParameterPath) new AudioGroupParameterPath(group, group.GetGUIDForVolume())))
                {
                    Undo.RecordObject((UnityEngine.Object)controller.TargetSnapshot, "Change Volume Fader");
                    group.SetValueForVolume(controller, controller.TargetSnapshot, valueForVolume);
                    AudioMixerUtility.RepaintAudioMixerAndInspectors();
                }
                float[] vuLevel = new float[9];
                float[] vuPeak  = new float[9];
                int     num2    = group.controller.GetGroupVUInfo(group.groupID, true, ref vuLevel, ref vuPeak);
                if (current.type == EventType.Layout)
                {
                    this.m_LastNumChannels = num2;
                }
                else
                {
                    if (num2 != this.m_LastNumChannels)
                    {
                        HandleUtility.Repaint();
                    }
                    num2 = this.m_LastNumChannels;
                }
                GUILayout.Space(4f);
                for (int index = 0; index < num2; ++index)
                {
                    float num3 = 1f - AudioMixerController.VolumeToScreenMapping(Mathf.Clamp(vuLevel[index], AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume()), 1f, true);
                    float peak = 1f - AudioMixerController.VolumeToScreenMapping(Mathf.Clamp(vuPeak[index], AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume()), 1f, true);
                    EditorGUILayout.VUMeterHorizontal(num3, peak, new GUILayoutOption[1]
                    {
                        GUILayout.Height(10f)
                    });
                    if (!EditorApplication.isPlaying && (double)peak > 0.0)
                    {
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    }
                }
                GUILayout.Space(4f);
                EditorGUILayout.EndVertical();
            }
            if (effect1.IsSend())
            {
                GUIContent buttonContent = !((UnityEngine.Object)effect1.sendTarget == (UnityEngine.Object)null) ? GUIContent.Temp(effect1.GetSendTargetDisplayString(effectMap)) : AudioMixerEffectView.Texts.none;
                Rect       buttonRect;
                if (AudioMixerEffectGUI.PopupButton(AudioMixerEffectView.Texts.bus, buttonContent, EditorStyles.popup, out buttonRect))
                {
                    AudioMixerEffectView.ShowBusPopupMenu(effectIndex, group, allGroups, effectMap, effect1, buttonRect);
                }
                if ((UnityEngine.Object)effect1.sendTarget != (UnityEngine.Object)null)
                {
                    float valueForMixLevel = effect1.GetValueForMixLevel(controller, controller.TargetSnapshot);
                    if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.sendLevel, ref valueForMixLevel, 1f, 1f, AudioMixerEffectView.Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, (AudioParameterPath) new AudioEffectParameterPath(group, effect1, effect1.GetGUIDForMixLevel())))
                    {
                        Undo.RecordObject((UnityEngine.Object)controller.TargetSnapshot, "Change Send Level");
                        effect1.SetValueForMixLevel(controller, controller.TargetSnapshot, valueForMixLevel);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    }
                }
            }
            if (MixerEffectDefinitions.EffectCanBeSidechainTarget(effect1))
            {
                bool flag3 = false;
                using (List <AudioMixerGroupController> .Enumerator enumerator = allGroups.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        foreach (AudioMixerEffectController effect2 in enumerator.Current.effects)
                        {
                            if (effect2.IsSend() && (UnityEngine.Object)effect2.sendTarget == (UnityEngine.Object)effect1)
                            {
                                flag3 = true;
                                break;
                            }
                            if (flag3)
                            {
                                break;
                            }
                        }
                        if (flag3)
                        {
                            break;
                        }
                    }
                }
                if (!flag3)
                {
                    GUILayout.Label(new GUIContent("No Send sources connected.", (Texture)EditorGUIUtility.warningIcon));
                }
            }
            if (effect1.enableWetMix && !effect1.IsReceive() && (!effect1.IsDuckVolume() && !effect1.IsAttenuation()) && !effect1.IsSend())
            {
                float valueForMixLevel = effect1.GetValueForMixLevel(controller, controller.TargetSnapshot);
                if (AudioMixerEffectGUI.Slider(AudioMixerEffectView.Texts.wet, ref valueForMixLevel, 1f, 1f, AudioMixerEffectView.Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, (AudioParameterPath) new AudioEffectParameterPath(group, effect1, effect1.GetGUIDForMixLevel())))
                {
                    Undo.RecordObject((UnityEngine.Object)controller.TargetSnapshot, "Change Mix Level");
                    effect1.SetValueForMixLevel(controller, controller.TargetSnapshot, valueForMixLevel);
                    AudioMixerUtility.RepaintAudioMixerAndInspectors();
                }
            }
            bool flag4 = true;

            if (this.m_CustomEffectGUIs.ContainsKey(effect1.effectName))
            {
                IAudioEffectPluginGUI customEffectGuI = this.m_CustomEffectGUIs[effect1.effectName];
                this.m_SharedPlugin.m_Controller = controller;
                this.m_SharedPlugin.m_Effect     = effect1;
                this.m_SharedPlugin.m_ParamDefs  = effectParameters;
                flag4 = customEffectGuI.OnGUI((IAudioEffectPlugin)this.m_SharedPlugin);
            }
            if (flag4)
            {
                foreach (MixerParameterDefinition parameterDefinition in effectParameters)
                {
                    float valueForParameter = effect1.GetValueForParameter(controller, controller.TargetSnapshot, parameterDefinition.name);
                    if (AudioMixerEffectGUI.Slider(GUIContent.Temp(parameterDefinition.name, parameterDefinition.description), ref valueForParameter, parameterDefinition.displayScale, parameterDefinition.displayExponent, parameterDefinition.units, parameterDefinition.minRange, parameterDefinition.maxRange, controller, (AudioParameterPath) new AudioEffectParameterPath(group, effect1, effect1.GetGUIDForParameter(parameterDefinition.name))))
                    {
                        Undo.RecordObject((UnityEngine.Object)controller.TargetSnapshot, "Change " + parameterDefinition.name);
                        effect1.SetValueForParameter(controller, controller.TargetSnapshot, parameterDefinition.name, valueForParameter);
                    }
                }
                if (effectParameters.Length > 0)
                {
                    GUILayout.Space(6f);
                }
            }
            EditorGUI.EndDisabledGroup();
            this.m_EffectDragging.HandleDragElement(effectIndex, effectRect, rect4, group, allGroups);
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndVertical();
            AudioMixerDrawUtils.DrawSplitter();
        }
		public bool RegisterCustomGUI(IAudioEffectPluginGUI gui)
		{
			string name = gui.Name;
			if (this.m_CustomEffectGUIs.ContainsKey(name))
			{
				IAudioEffectPluginGUI audioEffectPluginGUI = this.m_CustomEffectGUIs[name];
				Debug.LogError("Attempt to register custom GUI for plugin " + name + " failed as another plugin is already registered under this name.");
				Debug.LogError(string.Concat(new string[]
				{
					"Plugin trying to register itself: ",
					gui.Description,
					" (Vendor: ",
					gui.Vendor,
					")"
				}));
				Debug.LogError(string.Concat(new string[]
				{
					"Plugin already registered: ",
					audioEffectPluginGUI.Description,
					" (Vendor: ",
					audioEffectPluginGUI.Vendor,
					")"
				}));
				return false;
			}
			this.m_CustomEffectGUIs[name] = gui;
			return true;
		}