1 // Copyright 2013 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_OUTPUT_PROTECTION_RESOURCE_H_ 6 #define PPAPI_PROXY_OUTPUT_PROTECTION_RESOURCE_H_ 7 8 #include "base/compiler_specific.h" 9 #include "ppapi/c/private/ppb_output_protection_private.h" 10 #include "ppapi/proxy/device_enumeration_resource_helper.h" 11 #include "ppapi/proxy/plugin_resource.h" 12 #include "ppapi/thunk/ppb_output_protection_api.h" 13 14 namespace ppapi { 15 namespace proxy { 16 17 class OutputProtectionResource 18 : public PluginResource, 19 public ::ppapi::thunk::PPB_OutputProtection_API { 20 public: 21 OutputProtectionResource(Connection connection, 22 PP_Instance instance); 23 24 private: 25 virtual ~OutputProtectionResource(); 26 27 // PluginResource overrides. 28 virtual thunk::PPB_OutputProtection_API* AsPPB_OutputProtection_API() 29 OVERRIDE; 30 31 // PPB_OutputProtection_API implementation. 32 virtual int32_t QueryStatus( 33 uint32_t* link_mask, 34 uint32_t* protection_mask, 35 const scoped_refptr<TrackedCallback>& callback) OVERRIDE; 36 virtual int32_t EnableProtection( 37 uint32_t desired_method_mask, 38 const scoped_refptr<TrackedCallback>& callback) OVERRIDE; 39 40 void OnPluginMsgQueryStatusReply( 41 uint32_t* out_link_mask, 42 uint32_t* out_protection_mask, 43 const ResourceMessageReplyParams& params, 44 uint32_t link_mask, 45 uint32_t protection_mask); 46 void OnPluginMsgEnableProtectionReply( 47 const ResourceMessageReplyParams& params); 48 49 scoped_refptr<TrackedCallback> query_status_callback_; 50 scoped_refptr<TrackedCallback> enable_protection_callback_; 51 52 DISALLOW_COPY_AND_ASSIGN(OutputProtectionResource); 53 }; 54 55 } // namespace proxy 56 } // namespace ppapi 57 58 #endif // PPAPI_PROXY_OUTPUT_PROTECTION_RESOURCE_H_ 59