Home | History | Annotate | Download | only in thunk
      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