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 |