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 // From private/ppb_output_protection_private.idl, 6 // modified Thu Oct 31 12:30:06 2013. 7 8 #include "ppapi/c/pp_completion_callback.h" 9 #include "ppapi/c/pp_errors.h" 10 #include "ppapi/c/private/ppb_output_protection_private.h" 11 #include "ppapi/shared_impl/tracked_callback.h" 12 #include "ppapi/thunk/enter.h" 13 #include "ppapi/thunk/ppapi_thunk_export.h" 14 #include "ppapi/thunk/ppb_output_protection_api.h" 15 16 namespace ppapi { 17 namespace thunk { 18 19 namespace { 20 21 PP_Resource Create(PP_Instance instance) { 22 VLOG(4) << "PPB_OutputProtection_Private::Create()"; 23 EnterResourceCreation enter(instance); 24 if (enter.failed()) 25 return 0; 26 return enter.functions()->CreateOutputProtectionPrivate(instance); 27 } 28 29 PP_Bool IsOutputProtection(PP_Resource resource) { 30 VLOG(4) << "PPB_OutputProtection_Private::IsOutputProtection()"; 31 EnterResource<PPB_OutputProtection_API> enter(resource, false); 32 return PP_FromBool(enter.succeeded()); 33 } 34 35 int32_t QueryStatus(PP_Resource resource, 36 uint32_t* link_mask, 37 uint32_t* protection_mask, 38 struct PP_CompletionCallback callback) { 39 VLOG(4) << "PPB_OutputProtection_Private::QueryStatus()"; 40 EnterResource<PPB_OutputProtection_API> enter(resource, callback, true); 41 if (enter.failed()) 42 return enter.retval(); 43 return enter.SetResult(enter.object()->QueryStatus(link_mask, 44 protection_mask, 45 enter.callback())); 46 } 47 48 int32_t EnableProtection(PP_Resource resource, 49 uint32_t desired_protection_mask, 50 struct PP_CompletionCallback callback) { 51 VLOG(4) << "PPB_OutputProtection_Private::EnableProtection()"; 52 EnterResource<PPB_OutputProtection_API> enter(resource, callback, true); 53 if (enter.failed()) 54 return enter.retval(); 55 return enter.SetResult(enter.object()->EnableProtection( 56 desired_protection_mask, 57 enter.callback())); 58 } 59 60 const PPB_OutputProtection_Private_0_1 61 g_ppb_outputprotection_private_thunk_0_1 = { 62 &Create, 63 &IsOutputProtection, 64 &QueryStatus, 65 &EnableProtection 66 }; 67 68 } // namespace 69 70 PPAPI_THUNK_EXPORT const PPB_OutputProtection_Private_0_1* 71 GetPPB_OutputProtection_Private_0_1_Thunk() { 72 return &g_ppb_outputprotection_private_thunk_0_1; 73 } 74 75 } // namespace thunk 76 } // namespace ppapi 77