Roll Libjingle 8093:8097
[chromium-blink-merge.git] / ppapi / thunk / ppb_audio_input_api.h
blob706417ee0fdca516a4a1f1dec4e5c930f210986d
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.
5 #ifndef PPAPI_THUNK_AUDIO_INPUT_API_H_
6 #define PPAPI_THUNK_AUDIO_INPUT_API_H_
8 #include <string>
10 #include "base/memory/ref_counted.h"
11 #include "ppapi/c/dev/ppb_audio_input_dev.h"
13 namespace ppapi {
15 class TrackedCallback;
17 namespace thunk {
19 class PPB_AudioInput_API {
20 public:
21 virtual ~PPB_AudioInput_API() {}
23 virtual int32_t EnumerateDevices(const PP_ArrayOutput& output,
24 scoped_refptr<TrackedCallback> callback) = 0;
25 virtual int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
26 void* user_data) = 0;
27 virtual int32_t Open0_3(PP_Resource device_ref,
28 PP_Resource config,
29 PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
30 void* user_data,
31 scoped_refptr<TrackedCallback> callback) = 0;
32 virtual int32_t Open(PP_Resource device_ref,
33 PP_Resource config,
34 PPB_AudioInput_Callback audio_input_callback,
35 void* user_data,
36 scoped_refptr<TrackedCallback> callback) = 0;
37 virtual PP_Resource GetCurrentConfig() = 0;
38 virtual PP_Bool StartCapture() = 0;
39 virtual PP_Bool StopCapture() = 0;
40 virtual void Close() = 0;
43 } // namespace thunk
44 } // namespace ppapi
46 #endif // PPAPI_THUNK_AUDIO_INPUT_API_H_