15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* From ppb_audio_config.idl modified Thu Mar 28 10:07:11 2013. */
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PPB_AUDIO_CONFIG_H_
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PPB_AUDIO_CONFIG_H_
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_AUDIO_CONFIG_INTERFACE_1_0 "PPB_AudioConfig;1.0"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_AUDIO_CONFIG_INTERFACE_1_1 "PPB_AudioConfig;1.1"
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_AUDIO_CONFIG_INTERFACE PPB_AUDIO_CONFIG_INTERFACE_1_1
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the PPB_AudioConfig interface for establishing an
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * audio configuration resource within the browser.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Enums
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This enumeration contains audio frame count constants.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> is the minimum possible frame
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * count. <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> is the maximum possible
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * frame count.
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AUDIOMINSAMPLEFRAMECOUNT = 64,
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AUDIOMAXSAMPLEFRAMECOUNT = 32768
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PP_AudioSampleRate is an enumeration of the different audio sampling rates.
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_AUDIOSAMPLERATE_44100</code> is the sample rate used on CDs and
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <code>PP_AUDIOSAMPLERATE_48000</code> is the sample rate used on DVDs and
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Digital Audio Tapes.
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AUDIOSAMPLERATE_NONE = 0,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AUDIOSAMPLERATE_44100 = 44100,
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AUDIOSAMPLERATE_48000 = 48000
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_AudioSampleRate;
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioSampleRate, 4);
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PPB_AudioConfig</code> interface contains pointers to several
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * functions for establishing your audio configuration within the browser.
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This interface only supports 16-bit stereo output.
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Refer to the
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <a href="/native-client/{{pepperversion}}/devguide/coding/audio">Audio
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * </a> chapter in the Developer's Guide for information on using this
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * interface.
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_AudioConfig_1_1 {
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * CreateStereo16bit() creates a 16 bit audio configuration resource. The
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>sample_rate</code> should be the result of calling
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>RecommendSampleRate</code> and <code>sample_frame_count</code> should
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * be the result of calling <code>RecommendSampleFrameCount</code>. If the
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * sample frame count or bit rate isn't supported, this function will fail and
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * return a null resource.
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * A single sample frame on a stereo device means one value for the left
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * channel and one value for the right channel.
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Buffer layout for a stereo int16 configuration:
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>int16_t *buffer16;</code>
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>buffer16[0]</code> is the first left channel sample.
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>buffer16[1]</code> is the first right channel sample.
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>buffer16[2]</code> is the second left channel sample.
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>buffer16[3]</code> is the second right channel sample.
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * ...
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>buffer16[2 * (sample_frame_count - 1)]</code> is the last left
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * channel sample.
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>buffer16[2 * (sample_frame_count - 1) + 1]</code> is the last
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * right channel sample.
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Data will always be in the native endian format of the platform.
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] instance A <code>PP_Instance</code> identifying one instance
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * of a module.
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOSAMPLERATE_44100</code> or
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOSAMPLERATE_48000</code>.
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] sample_frame_count A <code>uint32_t</code> frame count returned
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * from the <code>RecommendSampleFrameCount</code> function.
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @return A <code>PP_Resource</code> containing the
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PPB_Audio_Config</code> if successful or a null resource if the
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * sample frame count or bit rate are not supported.
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Resource (*CreateStereo16Bit)(PP_Instance instance,
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   PP_AudioSampleRate sample_rate,
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   uint32_t sample_frame_count);
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * RecommendSampleFrameCount() returns the supported sample frame count
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * closest to the requested count. The sample frame count determines the
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * overall latency of audio. Since one "frame" is always buffered in advance,
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * smaller frame counts will yield lower latency, but higher CPU utilization.
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Supported sample frame counts will vary by hardware and system (consider
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * that the local system might be anywhere from a cell phone or a high-end
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * audio workstation). Sample counts less than
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> and greater than
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> are never supported on any
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * system, but values in between aren't necessarily valid. This function
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * will return a supported count closest to the requested frame count.
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * RecommendSampleFrameCount() result is intended for audio output devices.
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] instance
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOSAMPLERATE_44100</code> or
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOSAMPLERATE_48000.</code>
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] requested_sample_frame_count A <code>uint_32t</code> requested
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * frame count.
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @return A <code>uint32_t</code> containing the recommended sample frame
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * count if successful.
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t (*RecommendSampleFrameCount)(
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PP_Instance instance,
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PP_AudioSampleRate sample_rate,
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      uint32_t requested_sample_frame_count);
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * IsAudioConfig() determines if the given resource is a
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PPB_Audio_Config</code>.
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] resource A <code>PP_Resource</code> corresponding to an audio
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * config resource.
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * resource is an <code>AudioConfig</code> resource, otherwise
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_FALSE</code>.
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Bool (*IsAudioConfig)(PP_Resource resource);
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * GetSampleRate() returns the sample rate for the given
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PPB_Audio_Config</code>.
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] config A <code>PP_Resource</code> corresponding to a
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PPB_Audio_Config</code>.
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @return A <code>PP_AudioSampleRate</code> containing sample rate or
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_AUDIOSAMPLERATE_NONE</code> if the resource is invalid.
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AudioSampleRate (*GetSampleRate)(PP_Resource config);
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * GetSampleFrameCount() returns the sample frame count for the given
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PPB_Audio_Config</code>.
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * config resource.
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @return A <code>uint32_t</code> containing sample frame count or
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * 0 if the resource is invalid. Refer to
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * RecommendSampleFrameCount() for more on sample frame counts.
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t (*GetSampleFrameCount)(PP_Resource config);
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * RecommendSampleRate() returns the native sample rate that the browser
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * is using in the backend.  Applications that use the recommended sample
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * rate will have potentially better latency and fidelity.  The return value
182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)   * is intended for audio output devices.  If the output sample rate cannot be
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * determined, this function can return PP_AUDIOSAMPLERATE_NONE.
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @param[in] instance
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * @return A <code>uint32_t</code> containing the recommended sample frame
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * count if successful.
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AudioSampleRate (*RecommendSampleRate)(PP_Instance instance);
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct PPB_AudioConfig_1_1 PPB_AudioConfig;
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PPB_AudioConfig_1_0 {
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Resource (*CreateStereo16Bit)(PP_Instance instance,
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   PP_AudioSampleRate sample_rate,
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                   uint32_t sample_frame_count);
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t (*RecommendSampleFrameCount)(
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      PP_AudioSampleRate sample_rate,
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      uint32_t requested_sample_frame_count);
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Bool (*IsAudioConfig)(PP_Resource resource);
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_AudioSampleRate (*GetSampleRate)(PP_Resource config);
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t (*GetSampleFrameCount)(PP_Resource config);
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* PPAPI_C_PPB_AUDIO_CONFIG_H_ */
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
212