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

Widgets UI Brick — sélection de widget et primitives de rendu (icônes + knob + switch). Plus de détails...

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

Aller au code source de ce fichier.

Structures de données

struct  uiw_knob_style_t
 

Énumérations

enum  uiw_knob_mode_t { UIW_KNOB_UNIPOLAR = 0 , UIW_KNOB_BIPOLAR_ZERO_NORTH }
 

Fonctions

ui_widget_type_t uiw_pick_from_labels (ui_param_kind_t kind, const char *label, const char *const *labels, int nlabels)
 Détermine la famille de widget à utiliser en fonction du kind et des labels.
 
ui_widget_type_t uiw_pick_from_kind_label_only (ui_param_kind_t kind, const char *label)
 Fallback de sélection quand on ne dispose que du kind et d’un label simple.
 
void uiw_draw_switch (int x, int y, int w, int h, bool on)
 Dessine un interrupteur booléen (ON/OFF) dans un cadre.
 
void uiw_draw_knob (int x, int y, int w, int h, int value, int min, int max)
 Dessine un knob circulaire pour une valeur continue.
 
bool uiw_draw_icon_by_text (const char *text, int x, int y, int w, int h)
 Dessine une icône (20×14) centrée dans le cadre, choisie par label texte.
 
void uiw_draw_knob_ex (int x, int y, int w, int h, int value, int min, int max, const uiw_knob_style_t *style)
 Variante avancée avec style configurable (taille/épaisseur).
 

Variables

const uiw_knob_style_t UIW_KNOB_STYLE_DEFAULT
 

Description détaillée

Widgets UI Brick — sélection de widget et primitives de rendu (icônes + knob + switch).

Cette API fournit :

  • La sélection du type de widget à utiliser pour un paramètre UI (uiw_pick_from_labels, uiw_pick_from_kind_label_only).
  • Les routines de dessin nécessaires au renderer : uiw_draw_switch, uiw_draw_knob, uiw_draw_knob_ex.
  • Un utilitaire centralisé pour dessiner une icône par label texte : uiw_draw_icon_by_text.

Principes d’architecture :

  • Pas de dépendance vers ui_controller.* ni vers des bus/cartouches.
  • Rendu pixel-perfect via le framebuffer du driver (implémentation côté .c).
  • Types partagés dans ui_types.h (aucune redéfinition locale).

Hiérarchie recommandée : ui_renderer → ui_widgets → ui_icons → drv_display

Documentation du type de l'énumération

◆ uiw_knob_mode_t

Modes de knob.

Valeurs énumérées
UIW_KNOB_UNIPOLAR 

min >= 0 → 0 au SUD, remplissage 0→360°.

UIW_KNOB_BIPOLAR_ZERO_NORTH 

min < 0 < max → 0 au NORD ; négatif horaire / positif anti-horaire.

Documentation des fonctions

◆ uiw_draw_icon_by_text()

bool uiw_draw_icon_by_text ( const char *  text,
int  x,
int  y,
int  w,
int  h 
)

Dessine une icône (20×14) centrée dans le cadre, choisie par label texte.

Paramètres
textLabel texte (insensible à la casse, espaces/underscores/tirets ignorés).
x,yPosition du coin supérieur gauche du cadre.
w,hDimensions du cadre.
Renvoie
true si une icône reconnue a été dessinée, sinon false.
Note
La correspondance typique inclut : "sine", "square", "tri/triangle", "saw/sawu/sawd", "noise", "lp/hp/bp/notch".

Dessine une icône (20×14) centrée dans le cadre, choisie par label texte.

Valeurs retournées
trueicône dessinée, false sinon (aucun dessin).

◆ uiw_draw_knob()

void uiw_draw_knob ( int  x,
int  y,
int  w,
int  h,
int  value,
int  min,
int  max 
)

Dessine un knob circulaire pour une valeur continue.

Paramètres
x,yPosition du coin supérieur gauche du cadre.
w,hDimensions du cadre.
valueValeur actuelle.
minBorne minimale.
maxBorne maximale (si max <= min, une borne sûre sera utilisée).

◆ uiw_draw_knob_ex()

void uiw_draw_knob_ex ( int  x,
int  y,
int  w,
int  h,
int  value,
int  min,
int  max,
const uiw_knob_style_t style 
)

Variante avancée avec style configurable (taille/épaisseur).

Paramètres
x,y,w,hCadre.
valueValeur courante.
min,maxBornes (min peut être < 0).
styleStyle (si NULL → UIW_KNOB_STYLE_DEFAULT).

Variante avancée avec style configurable (taille/épaisseur).

◆ uiw_draw_switch()

void uiw_draw_switch ( int  x,
int  y,
int  w,
int  h,
bool  on 
)

Dessine un interrupteur booléen (ON/OFF) dans un cadre.

Paramètres
x,yPosition du coin supérieur gauche.
w,hDimensions du cadre.
onÉtat logique (true = ON).

Dessine un interrupteur booléen (ON/OFF) dans un cadre.

Note
Requiert que UI_ICON_ON / UI_ICON_OFF soient définies (sinon rien).

◆ uiw_pick_from_kind_label_only()

ui_widget_type_t uiw_pick_from_kind_label_only ( ui_param_kind_t  kind,
const char *  label 
)

Fallback de sélection quand on ne dispose que du kind et d’un label simple.

Paramètres
kindType logique du paramètre (bool/enum/continu).
labelLabel du paramètre (peut être NULL).
Renvoie
ui_widget_type_t — famille de widget (ou UIW_NONE).

◆ uiw_pick_from_labels()

ui_widget_type_t uiw_pick_from_labels ( ui_param_kind_t  kind,
const char *  label,
const char *const *  labels,
int  nlabels 
)

Détermine la famille de widget à utiliser en fonction du kind et des labels.

Paramètres
kindType logique du paramètre (bool/enum/continu), cf. ui_param_kind_t.
labelLabel principal du paramètre (peut aider à détecter “Wave”, “Filter”…).
labelsTableau des labels d’énum (peut être NULL).
nlabelsTaille du tableau labels.
Renvoie
ui_widget_type_t — famille de widget à utiliser (ou UIW_NONE si indéterminé).
Note
Fonction pure, non bloquante : aucune I/O ni dépendance au contrôleur.

Documentation des variables

◆ UIW_KNOB_STYLE_DEFAULT

const uiw_knob_style_t UIW_KNOB_STYLE_DEFAULT
extern

Style par défaut (défini dans ui_widgets.c).