📄 sound_esd.h
字号:
#include <ptlib.h>#include <ptlib/socket.h>#include <ptlib/plugin.h>//#if !P_USE_INLINES//#include <ptlib/contain.inl>//#endif#ifdef P_LINUX#include <sys/soundcard.h>#endif#ifdef P_FREEBSD#if P_FREEBSD >= 500000#include <sys/soundcard.h>#else#include <machine/soundcard.h>#endif#endif#if defined(P_OPENBSD) || defined(P_NETBSD)#include <soundcard.h>#endifclass PSoundChannelESD: public PSoundChannel{ public: PSoundChannelESD(); void Construct(); PSoundChannelESD(const PString &device, PSoundChannel::Directions dir, unsigned numChannels, unsigned sampleRate, unsigned bitsPerSample); ~PSoundChannelESD(); static PStringArray GetDeviceNames(PSoundChannel::Directions = Player); static PString GetDefaultDevice(PSoundChannel::Directions); BOOL Open(const PString & _device, Directions _dir, unsigned _numChannels, unsigned _sampleRate, unsigned _bitsPerSample); BOOL Setup(); BOOL Close(); BOOL IsOpen() const; BOOL Write(const void * buf, PINDEX len); BOOL Read(void * buf, PINDEX len); BOOL SetFormat(unsigned numChannels, unsigned sampleRate, unsigned bitsPerSample); unsigned GetChannels() const; unsigned GetSampleRate() const; unsigned GetSampleSize() const; BOOL SetBuffers(PINDEX size, PINDEX count); BOOL GetBuffers(PINDEX & size, PINDEX & count); BOOL PlaySound(const PSound & sound, BOOL wait); BOOL PlayFile(const PFilePath & filename, BOOL wait); BOOL HasPlayCompleted(); BOOL WaitForPlayCompletion(); BOOL RecordSound(PSound & sound); BOOL RecordFile(const PFilePath & filename); BOOL StartRecording(); BOOL IsRecordBufferFull(); BOOL AreAllRecordBuffersFull(); BOOL WaitForRecordBufferFull(); BOOL WaitForAllRecordBuffersFull(); BOOL Abort(); BOOL SetVolume(unsigned newVal); BOOL GetVolume(unsigned &devVol); protected: unsigned mNumChannels; unsigned mSampleRate; unsigned mBitsPerSample; unsigned actualSampleRate; Directions direction; PString device; BOOL isInitialised;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -