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; } }