-- SPDX-License-Identifier: GPL-3.0-or-later -- SPDX-FileCopyrightText: Copyright 2024 Stephen Merrony with Ada.Containers.Vectors; with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with TOML; use TOML; with Track; use Track; package Session is package Track_Vectors is new Ada.Containers.Vectors ( Index_Type => Positive, Element_Type => Track_T ); type Session_T is record Desc, Comment : Unbounded_String; MIDI_Port : Unbounded_String; Updated : TOML.Any_Local_Datetime; Tracks : Track_Vectors.Vector; Lead_In_Silence : Natural; Font_Size : Unbounded_String; Filename : Unbounded_String; -- Not stored in TOML end record; Sess : Session_T; -- TOML exceptions Already_Exists, Could_Not_Parse, Duplicate_Configuration, Incomplete_Configuration, Unknown_Configuration_Item : exception; procedure Load_Session (Filename : String); procedure Save_Session (Filename : String); procedure Clear_Session; procedure Set_Dirty; procedure Set_Clean; function Is_Dirty return Boolean; private Dirty_Flag : Boolean := False; end Session;