1 // Copyright (c) 2014 The Samsung 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 MEDIA_AUDIO_TIZEN_CAPI_AUDIO_INPUT_H_
6 #define MEDIA_AUDIO_TIZEN_CAPI_AUDIO_INPUT_H_
11 #include "base/memory/weak_ptr.h"
12 #include "base/threading/thread.h"
13 #include "base/time/time.h"
14 #include "media/audio/agc_audio_stream.h"
15 #include "media/audio/audio_device_name.h"
16 #include "media/audio/audio_io.h"
17 #include "media/audio/tizen/capi_util.h"
18 #include "media/base/audio_block_fifo.h"
19 #include "media/base/audio_parameters.h"
23 class AudioManagerCapi;
25 class CapiAudioInputStream final : public AgcAudioStream<AudioInputStream> {
27 CapiAudioInputStream(AudioManagerCapi* audio_manager,
28 const std::string& device_name,
29 const AudioParameters& params);
31 ~CapiAudioInputStream() override;
34 void Start(AudioInputCallback* callback) override;
36 void Close() override;
37 double GetMaxVolume() override;
38 void SetVolume(double volume) override;
39 double GetVolume() override;
41 void OnAudioIOData(const AudioBus* audio_bus,
42 uint32_t hardware_delay_bytes,
43 double normalized_volume);
45 static void AudioStreamReadCB(audio_in_h handle,
50 AudioManagerCapi* audio_manager_;
51 AudioInputCallback* callback_;
52 std::string device_name_;
53 AudioParameters params_;
55 media::InternalState state_;
56 base::Thread audio_worker_;
59 // Holds the data from the OS.
62 DISALLOW_COPY_AND_ASSIGN(CapiAudioInputStream);
67 #endif // MEDIA_AUDIO_TIZEN_CAPI_AUDIO_INPUT_H_