Index: components/copresence/mediums/audio/audio_recorder.h |
diff --git a/components/copresence/mediums/audio/audio_recorder.h b/components/copresence/mediums/audio/audio_recorder.h |
index e554f01bd2aa73849864d96a524eec6879387482..4dfe0a14aaabcfaaa87a00c025cda2ceaee2f4c4 100644 |
--- a/components/copresence/mediums/audio/audio_recorder.h |
+++ b/components/copresence/mediums/audio/audio_recorder.h |
@@ -14,101 +14,26 @@ |
#include "media/audio/audio_parameters.h" |
#include "media/base/audio_converter.h" |
-namespace base { |
-class MessageLoop; |
-} |
- |
-namespace media { |
-class AudioBus; |
-} |
- |
namespace copresence { |
// The AudioRecorder class will record audio until told to stop. |
-class AudioRecorder : public media::AudioInputStream::AudioInputCallback, |
- public media::AudioConverter::InputCallback { |
+class AudioRecorder { |
public: |
- typedef base::Callback<void(const std::string&)> DecodeSamplesCallback; |
- |
- explicit AudioRecorder(const DecodeSamplesCallback& decode_callback); |
+ typedef base::Callback<void(const std::string&)> RecordedSamplesCallback; |
// Initializes the object. Do not use this object before calling this method. |
- virtual void Initialize(); |
+ virtual void Initialize(const RecordedSamplesCallback& decode_callback) = 0; |
- virtual void Record(); |
- virtual void Stop(); |
+ virtual void Record() = 0; |
+ virtual void Stop() = 0; |
// Cleans up and deletes this object. Do not use object after this call. |
- virtual void Finalize(); |
- |
- bool IsRecording(); |
- |
- // Takes ownership of the stream. |
- void set_input_stream_for_testing( |
- media::AudioInputStream* input_stream_for_testing) { |
- input_stream_for_testing_.reset(input_stream_for_testing); |
- } |
+ virtual void Finalize() = 0; |
- // Takes ownership of the params. |
- void set_params_for_testing(media::AudioParameters* params_for_testing) { |
- params_for_testing_.reset(params_for_testing); |
- } |
+ virtual bool IsRecording() = 0; |
protected: |
- ~AudioRecorder() override; |
- void set_is_recording(bool is_recording) { is_recording_ = is_recording; } |
- |
- private: |
- friend class AudioRecorderTest; |
- FRIEND_TEST_ALL_PREFIXES(AudioRecorderTest, BasicRecordAndStop); |
- FRIEND_TEST_ALL_PREFIXES(AudioRecorderTest, OutOfOrderRecordAndStopMultiple); |
- |
- // Methods to do our various operations; all of these need to be run on the |
- // audio thread. |
- void InitializeOnAudioThread(); |
- void RecordOnAudioThread(); |
- void StopOnAudioThread(); |
- void StopAndCloseOnAudioThread(); |
- void FinalizeOnAudioThread(); |
- |
- // AudioInputStream::AudioInputCallback overrides: |
- // Called by the audio recorder when a full packet of audio data is |
- // available. This is called from a special audio thread and the |
- // implementation should return as soon as possible. |
- void OnData(media::AudioInputStream* stream, |
- const media::AudioBus* source, |
- uint32 hardware_delay_bytes, |
- double volume) override; |
- void OnError(media::AudioInputStream* stream) override; |
- |
- // AudioConverter::InputCallback overrides: |
- double ProvideInput(media::AudioBus* dest, |
- base::TimeDelta buffer_delay) override; |
- |
- // Flushes the audio loop, making sure that any queued operations are |
- // performed. |
- void FlushAudioLoopForTesting(); |
- |
- bool is_recording_; |
- |
- media::AudioInputStream* stream_; |
- DecodeSamplesCallback decode_callback_; |
- |
- // ProvideInput will use this buffer as its source. |
- const media::AudioBus* temp_conversion_buffer_; |
- |
- // Outside of the ctor/Initialize method, only access the next variables on |
- // the recording thread. |
- scoped_ptr<media::AudioBus> buffer_; |
- int total_buffer_frames_; |
- int buffer_frame_index_; |
- |
- scoped_ptr<media::AudioConverter> converter_; |
- |
- scoped_ptr<media::AudioInputStream> input_stream_for_testing_; |
- scoped_ptr<media::AudioParameters> params_for_testing_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AudioRecorder); |
+ virtual ~AudioRecorder() {}; |
}; |
} // namespace copresence |