Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / ppapi / proxy / ppp_content_decryptor_private_proxy.h
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 content_type,
38                           SerializedVarReceiveInput init_data);
39   void OnMsgLoadSession(PP_Instance instance,
40                         uint32_t session_id,
41                         SerializedVarReceiveInput web_session_id);
42   void OnMsgUpdateSession(PP_Instance instance,
43                           uint32_t session_id,
44                           SerializedVarReceiveInput response);
45   void OnMsgReleaseSession(PP_Instance instance, uint32_t session_id);
46   void OnMsgDecrypt(PP_Instance instance,
47                     const PPPDecryptor_Buffer& encrypted_buffer,
48                     const std::string& serialized_encrypted_block_info);
49   void OnMsgInitializeAudioDecoder(
50       PP_Instance instance,
51       const std::string& decoder_config,
52       const PPPDecryptor_Buffer& extra_data_buffer);
53   void OnMsgInitializeVideoDecoder(
54       PP_Instance instance,
55       const std::string& decoder_config,
56       const PPPDecryptor_Buffer& extra_data_buffer);
57   void OnMsgDeinitializeDecoder(PP_Instance instance,
58                                 PP_DecryptorStreamType decoder_type,
59                                 uint32_t request_id);
60   void OnMsgResetDecoder(PP_Instance instance,
61                          PP_DecryptorStreamType decoder_type,
62                          uint32_t request_id);
63   void OnMsgDecryptAndDecode(
64       PP_Instance instance,
65       PP_DecryptorStreamType decoder_type,
66       const PPPDecryptor_Buffer& encrypted_buffer,
67       const std::string& serialized_encrypted_block_info);
68
69   const PPP_ContentDecryptor_Private* ppp_decryptor_impl_;
70
71   DISALLOW_COPY_AND_ASSIGN(PPP_ContentDecryptor_Private_Proxy);
72 };
73
74 }  // namespace proxy
75 }  // namespace ppapi
76
77 #endif  // PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_