|
| UIW_ICON_DEFINE (UI_ICON_SINE, 0b00011110000000000000, 0b00110011000000000000, 0b01100001100000000000, 0b01000000100000000000, 0b11000000110000000000, 0b10000000010000000000, 0b10000000010000000000, 0b00000000001000000001, 0b00000000001000000001, 0b00000000001100000011, 0b00000000000100000010, 0b00000000000110000110, 0b00000000000011001100, 0b00000000000001111000) |
|
| UIW_ICON_DEFINE (UI_ICON_SQUARE, 0b11111111110000000000, 0b10000000010000000000, 0b10000000010000000000, 0b10000000010000000000, 0b10000000010000000000, 0b10000000010000000000, 0b10000000010000000010, 0b00000000010000000010, 0b00000000010000000010, 0b00000000010000000010, 0b00000000010000000010, 0b00000000010000000010, 0b00000000010000000010, 0b00000000011111111110) |
|
| UIW_ICON_DEFINE (UI_ICON_SAW, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000111, 0b00000000000000011101, 0b00000000000001110001, 0b00000000000111000001, 0b00000000011100000001, 0b00000001110000000001, 0b00000111000000000001, 0b00011100000000000001, 0b01110000000000000001, 0b11000000000000000001, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_SAWD, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b11000000000000000001, 0b01110000000000000001, 0b00011100000000000001, 0b00000111000000000001, 0b00000001110000000001, 0b00000000011100000001, 0b00000000000111000001, 0b00000000000001110001, 0b00000000000000011101, 0b00000000000000000111) |
|
| UIW_ICON_DEFINE (UI_ICON_SAWU, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000111, 0b00000000000000011101, 0b00000000000001110001, 0b00000000000111000001, 0b00000000011100000001, 0b00000001110000000001, 0b00000111000000000001, 0b00011100000000000001, 0b01110000000000000001, 0b11000000000000000001, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_TRIANGLE, 0b00000000010000000000, 0b00000000101000000000, 0b00000001000100000000, 0b00000010000010000000, 0b00000100000001000000, 0b00001000000000100000, 0b00010000000000010000, 0b00100000000000001000, 0b01000000000000000100, 0b10000000000000000010, 0b00000000000000000001, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_NOISE, 0b10101010101010101010, 0b01010101010101010101, 0b10101010101010101010, 0b01010101010101010101, 0b10101010101010101010, 0b01010101010101010101, 0b10101010101010101010, 0b01010101010101010101, 0b10101010101010101010, 0b01010101010101010101, 0b10101010101010101010, 0b01010101010101010101, 0b10101010101010101010, 0b01010101010101010101) |
|
| UIW_ICON_DEFINE (UI_ICON_LP, 0b11111111111111111111, 0b10000000000000000000, 0b10000000000000000000, 0b10000000000000000000, 0b10000000000000000000, 0b10000000000000000000, 0b11111111111111111111, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_HP, 0b11111111111111111111, 0b00000000000000000001, 0b00000000000000000001, 0b00000000000000000001, 0b00000000000000000001, 0b00000000000000000001, 0b11111111111111111111, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_BP, 0b00000000000000000000, 0b00000111111111111000, 0b00000111111111111000, 0b00000111111111111000, 0b00000111111111111000, 0b00000111111111111000, 0b11111111111111111111, 0b00000111111111111000, 0b00000111111111111000, 0b00000111111111111000, 0b00000111111111111000, 0b00000111111111111000, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_NOTCH, 0b11111111111111111111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11110000000000011111, 0b11111111111111111111, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_OFF, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b00000000000000000000, 0b11000000000000000110, 0b01100000000000001100, 0b00110000000000011000, 0b00011100000001110000, 0b00000111000111000000, 0b00000001111100000000, 0b00000000000000000000, 0b00000000000000000000) |
|
| UIW_ICON_DEFINE (UI_ICON_ON, 0b00000000000000000000, 0b00000001111100000000, 0b00000111000111000000, 0b00011100111001110000, 0b00110001011100011000, 0b01100010011110001100, 0b11000010111110000110, 0b01100010001110001100, 0b00110001011100011000, 0b00011100111001110000, 0b00000111000111000000, 0b00000001111100000000, 0b00000000000000000000, 0b00000000000000000000) |
|
void | ui_icon_draw (const ui_icon_t *icon, int x, int y, bool on) |
| Dessine une icône à (x,y) dans le framebuffer (pixels ON si on==true).
|
|
Banque d’icônes 20x14 et conventions pour le mapping texte → icône.
Ce module contient :
- les bitmaps d’icônes (20x14) utilisés par l’UI,
- les exports d’icônes sous forme de
const ui_icon_t UI_ICON_*
.
L’UI ne dépend jamais d’indices d’énumération. Les icônes sont choisies par texte via uiw_draw_icon_by_text()
(implémenté dans ui_widgets.c
), qui applique un mappage texte → icône (familles : waves, filters, on/off).
Format des icônes
- Dimensions attendues : 20x14 pixels (monochrome).
- Chaque icône est déclarée comme
extern const ui_icon_t UI_ICON_*;
et définie via la macro UIW_ICON_DEFINE(...)
dans ce fichier.
Convention de nommage
- Préfixe obligatoire : UI_ICON_.
- Nom en MAJUSCULES, caractères non-alphanumériques convertis en '_'.
- Ex. : "off" → UI_ICON_OFF
- Ex. : "S+S2" → UI_ICON_S_S2
Génération rapide (script)
Utilisez icon_converter.py
pour convertir une image en macro UIW_ICON_DEFINE
:
python icon_converter.py S+S2.png S+S3.png --width 20 --height 14 --invert
# Copiez/collez la sortie ici, dans ui_icons.c
Exemple de sortie attendue (extrait) :
0b00000000000000000000,
...,
0b00000000000000000000
);
#define UIW_ICON_DEFINE(name,...)
Macro compatible avec icon_converter.py.
Definition ui_icons.h:36
Mapping texte → icône (vue d’ensemble)
Le mapping est réalisé dans ui_widgets.c
(fonction interne match_icon_for_text()
). La normalisation du label applique :
- passage en minuscules,
- suppression des espaces, '_' et '-'.
Exemples de tokens reconnus :
- Waves : sine / square / triangle / saw / sawu / sawd / noise
- Filters : lp / hp / bp / notch
- Booléens : on / off (si les icônes correspondantes existent)
Ajouter des icônes pour des labels spécifiques (ex. "S+S2", "S+S3")
1) Définir vos bitmaps ici, dans ui_icons.c
:
2) Étendre le mapping dans ui_widgets.c
(fonction match_icon_for_text()
), après la normalisation du label :
if (key_eq(key, "ss2")) return &UI_ICON_S2;
if (key_eq(key, "ss3")) return &UI_ICON_S3;
Icônes ON/OFF
- Si
UI_ICON_ON
et UI_ICON_OFF
sont définies ici, le widget booléen (uiw_draw_switch
) les utilise (pas de fallback texte).
- Si elles sont absentes, aucun dessin n’est produit pour les booléens.
Bonnes pratiques
- Conserver 20x14 pour garantir l’alignement/centrage.
- Préparer les assets en niveaux de gris et utiliser
--invert
si nécessaire pour obtenir du "blanc sur noir".
- Éviter les détails trop fins (14 px de haut).