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 */
36struct 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
76typedef struct PPB_Flash_DRM_1_1 PPB_Flash_DRM;
77
78struct 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