Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: media/audio/linux/alsa_wrapper.h

Issue 275022: Move Alsa device opening into the audio thread, and add in support for multi-channel audio. (Closed)
Patch Set: Fix up the unittests since we not only downmix for a very small set of channels. Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/audio/linux/alsa_output_unittest.cc ('k') | media/audio/linux/alsa_wrapper.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // AlsaWrapper is a simple stateless class that wraps the alsa library commands 5 // AlsaWrapper is a simple stateless class that wraps the alsa library commands
6 // we want to use. It's purpose is to allow injection of a mock so that the 6 // we want to use. It's purpose is to allow injection of a mock so that the
7 // higher level code is testable. 7 // higher level code is testable.
8 8
9 #include <alsa/asoundlib.h> 9 #include <alsa/asoundlib.h>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 12
13 class AlsaWrapper { 13 class AlsaWrapper {
14 public: 14 public:
15 AlsaWrapper(); 15 AlsaWrapper();
16 virtual ~AlsaWrapper(); 16 virtual ~AlsaWrapper();
17 17
18 virtual int DeviceNameHint(int card, const char* iface, void*** hints);
19 virtual char* DeviceNameGetHint(const void* hint, const char* id);
20 virtual int DeviceNameFreeHint(void** hints);
21
18 virtual int PcmOpen(snd_pcm_t** handle, const char* name, 22 virtual int PcmOpen(snd_pcm_t** handle, const char* name,
19 snd_pcm_stream_t stream, int mode); 23 snd_pcm_stream_t stream, int mode);
20 virtual int PcmClose(snd_pcm_t* handle); 24 virtual int PcmClose(snd_pcm_t* handle);
21 virtual int PcmPrepare(snd_pcm_t* handle); 25 virtual int PcmPrepare(snd_pcm_t* handle);
22 virtual int PcmDrop(snd_pcm_t* handle); 26 virtual int PcmDrop(snd_pcm_t* handle);
23 virtual int PcmDelay(snd_pcm_t* handle, snd_pcm_sframes_t* delay); 27 virtual int PcmDelay(snd_pcm_t* handle, snd_pcm_sframes_t* delay);
24 virtual snd_pcm_sframes_t PcmWritei(snd_pcm_t* handle, 28 virtual snd_pcm_sframes_t PcmWritei(snd_pcm_t* handle,
25 const void* buffer, 29 const void* buffer,
26 snd_pcm_uframes_t size); 30 snd_pcm_uframes_t size);
27 virtual int PcmRecover(snd_pcm_t* handle, int err, int silent); 31 virtual int PcmRecover(snd_pcm_t* handle, int err, int silent);
28 virtual int PcmSetParams(snd_pcm_t* handle, snd_pcm_format_t format, 32 virtual int PcmSetParams(snd_pcm_t* handle, snd_pcm_format_t format,
29 snd_pcm_access_t access, unsigned int channels, 33 snd_pcm_access_t access, unsigned int channels,
30 unsigned int rate, int soft_resample, 34 unsigned int rate, int soft_resample,
31 unsigned int latency); 35 unsigned int latency);
32 virtual const char* PcmName(snd_pcm_t* handle); 36 virtual const char* PcmName(snd_pcm_t* handle);
33 virtual snd_pcm_sframes_t PcmAvailUpdate(snd_pcm_t* handle); 37 virtual snd_pcm_sframes_t PcmAvailUpdate(snd_pcm_t* handle);
34 38
35 virtual const char* StrError(int errnum); 39 virtual const char* StrError(int errnum);
36 40
37 private: 41 private:
38 DISALLOW_COPY_AND_ASSIGN(AlsaWrapper); 42 DISALLOW_COPY_AND_ASSIGN(AlsaWrapper);
39 }; 43 };
OLDNEW
« no previous file with comments | « media/audio/linux/alsa_output_unittest.cc ('k') | media/audio/linux/alsa_wrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698