diff options
Diffstat (limited to 'src/pke-at-setlist-types.hpp')
| -rw-r--r-- | src/pke-at-setlist-types.hpp | 64 |
1 files changed, 64 insertions, 0 deletions
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 <pke/pke.hpp> + +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<pke_at_section> sections; +}; + +struct pke_at_setlist_details { + pk_cstr title; +}; +struct pke_at_setlist { + struct pke_at_setlist_details details{}; + pk_arr_t<pke_at_song> 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 */ |
