Chromium Code Reviews| Index: media/audio/audio_debug_file_writer.h |
| diff --git a/media/audio/audio_file_writer.h b/media/audio/audio_debug_file_writer.h |
| similarity index 36% |
| rename from media/audio/audio_file_writer.h |
| rename to media/audio/audio_debug_file_writer.h |
| index dabfa23dd95566b78e32f34e6312a5608a9a2b9d..49be963ab3303674a64dd6f4d1fe9f0b64f84551 100644 |
| --- a/media/audio/audio_file_writer.h |
| +++ b/media/audio/audio_debug_file_writer.h |
| @@ -1,45 +1,72 @@ |
| -// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
|
DaleCurtis
2017/02/21 18:00:58
We don't update copyright when moving IIRC.
Henrik Grunell
2017/02/22 10:47:43
Done.
|
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef MEDIA_AUDIO_AUDIO_FILE_WRITER_H_ |
| -#define MEDIA_AUDIO_AUDIO_FILE_WRITER_H_ |
| +#ifndef MEDIA_AUDIO_AUDIO_DEBUG_FILE_WRITER_H_ |
| +#define MEDIA_AUDIO_AUDIO_DEBUG_FILE_WRITER_H_ |
| + |
| +#include <stdint.h> |
| #include <memory> |
| -namespace base { |
| -class FilePath; |
| -} |
| +#include "base/files/file.h" |
| +#include "base/macros.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "base/sequence_checker.h" |
| +#include "base/single_thread_task_runner.h" |
| +#include "media/base/audio_parameters.h" |
| +#include "media/base/media_export.h" |
| namespace media { |
| class AudioBus; |
| -// A writer interface used for writing audio data to file for debugging |
| -// purposes. |
| -class AudioFileWriter { |
| +// Writes audio data used for debugging purposes. All operations are |
| +// non-blocking. |
| +class MEDIA_EXPORT AudioDebugFileWriter { |
| public: |
| - virtual ~AudioFileWriter() {} |
| + AudioDebugFileWriter( |
| + const AudioParameters& params, |
| + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner); |
| + ~AudioDebugFileWriter(); |
| // Must be called before calling Write() for the first time after creation or |
| // Stop() call. Can be called on any sequence; Write() and Stop() must be |
| // called on the same sequence as Start(). |
| - virtual void Start(const base::FilePath& file) = 0; |
| + void Start(const base::FilePath& file); |
| // Must be called to finish recording. Each call to Start() requires a call to |
| // Stop(). Will be automatically called on destruction. |
| - virtual void Stop() = 0; |
| + void Stop(); |
| // Write |data| to file. |
| - virtual void Write(std::unique_ptr<AudioBus> data) = 0; |
| + void Write(std::unique_ptr<AudioBus> data); |
| // Returns true if Write() call scheduled at this point will most likely write |
| // data to the file, and false if it most likely will be a no-op. The result |
| // may be ambigulous if Start() or Stop() is executed at the moment. Can be |
| // called from any sequence. |
| - virtual bool WillWrite() = 0; |
| + bool WillWrite(); |
| + |
| + private: |
| + class AudioFileWriter; |
| + |
| + // AudioFileWriter deleter. |
| + struct DeleteOnFileThread { |
| + void operator()(AudioFileWriter* ptr) const; |
| + }; |
| + |
| + using AudioFileWriterUniquePtr = |
| + std::unique_ptr<AudioFileWriter, DeleteOnFileThread>; |
| + |
| + AudioFileWriterUniquePtr file_writer_; |
| + const AudioParameters params_; |
| + base::SequenceChecker client_sequence_checker_; |
| + |
| + // The task runner to do file output operations on. |
| + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; |
| }; |
|
DaleCurtis
2017/02/21 18:00:58
DISALLOW_COPY_AND_ASSIGN()
Henrik Grunell
2017/02/22 10:47:43
Done.
|
| -} // namespace media |
| +} // namspace media |
| -#endif // MEDIA_AUDIO_AUDIO_FILE_WRITER_H_ |
| +#endif // MEDIA_AUDIO_AUDIO_DEBUG_FILE_WRITER_H_ |