sound_sunaudio.h
来自「sloedgy open sip stack source code」· C头文件 代码 · 共 81 行
H
81 行
#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 + =
减小字号Ctrl + -
显示快捷键?