Home | History | Annotate | Download | only in proxy
      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_FLASH_DRM_RESOURCE_H_
      6 #define PPAPI_PROXY_FLASH_DRM_RESOURCE_H_
      7 
      8 #include "ppapi/proxy/plugin_resource.h"
      9 #include "ppapi/proxy/ppapi_proxy_export.h"
     10 #include "ppapi/shared_impl/tracked_callback.h"
     11 #include "ppapi/thunk/ppb_flash_drm_api.h"
     12 
     13 namespace ppapi {
     14 struct FileRefCreateInfo;
     15 }
     16 
     17 namespace ppapi {
     18 namespace proxy {
     19 
     20 class FlashDRMResource
     21     : public PluginResource,
     22       public thunk::PPB_Flash_DRM_API {
     23  public:
     24   FlashDRMResource(Connection connection,
     25                    PP_Instance instance);
     26   virtual ~FlashDRMResource();
     27 
     28   // Resource override.
     29   virtual thunk::PPB_Flash_DRM_API* AsPPB_Flash_DRM_API() OVERRIDE;
     30 
     31   // PPB_Flash_DRM_API implementation.
     32   virtual int32_t GetDeviceID(PP_Var* id,
     33                               scoped_refptr<TrackedCallback> callback) OVERRIDE;
     34   virtual PP_Bool GetHmonitor(int64_t* hmonitor) OVERRIDE;
     35   virtual int32_t GetVoucherFile(
     36       PP_Resource* file_ref,
     37       scoped_refptr<TrackedCallback> callback) OVERRIDE;
     38   virtual int32_t MonitorIsExternal(
     39       PP_Bool* is_external,
     40       scoped_refptr<TrackedCallback> callback) OVERRIDE;
     41 
     42  private:
     43   void OnPluginMsgGetDeviceIDReply(PP_Var* dest,
     44                                    scoped_refptr<TrackedCallback> callback,
     45                                    const ResourceMessageReplyParams& params,
     46                                    const std::string& id);
     47   void OnPluginMsgGetVoucherFileReply(PP_Resource* dest,
     48                                       scoped_refptr<TrackedCallback> callback,
     49                                       const ResourceMessageReplyParams& params,
     50                                       const FileRefCreateInfo& file_info);
     51   void OnPluginMsgMonitorIsExternalReply(
     52       PP_Bool* dest,
     53       scoped_refptr<TrackedCallback> callback,
     54       const ResourceMessageReplyParams& params,
     55       PP_Bool is_external);
     56 
     57   DISALLOW_COPY_AND_ASSIGN(FlashDRMResource);
     58 };
     59 
     60 }  // namespace proxy
     61 }  // namespace ppapi
     62 
     63 #endif  // PPAPI_PROXY_FLASH_DRM_RESOURCE_H_
     64