Source code for jdxi_editor.ui.editors.config

"""
Configuration of Editor classes for the JDXI Editor.

Stores
-Title: The title of the editor.
-Editor Class: The class that implements the editor functionality.
-Synth Type: Optional type of synthesizer associated with the editor.
-MIDI Channel: Optional MIDI channel for the editor.
-icon: Icon for the editor, represented as a string.
-Keyword Arguments: Additional parameters for the editor.


Example usage:
"arpeggio": EditorConfig(
    title="Arpeggiator",
    editor_class=ArpeggioEditor,
    icon="ph.music-notes-simple-bold"
),
"""

from dataclasses import dataclass, field
from typing import Any, Dict, Optional

from jdxi_editor.ui.editors.synth.base import SynthBase


@dataclass
[docs] class EditorConfig: """Configuration for a synth editor."""
[docs] title: str
[docs] editor_class: SynthBase
[docs] synth_type: Optional[Any] = None
[docs] midi_channel: Optional[Any] = None
[docs] kwargs: Dict[str, Any] = field(default_factory=dict)
[docs] icon: str = ""