📄 sound_sunaudio.h
字号:
#ifndef SUNAUDIO_H
#define SUNAUDIO_H
#include <ptlib.h>
#include <ptlib/socket.h>
#include <ptlib/plugin.h>
#include <sys/audio.h>
class PSoundChannelSunAudio: public PSoundChannel
{
public:
PSoundChannelSunAudio();
void Construct();
PSoundChannelSunAudio(const PString &device,
PSoundChannel::Directions dir,
unsigned numChannels,
unsigned sampleRate,
unsigned bitsPerSample);
~PSoundChannelSunAudio();
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;
unsigned resampleRate;
/* save the default settings for resetting */
/* play */
unsigned mDefaultPlayNumChannels;
unsigned mDefaultPlaySampleRate;
unsigned mDefaultPlayBitsPerSample;
/* record */
unsigned mDefaultRecordNumChannels;
unsigned mDefaultRecordSampleRate;
unsigned mDefaultRecordBitsPerSample;
unsigned mDefaultRecordEncoding;
unsigned mDefaultRecordPort;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -