Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(244)

Unified Diff: components/copresence/mediums/audio/audio_recorder.h

Issue 637223011: Redesign the copresence audio handlers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « components/copresence/mediums/audio/audio_player_unittest.cc ('k') | components/copresence/mediums/audio/audio_recorder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698