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.
6 /* From private/ppb_flash_drm.idl modified Mon Nov 11 14:49:53 2013. */
8 #ifndef PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_
9 #define PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_
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"
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
25 * This file contains the <code>PPB_Flash_DRM</code> interface.
30 * @addtogroup Interfaces
34 * A resource for performing Flash DRM-related operations.
36 struct PPB_Flash_DRM_1_1
{
38 * Creates a PPB_Flash_DRM resource for performing DRM-related operations in
41 PP_Resource (*Create
)(PP_Instance instance
);
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.
47 int32_t (*GetDeviceID
)(PP_Resource drm
,
49 struct PP_CompletionCallback callback
);
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.
57 PP_Bool (*GetHmonitor
)(PP_Resource drm
, int64_t* hmonitor
);
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
63 int32_t (*GetVoucherFile
)(PP_Resource drm
,
64 PP_Resource
* file_ref
,
65 struct PP_CompletionCallback callback
);
67 * Asynchronously returns a value indicating whether the monitor on which the
68 * plugin instance is displayed is external. |callback| will be called upon
71 int32_t (*MonitorIsExternal
)(PP_Resource drm
,
73 struct PP_CompletionCallback callback
);
76 typedef struct PPB_Flash_DRM_1_1 PPB_Flash_DRM
;
78 struct PPB_Flash_DRM_1_0
{
79 PP_Resource (*Create
)(PP_Instance instance
);
80 int32_t (*GetDeviceID
)(PP_Resource drm
,
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
);
92 #endif /* PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_ */