60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
| using UnityEditor;
 | |
| using UnityEngine;
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // Copyright 2015-2018 RenderHeads Ltd.  All rights reserverd.
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| namespace RenderHeads.Media.AVProVideo.Editor
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Editor for the AudioOutput component
 | |
| 	/// </summary>
 | |
| 	[CanEditMultipleObjects]
 | |
| 	[CustomEditor(typeof(AudioOutput))]
 | |
| 	public class AudioOutputEditor : UnityEditor.Editor
 | |
| 	{
 | |
| 		private static readonly GUIContent _guiTextChannel = new GUIContent("Channel");
 | |
| 		private static readonly GUIContent _guiTextChannels = new GUIContent("Channels");
 | |
| 		private static readonly string[] _channelMaskOptions = { "1", "2", "3", "4", "5", "6", "7", "8" };
 | |
| 
 | |
| 		private AudioOutput _target;
 | |
| 		private SerializedProperty _channelMaskProperty;
 | |
| 
 | |
| 		void OnEnable()
 | |
| 		{
 | |
| 			_target = (this.target) as AudioOutput;
 | |
| 			_channelMaskProperty = serializedObject.FindProperty("_channelMask");
 | |
| 		}
 | |
| 
 | |
| 		public override void OnInspectorGUI()
 | |
| 		{
 | |
| 			serializedObject.Update();
 | |
| 
 | |
| 			DrawDefaultInspector();
 | |
| 
 | |
| 			if(_target._audioOutputMode == AudioOutput.AudioOutputMode.Multiple)
 | |
| 			{
 | |
| 				_channelMaskProperty.intValue = EditorGUILayout.MaskField(_guiTextChannels, _channelMaskProperty.intValue, _channelMaskOptions);
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				int prevVal = 0;
 | |
| 				for(int i = 0; i < 8; ++i)
 | |
| 				{
 | |
| 					if((_channelMaskProperty.intValue & (1 << i)) > 0)
 | |
| 					{
 | |
| 						prevVal = i;
 | |
| 						break;
 | |
| 					}
 | |
| 				}
 | |
| 				
 | |
| 				int newVal = Mathf.Clamp(EditorGUILayout.IntSlider(_guiTextChannel, prevVal, 0, 7), 0, 7);
 | |
| 				_channelMaskProperty.intValue = 1 << newVal;
 | |
| 			}
 | |
| 
 | |
| 			serializedObject.ApplyModifiedProperties();
 | |
| 		}
 | |
| 	}
 | |
| }
 |