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 only. Synchronously outputs the HMONITOR corresponding to the 52 * monitor on which the plugin instance is displayed in |hmonitor|. PP_TRUE is 53 * returned on success. 54 */ 55 PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor); 56 /** 57 * Asynchronously returns a PPB_FileRef resource in |file_ref| which points to 58 * the Voucher file for performing DRM verification. |callback| will be called 59 * upon completion. 60 */ 61 int32_t (*GetVoucherFile)(PP_Resource drm, 62 PP_Resource* file_ref, 63 struct PP_CompletionCallback callback); 64 /** 65 * Asynchronously returns a value indicating whether the monitor on which the 66 * plugin instance is displayed is external. |callback| will be called upon 67 * completion. 68 */ 69 int32_t (*MonitorIsExternal)(PP_Resource drm, 70 PP_Bool* is_external, 71 struct PP_CompletionCallback callback); 72 }; 73 74 typedef struct PPB_Flash_DRM_1_1 PPB_Flash_DRM; 75 76 struct PPB_Flash_DRM_1_0 { 77 PP_Resource (*Create)(PP_Instance instance); 78 int32_t (*GetDeviceID)(PP_Resource drm, 79 struct PP_Var* id, 80 struct PP_CompletionCallback callback); 81 PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor); 82 int32_t (*GetVoucherFile)(PP_Resource drm, 83 PP_Resource* file_ref, 84 struct PP_CompletionCallback callback); 85 }; 86 /** 87 * @} 88 */ 89 90 #endif /* PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_ */ 91 92