Files
Application/app/src/main/java/com/example/boidelov3/utils/SoundManager.java
T
Roman df3650438b feat(89++): écran allumé, carillon de fin de timer, accords gorgées
- FLAG_KEEP_SCREEN_ON pendant la partie
- Fin du timer de défi: carillon convivial do-mi-sol (AudioTrack,
  synthèse PCM avec enveloppe de cloche) à la place des bips
  ToneGenerator télécoms
- Accord singulier/pluriel: «1 gorgée» / «N gorgées» dans les toasts,
  les stats et Game89Player (fini les «gorgée(s)»)
2026-08-19 18:41:18 +00:00

97 lines
2.1 KiB
Java

package com.example.boidelov3.utils;
import android.content.Context;
/**
* Gestionnaire de sons pour l'application
* Utilise SoundGenerator pour créer des sons sans fichiers externes
*/
public class SoundManager {
private static SoundManager instance;
private SoundGenerator soundGenerator;
private Context context;
/**
* Obtient l'instance unique du SoundManager (Singleton)
*/
public static synchronized SoundManager getInstance(Context context) {
if (instance == null) {
instance = new SoundManager(context.getApplicationContext());
}
return instance;
}
/**
* Constructeur privé
*/
private SoundManager(Context context) {
this.context = context;
this.soundGenerator = new SoundGenerator();
}
/**
* Joue le son de clic
*/
public void playClick() {
if (soundGenerator != null) {
soundGenerator.playClick();
}
}
/**
* Joue le son de succès
*/
public void playSuccess() {
if (soundGenerator != null) {
soundGenerator.playSuccess();
}
}
/**
* Joue le son de manche (nouveau défi)
*/
public void playManche() {
if (soundGenerator != null) {
soundGenerator.playManche();
}
}
/**
* Joue le son de fin de partie
*/
public void playFin() {
if (soundGenerator != null) {
soundGenerator.playFin();
}
}
/**
* Joue un carillon convivial (fin de timer / nouveau défi)
*/
public void playChallenge() {
if (soundGenerator != null) {
soundGenerator.playChallenge();
}
}
/**
* Active ou désactive le son
*/
public void setMuted(boolean muted) {
if (soundGenerator != null) {
soundGenerator.setMuted(muted);
}
}
/**
* Libère les ressources
*/
public void release() {
if (soundGenerator != null) {
soundGenerator.release();
soundGenerator = null;
}
instance = null;
}
}