#ifndef REMOTING_HOST_LINUX_AUDIO_CAPTURER_LINUX_H_
#define REMOTING_HOST_LINUX_AUDIO_CAPTURER_LINUX_H_
#include "base/memory/ref_counted.h"
#include "base/task/single_thread_task_runner.h"
#include "remoting/host/audio_capturer.h"
#include "remoting/host/audio_silence_detector.h"
#include "remoting/host/linux/audio_pipe_reader.h"
namespace base {
class FilePath;
}
namespace remoting {
class AudioCapturerLinux : public AudioCapturer,
public AudioPipeReader::StreamObserver {
public:
static void InitializePipeReader(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
const base::FilePath& pipe_name);
explicit AudioCapturerLinux(scoped_refptr<AudioPipeReader> pipe_reader);
AudioCapturerLinux(const AudioCapturerLinux&) = delete;
AudioCapturerLinux& operator=(const AudioCapturerLinux&) = delete;
~AudioCapturerLinux() override;
bool Start(const PacketCapturedCallback& callback) override;
void OnDataRead(scoped_refptr<base::RefCountedString> data) override;
private:
scoped_refptr<AudioPipeReader> pipe_reader_;
PacketCapturedCallback callback_;
AudioSilenceDetector silence_detector_;
};
}
#endif