1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ppapi/thunk/thunk.h"
6 #include "ppapi/thunk/enter.h"
7 #include "ppapi/thunk/ppb_audio_config_api.h"
8 #include "ppapi/thunk/resource_creation_api.h"
15 PP_Resource
CreateStereo16bit(PP_Instance instance
,
16 PP_AudioSampleRate sample_rate
,
17 uint32_t sample_frame_count
) {
18 EnterFunction
<ResourceCreationAPI
> enter(instance
, true);
21 return enter
.functions()->CreateAudioConfig(instance
, sample_rate
,
25 uint32_t RecommendSampleFrameCount(PP_AudioSampleRate sample_rate
,
26 uint32_t requested_sample_frame_count
) {
27 // TODO(brettw) Currently we don't actually query to get a value from the
28 // hardware, so we always return the input for in-range values.
29 if (requested_sample_frame_count
< PP_AUDIOMINSAMPLEFRAMECOUNT
)
30 return PP_AUDIOMINSAMPLEFRAMECOUNT
;
31 if (requested_sample_frame_count
> PP_AUDIOMAXSAMPLEFRAMECOUNT
)
32 return PP_AUDIOMAXSAMPLEFRAMECOUNT
;
33 return requested_sample_frame_count
;
36 PP_Bool
IsAudioConfig(PP_Resource resource
) {
37 EnterResource
<PPB_AudioConfig_API
> enter(resource
, false);
38 return PP_FromBool(enter
.succeeded());
41 PP_AudioSampleRate
GetSampleRate(PP_Resource config_id
) {
42 EnterResource
<PPB_AudioConfig_API
> enter(config_id
, true);
44 return PP_AUDIOSAMPLERATE_NONE
;
45 return enter
.object()->GetSampleRate();
48 uint32_t GetSampleFrameCount(PP_Resource config_id
) {
49 EnterResource
<PPB_AudioConfig_API
> enter(config_id
, true);
52 return enter
.object()->GetSampleFrameCount();
55 const PPB_AudioConfig g_ppb_audio_config_thunk
= {
57 &RecommendSampleFrameCount
,
65 const PPB_AudioConfig
* GetPPB_AudioConfig_Thunk() {
66 return &g_ppb_audio_config_thunk
;