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

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