From 6ca4d7a6b6c896cfcba0b3dfe02bf135b5c8ead7 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Fri, 17 Oct 2025 18:01:11 -0400 Subject: pke-at: first-pass parse planning center json --- src/pke-at-data-interface-types.hpp | 68 +++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/pke-at-data-interface-types.hpp (limited to 'src/pke-at-data-interface-types.hpp') diff --git a/src/pke-at-data-interface-types.hpp b/src/pke-at-data-interface-types.hpp new file mode 100644 index 0000000..e83af26 --- /dev/null +++ b/src/pke-at-data-interface-types.hpp @@ -0,0 +1,68 @@ +#ifndef PKE_AT_PKE_AT_DATA_INTERFACE_TYPES_HPP +#define PKE_AT_PKE_AT_DATA_INTERFACE_TYPES_HPP + +#include "pke-at-setlist-types.hpp" +#include + +union di_data_id { + long id_long; +}; + +struct di_service_type_details { + di_data_id id; + pk_cstr name; +}; +struct di_service_type { + di_service_type_details details{}; +}; + +struct di_plan_details { + di_data_id id; + time_t date; + pk_cstr title; + pk_cstr series_title; +}; +struct di_plan { + di_plan_details details{}; +}; + +struct di_song_details { + di_data_id id; + pk_cstr title; + long ccli; +}; +struct di_song { + di_song_details details{}; +}; +struct di_arrangement_details { + di_data_id id; + pk_cstr title; + pk_arr_t sequence; + uint8_t beats_per_minute; + uint8_t beats_per_bar; + PKE_AT_KEY_INDEX chord_chart_key; +}; +struct di_arrangement { + di_arrangement_details details{}; +}; +struct di_arrangement_key_details { + di_data_id id; + PKE_AT_KEY_INDEX key; +}; +struct di_arrangement_key { + di_arrangement_key_details details{}; +}; + +struct di_plan_item_details { + di_data_id id; + PKE_AT_KEY_INDEX key; + uint8_t sequence; +}; +struct di_plan_item { + di_plan_item_details details{}; + di_song song{}; + di_arrangement arrangement{}; + di_arrangement_key key{}; +}; + +#endif /* PKE_AT_PKE_AT_DATA_INTERFACE_TYPES_HPP */ -- cgit v1.2.3