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