| Index: content/renderer/media/audio_input_device.h
|
| diff --git a/content/renderer/media/audio_input_device.h b/content/renderer/media/audio_input_device.h
|
| index 8ef72b7e277704866cce16215f96b760ab671ad3..7a06a9aa8300c70e1b88ad6e4ee14fac87f7c26d 100644
|
| --- a/content/renderer/media/audio_input_device.h
|
| +++ b/content/renderer/media/audio_input_device.h
|
| @@ -61,7 +61,7 @@
|
| // Implementation notes:
|
| //
|
| // - Start() is asynchronous/non-blocking.
|
| -// - Stop() is synchronous/blocking.
|
| +// - Stop() is asynchronous/non-blocking.
|
| // - SetDevice() is asynchronous/non-blocking.
|
| // - The user must call Stop() before deleting the class instance.
|
|
|
| @@ -87,7 +87,7 @@
|
| // OnCaptureStopped etc.) and ensure that we can deliver these notifications
|
| // to any clients using this class.
|
| class CONTENT_EXPORT AudioInputDevice
|
| - : public AudioInputMessageFilter::Delegate,
|
| + : NON_EXPORTED_BASE(public media::AudioInputIPCDelegate),
|
| NON_EXPORTED_BASE(public ScopedLoopObserver),
|
| public base::RefCountedThreadSafe<AudioInputDevice> {
|
| public:
|
| @@ -117,9 +117,12 @@ class CONTENT_EXPORT AudioInputDevice
|
| };
|
|
|
| // Methods called on main render thread -------------------------------------
|
| - AudioInputDevice(const media::AudioParameters& params,
|
| - CaptureCallback* callback,
|
| - CaptureEventHandler* event_handler);
|
| + AudioInputDevice(media::AudioInputIPC* ipc,
|
| + const scoped_refptr<base::MessageLoopProxy>& io_loop);
|
| +
|
| + void Initialize(const media::AudioParameters& params,
|
| + CaptureCallback* callback,
|
| + CaptureEventHandler* event_handler);
|
|
|
| // Specify the |session_id| to query which device to use. This method is
|
| // asynchronous/non-blocking.
|
| @@ -142,13 +145,9 @@ class CONTENT_EXPORT AudioInputDevice
|
| // Returns |true| on success.
|
| bool GetVolume(double* volume);
|
|
|
| - double sample_rate() const {
|
| - return audio_parameters_.sample_rate();
|
| - }
|
| + double sample_rate() const { return audio_parameters_.sample_rate(); }
|
|
|
| - int buffer_size() const {
|
| - return audio_parameters_.frames_per_buffer();
|
| - }
|
| + int buffer_size() const { return audio_parameters_.frames_per_buffer(); }
|
|
|
| // Sets the Automatic Gain Control state to on or off.
|
| // This method must be called before Start(). It will not have any effect
|
| @@ -156,13 +155,15 @@ class CONTENT_EXPORT AudioInputDevice
|
| void SetAutomaticGainControl(bool enabled);
|
|
|
| // Methods called on IO thread ----------------------------------------------
|
| - // AudioInputMessageFilter::Delegate impl., called by AudioInputMessageFilter.
|
| + // media::AudioInputIPCDelegate implementation.
|
| virtual void OnStreamCreated(base::SharedMemoryHandle handle,
|
| base::SyncSocket::Handle socket_handle,
|
| - uint32 length) OVERRIDE;
|
| + int length) OVERRIDE;
|
| virtual void OnVolume(double volume) OVERRIDE;
|
| - virtual void OnStateChanged(AudioStreamState state) OVERRIDE;
|
| + virtual void OnStateChanged(
|
| + media::AudioInputIPCDelegate::State state) OVERRIDE;
|
| virtual void OnDeviceReady(const std::string& device_id) OVERRIDE;
|
| + virtual void OnIPCClosed() OVERRIDE;
|
|
|
| protected:
|
| virtual ~AudioInputDevice();
|
| @@ -181,8 +182,6 @@ class CONTENT_EXPORT AudioInputDevice
|
| void SetVolumeOnIOThread(double volume);
|
| void SetAutomaticGainControlOnIOThread(bool enabled);
|
|
|
| - void Send(IPC::Message* message);
|
| -
|
| // MessageLoop::DestructionObserver implementation for the IO loop.
|
| // If the IO loop dies before we do, we shut down the audio thread from here.
|
| virtual void WillDestroyCurrentMessageLoop() OVERRIDE;
|
| @@ -193,14 +192,10 @@ class CONTENT_EXPORT AudioInputDevice
|
| CaptureCallback* callback_;
|
| CaptureEventHandler* event_handler_;
|
|
|
| - // The current volume scaling [0.0, 1.0] of the audio stream.
|
| - double volume_;
|
| -
|
| - // Cached audio input message filter (lives on the main render thread).
|
| - scoped_refptr<AudioInputMessageFilter> filter_;
|
| + media::AudioInputIPC* ipc_;
|
|
|
| // Our stream ID on the message filter. Only modified on the IO thread.
|
| - int32 stream_id_;
|
| + int stream_id_;
|
|
|
| // The media session ID used to identify which input device to be started.
|
| // Only modified on the IO thread.
|
|
|