From 574acfbba4b13f9f4b95a1a467d0e93f442befe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=27=C3=A9lectron=20rare?= <108685187+electron-rare@users.noreply.github.com> Date: Thu, 7 May 2026 22:59:38 +0200 Subject: [PATCH] feat(of): mac AZERTY FR keyboard support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User : "tu m'adapte pour un clavier mac azerty fr". Sur Mac AZERTY FR, la rangée du haut sans shift donne & é " ' ( § è ! ç à au lieu de 1234567890. Et les symboles US ! @ # $ % (shift+1..5 QWERTY) sont injouables. Adaptations : - Démos 0-9 : digits 1-0 + alias chars AZERTY FR direct 1 / & → demo 0 AMIGA 2 / é (0xe9) → demo 1 C64 3 / " → demo 2 ACID 4 / ' → demo 3 TUNNEL 5 / ( → demo 4 FREQ 6 / § (0xa7) → demo 5 GLITCH 7 / è (0xe8) → demo 6 AMBIENT 8 / ! → demo 7 RAVE 9 / ç (0xe7) → demo 8 MEMORY 0 / à (0xe0) → demo 9 GREETINGS - Démos 10-14 : F6-F10 (universels, layout-indépendants) remplace les anciens ! @ # $ % qui étaient inaccessibles ou conflictuels sur AZERTY FR Mac. - Beat-sync toggle : * (US) ou \ (universel). Hint clavier mis à jour pour refléter le double mapping. --- oscope-of/src/ofApp.cpp | 48 +++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/oscope-of/src/ofApp.cpp b/oscope-of/src/ofApp.cpp index 25b04df..c605625 100644 --- a/oscope-of/src/ofApp.cpp +++ b/oscope-of/src/ofApp.cpp @@ -1415,8 +1415,10 @@ void ofApp::drawScope4(int W, int H) { } // Hints clavier ofSetColor(140, 220, 220, 180); - ofDrawBitmapString("[a z e r t y u i o p] = scenes " - "[s d f g h j k l m w x c v b n , ;] = params " + ofDrawBitmapString("[1-0 / & e \" ' ( s e ! c a] demos 0-9 " + "[F6-F10] demos 10-14 " + "[a z e r t y u i o p] scenes " + "[s d f g h j k l m / w x c v b n , ;] params " "[UP DOWN] adjust [:] reset", padX, rowY - 28); if (narrativeMode_ && currentDemo_ < (int)demos_.size()) { @@ -1550,25 +1552,29 @@ void ofApp::keyPressed(int key) { // Touches 1..9 + 0 — lance une démoparty narrative complète. // 'q' reste libre pour le mode live (pas de scénario auto). switch (key) { - case '1': launchDemo(0); break; // AMIGA TRIBUTE - case '2': launchDemo(1); break; // C64 LOWLIFE - case '3': launchDemo(2); break; // ACID JOURNEY - case '4': launchDemo(3); break; // TUNNEL VISION - case '5': launchDemo(4); break; // FREQUENCIES - case '6': launchDemo(5); break; // GLITCH WORLD - case '7': launchDemo(6); break; // AMBIENT VOID - case '8': launchDemo(7); break; // RAVE - case '9': launchDemo(8); break; // MEMORY LANE - case '0': launchDemo(9); break; // GREETINGS - // Demos 11..15 — symboles. Shift+1..5 sur US (! @ # $ %), - // ou les chars correspondants sur AZERTY FR. - case '!': launchDemo(10); break; // FRACTAL DREAMS - case '@': launchDemo(11); break; // INFERNO - case '#': launchDemo(12); break; // OUTRUN - case '$': launchDemo(13); break; // CUBE STORM - case '%': launchDemo(14); break; // GRAND FINAL - // Beat-sync toggle : quand actif, les démos lancent au prochain kick - case '*': + // Démos 0-9 : digits (avec shift sur Mac AZERTY FR) + chars + // AZERTY FR direct (sans shift) en alias. + case '1': case '&': launchDemo(0); break; // AMIGA TRIBUTE + case '2': case 0xe9: launchDemo(1); break; // C64 (é) + case '3': case '"': launchDemo(2); break; // ACID + case '4': case '\'':launchDemo(3); break; // TUNNEL + case '5': case '(': launchDemo(4); break; // FREQ + case '6': case 0xa7: launchDemo(5); break; // GLITCH (§) + case '7': case 0xe8: launchDemo(6); break; // AMBIENT (è) + // 8 sans shift = '!' sur AZERTY FR Mac → conflit ancien demo 10 + case '8': launchDemo(7); break; // RAVE + case '9': case 0xe7: launchDemo(8); break; // MEMORY (ç) + case '0': case 0xe0: launchDemo(9); break; // GREETINGS (à) + // Démos 10-14 : F6-F10 (universels, indépendants du layout). + case OF_KEY_F6: launchDemo(10); break; // FRACTAL DREAMS + case OF_KEY_F7: launchDemo(11); break; // INFERNO + case OF_KEY_F8: launchDemo(12); break; // OUTRUN + case OF_KEY_F9: launchDemo(13); break; // CUBE STORM + case OF_KEY_F10: launchDemo(14); break; // GRAND FINAL + // '!' aussi pour AZERTY FR Mac (8 sans shift) -> demo 7 RAVE. + case '!': launchDemo(7); break; + // Beat-sync toggle. '*' (US) ou '\' (universel). + case '*': case '\\': beatSyncEnabled_ = !beatSyncEnabled_; if (!beatSyncEnabled_) pendingDemoIdx_ = -1; ofLogNotice("ofApp") << "beatSync " << (beatSyncEnabled_ ? "ON" : "OFF");