Home | History | Annotate | Download | only in cpp
      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 #include "ppapi/cpp/audio_buffer.h"
      6 
      7 #include "ppapi/cpp/module.h"
      8 #include "ppapi/cpp/module_impl.h"
      9 
     10 namespace pp {
     11 
     12 namespace {
     13 
     14 template <> const char* interface_name<PPB_AudioBuffer_0_1>() {
     15   return PPB_AUDIOBUFFER_INTERFACE_0_1;
     16 }
     17 
     18 }  // namespace
     19 
     20 AudioBuffer::AudioBuffer() {
     21 }
     22 
     23 AudioBuffer::AudioBuffer(const AudioBuffer& other) : Resource(other) {
     24 }
     25 
     26 AudioBuffer::AudioBuffer(const Resource& resource) : Resource(resource) {
     27 }
     28 
     29 AudioBuffer::AudioBuffer(PassRef, PP_Resource resource)
     30     : Resource(PASS_REF, resource) {
     31 }
     32 
     33 AudioBuffer::~AudioBuffer() {
     34 }
     35 
     36 PP_TimeDelta AudioBuffer::GetTimestamp() const {
     37   if (has_interface<PPB_AudioBuffer_0_1>())
     38     return get_interface<PPB_AudioBuffer_0_1>()->GetTimestamp(pp_resource());
     39   return 0.0;
     40 }
     41 
     42 void AudioBuffer::SetTimestamp(PP_TimeDelta timestamp) {
     43   if (has_interface<PPB_AudioBuffer_0_1>()) {
     44     get_interface<PPB_AudioBuffer_0_1>()->SetTimestamp(pp_resource(),
     45                                                        timestamp);
     46   }
     47 }
     48 
     49 PP_AudioBuffer_SampleRate AudioBuffer::GetSampleRate() const {
     50   if (has_interface<PPB_AudioBuffer_0_1>())
     51     return get_interface<PPB_AudioBuffer_0_1>()->GetSampleRate(pp_resource());
     52   return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
     53 }
     54 
     55 PP_AudioBuffer_SampleSize AudioBuffer::GetSampleSize() const {
     56   if (has_interface<PPB_AudioBuffer_0_1>())
     57     return get_interface<PPB_AudioBuffer_0_1>()->GetSampleSize(pp_resource());
     58   return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
     59 }
     60 
     61 uint32_t AudioBuffer::GetNumberOfChannels() const {
     62   if (has_interface<PPB_AudioBuffer_0_1>()) {
     63     return get_interface<PPB_AudioBuffer_0_1>()->GetNumberOfChannels(
     64         pp_resource());
     65   }
     66   return 0;
     67 }
     68 
     69 uint32_t AudioBuffer::GetNumberOfSamples() const {
     70   if (has_interface<PPB_AudioBuffer_0_1>()) {
     71     return get_interface<PPB_AudioBuffer_0_1>()->GetNumberOfSamples(
     72         pp_resource());
     73   }
     74   return 0;
     75 }
     76 
     77 void* AudioBuffer::GetDataBuffer() {
     78   if (has_interface<PPB_AudioBuffer_0_1>())
     79     return get_interface<PPB_AudioBuffer_0_1>()->GetDataBuffer(pp_resource());
     80   return NULL;
     81 }
     82 
     83 uint32_t AudioBuffer::GetDataBufferSize() const {
     84   if (has_interface<PPB_AudioBuffer_0_1>()) {
     85     return get_interface<PPB_AudioBuffer_0_1>()->GetDataBufferSize(
     86         pp_resource());
     87   }
     88   return 0;
     89 }
     90 
     91 }  // namespace pp
     92