Index: webrtc/modules/audio_device/dummy/file_audio_device.cc |
diff --git a/webrtc/modules/audio_device/dummy/file_audio_device.cc b/webrtc/modules/audio_device/dummy/file_audio_device.cc |
index 777086855eb9cbd0269ef9b220ce40c64d3a1e30..8b3fa5e09106e79053847c1d2bc21e9dc80f608b 100644 |
--- a/webrtc/modules/audio_device/dummy/file_audio_device.cc |
+++ b/webrtc/modules/audio_device/dummy/file_audio_device.cc |
@@ -39,18 +39,11 @@ FileAudioDevice::FileAudioDevice(const int32_t id, |
_recording(false), |
_lastCallPlayoutMillis(0), |
_lastCallRecordMillis(0), |
- _outputFile(*FileWrapper::Create()), |
- _inputFile(*FileWrapper::Create()), |
_outputFilename(outputFilename), |
_inputFilename(inputFilename), |
_clock(Clock::GetRealTimeClock()) { |
} |
-FileAudioDevice::~FileAudioDevice() { |
- delete &_outputFile; |
- delete &_inputFile; |
-} |
- |
int32_t FileAudioDevice::ActiveAudioLayer( |
AudioDeviceModule::AudioLayer& audioLayer) const { |
return -1; |
@@ -197,13 +190,15 @@ int32_t FileAudioDevice::StartPlayout() { |
} |
// PLAYOUT |
- if (!_outputFilename.empty() && |
- !_outputFile.OpenFile(_outputFilename.c_str(), false)) { |
- LOG(LS_ERROR) << "Failed to open playout file: " << _outputFilename; |
- _playing = false; |
- delete [] _playoutBuffer; |
- _playoutBuffer = NULL; |
- return -1; |
+ if (!_outputFilename.empty()) { |
+ _outputFile = rtc::File::Open(_outputFilename); |
+ if (!_outputFile.IsOpen()) { |
+ LOG(LS_ERROR) << "Failed to open playout file: " << _outputFilename; |
+ _playing = false; |
+ delete[] _playoutBuffer; |
+ _playoutBuffer = NULL; |
+ return -1; |
+ } |
} |
_ptrThreadPlay.reset(new rtc::PlatformThread( |
@@ -233,7 +228,7 @@ int32_t FileAudioDevice::StopPlayout() { |
_playoutFramesLeft = 0; |
delete [] _playoutBuffer; |
_playoutBuffer = NULL; |
- _outputFile.CloseFile(); |
+ _outputFile.Close(); |
LOG(LS_INFO) << "Stopped playout capture to output file: " |
<< _outputFilename; |
@@ -255,13 +250,15 @@ int32_t FileAudioDevice::StartRecording() { |
_recordingBuffer = new int8_t[_recordingBufferSizeIn10MS]; |
} |
- if (!_inputFilename.empty() && |
- !_inputFile.OpenFile(_inputFilename.c_str(), true)) { |
- LOG(LS_ERROR) << "Failed to open audio input file: " << _inputFilename; |
- _recording = false; |
- delete[] _recordingBuffer; |
- _recordingBuffer = NULL; |
- return -1; |
+ if (!_inputFilename.empty()) { |
+ _inputFile = rtc::File::Open(_inputFilename); |
+ if (!_inputFile.IsOpen()) { |
+ LOG(LS_ERROR) << "Failed to open audio input file: " << _inputFilename; |
+ _recording = false; |
+ delete[] _recordingBuffer; |
+ _recordingBuffer = NULL; |
+ return -1; |
+ } |
} |
_ptrThreadRec.reset(new rtc::PlatformThread( |
@@ -294,7 +291,7 @@ int32_t FileAudioDevice::StopRecording() { |
delete [] _recordingBuffer; |
_recordingBuffer = NULL; |
} |
- _inputFile.CloseFile(); |
+ _inputFile.Close(); |
LOG(LS_INFO) << "Stopped recording from input file: " |
<< _inputFilename; |
@@ -310,12 +307,12 @@ int32_t FileAudioDevice::SetAGC(bool enable) { return -1; } |
bool FileAudioDevice::AGC() const { return false; } |
int32_t FileAudioDevice::SetWaveOutVolume(uint16_t volumeLeft, |
- uint16_t volumeRight) { |
+ uint16_t volumeRight) { |
return -1; |
} |
int32_t FileAudioDevice::WaveOutVolume(uint16_t& volumeLeft, |
- uint16_t& volumeRight) const { |
+ uint16_t& volumeRight) const { |
return -1; |
} |
@@ -468,81 +465,78 @@ void FileAudioDevice::AttachAudioBuffer(AudioDeviceBuffer* audioBuffer) { |
_ptrAudioBuffer->SetPlayoutChannels(0); |
} |
-bool FileAudioDevice::PlayThreadFunc(void* pThis) |
-{ |
- return (static_cast<FileAudioDevice*>(pThis)->PlayThreadProcess()); |
+bool FileAudioDevice::PlayThreadFunc(void* pThis) { |
+ return (static_cast<FileAudioDevice*>(pThis)->PlayThreadProcess()); |
} |
-bool FileAudioDevice::RecThreadFunc(void* pThis) |
-{ |
- return (static_cast<FileAudioDevice*>(pThis)->RecThreadProcess()); |
+bool FileAudioDevice::RecThreadFunc(void* pThis) { |
+ return (static_cast<FileAudioDevice*>(pThis)->RecThreadProcess()); |
} |
-bool FileAudioDevice::PlayThreadProcess() |
-{ |
- if(!_playing) { |
- return false; |
- } |
- uint64_t currentTime = _clock->CurrentNtpInMilliseconds(); |
- _critSect.Enter(); |
+bool FileAudioDevice::PlayThreadProcess() { |
+ if (!_playing) { |
+ return false; |
+ } |
+ uint64_t currentTime = _clock->CurrentNtpInMilliseconds(); |
+ _critSect.Enter(); |
- if (_lastCallPlayoutMillis == 0 || |
- currentTime - _lastCallPlayoutMillis >= 10) { |
- _critSect.Leave(); |
- _ptrAudioBuffer->RequestPlayoutData(_playoutFramesIn10MS); |
- _critSect.Enter(); |
- |
- _playoutFramesLeft = _ptrAudioBuffer->GetPlayoutData(_playoutBuffer); |
- assert(_playoutFramesLeft == _playoutFramesIn10MS); |
- if (_outputFile.is_open()) { |
- _outputFile.Write(_playoutBuffer, kPlayoutBufferSize); |
- } |
- _lastCallPlayoutMillis = currentTime; |
- } |
- _playoutFramesLeft = 0; |
+ if (_lastCallPlayoutMillis == 0 || |
+ currentTime - _lastCallPlayoutMillis >= 10) { |
_critSect.Leave(); |
+ _ptrAudioBuffer->RequestPlayoutData(_playoutFramesIn10MS); |
+ _critSect.Enter(); |
- uint64_t deltaTimeMillis = _clock->CurrentNtpInMilliseconds() - currentTime; |
- if(deltaTimeMillis < 10) { |
- SleepMs(10 - deltaTimeMillis); |
+ _playoutFramesLeft = _ptrAudioBuffer->GetPlayoutData(_playoutBuffer); |
+ assert(_playoutFramesLeft == _playoutFramesIn10MS); |
+ if (_outputFile.IsOpen()) { |
+ _outputFile.Write(reinterpret_cast<uint8_t*>(_playoutBuffer), |
+ kPlayoutBufferSize); |
} |
+ _lastCallPlayoutMillis = currentTime; |
+ } |
+ _playoutFramesLeft = 0; |
+ _critSect.Leave(); |
- return true; |
-} |
+ uint64_t deltaTimeMillis = _clock->CurrentNtpInMilliseconds() - currentTime; |
+ if (deltaTimeMillis < 10) { |
+ SleepMs(10 - deltaTimeMillis); |
+ } |
-bool FileAudioDevice::RecThreadProcess() |
-{ |
- if (!_recording) { |
- return false; |
- } |
+ return true; |
+} |
- uint64_t currentTime = _clock->CurrentNtpInMilliseconds(); |
- _critSect.Enter(); |
+bool FileAudioDevice::RecThreadProcess() { |
+ if (!_recording) { |
+ return false; |
+ } |
- if (_lastCallRecordMillis == 0 || |
- currentTime - _lastCallRecordMillis >= 10) { |
- if (_inputFile.is_open()) { |
- if (_inputFile.Read(_recordingBuffer, kRecordingBufferSize) > 0) { |
- _ptrAudioBuffer->SetRecordedBuffer(_recordingBuffer, |
- _recordingFramesIn10MS); |
- } else { |
- _inputFile.Rewind(); |
- } |
- _lastCallRecordMillis = currentTime; |
- _critSect.Leave(); |
- _ptrAudioBuffer->DeliverRecordedData(); |
- _critSect.Enter(); |
+ uint64_t currentTime = _clock->CurrentNtpInMilliseconds(); |
+ _critSect.Enter(); |
+ |
+ if (_lastCallRecordMillis == 0 || currentTime - _lastCallRecordMillis >= 10) { |
+ if (_inputFile.IsOpen()) { |
+ if (_inputFile.Read(reinterpret_cast<uint8_t*>(_recordingBuffer), |
+ kRecordingBufferSize) > 0) { |
+ _ptrAudioBuffer->SetRecordedBuffer(_recordingBuffer, |
+ _recordingFramesIn10MS); |
+ } else { |
+ _inputFile.Seek(0); |
} |
+ _lastCallRecordMillis = currentTime; |
+ _critSect.Leave(); |
+ _ptrAudioBuffer->DeliverRecordedData(); |
+ _critSect.Enter(); |
} |
+ } |
- _critSect.Leave(); |
+ _critSect.Leave(); |
- uint64_t deltaTimeMillis = _clock->CurrentNtpInMilliseconds() - currentTime; |
- if(deltaTimeMillis < 10) { |
- SleepMs(10 - deltaTimeMillis); |
- } |
+ uint64_t deltaTimeMillis = _clock->CurrentNtpInMilliseconds() - currentTime; |
+ if (deltaTimeMillis < 10) { |
+ SleepMs(10 - deltaTimeMillis); |
+ } |
- return true; |
+ return true; |
} |
} // namespace webrtc |