Example #1
0
    private void DrawTransitionPreset(EliasSetLevel setLevel)
    {
        int id = transitionPresets.IndexOf(setLevel.transitionPresetName);

        id = Mathf.Clamp(id, 0, transitionPresets.Count - 1);
        id = EditorGUILayout.Popup("Transition Preset", id, transitionPresets.ToArray());
        setLevel.transitionPresetName = transitionPresets[id];
    }
Example #2
0
    private void DrawStinger(EliasSetLevel setLevel)
    {
        int id = stingers.IndexOf(setLevel.stingerName);

        id = Mathf.Clamp(id, 0, stingers.Count - 1);
        id = EditorGUILayout.Popup("Stinger", id, stingers.ToArray());
        setLevel.stingerName = stingers[id];
    }
Example #3
0
    private void DrawTrackGroupName(EliasSetLevel setLevel)
    {
        int id = trackGroups.IndexOf(setLevel.trackGroupName);

        id = Mathf.Clamp(id, 0, trackGroups.Count - 1);
        id = EditorGUILayout.Popup("Track Group", id, trackGroups.ToArray());
        setLevel.trackGroupName = trackGroups[id];
    }
Example #4
0
    private void DrawThemeName(EliasSetLevel setLevel)
    {
        int id = themes.IndexOf(setLevel.themeName);

        id = Mathf.Clamp(id, 0, themes.Count - 1);
        id = EditorGUILayout.Popup("Theme", id, themes.ToArray());
        setLevel.themeName = themes[id];
    }
Example #5
0
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     GUIContent[] framesPerBufferDisplayStrings = { new GUIContent("1024"), new GUIContent("2048"), new GUIContent("4096"), new GUIContent("8192") };
     int[]        framesPerBufferOptions        = { 1024, 2048, 4096, 8192 };
     player = (EliasPlayer)target;
     player.eliasFramesPerBuffer = EditorGUILayout.IntPopup(new GUIContent("Frames per buffer", "A higher value will generally save performance by doing less disk reads, in exchange for a (slightly) increased latency"), player.eliasFramesPerBuffer, framesPerBufferDisplayStrings, framesPerBufferOptions);
     EditorGUILayout.HelpBox("Note that the sample rate of the Unity project must match the ELIAS Theme.", MessageType.Warning);
     LoadProjects();
     DrawProjectSelector();
     InitializeElias();
     DrawActionPresets();
     player.file = GetSelectedProjectPath();
     if (player.actionPreset == -1)
     {
         transitionPresets = elias.GetTransitionPresets();
         themes            = elias.GetThemes().ToArray();
         EliasSetLevel setLevel = player.customPreset;
         if (setLevel == null)
         {
             setLevel            = new EliasSetLevel();
             player.customPreset = setLevel;
         }
         setLevel.preWaitTimeMs = Mathf.Clamp(EditorGUILayout.IntField("Wait Time (ms)", setLevel.preWaitTimeMs), 0, int.MaxValue);
         DrawTransitionPreset(setLevel);
         DrawThemeName(setLevel);
         stingers           = empty.Concat(elias.GetStingers(setLevel.themeName)).ToList();
         trackGroups        = empty.Concat(elias.GetTracksGroups()).ToList();
         setLevel.jumpToBar = (ushort)Mathf.Clamp(EditorGUILayout.IntField("Jump To Bar", setLevel.jumpToBar), 0, (int)elias.GetBasicInfo(setLevel.themeName).bars);
         DrawTrackGroupName(setLevel);
         setLevel.level = Mathf.Clamp(EditorGUILayout.IntField("Level", setLevel.level), 0, elias.GetGreatestLevelInTheme(setLevel.themeName));
         setLevel.suggestedMaxTimeMs = EditorGUILayout.IntField("Suggested Max Time", setLevel.suggestedMaxTimeMs);
         DrawStinger(setLevel);
     }
     else
     {
         player.customPreset = null;
     }
 }
Example #6
0
    public override void OnInspectorGUI()
    {
        EditorGUILayout.HelpBox("If Elias uses 4 or more channels (quad), please set channel count to 0, allowing the Elias Engine to match Unity's Channel count internally.", MessageType.Info);

        DrawDefaultInspector();

        EditorGUILayout.Space();

        GUIContent[] framesPerBufferDisplayStrings = { new GUIContent("1024"), new GUIContent("2048"), new GUIContent("4096"), new GUIContent("8192") };
        int[]        framesPerBufferOptions        = { 1024, 2048, 4096, 8192 };
        player = (EliasPlayer)target;
        player.eliasFramesPerBuffer = EditorGUILayout.IntPopup(new GUIContent("Frames per buffer", "A higher value will generally save performance by doing less disk reads, in exchange for a (slightly) increased latency"), player.eliasFramesPerBuffer, framesPerBufferDisplayStrings, framesPerBufferOptions);

        EditorGUILayout.Space();

        player.eliasCachePageCount = Math.Max(4, EditorGUILayout.IntField(new GUIContent("Cache page count", "This determines the number of pages in the cache, min 4. For memory limited targets 128 is recommended."), player.eliasCachePageCount));

        GUIContent[] bytesPerPageDisplayStrings = { new GUIContent("256"), new GUIContent("512"), new GUIContent("1024"), new GUIContent("2048"), new GUIContent("4096"), new GUIContent("8192"), new GUIContent("16384"), new GUIContent("32768") };
        int[]        bytesPerPageOptions        = { 256, 512, 1024, 2048, 4096, 8192, 16384, 32768 };
        player.eliasCachePageSize = EditorGUILayout.IntPopup(new GUIContent("Bytes per cache page", "This determines the size of each cache page. Min 256, 4096 is recommended."), player.eliasCachePageSize, bytesPerPageDisplayStrings, bytesPerPageOptions);
        EditorGUILayout.LabelField("Memory used for cache: " + ((player.eliasCachePageCount * player.eliasCachePageSize) / 1024) + "kb");

        EditorGUILayout.Space();

        GUIContent[] avalibleSampleRateStrings = { new GUIContent("Match Unity Project Settings (Not recomended!)"), new GUIContent("16000"), new GUIContent("22050"), new GUIContent("24000"), new GUIContent("32000"), new GUIContent("44100"), new GUIContent("48000") };
        int[]        avalibleSampleRates       = { -1, 16000, 22050, 24000, 32000, 44100, 48000 };
        player.eliasSampleRate = EditorGUILayout.IntPopup(new GUIContent("Sample Rate", "The sample rate of the files used in the Elias Project (.mepro)"), player.eliasSampleRate, avalibleSampleRateStrings, avalibleSampleRates);

        EditorGUILayout.Space();

        LoadProjects();
        DrawProjectSelector();
        InitializeElias();

        EditorGUILayout.Space();

        DrawActionPresets();
        player.file = GetSelectedProjectPath();

        EditorGUILayout.Space();

        if (player.actionPreset == -1)
        {
            transitionPresets = elias.GetTransitionPresets();
            themes            = elias.GetThemes().ToArray();
            EliasSetLevel setLevel = player.customPreset;
            if (setLevel == null)
            {
                setLevel            = new EliasSetLevel();
                player.customPreset = setLevel;
            }
            setLevel.preWaitTimeMs = Mathf.Clamp(EditorGUILayout.IntField("Wait Time (ms)", setLevel.preWaitTimeMs), 0, int.MaxValue);
            DrawTransitionPreset(setLevel);
            DrawThemeName(setLevel);
            stingers           = empty.Concat(elias.GetStingers(setLevel.themeName)).ToList();
            trackGroups        = empty.Concat(elias.GetTracksGroups()).ToList();
            setLevel.jumpToBar = (ushort)Mathf.Clamp(EditorGUILayout.IntField("Jump To Bar", setLevel.jumpToBar), 0, (int)elias.GetBasicInfo(setLevel.themeName).bars);
            DrawTrackGroupName(setLevel);
            setLevel.level = Mathf.Clamp(EditorGUILayout.IntField("Level", setLevel.level), 0, elias.GetGreatestLevelInTheme(setLevel.themeName));
            setLevel.suggestedMaxTimeMs = EditorGUILayout.IntField("Suggested Max Time", setLevel.suggestedMaxTimeMs);
            DrawStinger(setLevel);
        }
        else
        {
            player.customPreset = null;
        }
    }