summaryrefslogtreecommitdiff
path: root/src/pke-at-data-interface-types.hpp
blob: e83af26b0860ecd8ac8764f72fc71ac7c9f210da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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 <pke/pk.h>

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<PKE_AT_SECTION_TYPE_INDEX> 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 */