Home | History | Annotate | Download | only in thunk
      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 // From private/ppb_flash_drm.idl modified Sat Jun  8 16:45:26 2013.
      6 
      7 #include "ppapi/c/pp_completion_callback.h"
      8 #include "ppapi/c/pp_errors.h"
      9 #include "ppapi/c/private/ppb_flash_drm.h"
     10 #include "ppapi/shared_impl/tracked_callback.h"
     11 #include "ppapi/thunk/enter.h"
     12 #include "ppapi/thunk/ppb_flash_drm_api.h"
     13 #include "ppapi/thunk/ppb_instance_api.h"
     14 #include "ppapi/thunk/resource_creation_api.h"
     15 #include "ppapi/thunk/thunk.h"
     16 
     17 namespace ppapi {
     18 namespace thunk {
     19 
     20 namespace {
     21 
     22 PP_Resource Create(PP_Instance instance) {
     23   VLOG(4) << "PPB_Flash_DRM::Create()";
     24   EnterResourceCreation enter(instance);
     25   if (enter.failed())
     26     return 0;
     27   return enter.functions()->CreateFlashDRM(instance);
     28 }
     29 
     30 int32_t GetDeviceID(PP_Resource drm,
     31                     struct PP_Var* id,
     32                     struct PP_CompletionCallback callback) {
     33   VLOG(4) << "PPB_Flash_DRM::GetDeviceID()";
     34   EnterResource<PPB_Flash_DRM_API> enter(drm, callback, true);
     35   if (enter.failed())
     36     return enter.retval();
     37   return enter.SetResult(enter.object()->GetDeviceID(id, enter.callback()));
     38 }
     39 
     40 PP_Bool GetHmonitor(PP_Resource drm, int64_t* hmonitor) {
     41   VLOG(4) << "PPB_Flash_DRM::GetHmonitor()";
     42   EnterResource<PPB_Flash_DRM_API> enter(drm, true);
     43   if (enter.failed())
     44     return PP_FALSE;
     45   return enter.object()->GetHmonitor(hmonitor);
     46 }
     47 
     48 int32_t GetVoucherFile(PP_Resource drm,
     49                        PP_Resource* file_ref,
     50                        struct PP_CompletionCallback callback) {
     51   VLOG(4) << "PPB_Flash_DRM::GetVoucherFile()";
     52   EnterResource<PPB_Flash_DRM_API> enter(drm, callback, true);
     53   if (enter.failed())
     54     return enter.retval();
     55   return enter.SetResult(enter.object()->GetVoucherFile(file_ref,
     56                                                         enter.callback()));
     57 }
     58 
     59 const PPB_Flash_DRM_1_0 g_ppb_flash_drm_thunk_1_0 = {
     60   &Create,
     61   &GetDeviceID,
     62   &GetHmonitor,
     63   &GetVoucherFile
     64 };
     65 
     66 }  // namespace
     67 
     68 const PPB_Flash_DRM_1_0* GetPPB_Flash_DRM_1_0_Thunk() {
     69   return &g_ppb_flash_drm_thunk_1_0;
     70 }
     71 
     72 }  // namespace thunk
     73 }  // namespace ppapi
     74