/* 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. */ /** * This file defines the PPB_DeviceRef_Dev interface. */ [generate_thunk] label Chrome { M18 = 0.1 }; /** * Defines the callback type to receive device change notifications for * PPB_AudioInput_Dev.MonitorDeviceChange() and * PPB_VideoCapture_Dev.MonitorDeviceChange(). * * @param[inout] user_data The opaque pointer that the caller passed into * MonitorDeviceChange(). * @param[in] device_count How many devices in the array. * @param[in] devices An array of PPB_DeviceRef_Dev. Please note * that the ref count of the elements is not increased on behalf of the plugin. */ typedef void PP_MonitorDeviceChangeCallback( [inout] mem_t user_data, [in] uint32_t device_count, [in, size_is(device_count)] PP_Resource[] devices); /** * Device types. */ [assert_size(4)] enum PP_DeviceType_Dev { PP_DEVICETYPE_DEV_INVALID = 0, PP_DEVICETYPE_DEV_AUDIOCAPTURE = 1, PP_DEVICETYPE_DEV_VIDEOCAPTURE = 2 }; interface PPB_DeviceRef_Dev { /** * Determines if the provided resource is a device reference. * * @param[in] resource A PP_Resource corresponding to a generic * resource. * * @return A PP_Bool that is PP_TRUE if the given * resource is a device reference, otherwise PP_FALSE. */ PP_Bool IsDeviceRef([in] PP_Resource resource); /** * Gets the device type. * * @param[in] device_ref A PP_Resource corresponding to a device * reference. * * @return A PP_DeviceType_Dev value. */ [on_failure=PP_DEVICETYPE_DEV_INVALID] PP_DeviceType_Dev GetType([in] PP_Resource device_ref); /** * Gets the device name. * * @param[in] device_ref A PP_Resource corresponding to a device * reference. * * @return A PP_Var of type PP_VARTYPE_STRING * containing the name of the device if successful; a PP_Var of * type PP_VARTYPE_UNDEFINED if failed. */ PP_Var GetName([in] PP_Resource device_ref); };