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_CPP_DEV_AUDIO_INPUT_DEV_H_
6 #define PPAPI_CPP_DEV_AUDIO_INPUT_DEV_H_
10 #include "ppapi/c/dev/ppb_audio_input_dev.h"
11 #include "ppapi/cpp/audio_config.h"
12 #include "ppapi/cpp/completion_callback.h"
13 #include "ppapi/cpp/dev/device_ref_dev.h"
14 #include "ppapi/cpp/resource.h"
20 class AudioInput_Dev
: public Resource
{
22 /// An empty constructor for an AudioInput resource.
25 /// Constructor to create an audio input resource.
26 explicit AudioInput_Dev(const InstanceHandle
& instance
);
28 virtual ~AudioInput_Dev();
30 /// Static function for determining whether the browser supports the required
31 /// AudioInput interface.
33 /// @return true if the interface is available, false otherwise.
34 static bool IsAvailable();
36 int32_t EnumerateDevices(
37 const CompletionCallbackWithOutput
<std::vector
<DeviceRef_Dev
> >&
40 int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback
,
43 /// If |device_ref| is null (i.e., is_null() returns true), the default device
46 /// Requires <code>PPB_AudioInput_Dev</code> version 0.4 or up.
47 int32_t Open(const DeviceRef_Dev
& device_ref
,
48 const AudioConfig
& config
,
49 PPB_AudioInput_Callback audio_input_callback
,
51 const CompletionCallback
& callback
);
53 /// Requires <code>PPB_AudioInput_Dev</code> version 0.2 or 0.3.
54 int32_t Open(const DeviceRef_Dev
& device_ref
,
55 const AudioConfig
& config
,
56 PPB_AudioInput_Callback_0_2 audio_input_callback_0_2
,
58 const CompletionCallback
& callback
);
67 #endif // PPAPI_CPP_DEV_AUDIO_INPUT_DEV_H_