1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_ 6 #define PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_ 7 8 #include <string> 9 10 #include "ppapi/c/pp_instance.h" 11 #include "ppapi/c/private/ppp_content_decryptor_private.h" 12 #include "ppapi/proxy/interface_proxy.h" 13 #include "ppapi/proxy/serialized_structs.h" 14 #include "ppapi/shared_impl/host_resource.h" 15 16 namespace ppapi { 17 namespace proxy { 18 19 class SerializedVarReceiveInput; 20 21 class PPP_ContentDecryptor_Private_Proxy : public InterfaceProxy { 22 public: 23 explicit PPP_ContentDecryptor_Private_Proxy(Dispatcher* dispatcher); 24 virtual ~PPP_ContentDecryptor_Private_Proxy(); 25 26 static const PPP_ContentDecryptor_Private* GetProxyInterface(); 27 28 private: 29 // InterfaceProxy implementation. 30 virtual bool OnMessageReceived(const IPC::Message& msg); 31 32 // Message handlers. 33 void OnMsgInitialize(PP_Instance instance, 34 SerializedVarReceiveInput key_system); 35 void OnMsgCreateSession(PP_Instance instance, 36 uint32_t promise_id, 37 SerializedVarReceiveInput init_data_type, 38 SerializedVarReceiveInput init_data, 39 PP_SessionType session_type); 40 void OnMsgLoadSession(PP_Instance instance, 41 uint32_t promise_id, 42 SerializedVarReceiveInput web_session_id); 43 void OnMsgUpdateSession(PP_Instance instance, 44 uint32_t promise_id, 45 SerializedVarReceiveInput web_session_id, 46 SerializedVarReceiveInput response); 47 void OnMsgReleaseSession(PP_Instance instance, 48 uint32_t promise_id, 49 SerializedVarReceiveInput web_session_id); 50 void OnMsgDecrypt(PP_Instance instance, 51 const PPPDecryptor_Buffer& encrypted_buffer, 52 const std::string& serialized_encrypted_block_info); 53 void OnMsgInitializeAudioDecoder( 54 PP_Instance instance, 55 const std::string& decoder_config, 56 const PPPDecryptor_Buffer& extra_data_buffer); 57 void OnMsgInitializeVideoDecoder( 58 PP_Instance instance, 59 const std::string& decoder_config, 60 const PPPDecryptor_Buffer& extra_data_buffer); 61 void OnMsgDeinitializeDecoder(PP_Instance instance, 62 PP_DecryptorStreamType decoder_type, 63 uint32_t request_id); 64 void OnMsgResetDecoder(PP_Instance instance, 65 PP_DecryptorStreamType decoder_type, 66 uint32_t request_id); 67 void OnMsgDecryptAndDecode( 68 PP_Instance instance, 69 PP_DecryptorStreamType decoder_type, 70 const PPPDecryptor_Buffer& encrypted_buffer, 71 const std::string& serialized_encrypted_block_info); 72 73 const PPP_ContentDecryptor_Private* ppp_decryptor_impl_; 74 75 DISALLOW_COPY_AND_ASSIGN(PPP_ContentDecryptor_Private_Proxy); 76 }; 77 78 } // namespace proxy 79 } // namespace ppapi 80 81 #endif // PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_ 82