#include "sound.hpp"

namespace sound {
    bool initSound(void)
    {
        return false;
    }

    void deleteOldSounds()
    {
    }

    SoundHandle *playSound(enum Sound type, float amplitude)
    {
        (void) type;
        (void) amplitude;
        return NULL;
    }

    SoundHandle *playFrequency(float freq, float amplitude)
    {
        (void) freq;
        (void) amplitude;
        return NULL;
    }

    bool configureEnvelope(SoundHandle *handle, float rise, float hold, float decay)
    {
        (void) handle;
        (void) rise;
        (void) hold;
        (void) decay;
        return false;
    }

    bool configureOvershoot(SoundHandle *handle, float relativeOvershootTime)
    {
        (void) handle;
        (void) relativeOvershootTime;
        return false;
    }

    bool configureEnvelopeWait(SoundHandle *handle, float rise, float hold, float decay, float wait)
    {
        (void) handle;
        (void) rise;
        (void) hold;
        (void) decay;
        (void) wait;
        return false;
    }

    bool configureEnvelopeLooping(SoundHandle *handle, float rise, float hold, float decay, float wait)
    {
        (void) handle;
        (void) rise;
        (void) hold;
        (void) decay;
        (void) wait;
        return false;
    }

    float getRiseDuration(SoundHandle *handle)
    {
        (void) handle;
        return 0.0f;
    }
    float getHoldDuration(SoundHandle *handle)
    {
        (void) handle;
        return 0.0f;
    }

    float getDecayDuration(SoundHandle *handle)
    {
        (void) handle;
        return 0.0f;
    }

    float getWaitTime(SoundHandle *handle)
    {
        (void) handle;
        return 0.0f;
    }

    void configureWaitTime(SoundHandle *handle, float waitTime)
    {
        (void) handle;
        (void) waitTime;
    }

    void setLoopCount(SoundHandle *handle, int numRepetitions)
    {
        (void) handle;
        (void) numRepetitions;
    }

    bool stopSound(SoundHandle *handle)
    {
        (void) handle;
        return true;
    }

    void stopAllSounds(void)
    {
    }

    void teardownSound(void)
    {
    }

    bool startDumpingWav(const char *filename)
    {
        (void) filename;
        return false;
    }

    void stopDumpingWav(void)
    {
    }

    int numActiveSounds(void)
    {
        return 0;
    }

    void deleteSound(SoundHandle *handle)
    {
        (void) handle;
    }
}
