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

Backend unifié de gestion des LEDs adressables (SK6812/WS2812) — Phase 6 (+ SEQ renderer). Plus de détails...

#include <stdint.h>
#include <stdbool.h>
#include "drv_leds_addr.h"

Aller au code source de ce fichier.

Macros

#define UI_LED_BACKEND_QUEUE_CAPACITY   64U
 

Énumérations

enum  ui_led_event_t {
  UI_LED_EVENT_STEP_STATE = 0 , UI_LED_EVENT_MUTE_STATE , UI_LED_EVENT_PMUTE_STATE , UI_LED_EVENT_CLOCK_TICK ,
  UI_LED_EVENT_PARAM_SELECT
}
 
enum  ui_led_mode_t {
  UI_LED_MODE_NONE = 0 , UI_LED_MODE_MUTE , UI_LED_MODE_SEQ , UI_LED_MODE_ARP ,
  UI_LED_MODE_KEYBOARD , UI_LED_MODE_TRACK , UI_LED_MODE_RANDOM , UI_LED_MODE_CUSTOM
}
 

Fonctions

void ui_led_backend_init (void)
 Init du backend (driver + état visuel).
 
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).
 
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).
 
void ui_led_backend_refresh (void)
 Rendu par mode (à appeler périodiquement avant drv_leds_addr_render()).
 
void ui_led_backend_set_record_mode (bool active)
 LED REC globale (OFF/ON).
 
void ui_led_backend_set_mode (ui_led_mode_t mode)
 Sélection du mode visuel courant.
 
void ui_led_backend_set_cart_track_count (uint8_t cart_idx, uint8_t tracks)
 Pour MUTE : nombre de pistes par cart (0..4).
 
void ui_led_backend_set_track_focus (uint8_t track_index)
 Fixe la piste actuellement focalisée (Track Select).
 
void ui_led_backend_set_track_present (uint8_t track_index, bool present)
 Indique si une piste est disponible pour l’affichage Track Select.
 
void ui_led_backend_set_keyboard_omnichord (bool enabled)
 Active/valide le layout Omnichord (Keyboard).
 

Description détaillée

Backend unifié de gestion des LEDs adressables (SK6812/WS2812) — Phase 6 (+ SEQ renderer).

  • Fait office de routeur de rendu selon le mode actif (MUTE / KEYBOARD / SEQ / …).
  • Reçoit des événements (MUTE/PMUTE, TICK, …) via la queue ui_led_backend_post_event[_i].
  • NOUVEAU : en mode UI_LED_MODE_SEQ, délègue le rendu à ui_led_seq_render() et relaie les ticks clock vers ui_led_seq_on_clock_tick().

Documentation des macros

◆ UI_LED_BACKEND_QUEUE_CAPACITY

#define UI_LED_BACKEND_QUEUE_CAPACITY   64U

Documentation du type de l'énumération

◆ ui_led_event_t

Valeurs énumérées
UI_LED_EVENT_STEP_STATE 
UI_LED_EVENT_MUTE_STATE 
UI_LED_EVENT_PMUTE_STATE 
UI_LED_EVENT_CLOCK_TICK 
UI_LED_EVENT_PARAM_SELECT 

◆ ui_led_mode_t

Valeurs énumérées
UI_LED_MODE_NONE 
UI_LED_MODE_MUTE 
UI_LED_MODE_SEQ 
UI_LED_MODE_ARP 
UI_LED_MODE_KEYBOARD 
UI_LED_MODE_TRACK 
UI_LED_MODE_RANDOM 
UI_LED_MODE_CUSTOM 

Documentation des fonctions

◆ 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
eventType d’événement (MUTE/PMUTE/CLK/…)
indexIndex associé (ex: step 0..15 pour CLOCK_TICK)
stateBoolé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
eventType d’événement
indexIndex associé
stateBooléen associé si pertinent

◆ ui_led_backend_refresh()

void ui_led_backend_refresh ( void  )

Rendu par mode (à appeler périodiquement avant drv_leds_addr_render()).

◆ 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()

void ui_led_backend_set_mode ( ui_led_mode_t  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.