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_media_stream_audio_track.idl modified Thu Feb 6 15:43:37 2014. 6 7#include "ppapi/c/pp_completion_callback.h" 8#include "ppapi/c/pp_errors.h" 9#include "ppapi/c/ppb_media_stream_audio_track.h" 10#include "ppapi/shared_impl/tracked_callback.h" 11#include "ppapi/thunk/enter.h" 12#include "ppapi/thunk/ppapi_thunk_export.h" 13#include "ppapi/thunk/ppb_media_stream_audio_track_api.h" 14 15namespace ppapi { 16namespace thunk { 17 18namespace { 19 20PP_Bool IsMediaStreamAudioTrack(PP_Resource resource) { 21 VLOG(4) << "PPB_MediaStreamAudioTrack::IsMediaStreamAudioTrack()"; 22 EnterResource<PPB_MediaStreamAudioTrack_API> enter(resource, false); 23 return PP_FromBool(enter.succeeded()); 24} 25 26int32_t Configure(PP_Resource audio_track, 27 const int32_t attrib_list[], 28 struct PP_CompletionCallback callback) { 29 VLOG(4) << "PPB_MediaStreamAudioTrack::Configure()"; 30 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, 31 callback, 32 true); 33 if (enter.failed()) 34 return enter.retval(); 35 return enter.SetResult(enter.object()->Configure(attrib_list, 36 enter.callback())); 37} 38 39int32_t GetAttrib(PP_Resource audio_track, 40 PP_MediaStreamAudioTrack_Attrib attrib, 41 int32_t* value) { 42 VLOG(4) << "PPB_MediaStreamAudioTrack::GetAttrib()"; 43 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true); 44 if (enter.failed()) 45 return enter.retval(); 46 return enter.object()->GetAttrib(attrib, value); 47} 48 49struct PP_Var GetId(PP_Resource audio_track) { 50 VLOG(4) << "PPB_MediaStreamAudioTrack::GetId()"; 51 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true); 52 if (enter.failed()) 53 return PP_MakeUndefined(); 54 return enter.object()->GetId(); 55} 56 57PP_Bool HasEnded(PP_Resource audio_track) { 58 VLOG(4) << "PPB_MediaStreamAudioTrack::HasEnded()"; 59 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true); 60 if (enter.failed()) 61 return PP_TRUE; 62 return enter.object()->HasEnded(); 63} 64 65int32_t GetBuffer(PP_Resource audio_track, 66 PP_Resource* buffer, 67 struct PP_CompletionCallback callback) { 68 VLOG(4) << "PPB_MediaStreamAudioTrack::GetBuffer()"; 69 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, 70 callback, 71 true); 72 if (enter.failed()) 73 return enter.retval(); 74 return enter.SetResult(enter.object()->GetBuffer(buffer, enter.callback())); 75} 76 77int32_t RecycleBuffer(PP_Resource audio_track, PP_Resource buffer) { 78 VLOG(4) << "PPB_MediaStreamAudioTrack::RecycleBuffer()"; 79 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true); 80 if (enter.failed()) 81 return enter.retval(); 82 return enter.object()->RecycleBuffer(buffer); 83} 84 85void Close(PP_Resource audio_track) { 86 VLOG(4) << "PPB_MediaStreamAudioTrack::Close()"; 87 EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true); 88 if (enter.failed()) 89 return; 90 enter.object()->Close(); 91} 92 93const PPB_MediaStreamAudioTrack_0_1 g_ppb_mediastreamaudiotrack_thunk_0_1 = { 94 &IsMediaStreamAudioTrack, 95 &Configure, 96 &GetAttrib, 97 &GetId, 98 &HasEnded, 99 &GetBuffer, 100 &RecycleBuffer, 101 &Close 102}; 103 104} // namespace 105 106PPAPI_THUNK_EXPORT const PPB_MediaStreamAudioTrack_0_1* 107 GetPPB_MediaStreamAudioTrack_0_1_Thunk() { 108 return &g_ppb_mediastreamaudiotrack_thunk_0_1; 109} 110 111} // namespace thunk 112} // namespace ppapi 113