Index: webrtc/modules/audio_device/linux/audio_device_pulse_linux.h |
diff --git a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h |
index 7e8d68347bc5e7354e5d2b9699af527bc8721424..6170944212f0214c1be8a9578f7f46e9692ee23b 100644 |
--- a/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h |
+++ b/webrtc/modules/audio_device/linux/audio_device_pulse_linux.h |
@@ -199,153 +199,156 @@ public: |
void AttachAudioBuffer(AudioDeviceBuffer* audioBuffer) override; |
private: |
- void Lock() EXCLUSIVE_LOCK_FUNCTION(_critSect) { |
- _critSect.Enter(); |
- } |
- void UnLock() UNLOCK_FUNCTION(_critSect) { |
- _critSect.Leave(); |
- } |
- void WaitForOperationCompletion(pa_operation* paOperation) const; |
- void WaitForSuccess(pa_operation* paOperation) const; |
- |
- bool KeyPressed() const; |
- |
- static void PaContextStateCallback(pa_context *c, void *pThis); |
- static void PaSinkInfoCallback(pa_context *c, const pa_sink_info *i, |
- int eol, void *pThis); |
- static void PaSourceInfoCallback(pa_context *c, const pa_source_info *i, |
- int eol, void *pThis); |
- static void PaServerInfoCallback(pa_context *c, const pa_server_info *i, |
- void *pThis); |
- static void PaStreamStateCallback(pa_stream *p, void *pThis); |
- void PaContextStateCallbackHandler(pa_context *c); |
- void PaSinkInfoCallbackHandler(const pa_sink_info *i, int eol); |
- void PaSourceInfoCallbackHandler(const pa_source_info *i, int eol); |
- void PaServerInfoCallbackHandler(const pa_server_info *i); |
- void PaStreamStateCallbackHandler(pa_stream *p); |
- |
- void EnableWriteCallback(); |
- void DisableWriteCallback(); |
- static void PaStreamWriteCallback(pa_stream *unused, size_t buffer_space, |
- void *pThis); |
- void PaStreamWriteCallbackHandler(size_t buffer_space); |
- static void PaStreamUnderflowCallback(pa_stream *unused, void *pThis); |
- void PaStreamUnderflowCallbackHandler(); |
- void EnableReadCallback(); |
- void DisableReadCallback(); |
- static void PaStreamReadCallback(pa_stream *unused1, size_t unused2, |
- void *pThis); |
- void PaStreamReadCallbackHandler(); |
- static void PaStreamOverflowCallback(pa_stream *unused, void *pThis); |
- void PaStreamOverflowCallbackHandler(); |
- int32_t LatencyUsecs(pa_stream *stream); |
- int32_t ReadRecordedData(const void* bufferData, size_t bufferSize); |
- int32_t ProcessRecordedData(int8_t *bufferData, |
- uint32_t bufferSizeInSamples, |
- uint32_t recDelay); |
- |
- int32_t CheckPulseAudioVersion(); |
- int32_t InitSamplingFrequency(); |
- int32_t GetDefaultDeviceInfo(bool recDevice, char* name, uint16_t& index); |
- int32_t InitPulseAudio(); |
- int32_t TerminatePulseAudio(); |
- |
- void PaLock(); |
- void PaUnLock(); |
- |
- static bool RecThreadFunc(void*); |
- static bool PlayThreadFunc(void*); |
- bool RecThreadProcess(); |
- bool PlayThreadProcess(); |
- |
- AudioDeviceBuffer* _ptrAudioBuffer; |
- |
- rtc::CriticalSection _critSect; |
- EventWrapper& _timeEventRec; |
- EventWrapper& _timeEventPlay; |
- EventWrapper& _recStartEvent; |
- EventWrapper& _playStartEvent; |
- |
- // TODO(pbos): Remove unique_ptr and use directly without resetting. |
- std::unique_ptr<rtc::PlatformThread> _ptrThreadPlay; |
- std::unique_ptr<rtc::PlatformThread> _ptrThreadRec; |
- |
- AudioMixerManagerLinuxPulse _mixerManager; |
- |
- uint16_t _inputDeviceIndex; |
- uint16_t _outputDeviceIndex; |
- bool _inputDeviceIsSpecified; |
- bool _outputDeviceIsSpecified; |
- |
- int sample_rate_hz_; |
- uint8_t _recChannels; |
- uint8_t _playChannels; |
- |
- // Stores thread ID in constructor. |
- // We can then use ThreadChecker::CalledOnValidThread() to ensure that |
- // other methods are called from the same thread. |
- // Currently only does RTC_DCHECK(thread_checker_.CalledOnValidThread()). |
- rtc::ThreadChecker thread_checker_; |
- |
- bool _initialized; |
- bool _recording; |
- bool _playing; |
- bool _recIsInitialized; |
- bool _playIsInitialized; |
- bool _startRec; |
- bool _stopRec; |
- bool _startPlay; |
- bool _stopPlay; |
- bool _AGC; |
- bool update_speaker_volume_at_startup_; |
- |
- uint32_t _sndCardPlayDelay; |
- uint32_t _sndCardRecDelay; |
- |
- int32_t _writeErrors; |
- uint16_t _playWarning; |
- uint16_t _playError; |
- uint16_t _recWarning; |
- uint16_t _recError; |
- |
- uint16_t _deviceIndex; |
- int16_t _numPlayDevices; |
- int16_t _numRecDevices; |
- char* _playDeviceName; |
- char* _recDeviceName; |
- char* _playDisplayDeviceName; |
- char* _recDisplayDeviceName; |
- char _paServerVersion[32]; |
- |
- int8_t* _playBuffer; |
- size_t _playbackBufferSize; |
- size_t _playbackBufferUnused; |
- size_t _tempBufferSpace; |
- int8_t* _recBuffer; |
- size_t _recordBufferSize; |
- size_t _recordBufferUsed; |
- const void* _tempSampleData; |
- size_t _tempSampleDataSize; |
- int32_t _configuredLatencyPlay; |
- int32_t _configuredLatencyRec; |
- |
- // PulseAudio |
- uint16_t _paDeviceIndex; |
- bool _paStateChanged; |
- |
- pa_threaded_mainloop* _paMainloop; |
- pa_mainloop_api* _paMainloopApi; |
- pa_context* _paContext; |
- |
- pa_stream* _recStream; |
- pa_stream* _playStream; |
- uint32_t _recStreamFlags; |
- uint32_t _playStreamFlags; |
- pa_buffer_attr _playBufferAttr; |
- pa_buffer_attr _recBufferAttr; |
- |
- char _oldKeyState[32]; |
- Display* _XDisplay; |
+ void Lock() RTC_EXCLUSIVE_LOCK_FUNCTION(_critSect) { _critSect.Enter(); } |
+ void UnLock() RTC_UNLOCK_FUNCTION(_critSect) { _critSect.Leave(); } |
+ void WaitForOperationCompletion(pa_operation* paOperation) const; |
+ void WaitForSuccess(pa_operation* paOperation) const; |
+ |
+ bool KeyPressed() const; |
+ |
+ static void PaContextStateCallback(pa_context* c, void* pThis); |
+ static void PaSinkInfoCallback(pa_context* c, |
+ const pa_sink_info* i, |
+ int eol, |
+ void* pThis); |
+ static void PaSourceInfoCallback(pa_context* c, |
+ const pa_source_info* i, |
+ int eol, |
+ void* pThis); |
+ static void PaServerInfoCallback(pa_context* c, |
+ const pa_server_info* i, |
+ void* pThis); |
+ static void PaStreamStateCallback(pa_stream* p, void* pThis); |
+ void PaContextStateCallbackHandler(pa_context* c); |
+ void PaSinkInfoCallbackHandler(const pa_sink_info* i, int eol); |
+ void PaSourceInfoCallbackHandler(const pa_source_info* i, int eol); |
+ void PaServerInfoCallbackHandler(const pa_server_info* i); |
+ void PaStreamStateCallbackHandler(pa_stream* p); |
+ |
+ void EnableWriteCallback(); |
+ void DisableWriteCallback(); |
+ static void PaStreamWriteCallback(pa_stream* unused, |
+ size_t buffer_space, |
+ void* pThis); |
+ void PaStreamWriteCallbackHandler(size_t buffer_space); |
+ static void PaStreamUnderflowCallback(pa_stream* unused, void* pThis); |
+ void PaStreamUnderflowCallbackHandler(); |
+ void EnableReadCallback(); |
+ void DisableReadCallback(); |
+ static void PaStreamReadCallback(pa_stream* unused1, |
+ size_t unused2, |
+ void* pThis); |
+ void PaStreamReadCallbackHandler(); |
+ static void PaStreamOverflowCallback(pa_stream* unused, void* pThis); |
+ void PaStreamOverflowCallbackHandler(); |
+ int32_t LatencyUsecs(pa_stream* stream); |
+ int32_t ReadRecordedData(const void* bufferData, size_t bufferSize); |
+ int32_t ProcessRecordedData(int8_t* bufferData, |
+ uint32_t bufferSizeInSamples, |
+ uint32_t recDelay); |
+ |
+ int32_t CheckPulseAudioVersion(); |
+ int32_t InitSamplingFrequency(); |
+ int32_t GetDefaultDeviceInfo(bool recDevice, char* name, uint16_t& index); |
+ int32_t InitPulseAudio(); |
+ int32_t TerminatePulseAudio(); |
+ |
+ void PaLock(); |
+ void PaUnLock(); |
+ |
+ static bool RecThreadFunc(void*); |
+ static bool PlayThreadFunc(void*); |
+ bool RecThreadProcess(); |
+ bool PlayThreadProcess(); |
+ |
+ AudioDeviceBuffer* _ptrAudioBuffer; |
+ |
+ rtc::CriticalSection _critSect; |
+ EventWrapper& _timeEventRec; |
+ EventWrapper& _timeEventPlay; |
+ EventWrapper& _recStartEvent; |
+ EventWrapper& _playStartEvent; |
+ |
+ // TODO(pbos): Remove unique_ptr and use directly without resetting. |
+ std::unique_ptr<rtc::PlatformThread> _ptrThreadPlay; |
+ std::unique_ptr<rtc::PlatformThread> _ptrThreadRec; |
+ |
+ AudioMixerManagerLinuxPulse _mixerManager; |
+ |
+ uint16_t _inputDeviceIndex; |
+ uint16_t _outputDeviceIndex; |
+ bool _inputDeviceIsSpecified; |
+ bool _outputDeviceIsSpecified; |
+ |
+ int sample_rate_hz_; |
+ uint8_t _recChannels; |
+ uint8_t _playChannels; |
+ |
+ // Stores thread ID in constructor. |
+ // We can then use ThreadChecker::CalledOnValidThread() to ensure that |
+ // other methods are called from the same thread. |
+ // Currently only does RTC_DCHECK(thread_checker_.CalledOnValidThread()). |
+ rtc::ThreadChecker thread_checker_; |
+ |
+ bool _initialized; |
+ bool _recording; |
+ bool _playing; |
+ bool _recIsInitialized; |
+ bool _playIsInitialized; |
+ bool _startRec; |
+ bool _stopRec; |
+ bool _startPlay; |
+ bool _stopPlay; |
+ bool _AGC; |
+ bool update_speaker_volume_at_startup_; |
+ |
+ uint32_t _sndCardPlayDelay; |
+ uint32_t _sndCardRecDelay; |
+ |
+ int32_t _writeErrors; |
+ uint16_t _playWarning; |
+ uint16_t _playError; |
+ uint16_t _recWarning; |
+ uint16_t _recError; |
+ |
+ uint16_t _deviceIndex; |
+ int16_t _numPlayDevices; |
+ int16_t _numRecDevices; |
+ char* _playDeviceName; |
+ char* _recDeviceName; |
+ char* _playDisplayDeviceName; |
+ char* _recDisplayDeviceName; |
+ char _paServerVersion[32]; |
+ |
+ int8_t* _playBuffer; |
+ size_t _playbackBufferSize; |
+ size_t _playbackBufferUnused; |
+ size_t _tempBufferSpace; |
+ int8_t* _recBuffer; |
+ size_t _recordBufferSize; |
+ size_t _recordBufferUsed; |
+ const void* _tempSampleData; |
+ size_t _tempSampleDataSize; |
+ int32_t _configuredLatencyPlay; |
+ int32_t _configuredLatencyRec; |
+ |
+ // PulseAudio |
+ uint16_t _paDeviceIndex; |
+ bool _paStateChanged; |
+ |
+ pa_threaded_mainloop* _paMainloop; |
+ pa_mainloop_api* _paMainloopApi; |
+ pa_context* _paContext; |
+ |
+ pa_stream* _recStream; |
+ pa_stream* _playStream; |
+ uint32_t _recStreamFlags; |
+ uint32_t _playStreamFlags; |
+ pa_buffer_attr _playBufferAttr; |
+ pa_buffer_attr _recBufferAttr; |
+ |
+ char _oldKeyState[32]; |
+ Display* _XDisplay; |
}; |
} |