Home | History | Annotate | Download | only in private
      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 
      6 /* From private/ppb_flash_drm.idl modified Mon Nov 11 14:49:53 2013. */
      7 
      8 #ifndef PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_
      9 #define PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_
     10 
     11 #include "ppapi/c/pp_bool.h"
     12 #include "ppapi/c/pp_completion_callback.h"
     13 #include "ppapi/c/pp_instance.h"
     14 #include "ppapi/c/pp_macros.h"
     15 #include "ppapi/c/pp_resource.h"
     16 #include "ppapi/c/pp_stdint.h"
     17 #include "ppapi/c/pp_var.h"
     18 
     19 #define PPB_FLASH_DRM_INTERFACE_1_0 "PPB_Flash_DRM;1.0"
     20 #define PPB_FLASH_DRM_INTERFACE_1_1 "PPB_Flash_DRM;1.1"
     21 #define PPB_FLASH_DRM_INTERFACE PPB_FLASH_DRM_INTERFACE_1_1
     22 
     23 /**
     24  * @file
     25  * This file contains the <code>PPB_Flash_DRM</code> interface.
     26  */
     27 
     28 
     29 /**
     30  * @addtogroup Interfaces
     31  * @{
     32  */
     33 /**
     34  * A resource for performing Flash DRM-related operations.
     35  */
     36 struct PPB_Flash_DRM_1_1 {
     37   /**
     38    * Creates a PPB_Flash_DRM resource for performing DRM-related operations in
     39    * Flash.
     40    */
     41   PP_Resource (*Create)(PP_Instance instance);
     42   /**
     43    * Asynchronously computes the device ID. When available, it will place the
     44    * string in |*id| and will call the completion callback. On failure the
     45    * given var will be PP_VARTYPE_UNDEFINED.
     46    */
     47   int32_t (*GetDeviceID)(PP_Resource drm,
     48                          struct PP_Var* id,
     49                          struct PP_CompletionCallback callback);
     50   /**
     51    * Windows and Mac only. Synchronously outputs the HMONITOR or
     52    * CGDirectDisplayID corresponding to the monitor on which the plugin instance
     53    * is displayed in |hmonitor|. This value is queried asynchronously and this
     54    * will return PP_FALSE if the value is not yet available or an error
     55    * occurred. PP_TRUE is returned on success.
     56    */
     57   PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor);
     58   /**
     59    * Asynchronously returns a PPB_FileRef resource in |file_ref| which points to
     60    * the Voucher file for performing DRM verification. |callback| will be called
     61    * upon completion.
     62    */
     63   int32_t (*GetVoucherFile)(PP_Resource drm,
     64                             PP_Resource* file_ref,
     65                             struct PP_CompletionCallback callback);
     66   /**
     67    * Asynchronously returns a value indicating whether the monitor on which the
     68    * plugin instance is displayed is external. |callback| will be called upon
     69    * completion.
     70    */
     71   int32_t (*MonitorIsExternal)(PP_Resource drm,
     72                                PP_Bool* is_external,
     73                                struct PP_CompletionCallback callback);
     74 };
     75 
     76 typedef struct PPB_Flash_DRM_1_1 PPB_Flash_DRM;
     77 
     78 struct PPB_Flash_DRM_1_0 {
     79   PP_Resource (*Create)(PP_Instance instance);
     80   int32_t (*GetDeviceID)(PP_Resource drm,
     81                          struct PP_Var* id,
     82                          struct PP_CompletionCallback callback);
     83   PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor);
     84   int32_t (*GetVoucherFile)(PP_Resource drm,
     85                             PP_Resource* file_ref,
     86                             struct PP_CompletionCallback callback);
     87 };
     88 /**
     89  * @}
     90  */
     91 
     92 #endif  /* PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_ */
     93 
     94