summaryrefslogtreecommitdiffstats
path: root/webkit/plugins/ppapi/ppb_audio_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/plugins/ppapi/ppb_audio_impl.h')
-rw-r--r--webkit/plugins/ppapi/ppb_audio_impl.h65
1 files changed, 32 insertions, 33 deletions
diff --git a/webkit/plugins/ppapi/ppb_audio_impl.h b/webkit/plugins/ppapi/ppb_audio_impl.h
index 9ea2588..201193f 100644
--- a/webkit/plugins/ppapi/ppb_audio_impl.h
+++ b/webkit/plugins/ppapi/ppb_audio_impl.h
@@ -13,7 +13,9 @@
#include "ppapi/c/ppb_audio.h"
#include "ppapi/c/ppb_audio_config.h"
#include "ppapi/c/trusted/ppb_audio_trusted.h"
+#include "ppapi/shared_impl/audio_config_impl.h"
#include "ppapi/shared_impl/audio_impl.h"
+#include "ppapi/thunk/ppb_audio_trusted_api.h"
#include "webkit/plugins/ppapi/plugin_delegate.h"
#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
#include "webkit/plugins/ppapi/resource.h"
@@ -23,54 +25,51 @@ namespace ppapi {
class PluginInstance;
-class PPB_AudioConfig_Impl : public Resource {
+// The implementation is actually in AudioConfigImpl.
+class PPB_AudioConfig_Impl : public Resource,
+ public ::ppapi::AudioConfigImpl {
public:
- PPB_AudioConfig_Impl(PluginInstance* instance,
- PP_AudioSampleRate sample_rate,
- uint32_t sample_frame_count);
- size_t BufferSize();
- static const PPB_AudioConfig* GetInterface();
+ // Note that you must call Init (on AudioConfigImpl) before using this class.
+ PPB_AudioConfig_Impl(PluginInstance* instance);
+ ~PPB_AudioConfig_Impl();
- PP_AudioSampleRate sample_rate() { return sample_rate_; }
- uint32_t sample_frame_count() { return sample_frame_count_; }
+ // ResourceObjectBase overrides.
+ virtual ::ppapi::thunk::PPB_AudioConfig_API* AsAudioConfig_API() OVERRIDE;
private:
- // Resource override.
- virtual PPB_AudioConfig_Impl* AsPPB_AudioConfig_Impl();
-
- PP_AudioSampleRate sample_rate_;
- uint32_t sample_frame_count_;
+ DISALLOW_COPY_AND_ASSIGN(PPB_AudioConfig_Impl);
};
// Some of the backend functionality of this class is implemented by the
// AudioImpl so it can be shared with the proxy.
class PPB_Audio_Impl : public Resource,
- public pp::shared_impl::AudioImpl,
+ public ::ppapi::AudioImpl,
+ public ::ppapi::thunk::PPB_AudioTrusted_API,
public PluginDelegate::PlatformAudio::Client {
public:
+ // After creation, either call Init (for non-trusted init) or OpenTrusted
+ // (for trusted init).
explicit PPB_Audio_Impl(PluginInstance* instance);
virtual ~PPB_Audio_Impl();
- static const PPB_Audio* GetInterface();
- static const PPB_AudioTrusted* GetTrustedInterface();
-
- // PPB_Audio implementation.
- bool Init(PluginDelegate* plugin_delegate,
- PP_Resource config_id,
+ // Initialization function for non-trusted init.
+ bool Init(PP_Resource config_id,
PPB_Audio_Callback user_callback, void* user_data);
- PP_Resource GetCurrentConfig();
- bool StartPlayback();
- bool StopPlayback();
- // PPB_Audio_Trusted implementation.
- int32_t Open(PluginDelegate* plugin_delegate,
- PP_Resource config_id,
- PP_CompletionCallback create_callback);
- int32_t GetSyncSocket(int* sync_socket);
- int32_t GetSharedMemory(int* shm_handle, uint32_t* shm_size);
+ // ResourceObjectBase overrides.
+ virtual ::ppapi::thunk::PPB_Audio_API* AsAudio_API();
+ virtual ::ppapi::thunk::PPB_AudioTrusted_API* AsAudioTrusted_API();
+
+ // PPB_Audio_API implementation.
+ virtual PP_Resource GetCurrentConfig() OVERRIDE;
+ virtual PP_Bool StartPlayback() OVERRIDE;
+ virtual PP_Bool StopPlayback() OVERRIDE;
- // Resource override.
- virtual PPB_Audio_Impl* AsPPB_Audio_Impl();
+ // PPB_AudioTrusted_API implementation.
+ virtual int32_t OpenTrusted(PP_Resource config_id,
+ PP_CompletionCallback create_callback) OVERRIDE;
+ virtual int32_t GetSyncSocket(int* sync_socket) OVERRIDE;
+ virtual int32_t GetSharedMemory(int* shm_handle, uint32_t* shm_size) OVERRIDE;
private:
// PluginDelegate::PlatformAudio::Client implementation.
@@ -78,8 +77,8 @@ class PPB_Audio_Impl : public Resource,
size_t shared_memory_size_,
base::SyncSocket::Handle socket);
- // AudioConfig used for creating this Audio object.
- scoped_refptr<PPB_AudioConfig_Impl> config_;
+ // AudioConfig used for creating this Audio object. We own a ref.
+ PP_Resource config_id_;
// PluginDelegate audio object that we delegate audio IPC through. We don't
// own this pointer but are responsible for calling Shutdown on it.