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

Side by Side Diff: media/audio/linux/alsa_util.cc

Issue 9805001: Move media/audio files into media namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « media/audio/linux/alsa_util.h ('k') | media/audio/linux/alsa_wrapper.h » ('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) 2012 The Chromium Authors. All rights reserved. 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 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 #include "media/audio/linux/alsa_util.h" 5 #include "media/audio/linux/alsa_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "media/audio/linux/alsa_wrapper.h" 10 #include "media/audio/linux/alsa_wrapper.h"
11 11
12 namespace alsa_util { 12 namespace alsa_util {
13 13
14 static snd_pcm_t* OpenDevice(AlsaWrapper* wrapper, 14 static snd_pcm_t* OpenDevice(media::AlsaWrapper* wrapper,
15 const char* device_name, 15 const char* device_name,
16 snd_pcm_stream_t type, 16 snd_pcm_stream_t type,
17 int channels, 17 int channels,
18 int sample_rate, 18 int sample_rate,
19 snd_pcm_format_t pcm_format, 19 snd_pcm_format_t pcm_format,
20 int latency_us) { 20 int latency_us) {
21 snd_pcm_t* handle = NULL; 21 snd_pcm_t* handle = NULL;
22 int error = wrapper->PcmOpen(&handle, device_name, type, SND_PCM_NONBLOCK); 22 int error = wrapper->PcmOpen(&handle, device_name, type, SND_PCM_NONBLOCK);
23 if (error < 0) { 23 if (error < 0) {
24 LOG(WARNING) << "PcmOpen: " << device_name << "," 24 LOG(WARNING) << "PcmOpen: " << device_name << ","
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 return SND_PCM_FORMAT_S24; 74 return SND_PCM_FORMAT_S24;
75 75
76 case 32: 76 case 32:
77 return SND_PCM_FORMAT_S32; 77 return SND_PCM_FORMAT_S32;
78 78
79 default: 79 default:
80 return SND_PCM_FORMAT_UNKNOWN; 80 return SND_PCM_FORMAT_UNKNOWN;
81 } 81 }
82 } 82 }
83 83
84 int CloseDevice(AlsaWrapper* wrapper, snd_pcm_t* handle) { 84 int CloseDevice(media::AlsaWrapper* wrapper, snd_pcm_t* handle) {
85 std::string device_name = wrapper->PcmName(handle); 85 std::string device_name = wrapper->PcmName(handle);
86 int error = wrapper->PcmClose(handle); 86 int error = wrapper->PcmClose(handle);
87 if (error < 0) { 87 if (error < 0) {
88 LOG(ERROR) << "PcmClose: " << device_name << ", " 88 LOG(ERROR) << "PcmClose: " << device_name << ", "
89 << wrapper->StrError(error); 89 << wrapper->StrError(error);
90 } 90 }
91 91
92 return error; 92 return error;
93 } 93 }
94 94
95 snd_pcm_t* OpenCaptureDevice(AlsaWrapper* wrapper, 95 snd_pcm_t* OpenCaptureDevice(media::AlsaWrapper* wrapper,
96 const char* device_name, 96 const char* device_name,
97 int channels, 97 int channels,
98 int sample_rate, 98 int sample_rate,
99 snd_pcm_format_t pcm_format, 99 snd_pcm_format_t pcm_format,
100 int latency_us) { 100 int latency_us) {
101 return OpenDevice(wrapper, device_name, SND_PCM_STREAM_CAPTURE, channels, 101 return OpenDevice(wrapper, device_name, SND_PCM_STREAM_CAPTURE, channels,
102 sample_rate, pcm_format, latency_us); 102 sample_rate, pcm_format, latency_us);
103 } 103 }
104 104
105 snd_pcm_t* OpenPlaybackDevice(AlsaWrapper* wrapper, 105 snd_pcm_t* OpenPlaybackDevice(media::AlsaWrapper* wrapper,
106 const char* device_name, 106 const char* device_name,
107 int channels, 107 int channels,
108 int sample_rate, 108 int sample_rate,
109 snd_pcm_format_t pcm_format, 109 snd_pcm_format_t pcm_format,
110 int latency_us) { 110 int latency_us) {
111 return OpenDevice(wrapper, device_name, SND_PCM_STREAM_PLAYBACK, channels, 111 return OpenDevice(wrapper, device_name, SND_PCM_STREAM_PLAYBACK, channels,
112 sample_rate, pcm_format, latency_us); 112 sample_rate, pcm_format, latency_us);
113 } 113 }
114 114
115 snd_mixer_t* OpenMixer(AlsaWrapper* wrapper, 115 snd_mixer_t* OpenMixer(media::AlsaWrapper* wrapper,
116 const std::string& device_name) { 116 const std::string& device_name) {
117 snd_mixer_t* mixer = NULL; 117 snd_mixer_t* mixer = NULL;
118 118
119 int error = wrapper->MixerOpen(&mixer, 0); 119 int error = wrapper->MixerOpen(&mixer, 0);
120 if (error < 0) { 120 if (error < 0) {
121 LOG(ERROR) << "MixerOpen: " << device_name << ", " 121 LOG(ERROR) << "MixerOpen: " << device_name << ", "
122 << wrapper->StrError(error); 122 << wrapper->StrError(error);
123 return NULL; 123 return NULL;
124 } 124 }
125 125
(...skipping 10 matching lines...) Expand all
136 if (error < 0) { 136 if (error < 0) {
137 LOG(ERROR) << "MixerElementRegister: " << control_name << ", " 137 LOG(ERROR) << "MixerElementRegister: " << control_name << ", "
138 << wrapper->StrError(error); 138 << wrapper->StrError(error);
139 alsa_util::CloseMixer(wrapper, mixer, device_name); 139 alsa_util::CloseMixer(wrapper, mixer, device_name);
140 return NULL; 140 return NULL;
141 } 141 }
142 142
143 return mixer; 143 return mixer;
144 } 144 }
145 145
146 void CloseMixer(AlsaWrapper* wrapper, snd_mixer_t* mixer, 146 void CloseMixer(media::AlsaWrapper* wrapper, snd_mixer_t* mixer,
147 const std::string& device_name) { 147 const std::string& device_name) {
148 if (!mixer) 148 if (!mixer)
149 return; 149 return;
150 150
151 wrapper->MixerFree(mixer); 151 wrapper->MixerFree(mixer);
152 152
153 int error = 0; 153 int error = 0;
154 if (!device_name.empty()) { 154 if (!device_name.empty()) {
155 std::string control_name = DeviceNameToControlName(device_name); 155 std::string control_name = DeviceNameToControlName(device_name);
156 error = wrapper->MixerDetach(mixer, control_name.c_str()); 156 error = wrapper->MixerDetach(mixer, control_name.c_str());
157 if (error < 0) { 157 if (error < 0) {
158 LOG(WARNING) << "MixerDetach: " << control_name << ", " 158 LOG(WARNING) << "MixerDetach: " << control_name << ", "
159 << wrapper->StrError(error); 159 << wrapper->StrError(error);
160 } 160 }
161 } 161 }
162 162
163 error = wrapper->MixerClose(mixer); 163 error = wrapper->MixerClose(mixer);
164 if (error < 0) { 164 if (error < 0) {
165 LOG(WARNING) << "MixerClose: " << wrapper->StrError(error); 165 LOG(WARNING) << "MixerClose: " << wrapper->StrError(error);
166 } 166 }
167 } 167 }
168 168
169 snd_mixer_elem_t* LoadCaptureMixerElement(AlsaWrapper* wrapper, 169 snd_mixer_elem_t* LoadCaptureMixerElement(media::AlsaWrapper* wrapper,
170 snd_mixer_t* mixer) { 170 snd_mixer_t* mixer) {
171 if (!mixer) 171 if (!mixer)
172 return NULL; 172 return NULL;
173 173
174 int error = wrapper->MixerLoad(mixer); 174 int error = wrapper->MixerLoad(mixer);
175 if (error < 0) { 175 if (error < 0) {
176 LOG(ERROR) << "MixerLoad: " << wrapper->StrError(error); 176 LOG(ERROR) << "MixerLoad: " << wrapper->StrError(error);
177 return NULL; 177 return NULL;
178 } 178 }
179 179
(...skipping 11 matching lines...) Expand all
191 else if (strcmp(elem_name, kMicElemName) == 0) 191 else if (strcmp(elem_name, kMicElemName) == 0)
192 mic_elem = elem; 192 mic_elem = elem;
193 } 193 }
194 } 194 }
195 195
196 // Did not find any Capture handle, use the Mic handle. 196 // Did not find any Capture handle, use the Mic handle.
197 return mic_elem; 197 return mic_elem;
198 } 198 }
199 199
200 } // namespace alsa_util 200 } // namespace alsa_util
OLDNEW
« no previous file with comments | « media/audio/linux/alsa_util.h ('k') | media/audio/linux/alsa_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698