AudioMixerExposedParametersPopup(AudioMixerController controller)
 {
     m_ExposedParametersView = new AudioMixerExposedParameterView(new ReorderableListWithRenameAndScrollView.State());
     m_ExposedParametersView.OnMixerControllerChanged(controller);
 }
Exemplo n.º 2
0
 public void OnMixerControllerChanged(AudioMixerController controller)
 {
     this.m_Controller = controller;
     this.RecreateListControl();
 }
Exemplo n.º 3
0
 public ParameterTransitionOverrideContext(AudioMixerController controller, GUID parameter, ParameterTransitionType type)
 {
     this.controller = controller;
     this.parameter  = parameter;
     this.type       = type;
 }
Exemplo n.º 4
0
        public static bool Slider(GUIContent label, ref float value, float displayScale, float displayExponent, string unit, float leftValue, float rightValue, AudioMixerController controller, AudioParameterPath path, params GUILayoutOption[] options)
        {
            EditorGUI.BeginChangeCheck();

            float  oldNumberWidth = EditorGUIUtility.fieldWidth;
            string origFormat     = EditorGUI.kFloatFieldFormatString;

            bool  exposed      = controller.ContainsExposedParameter(path.parameter);
            float displayValue = value * displayScale;

            EditorGUIUtility.fieldWidth       = 70f; // do not go over 70 because then sliders will not be shown when inspector has minimal width
            EditorGUI.kFloatFieldFormatString = kAudioSliderFloatFormat;
            EditorGUI.s_UnitString            = unit;

            try
            {
                GUIContent content = label;
                if (exposed)
                {
                    content = GUIContent.Temp(label.text + kExposedParameterUnicodeChar, label.tooltip);
                }

                displayValue = EditorGUILayout.PowerSlider(content, displayValue, leftValue * displayScale, rightValue * displayScale, displayExponent, options);
            }
            finally
            {
                EditorGUI.s_UnitString            = null;
                EditorGUI.kFloatFieldFormatString = origFormat;
                EditorGUIUtility.fieldWidth       = oldNumberWidth;
            }

            if (Event.current.type == EventType.ContextClick)
            {
                Rect wholeSlider = GUILayoutUtility.topLevel.GetLast();
                if (wholeSlider.Contains(Event.current.mousePosition))
                {
                    Event.current.Use();

                    GenericMenu pm = new GenericMenu();
                    if (!exposed)
                    {
                        pm.AddItem(EditorGUIUtility.TrTextContent("Expose '" + path.ResolveStringPath(false) + "' to script"), false, ExposePopupCallback, new ExposedParamContext(controller, path));
                    }
                    else
                    {
                        pm.AddItem(EditorGUIUtility.TrTextContent("Unexpose"), false, UnexposePopupCallback, new ExposedParamContext(controller, path));
                    }

                    ParameterTransitionType existingType;
                    bool overrideExists = controller.TargetSnapshot.GetTransitionTypeOverride(path.parameter, out existingType);
                    System.Diagnostics.Debug.Assert(!overrideExists || existingType == ParameterTransitionType.Lerp);

                    pm.AddSeparator(string.Empty);
                    pm.AddItem(EditorGUIUtility.TrTextContent("Linear Snapshot Transition"), existingType == ParameterTransitionType.Lerp, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Lerp));
                    pm.AddItem(EditorGUIUtility.TrTextContent("Smoothstep Snapshot Transition"), existingType == ParameterTransitionType.Smoothstep, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Smoothstep));
                    pm.AddItem(EditorGUIUtility.TrTextContent("Squared Snapshot Transition"), existingType == ParameterTransitionType.Squared, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Squared));
                    pm.AddItem(EditorGUIUtility.TrTextContent("SquareRoot Snapshot Transition"), existingType == ParameterTransitionType.SquareRoot, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.SquareRoot));
                    pm.AddItem(EditorGUIUtility.TrTextContent("BrickwallStart Snapshot Transition"), existingType == ParameterTransitionType.BrickwallStart, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.BrickwallStart));
                    pm.AddItem(EditorGUIUtility.TrTextContent("BrickwallEnd Snapshot Transition"), existingType == ParameterTransitionType.BrickwallEnd, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.BrickwallEnd));
                    pm.AddItem(EditorGUIUtility.TrTextContent("Attenuation Snapshot Transition"), existingType == ParameterTransitionType.Attenuation, ParameterTransitionOverrideCallback, new ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Attenuation));
                    pm.AddSeparator(string.Empty);

                    pm.ShowAsContext();
                }
            }

            if (EditorGUI.EndChangeCheck())
            {
                value = displayValue / displayScale;
                return(true);
            }
            return(false);
        }
            public void HandleDragging(Rect totalRect, AudioMixerGroupController group, AudioMixerController controller)
            {
                if (!this.isDragging)
                {
                    return;
                }
                Event     current        = Event.current;
                EventType typeForControl = current.GetTypeForControl(this.m_DragControlID);

                switch (typeForControl)
                {
                case EventType.MouseUp:
                    current.Use();
                    if (this.m_MovingSrcIndex != -1)
                    {
                        if (this.m_MovingDstIndex != -1 && this.m_MovingEffectAllowed)
                        {
                            List <AudioMixerEffectController> list = group.effects.ToList <AudioMixerEffectController>();
                            if (AudioMixerController.MoveEffect(ref list, this.m_MovingSrcIndex, ref list, this.m_MovingDstIndex))
                            {
                                group.effects = list.ToArray();
                            }
                        }
                        this.m_MovingSrcIndex             = -1;
                        this.m_MovingDstIndex             = -1;
                        controller.m_HighlightEffectIndex = -1;
                        if (GUIUtility.hotControl == this.m_DragControlID)
                        {
                            GUIUtility.hotControl = 0;
                        }
                        EditorGUIUtility.SetWantsMouseJumping(0);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                        GUIUtility.ExitGUI();
                    }
                    return;

                case EventType.MouseMove:
IL_35:
                    if (typeForControl != EventType.Repaint)
                    {
                        return;
                    }
                    if (this.m_DragHighlightPos > 0f)
                    {
                        float width  = totalRect.width;
                        Color color  = (!this.m_MovingEffectAllowed) ? this.kMoveColorLoDisallowed : this.kMoveColorLoAllowed;
                        Color color2 = (!this.m_MovingEffectAllowed) ? this.kMoveColorHiDisallowed : this.kMoveColorHiAllowed;
                        Color color3 = (!this.m_MovingEffectAllowed) ? this.kMoveColorBorderDisallowed : this.kMoveColorBorderAllowed;
                        AudioMixerDrawUtils.DrawGradientRect(new Rect(this.m_MovingRect.x, this.m_DragHighlightPos - 15f, width, 15f), color, color2);
                        AudioMixerDrawUtils.DrawGradientRect(new Rect(this.m_MovingRect.x, this.m_DragHighlightPos, width, 15f), color2, color);
                        AudioMixerDrawUtils.DrawGradientRect(new Rect(this.m_MovingRect.x, this.m_DragHighlightPos - this.m_DragHighlightHeight / 2f, width, this.m_DragHighlightHeight), color3, color3);
                    }
                    return;

                case EventType.MouseDrag:
                    this.m_MovingPos = current.mousePosition.y;
                    current.Use();
                    return;
                }
                goto IL_35;
            }
        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();
        }
Exemplo n.º 7
0
 public AudioMixerGroupPopupContext(AudioMixerController controller, AudioMixerGroupController[] groups)
 {
     this.controller = controller;
     this.groups     = groups;
 }
Exemplo n.º 8
0
 public void turnOnReverb() // test
 {
     AudioMixerController.SetReverbLevel(0);
 }
            // Called once per OnGUI
            public void HandleDragging(Rect totalRect, AudioMixerGroupController group, AudioMixerController controller)
            {
                // Early out if we are not dragging
                if (!isDragging)
                {
                    return;
                }

                Event       evt        = Event.current;
                const float kMoveRange = 15;

                switch (evt.GetTypeForControl(m_DragControlID))
                {
                case EventType.MouseDrag:
                    m_MovingPos = evt.mousePosition.y;
                    evt.Use();
                    break;

                case EventType.MouseUp:
                    evt.Use();
                    if (m_MovingSrcIndex != -1)
                    {
                        if (m_MovingDstIndex != -1 && m_MovingEffectAllowed)
                        {
                            var effects = group.effects.ToList();
                            if (AudioMixerController.MoveEffect(ref effects, m_MovingSrcIndex, ref effects, m_MovingDstIndex))
                            {
                                group.effects = effects.ToArray();
                            }
                        }
                        m_MovingSrcIndex = -1;
                        m_MovingDstIndex = -1;
                        controller.m_HighlightEffectIndex = -1;
                        if (GUIUtility.hotControl == m_DragControlID)
                        {
                            GUIUtility.hotControl = 0;
                        }
                        EditorGUIUtility.SetWantsMouseJumping(0);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                        EditorGUIUtility.ExitGUI();     // Exit because we changed order of effects
                    }
                    break;

                case EventType.Repaint:
                    if (m_DragHighlightPos > 0.0f)
                    {
                        float w               = totalRect.width;
                        Color moveColorLo     = (m_MovingEffectAllowed) ? kMoveColorLoAllowed : kMoveColorLoDisallowed;
                        Color moveColorHi     = (m_MovingEffectAllowed) ? kMoveColorHiAllowed : kMoveColorHiDisallowed;
                        Color moveColorBorder = (m_MovingEffectAllowed) ? kMoveColorBorderAllowed : kMoveColorBorderDisallowed;
                        AudioMixerDrawUtils.DrawGradientRect(new Rect(m_MovingRect.x, m_DragHighlightPos - kMoveRange, w, kMoveRange), moveColorLo, moveColorHi);
                        AudioMixerDrawUtils.DrawGradientRect(new Rect(m_MovingRect.x, m_DragHighlightPos, w, kMoveRange), moveColorHi, moveColorLo);
                        AudioMixerDrawUtils.DrawGradientRect(new Rect(m_MovingRect.x, m_DragHighlightPos - m_DragHighlightHeight / 2, w, m_DragHighlightHeight), moveColorBorder, moveColorBorder);
                    }
                    break;
                }
            }
        public void OnGUI(AudioMixerGroupController group)
        {
            if (group == null)
            {
                return;
            }

            var controller = group.controller;
            var allGroups  = controller.GetAllAudioGroupsSlow();
            var effectMap  = new Dictionary <AudioMixerEffectController, AudioMixerGroupController>();

            foreach (var g in allGroups)
            {
                foreach (var e in g.effects)
                {
                    effectMap[e] = g;
                }
            }

            Rect totalRect = EditorGUILayout.BeginVertical();

            if (EditorApplication.isPlaying)
            {
                GUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                EditorGUI.BeginChangeCheck();
                GUILayout.Toggle(AudioSettings.editingInPlaymode, Texts.editInPlaymode, EditorStyles.miniButton, GUILayout.Width(120));
                if (EditorGUI.EndChangeCheck())
                {
                    AudioSettings.editingInPlaymode = !AudioSettings.editingInPlaymode;
                }
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
            }

            using (new EditorGUI.DisabledScope(!AudioMixerController.EditingTargetSnapshot()))
            {
                if (group != m_PrevGroup)
                {
                    m_PrevGroup = group;
                    controller.m_HighlightEffectIndex = -1;
                    AudioMixerUtility.RepaintAudioMixerAndInspectors();
                }

                // Do Effect modules
                DoInitialModule(group, controller, allGroups);
                for (int effectIndex = 0; effectIndex < group.effects.Length; effectIndex++)
                {
                    DoEffectGUI(effectIndex, group, allGroups, effectMap, ref controller.m_HighlightEffectIndex);
                }

                m_EffectDragging.HandleDragging(totalRect, group, controller);

                GUILayout.Space(10f);

                EditorGUILayout.BeginHorizontal();

                GUILayout.FlexibleSpace();
                if (EditorGUILayout.DropdownButton(Texts.addEffect, FocusType.Passive, GUISkin.current.button))
                {
                    GenericMenu pm         = new GenericMenu();
                    Rect        buttonRect = GUILayoutUtility.topLevel.GetLast();
                    AudioMixerGroupController[] groupArray = new AudioMixerGroupController[] { group };
                    AudioMixerChannelStripView.AddEffectItemsToMenu(controller, groupArray, group.effects.Length, string.Empty, pm);
                    pm.DropDown(buttonRect);
                }

                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.EndVertical();
        }
        public void DoEffectGUI(int effectIndex, AudioMixerGroupController group, List <AudioMixerGroupController> allGroups, Dictionary <AudioMixerEffectController, AudioMixerGroupController> effectMap, ref int highlightEffectIndex)
        {
            Event evt = Event.current;

            AudioMixerController       controller = group.controller;
            AudioMixerEffectController effect     = group.effects[effectIndex];

            MixerParameterDefinition[] paramDefs = MixerEffectDefinitions.GetEffectParameters(effect.effectName);

            // This rect is valid after every layout event
            Rect totalRect = EditorGUILayout.BeginVertical();

            bool      hovering = totalRect.Contains(evt.mousePosition);
            EventType evtType  = evt.GetTypeForControl(m_EffectDragging.dragControlID);

            if (evtType == EventType.MouseMove && hovering && highlightEffectIndex != effectIndex)
            {
                highlightEffectIndex = effectIndex;
                AudioMixerUtility.RepaintAudioMixerAndInspectors();
            }

            // Header
            const float colorCodeWidth = 6f;
            var         gearSize       = EditorStyles.iconButton.CalcSize(EditorGUI.GUIContents.titleSettingsIcon);
            Rect        headerRect     = GUILayoutUtility.GetRect(1, 17f);
            Rect        colorCodeRect  = new Rect(headerRect.x + 6f, headerRect.y + 5f, colorCodeWidth, colorCodeWidth);
            Rect        labelRect      = new Rect(headerRect.x + 8f + colorCodeWidth, headerRect.y, headerRect.width - 8f - colorCodeWidth - gearSize.x - 5f, headerRect.height);
            Rect        gearRect       = new Rect(labelRect.xMax, headerRect.y, gearSize.x, gearSize.y);
            Rect        dragRect       = new Rect(headerRect.x, headerRect.y, headerRect.width - gearSize.x - 5f, headerRect.height);

            {
                bool showCPU = EditorPrefs.GetBool(AudioMixerGroupEditor.kPrefKeyForShowCpuUsage, false) && EditorUtility.audioProfilingEnabled;

                float val         = EditorGUIUtility.isProSkin ? 0.1f : 1.0f;
                Color headerColor = new Color(val, val, val, 0.2f);
                Color origColor   = GUI.color;
                GUI.color = headerColor;
                GUI.DrawTexture(headerRect, EditorGUIUtility.whiteTexture);
                GUI.color = origColor;

                Color effectColorCode = AudioMixerDrawUtils.GetEffectColor(effect);
                EditorGUI.DrawRect(colorCodeRect, effectColorCode);
                GUI.Label(labelRect, showCPU ? effect.effectName + string.Format(Texts.cpuFormatString, effect.GetCPUUsage(controller)) : effect.effectName, EditorStyles.boldLabel);
                if (EditorGUI.DropdownButton(gearRect, EditorGUI.GUIContents.titleSettingsIcon, FocusType.Passive, EditorStyles.iconButton))
                {
                    ShowEffectContextMenu(group, effect, effectIndex, controller, gearRect);
                }

                // Show context menu if right clicking in header rect (for convenience)
                if (evt.type == EventType.ContextClick && headerRect.Contains(evt.mousePosition))
                {
                    ShowEffectContextMenu(group, effect, effectIndex, controller, new Rect(evt.mousePosition.x, headerRect.y, 1, headerRect.height));
                    evt.Use();
                }

                if (evtType == EventType.Repaint)
                {
                    EditorGUIUtility.AddCursorRect(dragRect, MouseCursor.ResizeVertical, m_EffectDragging.dragControlID);
                }
            }

            using (new EditorGUI.DisabledScope(effect.bypass || group.bypassEffects))
            {
                EditorGUILayout.BeginVertical(EditorStyles.inspectorDefaultMargins);

                if (effect.IsAttenuation())
                {
                    EditorGUILayout.BeginVertical();
                    float value = group.GetValueForVolume(controller, controller.TargetSnapshot);
                    if (AudioMixerEffectGUI.Slider(Texts.volume, ref value, 1.0f, 1.0f, Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume(), controller, new AudioGroupParameterPath(group, group.GetGUIDForVolume())))
                    {
                        Undo.RecordObject(controller.TargetSnapshot, "Change Volume Fader");
                        group.SetValueForVolume(controller, controller.TargetSnapshot, value);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    }

                    //FIXME
                    // 1) The VUMeter used is not in the same style that fits the rest of the Audio UI
                    // 2) The layout of the VU meters is hacked together and a lot of magic numbers are used.
                    int     numChannels  = 0;
                    float[] vuinfo_level = new float[9];
                    float[] vuinfo_peak  = new float[9];

                    numChannels = group.controller.GetGroupVUInfo(group.groupID, true, ref vuinfo_level, ref vuinfo_peak);

                    if (evt.type == EventType.Layout)
                    {
                        m_LastNumChannels = numChannels;
                    }
                    else
                    {
                        if (numChannels != m_LastNumChannels)
                        {
                            HandleUtility.Repaint();      // Repaint to ensure correct rendered num channels
                        }
                        // Ensure same num channels as in layout event to not break IMGUI controlID handling
                        numChannels = m_LastNumChannels;
                    }

                    GUILayout.Space(4f);
                    for (int c = 0; c < numChannels; ++c)
                    {
                        float level = 1 - AudioMixerController.VolumeToScreenMapping(Mathf.Clamp(vuinfo_level[c], AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume()), 1, true);
                        float peak  = 1 - AudioMixerController.VolumeToScreenMapping(Mathf.Clamp(vuinfo_peak[c], AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume()), 1, true);
                        EditorGUILayout.VUMeterHorizontal(level, peak, GUILayout.Height(10));

                        //This allows the meters to drop to 0 after PlayMode has stopped.
                        if (!EditorApplication.isPlaying && peak > 0.0F)
                        {
                            AudioMixerUtility.RepaintAudioMixerAndInspectors();
                        }
                    }
                    GUILayout.Space(4f);
                    EditorGUILayout.EndVertical();
                }

                if (effect.IsSend())
                {
                    Rect       buttonRect;
                    GUIContent buttonContent = (effect.sendTarget == null) ? Texts.none : GUIContent.Temp(effect.GetSendTargetDisplayString(effectMap));
                    if (AudioMixerEffectGUI.PopupButton(Texts.bus, buttonContent, EditorStyles.popup, out buttonRect))
                    {
                        ShowBusPopupMenu(effectIndex, @group, allGroups, effectMap, effect, buttonRect);
                    }

                    if (effect.sendTarget != null)
                    {
                        float wetLevel = effect.GetValueForMixLevel(controller, controller.TargetSnapshot);
                        if (AudioMixerEffectGUI.Slider(Texts.sendLevel, ref wetLevel, 1.0f, 1.0f, Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, new AudioGroupParameterPath(group, group.GetGUIDForSend())))
                        {
                            Undo.RecordObject(controller.TargetSnapshot, "Change Send Level");
                            effect.SetValueForMixLevel(controller, controller.TargetSnapshot, wetLevel);
                            AudioMixerUtility.RepaintAudioMixerAndInspectors();
                        }
                    }
                }

                if (MixerEffectDefinitions.EffectCanBeSidechainTarget(effect))
                {
                    bool anyTargetsFound = false;
                    foreach (var g in allGroups)
                    {
                        foreach (var e in g.effects)
                        {
                            if (e.IsSend() && e.sendTarget == effect)
                            {
                                anyTargetsFound = true;
                                break;
                            }
                        }
                        if (anyTargetsFound)
                        {
                            break;
                        }
                    }
                    if (!anyTargetsFound)
                    {
                        GUILayout.Label(EditorGUIUtility.TrTextContent("No Send sources connected.", EditorGUIUtility.warningIcon));
                    }
                }

                // Wet mix
                if (effect.enableWetMix && !effect.IsReceive() && !effect.IsDuckVolume() && !effect.IsAttenuation() && !effect.IsSend())
                {
                    float wetLevel = effect.GetValueForMixLevel(controller, controller.TargetSnapshot);
                    if (AudioMixerEffectGUI.Slider(Texts.wet, ref wetLevel, 1.0f, 1.0f, Texts.dB, AudioMixerController.kMinVolume, AudioMixerController.kMaxEffect, controller, new AudioEffectParameterPath(group, effect, effect.GetGUIDForMixLevel())))
                    {
                        Undo.RecordObject(controller.TargetSnapshot, "Change Mix Level");
                        effect.SetValueForMixLevel(controller, controller.TargetSnapshot, wetLevel);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    }
                }

                // All other effects
                bool drawDefaultGUI = true;
                if (m_CustomEffectGUIs.ContainsKey(effect.effectName))
                {
                    var customGUI = m_CustomEffectGUIs[effect.effectName];
                    m_SharedPlugin.m_Controller = controller;
                    m_SharedPlugin.m_Effect     = effect;
                    m_SharedPlugin.m_ParamDefs  = paramDefs;
                    drawDefaultGUI = customGUI.OnGUI(m_SharedPlugin);
                }
                if (drawDefaultGUI)
                {
                    foreach (var p in paramDefs)
                    {
                        float value = effect.GetValueForParameter(controller, controller.TargetSnapshot, p.name);
                        if (AudioMixerEffectGUI.Slider(GUIContent.Temp(p.name, p.description), ref value, p.displayScale, p.displayExponent, p.units, p.minRange, p.maxRange, controller, new AudioEffectParameterPath(group, effect, effect.GetGUIDForParameter(p.name))))
                        {
                            Undo.RecordObject(controller.TargetSnapshot, "Change " + p.name);
                            effect.SetValueForParameter(controller, controller.TargetSnapshot, p.name, value);
                        }
                    }
                    if (paramDefs.Length > 0)
                    {
                        GUILayout.Space(6f);
                    }
                }
            }

            m_EffectDragging.HandleDragElement(effectIndex, totalRect, dragRect, group, allGroups);

            EditorGUILayout.EndVertical(); // indented effect contents
            EditorGUILayout.EndVertical(); // calc total size

            AudioMixerDrawUtils.DrawSplitter();
        }
Exemplo n.º 12
0
        public static bool Slider(GUIContent label, ref float value, float displayScale, float displayExponent, string unit, float leftValue, float rightValue, AudioMixerController controller, AudioParameterPath path, params GUILayoutOption[] options)
        {
            EditorGUI.BeginChangeCheck();
            float  fieldWidth        = EditorGUIUtility.fieldWidth;
            string fieldFormatString = EditorGUI.kFloatFieldFormatString;
            bool   flag = controller.ContainsExposedParameter(path.parameter);

            EditorGUIUtility.fieldWidth       = 70f;
            EditorGUI.kFloatFieldFormatString = "F2";
            EditorGUI.s_UnitString            = unit;
            GUIContent label1 = label;

            if (flag)
            {
                label1 = GUIContent.Temp(label.text + " ➔", label.tooltip);
            }
            float num1 = value * displayScale;
            float num2 = EditorGUILayout.PowerSlider(label1, num1, leftValue * displayScale, rightValue * displayScale, displayExponent, options);

            EditorGUI.s_UnitString            = (string)null;
            EditorGUI.kFloatFieldFormatString = fieldFormatString;
            EditorGUIUtility.fieldWidth       = fieldWidth;
            if (Event.current.type == EventType.ContextClick && GUILayoutUtility.topLevel.GetLast().Contains(Event.current.mousePosition))
            {
                Event.current.Use();
                GenericMenu genericMenu = new GenericMenu();
                if (!flag)
                {
                    genericMenu.AddItem(new GUIContent("Expose '" + path.ResolveStringPath(false) + "' to script"), false, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ExposePopupCallback), (object)new AudioMixerEffectGUI.ExposedParamContext(controller, path));
                }
                else
                {
                    genericMenu.AddItem(new GUIContent("Unexpose"), false, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.UnexposePopupCallback), (object)new AudioMixerEffectGUI.ExposedParamContext(controller, path));
                }
                ParameterTransitionType type;
                controller.TargetSnapshot.GetTransitionTypeOverride(path.parameter, out type);
                genericMenu.AddSeparator(string.Empty);
                genericMenu.AddItem(new GUIContent("Linear Snapshot Transition"), type == ParameterTransitionType.Lerp, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback), (object)new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Lerp));
                genericMenu.AddItem(new GUIContent("Smoothstep Snapshot Transition"), type == ParameterTransitionType.Smoothstep, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback), (object)new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Smoothstep));
                genericMenu.AddItem(new GUIContent("Squared Snapshot Transition"), type == ParameterTransitionType.Squared, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback), (object)new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Squared));
                genericMenu.AddItem(new GUIContent("SquareRoot Snapshot Transition"), type == ParameterTransitionType.SquareRoot, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback), (object)new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.SquareRoot));
                genericMenu.AddItem(new GUIContent("BrickwallStart Snapshot Transition"), type == ParameterTransitionType.BrickwallStart, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback), (object)new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.BrickwallStart));
                genericMenu.AddItem(new GUIContent("BrickwallEnd Snapshot Transition"), type == ParameterTransitionType.BrickwallEnd, new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback), (object)new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.BrickwallEnd));
                genericMenu.AddSeparator(string.Empty);
                genericMenu.ShowAsContext();
            }
            if (!EditorGUI.EndChangeCheck())
            {
                return(false);
            }
            value = num2 / displayScale;
            return(true);
        }
 public ParameterTransitionOverrideRemoveContext(AudioMixerController controller, GUID parameter)
 {
     this.controller = controller;
     this.parameter = parameter;
 }
Exemplo n.º 14
0
 public AudioGroupDataSource(TreeViewController treeView, AudioMixerController controller)
     : base(treeView)
 {
     m_Controller = controller;
 }
 public override void OnInspectorGUI()
 {
     serializedObject.Update();
     EditorGUILayout.PropertyField(m_EnableSuspend, Texts.m_EnableSuspendLabel);
     using (new EditorGUI.DisabledScope(!m_EnableSuspend.boolValue || m_EnableSuspend.hasMultipleDifferentValues))
     {
         EditorGUI.BeginChangeCheck();
         EditorGUI.s_UnitString = Texts.dB;
         float displayValue = m_SuspendThreshold.floatValue;
         displayValue           = EditorGUILayout.PowerSlider(Texts.m_SuspendThresholdLabel, displayValue, AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume(), 1.0f);
         EditorGUI.s_UnitString = null;
         if (EditorGUI.EndChangeCheck())
         {
             m_SuspendThreshold.floatValue = displayValue;
         }
     }
     EditorGUILayout.PropertyField(m_UpdateMode, Texts.m_UpdateModeLabel);
     serializedObject.ApplyModifiedProperties();
 }
 public ParameterTransitionOverrideContext(AudioMixerController controller, GUID parameter, ParameterTransitionType type)
 {
     this.controller = controller;
     this.parameter = parameter;
     this.type = type;
 }
 public void SetAudioMixerController(AudioMixerController _audioMixerController)
 {
     audio = _audioMixerController;
 }
Exemplo n.º 18
0
        public static bool Slider(GUIContent label, ref float value, float displayScale, float displayExponent, string unit, float leftValue, float rightValue, AudioMixerController controller, AudioParameterPath path, params GUILayoutOption[] options)
        {
            EditorGUI.BeginChangeCheck();
            float  fieldWidth = EditorGUIUtility.fieldWidth;
            string kFloatFieldFormatString = EditorGUI.kFloatFieldFormatString;
            bool   flag = controller.ContainsExposedParameter(path.parameter);

            EditorGUIUtility.fieldWidth       = 70f;
            EditorGUI.kFloatFieldFormatString = "F2";
            EditorGUI.s_UnitString            = unit;
            GUIContent label2 = label;

            if (flag)
            {
                label2 = GUIContent.Temp(label.text + " ➔", label.tooltip);
            }
            float num = value * displayScale;

            num = EditorGUILayout.PowerSlider(label2, num, leftValue * displayScale, rightValue * displayScale, displayExponent, options);
            EditorGUI.s_UnitString            = null;
            EditorGUI.kFloatFieldFormatString = kFloatFieldFormatString;
            EditorGUIUtility.fieldWidth       = fieldWidth;
            if (Event.current.type == EventType.ContextClick)
            {
                if (GUILayoutUtility.topLevel.GetLast().Contains(Event.current.mousePosition))
                {
                    Event.current.Use();
                    GenericMenu genericMenu = new GenericMenu();
                    if (!flag)
                    {
                        GenericMenu arg_120_0 = genericMenu;
                        GUIContent  arg_120_1 = EditorGUIUtility.TrTextContent("Expose '" + path.ResolveStringPath(false) + "' to script", null, null);
                        bool        arg_120_2 = false;
                        if (AudioMixerEffectGUI.< > f__mg$cache0 == null)
                        {
                            AudioMixerEffectGUI.< > f__mg$cache0 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ExposePopupCallback);
                        }
                        arg_120_0.AddItem(arg_120_1, arg_120_2, AudioMixerEffectGUI.< > f__mg$cache0, new AudioMixerEffectGUI.ExposedParamContext(controller, path));
                    }
                    else
                    {
                        GenericMenu arg_15F_0 = genericMenu;
                        GUIContent  arg_15F_1 = EditorGUIUtility.TrTextContent("Unexpose", null, null);
                        bool        arg_15F_2 = false;
                        if (AudioMixerEffectGUI.< > f__mg$cache1 == null)
                        {
                            AudioMixerEffectGUI.< > f__mg$cache1 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.UnexposePopupCallback);
                        }
                        arg_15F_0.AddItem(arg_15F_1, arg_15F_2, AudioMixerEffectGUI.< > f__mg$cache1, new AudioMixerEffectGUI.ExposedParamContext(controller, path));
                    }
                    ParameterTransitionType parameterTransitionType;
                    bool transitionTypeOverride = controller.TargetSnapshot.GetTransitionTypeOverride(path.parameter, out parameterTransitionType);
                    genericMenu.AddSeparator(string.Empty);
                    GenericMenu arg_1C6_0 = genericMenu;
                    GUIContent  arg_1C6_1 = EditorGUIUtility.TrTextContent("Linear Snapshot Transition", null, null);
                    bool        arg_1C6_2 = parameterTransitionType == ParameterTransitionType.Lerp;
                    if (AudioMixerEffectGUI.< > f__mg$cache2 == null)
                    {
                        AudioMixerEffectGUI.< > f__mg$cache2 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback);
                    }
                    arg_1C6_0.AddItem(arg_1C6_1, arg_1C6_2, AudioMixerEffectGUI.< > f__mg$cache2, new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Lerp));
                    GenericMenu arg_20A_0 = genericMenu;
                    GUIContent  arg_20A_1 = EditorGUIUtility.TrTextContent("Smoothstep Snapshot Transition", null, null);
                    bool        arg_20A_2 = parameterTransitionType == ParameterTransitionType.Smoothstep;
                    if (AudioMixerEffectGUI.< > f__mg$cache3 == null)
                    {
                        AudioMixerEffectGUI.< > f__mg$cache3 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback);
                    }
                    arg_20A_0.AddItem(arg_20A_1, arg_20A_2, AudioMixerEffectGUI.< > f__mg$cache3, new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Smoothstep));
                    GenericMenu arg_24E_0 = genericMenu;
                    GUIContent  arg_24E_1 = EditorGUIUtility.TrTextContent("Squared Snapshot Transition", null, null);
                    bool        arg_24E_2 = parameterTransitionType == ParameterTransitionType.Squared;
                    if (AudioMixerEffectGUI.< > f__mg$cache4 == null)
                    {
                        AudioMixerEffectGUI.< > f__mg$cache4 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback);
                    }
                    arg_24E_0.AddItem(arg_24E_1, arg_24E_2, AudioMixerEffectGUI.< > f__mg$cache4, new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.Squared));
                    GenericMenu arg_292_0 = genericMenu;
                    GUIContent  arg_292_1 = EditorGUIUtility.TrTextContent("SquareRoot Snapshot Transition", null, null);
                    bool        arg_292_2 = parameterTransitionType == ParameterTransitionType.SquareRoot;
                    if (AudioMixerEffectGUI.< > f__mg$cache5 == null)
                    {
                        AudioMixerEffectGUI.< > f__mg$cache5 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback);
                    }
                    arg_292_0.AddItem(arg_292_1, arg_292_2, AudioMixerEffectGUI.< > f__mg$cache5, new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.SquareRoot));
                    GenericMenu arg_2D6_0 = genericMenu;
                    GUIContent  arg_2D6_1 = EditorGUIUtility.TrTextContent("BrickwallStart Snapshot Transition", null, null);
                    bool        arg_2D6_2 = parameterTransitionType == ParameterTransitionType.BrickwallStart;
                    if (AudioMixerEffectGUI.< > f__mg$cache6 == null)
                    {
                        AudioMixerEffectGUI.< > f__mg$cache6 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback);
                    }
                    arg_2D6_0.AddItem(arg_2D6_1, arg_2D6_2, AudioMixerEffectGUI.< > f__mg$cache6, new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.BrickwallStart));
                    GenericMenu arg_31A_0 = genericMenu;
                    GUIContent  arg_31A_1 = EditorGUIUtility.TrTextContent("BrickwallEnd Snapshot Transition", null, null);
                    bool        arg_31A_2 = parameterTransitionType == ParameterTransitionType.BrickwallEnd;
                    if (AudioMixerEffectGUI.< > f__mg$cache7 == null)
                    {
                        AudioMixerEffectGUI.< > f__mg$cache7 = new GenericMenu.MenuFunction2(AudioMixerEffectGUI.ParameterTransitionOverrideCallback);
                    }
                    arg_31A_0.AddItem(arg_31A_1, arg_31A_2, AudioMixerEffectGUI.< > f__mg$cache7, new AudioMixerEffectGUI.ParameterTransitionOverrideContext(controller, path.parameter, ParameterTransitionType.BrickwallEnd));
                    genericMenu.AddSeparator(string.Empty);
                    genericMenu.ShowAsContext();
                }
            }
            bool result;

            if (EditorGUI.EndChangeCheck())
            {
                value  = num / displayScale;
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
Exemplo n.º 19
0
 private bool ShouldShowController(AudioMixerController controller, List <int> allowedInstanceIDs)
 {
     return(controller && (allowedInstanceIDs == null || allowedInstanceIDs.Count <= 0 || allowedInstanceIDs.Contains(controller.GetInstanceID())));
 }
Exemplo n.º 20
0
        public void OnGUI(AudioMixerGroupController group)
        {
            if (group == null)
            {
                return;
            }
            AudioMixerController             controller         = group.controller;
            List <AudioMixerGroupController> allAudioGroupsSlow = controller.GetAllAudioGroupsSlow();
            Dictionary <AudioMixerEffectController, AudioMixerGroupController> dictionary = new Dictionary <AudioMixerEffectController, AudioMixerGroupController>();

            foreach (AudioMixerGroupController current in allAudioGroupsSlow)
            {
                AudioMixerEffectController[] effects = current.effects;
                for (int i = 0; i < effects.Length; i++)
                {
                    AudioMixerEffectController key = effects[i];
                    dictionary[key] = current;
                }
            }
            Rect totalRect = EditorGUILayout.BeginVertical(new GUILayoutOption[0]);

            if (EditorApplication.isPlaying)
            {
                GUILayout.BeginHorizontal(new GUILayoutOption[0]);
                GUILayout.FlexibleSpace();
                EditorGUI.BeginChangeCheck();
                GUILayout.Toggle(AudioSettings.editingInPlaymode, AudioMixerEffectView.Texts.editInPlaymode, EditorStyles.miniButton, new GUILayoutOption[]
                {
                    GUILayout.Width(120f)
                });
                if (EditorGUI.EndChangeCheck())
                {
                    AudioSettings.editingInPlaymode = !AudioSettings.editingInPlaymode;
                }
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
            }
            using (new EditorGUI.DisabledScope(!AudioMixerController.EditingTargetSnapshot()))
            {
                if (group != this.m_PrevGroup)
                {
                    this.m_PrevGroup = group;
                    controller.m_HighlightEffectIndex = -1;
                    AudioMixerUtility.RepaintAudioMixerAndInspectors();
                }
                AudioMixerEffectView.DoInitialModule(group, controller, allAudioGroupsSlow);
                for (int j = 0; j < group.effects.Length; j++)
                {
                    this.DoEffectGUI(j, group, allAudioGroupsSlow, dictionary, ref controller.m_HighlightEffectIndex);
                }
                this.m_EffectDragging.HandleDragging(totalRect, group, controller);
                GUILayout.Space(10f);
                EditorGUILayout.BeginHorizontal(new GUILayoutOption[0]);
                GUILayout.FlexibleSpace();
                if (EditorGUILayout.ButtonMouseDown(AudioMixerEffectView.Texts.addEffect, FocusType.Passive, GUISkin.current.button, new GUILayoutOption[0]))
                {
                    GenericMenu genericMenu            = new GenericMenu();
                    Rect        last                   = GUILayoutUtility.topLevel.GetLast();
                    AudioMixerGroupController[] groups = new AudioMixerGroupController[]
                    {
                        group
                    };
                    AudioMixerChannelStripView.AddEffectItemsToMenu(controller, groups, group.effects.Length, string.Empty, genericMenu);
                    genericMenu.DropDown(last);
                }
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndVertical();
        }
        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();
        }
Exemplo n.º 22
0
        private static void ShowEffectContextMenu(AudioMixerGroupController group, AudioMixerEffectController effect, int effectIndex, AudioMixerController controller, Rect buttonRect)
        {
            GenericMenu genericMenu = new GenericMenu();

            if (!effect.IsReceive())
            {
                if (!effect.IsAttenuation() && !effect.IsSend() && !effect.IsDuckVolume())
                {
                    genericMenu.AddItem(new GUIContent("Allow Wet Mixing (causes higher memory usage)"), effect.enableWetMix, delegate
                    {
                        effect.enableWetMix = !effect.enableWetMix;
                    });
                    genericMenu.AddItem(new GUIContent("Bypass"), effect.bypass, delegate
                    {
                        effect.bypass = !effect.bypass;
                        controller.UpdateBypass();
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    });
                    genericMenu.AddSeparator(string.Empty);
                }
                genericMenu.AddItem(new GUIContent("Copy effect settings to all snapshots"), false, delegate
                {
                    Undo.RecordObject(controller, "Copy effect settings to all snapshots");
                    if (effect.IsAttenuation())
                    {
                        controller.CopyAttenuationToAllSnapshots(group, controller.TargetSnapshot);
                    }
                    else
                    {
                        controller.CopyEffectSettingsToAllSnapshots(group, effectIndex, controller.TargetSnapshot, effect.IsSend());
                    }
                    AudioMixerUtility.RepaintAudioMixerAndInspectors();
                });
                if (!effect.IsAttenuation() && !effect.IsSend() && !effect.IsDuckVolume() && effect.enableWetMix)
                {
                    genericMenu.AddItem(new GUIContent("Copy effect settings to all snapshots, including wet level"), false, delegate
                    {
                        Undo.RecordObject(controller, "Copy effect settings to all snapshots, including wet level");
                        controller.CopyEffectSettingsToAllSnapshots(group, effectIndex, controller.TargetSnapshot, true);
                        AudioMixerUtility.RepaintAudioMixerAndInspectors();
                    });
                }
                genericMenu.AddSeparator(string.Empty);
            }
            AudioMixerGroupController[] groups = new AudioMixerGroupController[]
            {
                group
            };
            AudioMixerChannelStripView.AddEffectItemsToMenu(controller, groups, effectIndex, "Add effect before/", genericMenu);
            AudioMixerChannelStripView.AddEffectItemsToMenu(controller, groups, effectIndex + 1, "Add effect after/", genericMenu);
            if (!effect.IsAttenuation())
            {
                genericMenu.AddSeparator(string.Empty);
                genericMenu.AddItem(new GUIContent("Remove this effect"), false, delegate
                {
                    controller.ClearSendConnectionsTo(effect);
                    controller.RemoveEffect(effect, group);
                    AudioMixerUtility.RepaintAudioMixerAndInspectors();
                });
            }
            genericMenu.DropDown(buttonRect);
        }
        private static void ShowEffectContextMenu(AudioMixerGroupController group, AudioMixerEffectController effect, int effectIndex, AudioMixerController controller, Rect buttonRect)
        {
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            AudioMixerEffectView.\u003CShowEffectContextMenu\u003Ec__AnonStorey63 menuCAnonStorey63 = new AudioMixerEffectView.\u003CShowEffectContextMenu\u003Ec__AnonStorey63();
            // ISSUE: reference to a compiler-generated field
            menuCAnonStorey63.effect = effect;
            // ISSUE: reference to a compiler-generated field
            menuCAnonStorey63.controller = controller;
            // ISSUE: reference to a compiler-generated field
            menuCAnonStorey63.group = group;
            // ISSUE: reference to a compiler-generated field
            menuCAnonStorey63.effectIndex = effectIndex;
            GenericMenu pm = new GenericMenu();

            // ISSUE: reference to a compiler-generated field
            if (!menuCAnonStorey63.effect.IsReceive())
            {
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                if (!menuCAnonStorey63.effect.IsAttenuation() && !menuCAnonStorey63.effect.IsSend() && !menuCAnonStorey63.effect.IsDuckVolume())
                {
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated method
                    pm.AddItem(new GUIContent("Allow Wet Mixing (causes higher memory usage)"), menuCAnonStorey63.effect.enableWetMix, new GenericMenu.MenuFunction(menuCAnonStorey63.\u003C\u003Em__AA));
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated method
                    pm.AddItem(new GUIContent("Bypass"), menuCAnonStorey63.effect.bypass, new GenericMenu.MenuFunction(menuCAnonStorey63.\u003C\u003Em__AB));
                    pm.AddSeparator(string.Empty);
                }
                // ISSUE: reference to a compiler-generated method
                pm.AddItem(new GUIContent("Copy effect settings to all snapshots"), false, new GenericMenu.MenuFunction(menuCAnonStorey63.\u003C\u003Em__AC));
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                if (!menuCAnonStorey63.effect.IsAttenuation() && !menuCAnonStorey63.effect.IsSend() && (!menuCAnonStorey63.effect.IsDuckVolume() && menuCAnonStorey63.effect.enableWetMix))
                {
                    // ISSUE: reference to a compiler-generated method
                    pm.AddItem(new GUIContent("Copy effect settings to all snapshots, including wet level"), false, new GenericMenu.MenuFunction(menuCAnonStorey63.\u003C\u003Em__AD));
                }
                pm.AddSeparator(string.Empty);
            }
            // ISSUE: reference to a compiler-generated field
            AudioMixerGroupController[] groups = new AudioMixerGroupController[1] {
                menuCAnonStorey63.group
            };
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            AudioMixerChannelStripView.AddEffectItemsToMenu(menuCAnonStorey63.controller, groups, menuCAnonStorey63.effectIndex, "Add effect before/", pm);
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            AudioMixerChannelStripView.AddEffectItemsToMenu(menuCAnonStorey63.controller, groups, menuCAnonStorey63.effectIndex + 1, "Add effect after/", pm);
            // ISSUE: reference to a compiler-generated field
            if (!menuCAnonStorey63.effect.IsAttenuation())
            {
                pm.AddSeparator(string.Empty);
                // ISSUE: reference to a compiler-generated method
                pm.AddItem(new GUIContent("Remove this effect"), false, new GenericMenu.MenuFunction(menuCAnonStorey63.\u003C\u003Em__AE));
            }
            pm.DropDown(buttonRect);
        }
Exemplo n.º 24
0
 public ParameterTransitionOverrideRemoveContext(AudioMixerController controller, GUID parameter)
 {
     this.controller = controller;
     this.parameter  = parameter;
 }
        public void OnGUI(AudioMixerGroupController group)
        {
            if ((UnityEngine.Object)group == (UnityEngine.Object)null)
            {
                return;
            }
            AudioMixerController             controller         = group.controller;
            List <AudioMixerGroupController> allAudioGroupsSlow = controller.GetAllAudioGroupsSlow();
            Dictionary <AudioMixerEffectController, AudioMixerGroupController> effectMap = new Dictionary <AudioMixerEffectController, AudioMixerGroupController>();

            using (List <AudioMixerGroupController> .Enumerator enumerator = allAudioGroupsSlow.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    AudioMixerGroupController current = enumerator.Current;
                    foreach (AudioMixerEffectController effect in current.effects)
                    {
                        effectMap[effect] = current;
                    }
                }
            }
            Rect totalRect = EditorGUILayout.BeginVertical();

            if (EditorApplication.isPlaying)
            {
                GUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                EditorGUI.BeginChangeCheck();
                GUILayout.Toggle((AudioSettings.editingInPlaymode ? 1 : 0) != 0, AudioMixerEffectView.Texts.editInPlaymode, EditorStyles.miniButton, new GUILayoutOption[1]
                {
                    GUILayout.Width(120f)
                });
                if (EditorGUI.EndChangeCheck())
                {
                    AudioSettings.editingInPlaymode = !AudioSettings.editingInPlaymode;
                }
                GUILayout.FlexibleSpace();
                GUILayout.EndHorizontal();
            }
            EditorGUI.BeginDisabledGroup(!AudioMixerController.EditingTargetSnapshot());
            if ((UnityEngine.Object)group != (UnityEngine.Object) this.m_PrevGroup)
            {
                this.m_PrevGroup = group;
                controller.m_HighlightEffectIndex = -1;
                AudioMixerUtility.RepaintAudioMixerAndInspectors();
            }
            double num = (double)AudioMixerEffectView.DoInitialModule(group, controller, allAudioGroupsSlow);

            for (int effectIndex = 0; effectIndex < group.effects.Length; ++effectIndex)
            {
                this.DoEffectGUI(effectIndex, group, allAudioGroupsSlow, effectMap, ref controller.m_HighlightEffectIndex);
            }
            this.m_EffectDragging.HandleDragging(totalRect, group, controller);
            GUILayout.Space(10f);
            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (EditorGUILayout.ButtonMouseDown(AudioMixerEffectView.Texts.addEffect, FocusType.Passive, GUISkin.current.button))
            {
                GenericMenu pm   = new GenericMenu();
                Rect        last = GUILayoutUtility.topLevel.GetLast();
                AudioMixerGroupController[] groups = new AudioMixerGroupController[1] {
                    group
                };
                AudioMixerChannelStripView.AddEffectItemsToMenu(controller, groups, group.effects.Length, string.Empty, pm);
                pm.DropDown(last);
            }
            EditorGUILayout.EndHorizontal();
            EditorGUI.EndDisabledGroup();
            EditorGUILayout.EndVertical();
        }
Exemplo n.º 26
0
 public ExposedParamContext(AudioMixerController controller, AudioParameterPath path)
 {
     this.controller = controller;
     this.path       = path;
 }
Exemplo n.º 27
0
        public override void OnInspectorGUI()
        {
            base.serializedObject.Update();
            EditorGUILayout.PropertyField(this.m_EnableSuspend, Texts.m_EnableSuspendLabel, new GUILayoutOption[0]);
            EditorGUI.BeginDisabledGroup(!this.m_EnableSuspend.boolValue || this.m_EnableSuspend.hasMultipleDifferentValues);
            EditorGUI.BeginChangeCheck();
            EditorGUI.s_UnitString = Texts.dB;
            float floatValue = this.m_SuspendThreshold.floatValue;

            floatValue             = EditorGUILayout.PowerSlider(Texts.m_SuspendThresholdLabel, floatValue, AudioMixerController.kMinVolume, AudioMixerController.GetMaxVolume(), 1f, new GUILayoutOption[0]);
            EditorGUI.s_UnitString = null;
            if (EditorGUI.EndChangeCheck())
            {
                this.m_SuspendThreshold.floatValue = floatValue;
            }
            EditorGUI.EndDisabledGroup();
            base.serializedObject.ApplyModifiedProperties();
        }
Exemplo n.º 28
0
 public AudioMixerItem(int id, int depth, TreeViewItem parent, string displayName, AudioMixerController mixer, string infoText) : base(id, depth, parent, displayName)
 {
     this.mixer    = mixer;
     this.infoText = infoText;
     this.UpdateSuspendedString(true);
 }
Exemplo n.º 29
0
 public AudioMixerSelection(AudioMixerController controller)
 {
     this.m_Controller          = controller;
     this.ChannelStripSelection = new List <AudioMixerGroupController>();
     this.SyncToUnitySelection();
 }
 private static string GetUniqueAudioMixerName(AudioMixerController controller)
 {
     return("AudioMixer_" + controller.GetInstanceID());
 }
Exemplo n.º 31
0
 public void lowerMusicVol() // test
 {
     AudioMixerController.SetMusicLevel(-80f);
 }
Exemplo n.º 32
0
 public AudioMixerGroupPopupContext(AudioMixerController controller, AudioMixerGroupController group)
 {
     this.controller = controller;
     this.groups     = new AudioMixerGroupController[] { group };
 }
 public ExposedParamContext(AudioMixerController controller, AudioParameterPath path)
 {
     this.controller = controller;
     this.path = path;
 }