/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/* From private/ppb_flash_drm.idl modified Mon Nov 11 14:49:53 2013. */
#ifndef PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_
#define PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_
#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_completion_callback.h"
#include "ppapi/c/pp_instance.h"
#include "ppapi/c/pp_macros.h"
#include "ppapi/c/pp_resource.h"
#include "ppapi/c/pp_stdint.h"
#include "ppapi/c/pp_var.h"
#define PPB_FLASH_DRM_INTERFACE_1_0 "PPB_Flash_DRM;1.0"
#define PPB_FLASH_DRM_INTERFACE_1_1 "PPB_Flash_DRM;1.1"
#define PPB_FLASH_DRM_INTERFACE PPB_FLASH_DRM_INTERFACE_1_1
/**
* @file
* This file contains the <code>PPB_Flash_DRM</code> interface.
*/
/**
* @addtogroup Interfaces
* @{
*/
/**
* A resource for performing Flash DRM-related operations.
*/
struct PPB_Flash_DRM_1_1 {
/**
* Creates a PPB_Flash_DRM resource for performing DRM-related operations in
* Flash.
*/
PP_Resource (*Create)(PP_Instance instance);
/**
* Asynchronously computes the device ID. When available, it will place the
* string in |*id| and will call the completion callback. On failure the
* given var will be PP_VARTYPE_UNDEFINED.
*/
int32_t (*GetDeviceID)(PP_Resource drm,
struct PP_Var* id,
struct PP_CompletionCallback callback);
/**
* Windows and Mac only. Synchronously outputs the HMONITOR or
* CGDirectDisplayID corresponding to the monitor on which the plugin instance
* is displayed in |hmonitor|. This value is queried asynchronously and this
* will return PP_FALSE if the value is not yet available or an error
* occurred. PP_TRUE is returned on success.
*/
PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor);
/**
* Asynchronously returns a PPB_FileRef resource in |file_ref| which points to
* the Voucher file for performing DRM verification. |callback| will be called
* upon completion.
*/
int32_t (*GetVoucherFile)(PP_Resource drm,
PP_Resource* file_ref,
struct PP_CompletionCallback callback);
/**
* Asynchronously returns a value indicating whether the monitor on which the
* plugin instance is displayed is external. |callback| will be called upon
* completion.
*/
int32_t (*MonitorIsExternal)(PP_Resource drm,
PP_Bool* is_external,
struct PP_CompletionCallback callback);
};
typedef struct PPB_Flash_DRM_1_1 PPB_Flash_DRM;
struct PPB_Flash_DRM_1_0 {
PP_Resource (*Create)(PP_Instance instance);
int32_t (*GetDeviceID)(PP_Resource drm,
struct PP_Var* id,
struct PP_CompletionCallback callback);
PP_Bool (*GetHmonitor)(PP_Resource drm, int64_t* hmonitor);
int32_t (*GetVoucherFile)(PP_Resource drm,
PP_Resource* file_ref,
struct PP_CompletionCallback callback);
};
/**
* @}
*/
#endif /* PPAPI_C_PRIVATE_PPB_FLASH_DRM_H_ */