#ifndef MEDIA_AUDIO_LINUX_CRAS_UNIFIED_H_
#define MEDIA_AUDIO_LINUX_CRAS_UNIFIED_H_
-#include <alsa/asoundlib.h>
#include <cras_client.h>
#include "base/compiler_specific.h"
-#include "base/gtest_prod_util.h"
#include "media/audio/audio_io.h"
#include "media/audio/audio_parameters.h"
namespace media {
class AudioManagerCras;
-class AudioParameters;
// Implementation of AudioOuputStream for Chrome OS using the Chrome OS audio
// server.
+// TODO(dgreid): This class is used for only output, either remove all the
+// relevant input code and change the class to CrasOutputStream or merge
+// cras_input.cc into this unified implementation.
class MEDIA_EXPORT CrasUnifiedStream : public AudioOutputStream {
public:
// The ctor takes all the usual parameters, plus |manager| which is the
virtual ~CrasUnifiedStream();
// Implementation of AudioOutputStream.
- virtual bool Open() OVERRIDE;
- virtual void Close() OVERRIDE;
- virtual void Start(AudioSourceCallback* callback) OVERRIDE;
- virtual void Stop() OVERRIDE;
- virtual void SetVolume(double volume) OVERRIDE;
- virtual void GetVolume(double* volume) OVERRIDE;
+ virtual bool Open() override;
+ virtual void Close() override;
+ virtual void Start(AudioSourceCallback* callback) override;
+ virtual void Stop() override;
+ virtual void SetVolume(double volume) override;
+ virtual void GetVolume(double* volume) override;
private:
// Convert Latency in time to bytes.
const timespec* output_ts,
void* arg);
- // Handles notificaiton that there was an error with the playback stream.
+ // Handles notification that there was an error with the playback stream.
static int StreamError(cras_client* client,
cras_stream_id_t stream_id,
int err,
const timespec* input_ts,
const timespec* output_ts);
- // Receives input samples and write output samples for a unified I/O stream.
- uint32 ReadWriteAudio(size_t frames,
- uint8* input_samples,
- uint8* output_samples,
- const timespec* input_ts,
- const timespec* output_ts);
-
// Writes audio for a playback stream.
uint32 WriteAudio(size_t frames, uint8* buffer, const timespec* sample_ts);
// Callback to get audio samples.
AudioSourceCallback* source_callback_;
- // Container for exchanging data with AudioSourceCallback::OnMoreIOData().
- scoped_ptr<AudioBus> input_bus_;
+ // Container for exchanging data with AudioSourceCallback::OnMoreData().
scoped_ptr<AudioBus> output_bus_;
// Direciton of the stream.