Index: webkit/plugins/ppapi/plugin_delegate.h |
diff --git a/webkit/plugins/ppapi/plugin_delegate.h b/webkit/plugins/ppapi/plugin_delegate.h |
index a5323d0c3e7a692227cd8965e98ae87877c88a43..aa287e13bd66160ed6bc388c76ae092c29fdfb25 100644 |
--- a/webkit/plugins/ppapi/plugin_delegate.h |
+++ b/webkit/plugins/ppapi/plugin_delegate.h |
@@ -187,19 +187,21 @@ class PluginDelegate { |
virtual bool Echo(const base::Callback<void()>& callback) = 0; |
}; |
- class PlatformAudio { |
- public: |
- class Client { |
- protected: |
- virtual ~Client() {} |
+ // The (interface for the) client used by |PlatformAudio| and |
+ // |PlatformAudioInput|. |
+ class PlatformAudioCommonClient { |
+ protected: |
+ virtual ~PlatformAudioCommonClient() {} |
- public: |
- // Called when the stream is created. |
- virtual void StreamCreated(base::SharedMemoryHandle shared_memory_handle, |
- size_t shared_memory_size, |
- base::SyncSocket::Handle socket) = 0; |
- }; |
+ public: |
+ // Called when the stream is created. |
+ virtual void StreamCreated(base::SharedMemoryHandle shared_memory_handle, |
+ size_t shared_memory_size, |
+ base::SyncSocket::Handle socket) = 0; |
+ }; |
+ class PlatformAudio { |
+ public: |
// Starts the playback. Returns false on error or if called before the |
// stream is created or after the stream is closed. |
virtual bool StartPlayback() = 0; |
@@ -216,6 +218,24 @@ class PluginDelegate { |
virtual ~PlatformAudio() {} |
}; |
+ class PlatformAudioInput { |
+ public: |
+ // Starts the playback. Returns false on error or if called before the |
+ // stream is created or after the stream is closed. |
+ virtual bool StartCapture() = 0; |
+ |
+ // Stops the capture. Returns false on error or if called before the stream |
+ // is created or after the stream is closed. |
+ virtual bool StopCapture() = 0; |
+ |
+ // Closes the stream. Make sure to call this before the object is |
+ // destructed. |
+ virtual void ShutDown() = 0; |
+ |
+ protected: |
+ virtual ~PlatformAudioInput() {} |
+ }; |
+ |
// Interface for PlatformVideoDecoder is directly inherited from general media |
// VideoDecodeAccelerator interface. |
class PlatformVideoDecoder : public media::VideoDecodeAccelerator { |
@@ -292,7 +312,13 @@ class PluginDelegate { |
// to clean up the corresponding resources allocated during this call. |
virtual PlatformAudio* CreateAudio(uint32_t sample_rate, |
uint32_t sample_count, |
- PlatformAudio::Client* client) = 0; |
+ PlatformAudioCommonClient* client) = 0; |
+ |
+ // The caller is responsible for calling Shutdown() on the returned pointer |
+ // to clean up the corresponding resources allocated during this call. |
+ virtual PlatformAudioInput* CreateAudioInput(uint32_t sample_rate, |
dmichael (off chromium)
2011/11/17 18:24:04
nit: I would usually put sample_rate on the next l
|
+ uint32_t sample_count, |
+ PlatformAudioCommonClient* client) = 0; |
// A pointer is returned immediately, but it is not ready to be used until |
// BrokerConnected has been called. |