| // Copyright 2014 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_ | |
| #define PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_ | |
| #include <stdint.h> | |
| #include "base/compiler_specific.h" | |
| #include "base/macros.h" | |
| #include "ppapi/proxy/ppapi_proxy_export.h" | |
| #include "ppapi/shared_impl/resource.h" | |
| #include "ppapi/thunk/ppb_audio_buffer_api.h" | |
| namespace ppapi { | |
| union MediaStreamBuffer; | |
| namespace proxy { | |
| class PPAPI_PROXY_EXPORT AudioBufferResource | |
| : public Resource, | |
| public thunk::PPB_AudioBuffer_API { | |
| public: | |
| AudioBufferResource(PP_Instance instance, | |
| int32_t index, | |
| MediaStreamBuffer* buffer); | |
| ~AudioBufferResource() override; | |
| // PluginResource overrides: | |
| thunk::PPB_AudioBuffer_API* AsPPB_AudioBuffer_API() override; | |
| // PPB_AudioBuffer_API overrides: | |
| PP_TimeDelta GetTimestamp() override; | |
| void SetTimestamp(PP_TimeDelta timestamp) override; | |
| PP_AudioBuffer_SampleRate GetSampleRate() override; | |
| PP_AudioBuffer_SampleSize GetSampleSize() override; | |
| uint32_t GetNumberOfChannels() override; | |
| uint32_t GetNumberOfSamples() override; | |
| void* GetDataBuffer() override; | |
| uint32_t GetDataBufferSize() override; | |
| MediaStreamBuffer* GetBuffer() override; | |
| int32_t GetBufferIndex() override; | |
| void Invalidate() override; | |
| // Buffer index | |
| int32_t index_; | |
| MediaStreamBuffer* buffer_; | |
| DISALLOW_COPY_AND_ASSIGN(AudioBufferResource); | |
| }; | |
| } // namespace proxy | |
| } // namespace ppapi | |
| #endif // PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_ |