12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*******************************************************************
- *
- * File: Audio_mediaserver.h
- *
- * Author: Peter van Sebille (peter@yipton.net)
- *
- * Modified/adapted for picodriveN by notaz, 2006
- *
- * (c) Copyright 2006, notaz
- * (c) Copyright 2001, Peter van Sebille
- * All Rights Reserved
- *
- *******************************************************************/
- #ifndef __AUDIO_MEDIASERVER_H
- #define __AUDIO_MEDIASERVER_H
- #include <mda/common/audio.h>
- #include <mdaaudiooutputstream.h>
- //#include "audio.h"
- #include "PolledAS.h"
- const TInt KSoundBuffers = 4;
- class TGameAudioEventListener : public MMdaAudioOutputStreamCallback
- {
- public: // implements MMdaAudioOutputStreamCallback
- void MaoscOpenComplete(TInt aError);
- void MaoscBufferCopied(TInt aError, const TDesC8& );
- void MaoscPlayComplete(TInt aError);
- TBool iIsOpen;
- // TBool iHasCopied;
- TInt iUnderflowed;
- TInt iLastError;
- };
- class CGameAudioMS // : public IGameAudio // IGameAudio MUST be specified first!
- {
- public: // implements IGameAudio
- TInt16 *NextFrameL(TInt aPcmFrames);
- TInt16 *ResumeL();
- void Pause();
- TInt ChangeVolume(TInt aUp);
- public:
- ~CGameAudioMS();
- CGameAudioMS(TInt aRate, TBool aStereo, TInt aWritesPerSec, TInt aVolume);
- static CGameAudioMS* NewL(TInt aRate, TBool aStereo, TInt aWritesPerSec, TInt aVolume);
- protected:
- void WriteBlockL();
- void UnderflowedL();
- void ConstructL();
- protected:
- void WaitForOpenToCompleteL();
- TInt iRate;
- TBool iStereo;
- CMdaAudioOutputStream *iMdaAudioOutputStream;
- TMdaAudioDataSettings iMdaAudioDataSettings;
- TGameAudioEventListener iListener;
- CPolledActiveScheduler *iScheduler;
- HBufC8* iSoundBuffers[KSoundBuffers];
- TInt iWritesPerSec; // fps, may be more actual writes
- TInt iMaxWriteSamples; // max samples per write
- TInt16* iCurrentPosition;
- TInt iCurrentBuffer; // active buffer
- TInt iCurrentBufferSize; // bytes filled in buffer
- TInt iBufferSize;
- CMdaServer* iServer;
- TInt64 iTime;
- TInt iVolume;
- };
- #endif /* __AUDIO_MEDIASERVER_H */
|