blob: 228ecbc990b9ddca98762ccff6475ac99b47085f [file] [log] [blame]
/* 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 trusted audio input interface.
*/
label Chrome {
M17 = 0.1
};
/**
* This interface is to be used by proxy implementations. All functions should
* be called from the main thread only. The resource returned is an Audio input
* resource; most of the PPB_AudioInput interface is also usable on this
* resource.
*/
[version=0.1, macro="PPB_AUDIO_INPUT_TRUSTED_DEV_INTERFACE"]
interface PPB_AudioInputTrusted_Dev {
/** Returns an audio input resource. */
PP_Resource CreateTrusted(
[in] PP_Instance instance);
/**
* Opens a paused audio input interface, used by trusted side of proxy.
* Returns PP_ERROR_WOULD_BLOCK on success, and invokes the |create_callback|
* asynchronously to complete. As this function should always be invoked from
* the main thread, do not use the blocking variant of PP_CompletionCallback.
*/
int32_t Open(
[in] PP_Resource audio_input,
[in] PP_Resource config,
[in] PP_CompletionCallback create_callback);
/**
* Get the sync socket. Use once Open has completed.
* Returns PP_OK on success.
*/
int32_t GetSyncSocket(
[in] PP_Resource audio_input,
[out] handle_t sync_socket);
/**
* Get the shared memory interface. Use once Open has completed.
* Returns PP_OK on success.
*/
int32_t GetSharedMemory(
[in] PP_Resource audio_input,
[out] handle_t shm_handle,
[out] uint32_t shm_size);
};