Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
ui_model.h
Aller à la documentation de ce fichier.
1
20#ifndef BRICK_UI_UI_MODEL_H
21#define BRICK_UI_UI_MODEL_H
22
23#include <stdint.h>
24#include <stdbool.h>
25#include "ui_spec.h" /* UI_MENUS_PER_CART, UI_PAGES_PER_MENU, UI_PARAMS_PER_PAGE */
26
27/* ============================================================
28 * Dimensions du modèle (alias, sans redéfinir la spec)
29 * ============================================================ */
30#define UI_MODEL_MAX_MENUS (UI_MENUS_PER_CART)
31#define UI_MODEL_MAX_PAGES (UI_PAGES_PER_MENU)
32#define UI_MODEL_PARAMS_PER_PAGE (UI_PARAMS_PER_PAGE)
33
34/* ============================================================
35 * Structures de données (modèle UI)
36 * ============================================================ */
37
48typedef struct {
49 int16_t value;
51
60
69
78
91typedef struct {
94 uint8_t cur_menu;
95 uint8_t cur_page;
96 bool shift;
98
99/* ============================================================
100 * API modèle
101 * ============================================================ */
102
109void ui_state_init(ui_state_t *st, const ui_cart_spec_t *spec);
110
116void ui_model_switch_cart(const ui_cart_spec_t *spec);
117
123
129void ui_model_init(const ui_cart_spec_t* initial_spec);
130
136const char *ui_model_get_active_overlay_tag(void);
137
143void ui_model_set_active_overlay_tag(const char *tag);
144
150
156
157#endif /* BRICK_UI_UI_MODEL_H */
Spécification UI complète d’une cartouche.
Definition ui_spec.h:200
État complet d’une cartouche UI (ensemble de menus).
Definition ui_model.h:75
État d’un menu UI (ensemble de pages).
Definition ui_model.h:66
État d’une page (ensemble de paramètres).
Definition ui_model.h:57
État courant d’un paramètre UI.
Definition ui_model.h:48
int16_t value
Definition ui_model.h:49
État global de l’UI.
Definition ui_model.h:91
bool shift
Definition ui_model.h:96
uint8_t cur_page
Definition ui_model.h:95
uint8_t cur_menu
Definition ui_model.h:94
ui_cart_state_t vals
Definition ui_model.h:93
const ui_cart_spec_t * spec
Definition ui_model.h:92
void ui_model_init(const ui_cart_spec_t *initial_spec)
Initialise le modèle global (état + cartouche initiale).
Definition ui_model_stub.c:35
void ui_state_init(ui_state_t *st, const ui_cart_spec_t *spec)
Initialise un état UI à partir d’une spec.
Definition ui_model.c:37
void ui_model_switch_cart(const ui_cart_spec_t *spec)
Bascule sur une nouvelle cartouche UI (réinitialise l’état).
Definition ui_model_stub.c:40
void ui_model_restore_last_cart(void)
Restaure la dernière cartouche UI active (pile 1 niveau).
Definition ui_model_stub.c:45
#define UI_MODEL_MAX_PAGES
Definition ui_model.h:31
const ui_cart_spec_t * ui_model_get_active_spec(void)
Retourne la spec UI actuellement active.
Definition ui_model_stub.c:56
ui_state_t * ui_model_get_state(void)
Retourne un pointeur vers l’état UI global (mutable).
Definition ui_model_stub.c:50
#define UI_MODEL_MAX_MENUS
Definition ui_model.h:30
#define UI_MODEL_PARAMS_PER_PAGE
Definition ui_model.h:32
const char * ui_model_get_active_overlay_tag(void)
Récupère le tag du mode custom actif (SEQ, ARP…).
Definition ui_model_stub.c:61
void ui_model_set_active_overlay_tag(const char *tag)
Définit le tag texte du mode custom actif.
Definition ui_model_stub.c:66
Spécifications UI des cartouches Brick (menus/pages/paramètres + cycles BM).