00001
00002
00003
00004
00006
00007 #ifndef _ROKU_INCLUDE_DESCHUTES_LIBRARIES_HDMACHINEX225_PCMAUDIOPLAYER_H
00008 #define _ROKU_INCLUDE_DESCHUTES_LIBRARIES_HDMACHINEX225_PCMAUDIOPLAYER_H
00009
00010 #include <cascade/av/CascadeAudioPlaybackDevice.h>
00011
00013
00014 class PCMAudioPlayer : public CascadeAudioPlaybackDevice
00015 {
00016 public:
00017 PCMAudioPlayer();
00018 virtual ~PCMAudioPlayer();
00019
00020 public:
00021 bool IsOpen();
00022
00023
00024 public:
00025 virtual bool GetBufferRequirements(u32 & nMinNumBuffersToSet, u32 & nMaxNumBuffersToSet, u32 & nMinBufferSizeToSet, u32 & nMaxBufferSizeToSet, u32 & nBufferSizeMultipleToSet);
00026 virtual bool GetDefaultBufferRequirements(u32 & nNumBuffersToSet, u32 & nBufferSizeInBytesToSet);
00027 virtual bool Open(u32 nNumBuffers, u32 nBufferSizeInBytes, void ** ppBufferLocationsToSet);
00028 virtual bool Close();
00029 virtual bool QueueBuffer(s16 * pData, u32 nSamples);
00030 virtual u32 WaitForBuffer();
00031 virtual bool GetNumBuffersAvailable(u32 & nNumBuffersAvailableToSet);
00032 virtual bool Pause();
00033 virtual bool Play();
00034 virtual bool Flush();
00035 virtual bool SetVolume(u16 nVolume);
00036 virtual bool SetSampleRate(u32 nSampleRate);
00037 virtual u32 GetSampleRate();
00038 virtual bool IsSupportedSampleRate(u32 nSampleRate);
00039 virtual bool SetOutputFlags(bool bAnalog, bool bSPDIF);
00040 virtual void GetOutputFlags(bool & bAnalogToSet, bool & bSPDIFToSet);
00041
00042 private:
00043 void * m_pPlayerInternal;
00044 };
00045
00046 #endif // #ifndef _ROKU_INCLUDE_DESCHUTES_LIBRARIES_HDMACHINEX225_PCMAUDIOPLAYER_H
00047
00049
00051
00052
00053
00054
00055
00056