• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 session_id,
37                           SerializedVarReceiveInput type,
38                           SerializedVarReceiveInput init_data);
39   void OnMsgUpdateSession(PP_Instance instance,
40                           uint32_t session_id,
41                           SerializedVarReceiveInput response);
42   void OnMsgReleaseSession(PP_Instance instance, uint32_t session_id);
43   void OnMsgDecrypt(PP_Instance instance,
44                     const PPPDecryptor_Buffer& encrypted_buffer,
45                     const std::string& serialized_encrypted_block_info);
46   void OnMsgInitializeAudioDecoder(
47       PP_Instance instance,
48       const std::string& decoder_config,
49       const PPPDecryptor_Buffer& extra_data_buffer);
50   void OnMsgInitializeVideoDecoder(
51       PP_Instance instance,
52       const std::string& decoder_config,
53       const PPPDecryptor_Buffer& extra_data_buffer);
54   void OnMsgDeinitializeDecoder(PP_Instance instance,
55                                 PP_DecryptorStreamType decoder_type,
56                                 uint32_t request_id);
57   void OnMsgResetDecoder(PP_Instance instance,
58                          PP_DecryptorStreamType decoder_type,
59                          uint32_t request_id);
60   void OnMsgDecryptAndDecode(
61       PP_Instance instance,
62       PP_DecryptorStreamType decoder_type,
63       const PPPDecryptor_Buffer& encrypted_buffer,
64       const std::string& serialized_encrypted_block_info);
65 
66   const PPP_ContentDecryptor_Private* ppp_decryptor_impl_;
67 
68   DISALLOW_COPY_AND_ASSIGN(PPP_ContentDecryptor_Private_Proxy);
69 };
70 
71 }  // namespace proxy
72 }  // namespace ppapi
73 
74 #endif  // PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_
75