soundvision/UnityProject/Assets/Editor/PdBackendEditor.cs
2019-10-27 11:21:33 +01:00

59 lines
1.6 KiB
C#

using UnityEditor;
using UnityEngine;
namespace cylvester
{
[CustomEditor(typeof(PdBackend))]
public class PdBackendEditor : Editor
{
private PdBackend pdBackend_;
private SerializedProperty midiMessageReceivedProperty_;
private SerializedProperty midiClockReceivedProperty_;
private readonly string[] samples_ =
{
"No Playback",
"Back_Back",
"Brutal_Synth",
"Dialog",
"Drums",
"Fox_Melo",
"Kick",
"Pads+Strings",
"Rose_Sax",
"Roses_Front"
};
private void Awake()
{
pdBackend_ = (PdBackend) target;
}
public override void OnInspectorGUI ()
{
serializedObject.Update();
pdBackend_ = (PdBackend) target;
midiMessageReceivedProperty_ = serializedObject.FindProperty("midiMessageReceived");
EditorGUILayout.PropertyField(midiMessageReceivedProperty_);
midiClockReceivedProperty_ = serializedObject.FindProperty("midiClockReceived");
EditorGUILayout.PropertyField(midiClockReceivedProperty_);
if (Application.isPlaying)
{
RenderSamplePlayback();
Repaint();
}
serializedObject.ApplyModifiedProperties();
}
private void RenderSamplePlayback()
{
GUILayout.Space(5);
pdBackend_.samplePlayback = EditorGUILayout.Popup("Sample File to play", pdBackend_.samplePlayback, samples_);
}
}
}