1 // Copyright (c) 2012 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 #ifndef PPAPI_THUNK_PPB_AUDIO_API_H_ 6 #define PPAPI_THUNK_PPB_AUDIO_API_H_ 7 8 #include <stdint.h> 9 10 #include "base/memory/ref_counted.h" 11 #include "ppapi/c/pp_completion_callback.h" 12 #include "ppapi/c/ppb_audio.h" 13 #include "ppapi/thunk/ppapi_thunk_export.h" 14 15 namespace base { 16 class UnsafeSharedMemoryRegion; 17 } // namespace base 18 19 namespace ppapi { 20 21 class TrackedCallback; 22 23 namespace thunk { 24 25 class PPAPI_THUNK_EXPORT PPB_Audio_API { 26 public: ~PPB_Audio_API()27 virtual ~PPB_Audio_API() {} 28 29 virtual PP_Resource GetCurrentConfig() = 0; 30 virtual PP_Bool StartPlayback() = 0; 31 virtual PP_Bool StopPlayback() = 0; 32 33 // Trusted API. 34 virtual int32_t Open( 35 PP_Resource config_id, 36 scoped_refptr<TrackedCallback> create_callback) = 0; 37 virtual int32_t GetSyncSocket(int* sync_socket) = 0; 38 virtual int32_t GetSharedMemory(base::UnsafeSharedMemoryRegion** shm) = 0; 39 }; 40 41 } // namespace thunk 42 } // namespace ppapi 43 44 #endif // PPAPI_THUNK_PPB_AUDIO_API_H_ 45