#pragma once // plip_gamebook — "livre dont vous êtes le héros" AUDIO pour le téléphone PLIP. // // Pas d'écran : tout passe par l'écouteur. On décroche, le narrateur lit le // menu des histoires ("pour le dragon, faites le 1..."), on compose un chiffre // au cadran pour choisir une histoire, puis à chaque passage le narrateur lit // le texte ET les choix numérotés ("pour examiner la machine, faites le 1..."), // et on compose le chiffre du choix. Raccrocher arrête tout. // // Lit /sdcard/gamebook/{library.json, menu.wav, .json, _.wav} // (pack audio "téléphone" produit par tools/gamebook/build_phone_gamebook.py, // où la narration des WAV inclut déjà les invites "faites le N"). 100% local, // aucun modèle, aucun réseau. // // Intégration : conversation.c lance plip_gamebook_begin() au décroché (si un // pack est présent sur la SD), pousse chaque chiffre composé via // plip_gamebook_feed_digit(), et appelle plip_gamebook_end() au raccroché. #include #ifdef __cplusplus extern "C" { #endif // La SD est-elle montée et un pack gamebook présent ? (à tester au décroché) bool plip_gamebook_available(void); // Démarre le mode livre-jeu : charge la bibliothèque et joue le menu audio. void plip_gamebook_begin(void); // Démarre directement UNE histoire tirée au hasard (sans passer par le menu) — // utilisé quand le téléphone sonne tout seul et qu'on décroche. void plip_gamebook_begin_random(void); // Traite un chiffre composé (0..9). Menu → choisit l'histoire ; en histoire → // choisit la réponse ; sur une fin → 0 revient au menu. Interrompt la // narration en cours pour enchaîner. void plip_gamebook_feed_digit(int digit); // Quitte le mode livre-jeu (raccroché) : stoppe l'audio, libère la mémoire. void plip_gamebook_end(void); // Vrai tant qu'une partie est en cours. bool plip_gamebook_active(void); #ifdef __cplusplus } #endif