summaryrefslogtreecommitdiff
path: root/src/pke-at-setlist-types.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pke-at-setlist-types.hpp')
-rw-r--r--src/pke-at-setlist-types.hpp64
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 */