1 // Copyright 2014 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.
4
5 // From ppb_audio_buffer.idl modified Wed Jan 27 17:10:16 2016.
6
7 #include <stdint.h>
8
9 #include "ppapi/c/pp_errors.h"
10 #include "ppapi/c/ppb_audio_buffer.h"
11 #include "ppapi/shared_impl/tracked_callback.h"
12 #include "ppapi/thunk/enter.h"
13 #include "ppapi/thunk/ppapi_thunk_export.h"
14 #include "ppapi/thunk/ppb_audio_buffer_api.h"
15
16 namespace ppapi {
17 namespace thunk {
18
19 namespace {
20
IsAudioBuffer(PP_Resource resource)21 PP_Bool IsAudioBuffer(PP_Resource resource) {
22 VLOG(4) << "PPB_AudioBuffer::IsAudioBuffer()";
23 EnterResource<PPB_AudioBuffer_API> enter(resource, false);
24 return PP_FromBool(enter.succeeded());
25 }
26
GetTimestamp(PP_Resource buffer)27 PP_TimeDelta GetTimestamp(PP_Resource buffer) {
28 VLOG(4) << "PPB_AudioBuffer::GetTimestamp()";
29 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
30 if (enter.failed())
31 return 0.0;
32 return enter.object()->GetTimestamp();
33 }
34
SetTimestamp(PP_Resource buffer,PP_TimeDelta timestamp)35 void SetTimestamp(PP_Resource buffer, PP_TimeDelta timestamp) {
36 VLOG(4) << "PPB_AudioBuffer::SetTimestamp()";
37 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
38 if (enter.failed())
39 return;
40 enter.object()->SetTimestamp(timestamp);
41 }
42
GetSampleRate(PP_Resource buffer)43 PP_AudioBuffer_SampleRate GetSampleRate(PP_Resource buffer) {
44 VLOG(4) << "PPB_AudioBuffer::GetSampleRate()";
45 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
46 if (enter.failed())
47 return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
48 return enter.object()->GetSampleRate();
49 }
50
GetSampleSize(PP_Resource buffer)51 PP_AudioBuffer_SampleSize GetSampleSize(PP_Resource buffer) {
52 VLOG(4) << "PPB_AudioBuffer::GetSampleSize()";
53 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
54 if (enter.failed())
55 return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
56 return enter.object()->GetSampleSize();
57 }
58
GetNumberOfChannels(PP_Resource buffer)59 uint32_t GetNumberOfChannels(PP_Resource buffer) {
60 VLOG(4) << "PPB_AudioBuffer::GetNumberOfChannels()";
61 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
62 if (enter.failed())
63 return 0;
64 return enter.object()->GetNumberOfChannels();
65 }
66
GetNumberOfSamples(PP_Resource buffer)67 uint32_t GetNumberOfSamples(PP_Resource buffer) {
68 VLOG(4) << "PPB_AudioBuffer::GetNumberOfSamples()";
69 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
70 if (enter.failed())
71 return 0;
72 return enter.object()->GetNumberOfSamples();
73 }
74
GetDataBuffer(PP_Resource buffer)75 void* GetDataBuffer(PP_Resource buffer) {
76 VLOG(4) << "PPB_AudioBuffer::GetDataBuffer()";
77 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
78 if (enter.failed())
79 return NULL;
80 return enter.object()->GetDataBuffer();
81 }
82
GetDataBufferSize(PP_Resource buffer)83 uint32_t GetDataBufferSize(PP_Resource buffer) {
84 VLOG(4) << "PPB_AudioBuffer::GetDataBufferSize()";
85 EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
86 if (enter.failed())
87 return 0;
88 return enter.object()->GetDataBufferSize();
89 }
90
91 const PPB_AudioBuffer_0_1 g_ppb_audiobuffer_thunk_0_1 = {
92 &IsAudioBuffer, &GetTimestamp, &SetTimestamp,
93 &GetSampleRate, &GetSampleSize, &GetNumberOfChannels,
94 &GetNumberOfSamples, &GetDataBuffer, &GetDataBufferSize};
95
96 } // namespace
97
GetPPB_AudioBuffer_0_1_Thunk()98 PPAPI_THUNK_EXPORT const PPB_AudioBuffer_0_1* GetPPB_AudioBuffer_0_1_Thunk() {
99 return &g_ppb_audiobuffer_thunk_0_1;
100 }
101
102 } // namespace thunk
103 } // namespace ppapi
104