Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier ui_renderer.c

Rendu graphique principal de l’interface Brick sur OLED. Plus de détails...

#include "ui_renderer.h"
#include "drv_display.h"
#include "font.h"
#include "ui_widgets.h"
#include "ui_types.h"
#include "ui_backend.h"
#include "ui_overlay.h"
#include "seq_led_bridge.h"
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

Macros

#define MENU_FRAME_X   32 /* position X du cadre titre */
 
#define MENU_FRAME_Y   0 /* position Y du cadre titre */
 
#define MENU_FRAME_W   70 /* largeur du cadre titre */
 
#define MENU_FRAME_H   12 /* hauteur du cadre titre */
 

Fonctions

const ui_state_tui_get_state (void)
 
const ui_cart_spec_tui_get_cart (void)
 
const ui_menu_spec_tui_resolve_menu (uint8_t bm_index)
 
void ui_draw_frame (const ui_cart_spec_t *cart, const ui_state_t *st)
 Rendu complet d’une frame à partir d’une cart et d’un état.
 
void ui_render (void)
 Appelle ui_draw_frame() avec la cartouche et l’état actuels.
 

Description détaillée

Rendu graphique principal de l’interface Brick sur OLED.

Convertit l’état logique de l’UI (ui_state_t) en pixels :

  • Bandeau haut (cartouche + label de mode custom actif accolé à droite, titre/menu tel que défini actuellement, tempo, note, etc.)
  • 4 cadres param (un par encodeur)
  • Bandeau bas (pages)

Invariants & architecture :

  • Aucune logique d’état/entrée — uniquement du rendu.
  • Ne modifie jamais le modèle (ui_state_t).
  • Le label du mode custom actif est fourni par ui_backend_get_mode_label() (ex. "SEQ", "ARP", "KEY+1"). Les overlays peuvent temporairement écraser ce label via le backend.
  • Accès à l’état/cart via fonctions d’accès (forward-declarées).
  • Rendu des widgets via ui_widgets (switch, icônes par TEXTE, knob).

Hiérarchie (respectée) : ui_renderer → ui_widgets → ui_icons → drv_display

Documentation des macros

◆ MENU_FRAME_H

#define MENU_FRAME_H   12 /* hauteur du cadre titre */

◆ MENU_FRAME_W

#define MENU_FRAME_W   70 /* largeur du cadre titre */

◆ MENU_FRAME_X

#define MENU_FRAME_X   32 /* position X du cadre titre */

◆ MENU_FRAME_Y

#define MENU_FRAME_Y   0 /* position Y du cadre titre */

Documentation des fonctions

◆ ui_draw_frame()

void ui_draw_frame ( const ui_cart_spec_t cart,
const ui_state_t st 
)

Rendu complet d’une frame à partir d’une cart et d’un état.

Paramètres
cartSpécification immuable de la cartouche.
stÉtat courant UI (indices de menu/page et valeurs).

◆ ui_get_cart()

const ui_cart_spec_t * ui_get_cart ( void  )

◆ ui_get_state()

const ui_state_t * ui_get_state ( void  )

◆ ui_render()

void ui_render ( void  )

Appelle ui_draw_frame() avec la cartouche et l’état actuels.

Rendu simplifié : appelle ui_draw_frame() avec l’état global.

◆ ui_resolve_menu()

const ui_menu_spec_t * ui_resolve_menu ( uint8_t  bm_index)