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