Brick Groove Machine
0.9.3
Firmware embarqué pour contrôleur/synthé Brick
Chargement...
Recherche...
Aucune correspondance
ui_spec.h
Aller à la documentation de ce fichier.
1
23
#ifndef BRICK_UI_UI_SPEC_H
24
#define BRICK_UI_UI_SPEC_H
25
26
#include <stdint.h>
27
#include <stdbool.h>
28
#include "
ui_types.h
"
30
/* -------------------------------------------------------------------------- */
31
/* Capacités par défaut (modifiable au besoin) */
32
/* -------------------------------------------------------------------------- */
33
38
#ifndef UI_PARAMS_PER_PAGE
39
#define UI_PARAMS_PER_PAGE 4
40
#endif
41
46
#ifndef UI_PAGES_PER_MENU
47
#define UI_PAGES_PER_MENU 5
48
#endif
49
54
#ifndef UI_MENUS_PER_CART
55
#define UI_MENUS_PER_CART 16
56
#endif
57
62
#ifndef UI_CYCLE_MAX_OPTS
63
#define UI_CYCLE_MAX_OPTS 4
64
#endif
65
66
/* -------------------------------------------------------------------------- */
67
/* Méta-données de paramètres */
68
/* -------------------------------------------------------------------------- */
69
77
typedef
struct
ui_param_range_t
{
78
int16_t
min
;
79
int16_t
max
;
80
uint8_t
step
;
81
}
ui_param_range_t
;
82
90
typedef
struct
ui_param_enum_t
{
91
const
char
*
const
*
labels
;
92
int
count
;
93
}
ui_param_enum_t
;
94
98
typedef
union
ui_param_meta_t
{
99
ui_param_range_t
range
;
100
ui_param_enum_t
en
;
101
}
ui_param_meta_t
;
102
103
/* -------------------------------------------------------------------------- */
104
/* Paramètre UI */
105
/* -------------------------------------------------------------------------- */
106
118
typedef
struct
ui_param_spec_t
{
119
const
char
*
label
;
120
ui_param_kind_t
kind
;
121
uint16_t
dest_id
;
122
uint8_t
default_value
;
123
ui_param_meta_t
meta
;
124
bool
is_bitwise
;
125
uint8_t
bit_mask
;
126
}
ui_param_spec_t
;
127
128
/* -------------------------------------------------------------------------- */
129
/* Page UI */
130
/* -------------------------------------------------------------------------- */
131
139
typedef
struct
ui_page_spec_t
{
140
ui_param_spec_t
params
[
UI_PARAMS_PER_PAGE
];
141
const
char
*
header_label
;
142
}
ui_page_spec_t
;
143
144
/* -------------------------------------------------------------------------- */
145
/* Menu UI */
146
/* -------------------------------------------------------------------------- */
147
156
typedef
struct
ui_menu_spec_t
{
157
const
char
*
name
;
158
const
char
*
page_titles
[
UI_PAGES_PER_MENU
];
159
ui_page_spec_t
pages
[
UI_PAGES_PER_MENU
];
160
}
ui_menu_spec_t
;
161
162
/* -------------------------------------------------------------------------- */
163
/* Définition déclarative des cycles BM */
164
/* -------------------------------------------------------------------------- */
165
179
typedef
struct
ui_cycle_idx_spec_t
{
180
uint8_t
count
;
181
uint8_t
idxs
[
UI_CYCLE_MAX_OPTS
];
182
bool
resume
;
183
}
ui_cycle_idx_spec_t
;
184
185
/* -------------------------------------------------------------------------- */
186
/* Spécification UI de cartouche */
187
/* -------------------------------------------------------------------------- */
188
200
typedef
struct
ui_cart_spec_t
{
201
const
char
*
cart_name
;
202
const
char
*
overlay_tag
;
203
ui_menu_spec_t
menus
[
UI_MENUS_PER_CART
];
204
ui_cycle_idx_spec_t
cycles
[8];
205
}
ui_cart_spec_t
;
206
207
#endif
/* BRICK_UI_UI_SPEC_H */
ui_param_kind_t
ui_param_kind_t
Genre logique d’un paramètre UI.
Definition
ui_types.h:21
ui_cart_spec_t
Spécification UI complète d’une cartouche.
Definition
ui_spec.h:200
ui_cart_spec_t::cycles
ui_cycle_idx_spec_t cycles[8]
Definition
ui_spec.h:204
ui_cart_spec_t::cart_name
const char * cart_name
Definition
ui_spec.h:201
ui_cart_spec_t::menus
ui_menu_spec_t menus[UI_MENUS_PER_CART]
Definition
ui_spec.h:203
ui_cart_spec_t::overlay_tag
const char * overlay_tag
Definition
ui_spec.h:202
ui_cycle_idx_spec_t
Décrit un cycle pour un bouton menu (BMx) via des indices de menus.
Definition
ui_spec.h:179
ui_cycle_idx_spec_t::count
uint8_t count
Definition
ui_spec.h:180
ui_cycle_idx_spec_t::resume
bool resume
Definition
ui_spec.h:182
ui_cycle_idx_spec_t::idxs
uint8_t idxs[UI_CYCLE_MAX_OPTS]
Definition
ui_spec.h:181
ui_menu_spec_t
Spécification d’un menu UI (ensemble de pages).
Definition
ui_spec.h:156
ui_menu_spec_t::page_titles
const char * page_titles[UI_PAGES_PER_MENU]
Definition
ui_spec.h:158
ui_menu_spec_t::pages
ui_page_spec_t pages[UI_PAGES_PER_MENU]
Definition
ui_spec.h:159
ui_menu_spec_t::name
const char * name
Definition
ui_spec.h:157
ui_page_spec_t
Spécification d’une page UI (groupe de paramètres).
Definition
ui_spec.h:139
ui_page_spec_t::header_label
const char * header_label
Definition
ui_spec.h:141
ui_page_spec_t::params
ui_param_spec_t params[UI_PARAMS_PER_PAGE]
Definition
ui_spec.h:140
ui_param_enum_t
Métadonnées d’un paramètre énuméré (ENUM).
Definition
ui_spec.h:90
ui_param_enum_t::count
int count
Definition
ui_spec.h:92
ui_param_enum_t::labels
const char *const * labels
Definition
ui_spec.h:91
ui_param_range_t
Plage d’un paramètre continu (CONT).
Definition
ui_spec.h:77
ui_param_range_t::min
int16_t min
Definition
ui_spec.h:78
ui_param_range_t::step
uint8_t step
Definition
ui_spec.h:80
ui_param_range_t::max
int16_t max
Definition
ui_spec.h:79
ui_param_spec_t
Spécification d’un paramètre UI.
Definition
ui_spec.h:118
ui_param_spec_t::label
const char * label
Definition
ui_spec.h:119
ui_param_spec_t::meta
ui_param_meta_t meta
Definition
ui_spec.h:123
ui_param_spec_t::kind
ui_param_kind_t kind
Definition
ui_spec.h:120
ui_param_spec_t::dest_id
uint16_t dest_id
Definition
ui_spec.h:121
ui_param_spec_t::bit_mask
uint8_t bit_mask
Definition
ui_spec.h:125
ui_param_spec_t::is_bitwise
bool is_bitwise
Definition
ui_spec.h:124
ui_param_spec_t::default_value
uint8_t default_value
Definition
ui_spec.h:122
UI_CYCLE_MAX_OPTS
#define UI_CYCLE_MAX_OPTS
Nombre maximal d’options cyclables par bouton BM (par défaut 4).
Definition
ui_spec.h:63
UI_PARAMS_PER_PAGE
#define UI_PARAMS_PER_PAGE
Nombre de paramètres par page UI (par défaut 4).
Definition
ui_spec.h:39
UI_PAGES_PER_MENU
#define UI_PAGES_PER_MENU
Nombre de pages par menu UI (par défaut 5).
Definition
ui_spec.h:47
UI_MENUS_PER_CART
#define UI_MENUS_PER_CART
Nombre maximal de menus exposés par une cartouche (par défaut 16).
Definition
ui_spec.h:55
ui_types.h
Types communs de la couche UI Brick (kinds, widgets).
ui_param_meta_t
Union des métadonnées de paramètre (continu ou énuméré).
Definition
ui_spec.h:98
ui_param_meta_t::range
ui_param_range_t range
Definition
ui_spec.h:99
ui_param_meta_t::en
ui_param_enum_t en
Definition
ui_spec.h:100
ui
ui_spec.h
Généré par
1.9.8