From 62dae6011db94dd52c3ac0fce517c6e9cc0abcf6 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Fri, 10 Oct 2025 17:07:45 -0400 Subject: pke-at: first-pass storage interface --- src/pke-at-setlist-types.hpp | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/pke-at-setlist-types.hpp (limited to 'src/pke-at-setlist-types.hpp') diff --git a/src/pke-at-setlist-types.hpp b/src/pke-at-setlist-types.hpp new file mode 100644 index 0000000..bea7b18 --- /dev/null +++ b/src/pke-at-setlist-types.hpp @@ -0,0 +1,64 @@ +#ifndef PKE_AT_PKE_AT_SETLIST_TYPES_HPP +#define PKE_AT_PKE_AT_SETLIST_TYPES_HPP + +#include + +enum PKE_AT_SECTION_TYPE_INDEX { + PKE_AT_SECTION_TYPE_INDEX_NONE, + PKE_AT_SECTION_TYPE_INDEX_VERSE, + PKE_AT_SECTION_TYPE_INDEX_CHORUS, + PKE_AT_SECTION_TYPE_INDEX_BRIDGE, + PKE_AT_SECTION_TYPE_INDEX_INTRO, + PKE_AT_SECTION_TYPE_INDEX_OUTRO, + PKE_AT_SECTION_TYPE_INDEX_INSTRUMENTAL, + PKE_AT_SECTION_TYPE_INDEX_INTERLUDE, + PKE_AT_SECTION_TYPE_INDEX_COUNT, +}; + +struct pke_at_section_type { + enum PKE_AT_SECTION_TYPE_INDEX section_type_index = PKE_AT_SECTION_TYPE_INDEX_NONE; + AssetKey title_key; + AssetHandle title_handle = AssetHandle_MAX; +}; + +struct pke_at_section_details { + pk_uuid song_uuid; + enum PKE_AT_SECTION_TYPE_INDEX section_type_index = PKE_AT_SECTION_TYPE_INDEX_NONE; + uint8_t sequence; + uint8_t beats_per_bar = 0; + uint8_t bar_count = 0; +}; +struct pke_at_section { + pke_at_section_details details{}; +}; + +struct pke_at_song_details { + pk_uuid uuid; + long ccli; + pk_cstr title; + pk_cstr arrangement; + uint8_t bpm; +}; +struct pke_at_song { + struct pke_at_song_details details{}; + float calculated_delta = 0.f; + pk_arr_t sections; +}; + +struct pke_at_setlist_details { + pk_cstr title; +}; +struct pke_at_setlist { + struct pke_at_setlist_details details{}; + pk_arr_t tracks; +}; + +struct pke_at_setlist_song_details { + pk_uuid setlist_uuid; + pk_uuid song_uuid; +}; +struct pke_at_setlist_song { + struct pke_at_setlist_song_details details{}; +}; + +#endif /* PKE_AT_PKE_AT_SETLIST_TYPES_HPP */ -- cgit v1.2.3