Backend LED adressable (SEQ/MUTE/KEYBOARD) — rendu unifié et atomique.
Plus de détails...
#include <string.h>
#include "ch.h"
#include "brick_config.h"
#include "chsys.h"
#include "ui_led_backend.h"
#include "ui_led_palette.h"
#include "drv_leds_addr.h"
#include "ui_led_seq.h"
Backend LED adressable (SEQ/MUTE/KEYBOARD) — rendu unifié et atomique.
- Le backend ne manipule pas le buffer physique directement.
- Il remplit uniquement
drv_leds_addr_state[]
via drv_leds_addr_set(...)
.
- Le seul endroit qui convertit
state[]
→ led_buffer[]
+ envoi est drv_leds_addr_render()
, appelé une fois à la fin de ui_led_backend_refresh()
.
- Le playhead SEQ reçoit l’index absolu via
ui_led_seq_on_clock_tick()
.
- MUTE : pas de chenillard (aucun pulse de tick).
◆ NUM_STEPS
◆ ui_led_backend_init()
void ui_led_backend_init |
( |
void |
| ) |
|
Init du backend (driver + état visuel).
◆ ui_led_backend_post_event()
void ui_led_backend_post_event |
( |
ui_led_event_t |
event, |
|
|
uint8_t |
index, |
|
|
bool |
state |
|
) |
| |
File un évènement LED dans la queue non bloquante (contexte thread).
- Paramètres
-
event | Type d’événement (MUTE/PMUTE/CLK/…) |
index | Index associé (ex: step 0..15 pour CLOCK_TICK) |
state | Booléen associé si pertinent |
◆ ui_led_backend_post_event_i()
void ui_led_backend_post_event_i |
( |
ui_led_event_t |
event, |
|
|
uint8_t |
index, |
|
|
bool |
state |
|
) |
| |
Variante ISR de ui_led_backend_post_event (ne bloque jamais).
- Paramètres
-
event | Type d’événement |
index | Index associé |
state | Booléen associé si pertinent |
◆ ui_led_backend_refresh()
void ui_led_backend_refresh |
( |
void |
| ) |
|
◆ ui_led_backend_set_cart_track_count()
void ui_led_backend_set_cart_track_count |
( |
uint8_t |
cart_idx, |
|
|
uint8_t |
tracks |
|
) |
| |
Pour MUTE : nombre de pistes par cart (0..4).
◆ ui_led_backend_set_keyboard_omnichord()
void ui_led_backend_set_keyboard_omnichord |
( |
bool |
enabled | ) |
|
Active/valide le layout Omnichord (Keyboard).
◆ ui_led_backend_set_mode()
Sélection du mode visuel courant.
◆ ui_led_backend_set_record_mode()
void ui_led_backend_set_record_mode |
( |
bool |
active | ) |
|
LED REC globale (OFF/ON).
◆ ui_led_backend_set_track_focus()
void ui_led_backend_set_track_focus |
( |
uint8_t |
track_index | ) |
|
Fixe la piste actuellement focalisée (Track Select).
◆ ui_led_backend_set_track_present()
void ui_led_backend_set_track_present |
( |
uint8_t |
track_index, |
|
|
bool |
present |
|
) |
| |
Indique si une piste est disponible pour l’affichage Track Select.