Chromium Code Reviews| Index: webrtc/modules/audio_processing/test/conversational_speech/wavreader_adaptor.cc |
| diff --git a/webrtc/modules/audio_processing/test/conversational_speech/wavreader_adaptor.cc b/webrtc/modules/audio_processing/test/conversational_speech/wavreader_adaptor.cc |
| index b441a044eea65a03f71586c9623c70b3feacdad7..84d84449a50dca011a4256f5d8eda9d5016489a5 100644 |
| --- a/webrtc/modules/audio_processing/test/conversational_speech/wavreader_adaptor.cc |
| +++ b/webrtc/modules/audio_processing/test/conversational_speech/wavreader_adaptor.cc |
| @@ -10,47 +10,56 @@ |
| #include "webrtc/modules/audio_processing/test/conversational_speech/wavreader_adaptor.h" |
| +#include <cstddef> |
| + |
| +#include "webrtc/base/array_view.h" |
| #include "webrtc/base/checks.h" |
| +#include "webrtc/common_audio/wav_file.h" |
| +#include "webrtc/typedefs.h" |
| namespace webrtc { |
| namespace test { |
| -namespace conversational_speech { |
| +namespace { |
| -WavReaderAdaptor::WavReaderAdaptor(const std::string& filepath) { |
| - // TODO(alessiob): implement. |
| -} |
| +using conversational_speech::WavReaderInterface; |
| -WavReaderAdaptor::~WavReaderAdaptor() {} |
| +class WavReaderAdaptor : public WavReaderInterface { |
|
kwiberg-webrtc
2017/03/29 09:08:28
final? Like const, it's usually a good idea to use
AleBzk
2017/03/29 09:34:43
Done.
|
| + public: |
| + explicit WavReaderAdaptor(const std::string& filepath) |
| + : wav_reader_(filepath) {} |
| + ~WavReaderAdaptor() override = default; |
| -size_t WavReaderAdaptor::ReadFloatSamples(size_t num_samples, float* samples) { |
| - // TODO(alessiob): implement. |
| - FATAL(); |
| - return 0u; |
| -} |
| + size_t ReadFloatSamples(rtc::ArrayView<float> samples) override { |
| + return wav_reader_.ReadSamples(samples.size(), samples.begin()); |
| + } |
| -size_t WavReaderAdaptor::ReadInt16Samples( |
| - size_t num_samples, int16_t* samples) { |
| - // TODO(alessiob): implement. |
| - FATAL(); |
| - return 0u; |
| -} |
| + size_t ReadInt16Samples(rtc::ArrayView<int16_t> samples) override { |
| + return wav_reader_.ReadSamples(samples.size(), samples.begin()); |
| + } |
| -int WavReaderAdaptor::sample_rate() const { |
| - // TODO(alessiob): implement. |
| - FATAL(); |
| - return 0; |
| -} |
| + int sample_rate() const override { |
| + return wav_reader_.sample_rate(); |
| + } |
| -size_t WavReaderAdaptor::num_channels() const { |
| - // TODO(alessiob): implement. |
| - FATAL(); |
| - return 0u; |
| -} |
| + size_t num_channels() const override { |
| + return wav_reader_.num_channels(); |
| + } |
| + |
| + size_t num_samples() const override { |
| + return wav_reader_.num_samples(); |
| + } |
| + |
| + private: |
| + WavReader wav_reader_; |
| +}; |
| + |
| +} // namespace |
| + |
| +namespace conversational_speech { |
| -size_t WavReaderAdaptor::num_samples() const { |
| - // TODO(alessiob): implement. |
| - FATAL(); |
| - return 0u; |
| +std::unique_ptr<WavReaderInterface> CreateWavReaderAdaptor( |
| + const std::string& filepath) { |
| + return std::unique_ptr<WavReaderAdaptor>(new WavReaderAdaptor(filepath)); |
| } |
| } // namespace conversational_speech |