11 #include "cores/AudioEngine/Interfaces/AESink.h"    12 #include "cores/AudioEngine/Utils/AEDeviceInfo.h"    13 #include "threads/CriticalSection.h"    19 #include <wrl/client.h>    24   virtual const char *GetName() { 
return "DIRECTSOUND"; }
    29   static void Register();
    30   static std::unique_ptr<IAESink> Create(std::string& device, 
AEAudioFormat& desiredFormat);
    33   virtual void Deinitialize();
    39   virtual unsigned int AddPackets(uint8_t **data, 
unsigned int frames, 
unsigned int offset);
    41   static std::string GetDefaultDevice();
    42   static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, 
bool force = 
false);
    44   void          AEChannelsFromSpeakerMask(DWORD speakers);
    46   void          CheckPlayStatus();
    47   bool          UpdateCacheStatus();
    48   unsigned int  GetSpace();
    49   const char    *dserr2str(
int err);
    51   Microsoft::WRL::ComPtr<IDirectSoundBuffer> m_pBuffer;
    52   Microsoft::WRL::ComPtr<IDirectSound> m_pDSound;
    55   enum AEDataFormat   m_encodedFormat;
    59   unsigned int        m_AvgBytesPerSec;
    61   unsigned int        m_dwChunkSize;
    62   unsigned int        m_dwFrameSize;
    63   unsigned int        m_dwBufferLen;
    65   unsigned int        m_BufferOffset;
    66   unsigned int        m_CacheLen;
    67   unsigned int        m_BufferTimeouts;
    72   CCriticalSection    m_runLock;
 virtual unsigned int AddPackets(uint8_t **data, unsigned int frames, unsigned int offset)
Adds packets to be sent out, this routine MUST block or sleep. 
Definition: AESinkDirectSound.cpp:314
Definition: AESinkDirectSound.h:21
virtual double GetCacheTotal()
Definition: AESinkDirectSound.cpp:427
virtual void GetDelay(AEDelayStatus &status)
Return a timestamped status structure with delay and sink info. 
Definition: AESinkDirectSound.cpp:411
Definition: AEChannelInfo.h:19
virtual bool Initialize(AEAudioFormat &format, std::string &device)
Definition: AESinkDirectSound.cpp:122