Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

#ifndef __DSOUNDINSTANCE_H__
#define __DSOUNDINSTANCE_H__

#include "SoundInstance.h"
#include "dsoundversion.h"

namespace Sexy
{

class DSoundManager;

class DSoundInstance : public SoundInstance
{
        friend class DSoundManager;

protected:
        DSoundManager*                  mSoundManagerP;
        LPDIRECTSOUNDBUFFER             mSourceSoundBuffer;
        LPDIRECTSOUNDBUFFER             mSoundBuffer;
        bool                                    mAutoRelease;
        bool                                    mHasPlayed;
        bool                                    mReleased;

        int                                             mBasePan;
        double                                  mBaseVolume;

        int                                             mPan;
        double                                  mVolume;       

        DWORD                                   mDefaultFrequency;

protected:
        void                                    RehupVolume();
        void                                    RehupPan();

public:
        DSoundInstance(DSoundManager* theSoundManager, LPDIRECTSOUNDBUFFER theSourceSound);
        virtual ~DSoundInstance();     
        virtual void                    Release();
       
        virtual void                    SetBaseVolume(double theBaseVolume);
        virtual void                    SetBasePan(int theBasePan);

        virtual void                    SetVolume(double theVolume);
        virtual void                    SetPan(int thePosition); //-hundredth db to +hundredth db = left to right      
        virtual void                    AdjustPitch(double theNumSteps);

        virtual bool                    Play(bool looping, bool autoRelease);
        virtual void                    Stop();
        virtual bool                    IsPlaying();
        virtual bool                    IsReleased();
        virtual double                  GetVolume();

};

}

#endif //__DSOUNDINSTANCE_H__