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