Kaba class Song ed

...

Syntax ed

class Song extends Object
    var bars: BarCollection
    var filename: Path
    var sample_rate: i32
    var samples: shared![Sample][]
    var secret_data: any
    var tags: Tag[]
    var tracks: shared![Track][]
    var volume: f32

    # constructors
    func mut __init__(session: Session, sample_rate: i32)

    # functions
    func mut add_bar(index: i32, b: Bar, mode: EditMode)
    func mut add_pause(index: i32, length: i32, mode: EditMode)
    func mut add_sample(s: Sample)
    func mut add_track(type: SignalType, index: i32) -> shared![Track]
    func mut begin_action_group(name: string)
    func mut delete_bar(index: i32, affect_midi: bool)
    func mut delete_sample(s: Sample)
    func mut delete_track(index: i32)
    func mut edit_bar(index: i32, b: Bar, mode: EditMode)
    func mut end_action_group()
    func get_time_str(t: i32) -> string
    func get_time_str_fuzzy(t: i32, dt: f32) -> string
    func get_time_str_long(t: i32) -> string
    func selfref layers() -> TrackLayer&[]
    func range() -> Range
    func mut redo() -> bool
    func mut reset_history()
    func selfref time_track() -> Track*
    func mut undo() -> bool

Functions ed

func mut add_bar(index: i32, b: Bar, mode: EditMode)
...

func mut add_pause(index: i32, length: i32, mode: EditMode)
...

func mut add_sample(s: Sample)
...

func mut add_track(type: SignalType, index: i32) -> shared![Track]
...

func mut begin_action_group(name: string)
...

func mut delete_bar(index: i32, affect_midi: bool)
...

func mut delete_sample(s: Sample)
...

func mut delete_track(index: i32)
...

func mut edit_bar(index: i32, b: Bar, mode: EditMode)
...

func mut end_action_group()
...

func get_time_str(t: i32) -> string
...

func get_time_str_fuzzy(t: i32, dt: f32) -> string
...

func get_time_str_long(t: i32) -> string
...

func selfref layers() -> TrackLayer&[]
...

func range() -> Range
...

func mut redo() -> bool
...

func mut reset_history()
...

func selfref time_track() -> Track*
...

func mut undo() -> bool
...

Elements ed

var bars: BarCollection
...

var filename: Path
...

var sample_rate: i32
...

var samples: shared![Sample][]
...

var secret_data: any
...

var tags: Tag[]
...

var tracks: shared![Track][]
...

var volume: f32
...