public void CtorNew() {
			//GR 29/8 - paged order was slightly changed to match 2.0
			MonoBehavior_ctor();
			PageOrder = new[] {
				0,
				1,
				3,
				2,
				4,
				5,
				6,
				7,
				8
			};
			m_ValidOptionPages = (UIOptionsManager.OptionsPage)OptionsPage.CONTROLS | (UIOptionsManager.OptionsPage)OptionsPage.SOUND | (UIOptionsManager.OptionsPage)OptionsPage.GRAPHICS | (UIOptionsManager.OptionsPage)OptionsPage.GAME | (UIOptionsManager.OptionsPage)OptionsPage.AUTOPAUSE | (UIOptionsManager.OptionsPage)OptionsPage.MENU | (UIOptionsManager.OptionsPage)OptionsPage.CUSTOM | (UIOptionsManager.OptionsPage)OptionsPage.CUSTOM2;
			m_GameMode = new GameMode();
			m_Controls = new ControlMapping();
		}
		public void CtorNew() {
			MonoBehavior_ctor();
			PageOrder = new[] {
				0,
				3,
				1,
				4,
				5,
				2,
				6,
				7,
				8
			};
			m_ValidOptionPages = (UIOptionsManager.OptionsPage)OptionsPage.CONTROLS | (UIOptionsManager.OptionsPage)OptionsPage.SOUND | (UIOptionsManager.OptionsPage)OptionsPage.GRAPHICS | (UIOptionsManager.OptionsPage)OptionsPage.GAME | (UIOptionsManager.OptionsPage)OptionsPage.AUTOPAUSE | (UIOptionsManager.OptionsPage)OptionsPage.MENU | (UIOptionsManager.OptionsPage)OptionsPage.CUSTOM | (UIOptionsManager.OptionsPage)OptionsPage.CUSTOM2;
			m_GameMode = new GameMode();
			m_Controls = new ControlMapping();
		}
 private void ProcessControlMapping(int midiValue, ControlMapping controlMapping)
 {
     // ReSharper disable once ConvertIfStatementToSwitchStatement
     if (controlMapping.CommandName == "Play")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.Play();
     }
     else if (controlMapping.CommandName == "TrackSendFx")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.StartTrackFxSend();
         else
             _bassPlayer.StopTrackFxSend();
     }
     else if (controlMapping.CommandName == "FadeNow")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.ForceFadeNow(ForceFadeType.SkipToEnd);
     }
     else if (controlMapping.CommandName == "Volume")
     {
         var volume = GetPercentage(midiValue, controlMapping);
         _bassPlayer.SetMixerVolume(volume);
     }
     else if (controlMapping.CommandName == "PowerDownCurrent")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.PowerOffCurrentTrack();
     }
     else if (controlMapping.CommandName == "ManualMixVolume")
     {
         var volume = GetPercentage(midiValue, controlMapping);
         _bassPlayer.SetManualMixVolume(volume);
     }
     else if (controlMapping.CommandName == "PowerDownPrevious")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.PowerOffPreviousTrack();
     }
     else if (controlMapping.CommandName == "PausePrevious")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.PausePreviousTrack();
     }
     else if (controlMapping.CommandName == "TrackSendFxVolume")
     {
         var volume = GetPercentage(midiValue, controlMapping);
         _bassPlayer.SetTrackSendFxVolume(volume);
     }
     else if (controlMapping.CommandName == "SamplerVolume")
     {
         var volume = GetPercentage(midiValue, controlMapping);
         _bassPlayer.SetSamplerMixerVolume(volume);
     }
     else if (controlMapping.CommandName == "ToggleManualMixMode")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.ToggleManualMixMode();
     }
     else if (controlMapping.CommandName == "LoopFadeInForever")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.LoopFadeInForever = !_bassPlayer.LoopFadeInForever;
     }
     else if (controlMapping.CommandName == "JumpBack")
     {
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.JumpBack();
     }
     else if (controlMapping.CommandName.StartsWith("Sample"))
     {
         var index = int.Parse(controlMapping.CommandName.Replace("Sample", ""));
         if (IsControlOn(midiValue, controlMapping))
             _bassPlayer.PlaySample(index);
         else
             _bassPlayer.PauseSample(index);
     }
 }
 private static decimal GetPercentage(int value, ControlMapping controlMapping)
 {
     var adjustedValue = Convert.ToDecimal(value - controlMapping.MinMidiValue);
     var adjustedMax = Convert.ToDecimal(controlMapping.MaxMidiValue - controlMapping.MinMidiValue);
     return adjustedValue / adjustedMax * 100;
 }
 private static bool IsControlOn(int value, ControlMapping controlMapping)
 {
     return value != controlMapping.MinMidiValue;
 }
Example #6
0
        public void OnGUI()
        {
            if (_inputManager == null)
            {
                OnEnable();                 // reload input manager; required when editor window opens with unity (instead of being opened from the menu) and no prefab exists
            }

            _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos);
            if (_inputManager.KeyMappings.Mappings.Count > 0)
            {
                EditorGUILayout.LabelField("Key Mappings: ", EditorStyles.boldLabel);

                for (int i = _inputManager.KeyMappings.Mappings.Count - 1; i >= 0; --i)
                {
                    KeyMapping m = _inputManager.KeyMappings.Mappings[i];

                    GUILayout.BeginHorizontal();
                    EditorGUIUtility.labelWidth = 80;
                    m.channel = EditorGUILayout.IntField(" On Channel:", m.channel, GUILayout.MaxWidth(130));
                    EditorGUIUtility.labelWidth = 90;
                    m.trigger = EditorGUILayout.IntField("Note Number:", m.trigger, GUILayout.MaxWidth(130));
                    EditorGUIUtility.labelWidth = 60;
                    m.key = EditorGUILayout.TextField("Triggers:", m.key, GUILayout.MaxWidth(130));

                    if (GUILayout.Button("-", GUILayout.MaxWidth(25)))
                    {
                        _inputManager.RemoveMapping(m.trigger, m.key, m.channel);
                    }
                    GUILayout.EndHorizontal();
                }
            }

            if (_inputManager.ControlMappings.Mappings.Count > 0)
            {
                EditorGUILayout.LabelField("Control Mappings: ", EditorStyles.boldLabel);

                for (int i = _inputManager.ControlMappings.Mappings.Count - 1; i >= 0; --i)
                {
                    ControlMapping m = _inputManager.ControlMappings.Mappings[i];

                    GUILayout.BeginHorizontal();
                    EditorGUIUtility.labelWidth = 40;
                    m.control = EditorGUILayout.IntField(" if CC", m.control, GUILayout.MaxWidth(75));
                    EditorGUIUtility.labelWidth = 15;
                    m.minVal = EditorGUILayout.IntField(">", m.minVal, GUILayout.MaxWidth(50));
                    EditorGUIUtility.labelWidth = 50;
                    m.maxVal = EditorGUILayout.IntField("and <=", m.maxVal, GUILayout.MaxWidth(85));
                    EditorGUIUtility.labelWidth = 70;
                    m.channel = EditorGUILayout.IntField("on channel", m.channel, GUILayout.MaxWidth(100));
                    EditorGUIUtility.labelWidth = 50;
                    m.key = EditorGUILayout.TextField("trigger:", m.key, GUILayout.MaxWidth(110));                     // TODO: validate that this is a real key

                    if (GUILayout.Button("-", GUILayout.MaxWidth(25)))
                    {
                        _inputManager.RemoveMapping(m.control, m.minVal, m.maxVal, m.key);
                    }
                    GUILayout.EndHorizontal();
                }
            }
            EditorGUILayout.EndScrollView();

            GUILayout.BeginHorizontal();
            if (GUILayout.Button("New Key Mapping", GUILayout.MaxWidth(182)))
            {
                _inputManager.MapKey(-1, "", -1);
            }
            if (GUILayout.Button("New Control Mapping", GUILayout.MaxWidth(182)))
            {
                _inputManager.MapControl(-1, -1, -1, "", -1);
            }
            GUILayout.EndHorizontal();

            if (GUILayout.Button("Save Mappings", GUILayout.MaxWidth(369)))
            {
                SavePrefab();
            }
        }