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

Side by Side Diff: webrtc/modules/audio_device/linux/audio_mixer_manager_pulse_linux.cc

Issue 1335923002: Add RTC_ prefix to (D)CHECKs and related macros. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 _paSpeakerVolume(PA_VOLUME_NORM), 56 _paSpeakerVolume(PA_VOLUME_NORM),
57 _paChannels(0), 57 _paChannels(0),
58 _paObjectsSet(false) 58 _paObjectsSet(false)
59 { 59 {
60 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, 60 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id,
61 "%s constructed", __FUNCTION__); 61 "%s constructed", __FUNCTION__);
62 } 62 }
63 63
64 AudioMixerManagerLinuxPulse::~AudioMixerManagerLinuxPulse() 64 AudioMixerManagerLinuxPulse::~AudioMixerManagerLinuxPulse()
65 { 65 {
66 DCHECK(thread_checker_.CalledOnValidThread()); 66 RTC_DCHECK(thread_checker_.CalledOnValidThread());
67 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, 67 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id,
68 "%s destructed", __FUNCTION__); 68 "%s destructed", __FUNCTION__);
69 69
70 Close(); 70 Close();
71 } 71 }
72 72
73 // =========================================================================== 73 // ===========================================================================
74 // PUBLIC METHODS 74 // PUBLIC METHODS
75 // =========================================================================== 75 // ===========================================================================
76 76
77 int32_t AudioMixerManagerLinuxPulse::SetPulseAudioObjects( 77 int32_t AudioMixerManagerLinuxPulse::SetPulseAudioObjects(
78 pa_threaded_mainloop* mainloop, 78 pa_threaded_mainloop* mainloop,
79 pa_context* context) 79 pa_context* context)
80 { 80 {
81 DCHECK(thread_checker_.CalledOnValidThread()); 81 RTC_DCHECK(thread_checker_.CalledOnValidThread());
82 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s", 82 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s",
83 __FUNCTION__); 83 __FUNCTION__);
84 84
85 if (!mainloop || !context) 85 if (!mainloop || !context)
86 { 86 {
87 WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, 87 WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
88 " could not set PulseAudio objects for mixer"); 88 " could not set PulseAudio objects for mixer");
89 return -1; 89 return -1;
90 } 90 }
91 91
92 _paMainloop = mainloop; 92 _paMainloop = mainloop;
93 _paContext = context; 93 _paContext = context;
94 _paObjectsSet = true; 94 _paObjectsSet = true;
95 95
96 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 96 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
97 " the PulseAudio objects for the mixer has been set"); 97 " the PulseAudio objects for the mixer has been set");
98 98
99 return 0; 99 return 0;
100 } 100 }
101 101
102 int32_t AudioMixerManagerLinuxPulse::Close() 102 int32_t AudioMixerManagerLinuxPulse::Close()
103 { 103 {
104 DCHECK(thread_checker_.CalledOnValidThread()); 104 RTC_DCHECK(thread_checker_.CalledOnValidThread());
105 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s", 105 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s",
106 __FUNCTION__); 106 __FUNCTION__);
107 107
108 CloseSpeaker(); 108 CloseSpeaker();
109 CloseMicrophone(); 109 CloseMicrophone();
110 110
111 _paMainloop = NULL; 111 _paMainloop = NULL;
112 _paContext = NULL; 112 _paContext = NULL;
113 _paObjectsSet = false; 113 _paObjectsSet = false;
114 114
115 return 0; 115 return 0;
116 116
117 } 117 }
118 118
119 int32_t AudioMixerManagerLinuxPulse::CloseSpeaker() 119 int32_t AudioMixerManagerLinuxPulse::CloseSpeaker()
120 { 120 {
121 DCHECK(thread_checker_.CalledOnValidThread()); 121 RTC_DCHECK(thread_checker_.CalledOnValidThread());
122 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s", 122 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s",
123 __FUNCTION__); 123 __FUNCTION__);
124 124
125 // Reset the index to -1 125 // Reset the index to -1
126 _paOutputDeviceIndex = -1; 126 _paOutputDeviceIndex = -1;
127 _paPlayStream = NULL; 127 _paPlayStream = NULL;
128 128
129 return 0; 129 return 0;
130 } 130 }
131 131
132 int32_t AudioMixerManagerLinuxPulse::CloseMicrophone() 132 int32_t AudioMixerManagerLinuxPulse::CloseMicrophone()
133 { 133 {
134 DCHECK(thread_checker_.CalledOnValidThread()); 134 RTC_DCHECK(thread_checker_.CalledOnValidThread());
135 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s", 135 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, "%s",
136 __FUNCTION__); 136 __FUNCTION__);
137 137
138 // Reset the index to -1 138 // Reset the index to -1
139 _paInputDeviceIndex = -1; 139 _paInputDeviceIndex = -1;
140 _paRecStream = NULL; 140 _paRecStream = NULL;
141 141
142 return 0; 142 return 0;
143 } 143 }
144 144
145 int32_t AudioMixerManagerLinuxPulse::SetPlayStream(pa_stream* playStream) 145 int32_t AudioMixerManagerLinuxPulse::SetPlayStream(pa_stream* playStream)
146 { 146 {
147 DCHECK(thread_checker_.CalledOnValidThread()); 147 RTC_DCHECK(thread_checker_.CalledOnValidThread());
148 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 148 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
149 "AudioMixerManagerLinuxPulse::SetPlayStream(playStream)"); 149 "AudioMixerManagerLinuxPulse::SetPlayStream(playStream)");
150 150
151 _paPlayStream = playStream; 151 _paPlayStream = playStream;
152 return 0; 152 return 0;
153 } 153 }
154 154
155 int32_t AudioMixerManagerLinuxPulse::SetRecStream(pa_stream* recStream) 155 int32_t AudioMixerManagerLinuxPulse::SetRecStream(pa_stream* recStream)
156 { 156 {
157 DCHECK(thread_checker_.CalledOnValidThread()); 157 RTC_DCHECK(thread_checker_.CalledOnValidThread());
158 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 158 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
159 "AudioMixerManagerLinuxPulse::SetRecStream(recStream)"); 159 "AudioMixerManagerLinuxPulse::SetRecStream(recStream)");
160 160
161 _paRecStream = recStream; 161 _paRecStream = recStream;
162 return 0; 162 return 0;
163 } 163 }
164 164
165 int32_t AudioMixerManagerLinuxPulse::OpenSpeaker( 165 int32_t AudioMixerManagerLinuxPulse::OpenSpeaker(
166 uint16_t deviceIndex) 166 uint16_t deviceIndex)
167 { 167 {
168 DCHECK(thread_checker_.CalledOnValidThread()); 168 RTC_DCHECK(thread_checker_.CalledOnValidThread());
169 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 169 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
170 "AudioMixerManagerLinuxPulse::OpenSpeaker(deviceIndex=%d)", 170 "AudioMixerManagerLinuxPulse::OpenSpeaker(deviceIndex=%d)",
171 deviceIndex); 171 deviceIndex);
172 172
173 // No point in opening the speaker 173 // No point in opening the speaker
174 // if PA objects have not been set 174 // if PA objects have not been set
175 if (!_paObjectsSet) 175 if (!_paObjectsSet)
176 { 176 {
177 WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, 177 WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
178 " PulseAudio objects has not been set"); 178 " PulseAudio objects has not been set");
179 return -1; 179 return -1;
180 } 180 }
181 181
182 // Set the index for the PulseAudio 182 // Set the index for the PulseAudio
183 // output device to control 183 // output device to control
184 _paOutputDeviceIndex = deviceIndex; 184 _paOutputDeviceIndex = deviceIndex;
185 185
186 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 186 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
187 " the output mixer device is now open"); 187 " the output mixer device is now open");
188 188
189 return 0; 189 return 0;
190 } 190 }
191 191
192 int32_t AudioMixerManagerLinuxPulse::OpenMicrophone( 192 int32_t AudioMixerManagerLinuxPulse::OpenMicrophone(
193 uint16_t deviceIndex) 193 uint16_t deviceIndex)
194 { 194 {
195 DCHECK(thread_checker_.CalledOnValidThread()); 195 RTC_DCHECK(thread_checker_.CalledOnValidThread());
196 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 196 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
197 "AudioMixerManagerLinuxPulse::OpenMicrophone" 197 "AudioMixerManagerLinuxPulse::OpenMicrophone"
198 "(deviceIndex=%d)", deviceIndex); 198 "(deviceIndex=%d)", deviceIndex);
199 199
200 // No point in opening the microphone 200 // No point in opening the microphone
201 // if PA objects have not been set 201 // if PA objects have not been set
202 if (!_paObjectsSet) 202 if (!_paObjectsSet)
203 { 203 {
204 WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id, 204 WEBRTC_TRACE(kTraceError, kTraceAudioDevice, _id,
205 " PulseAudio objects have not been set"); 205 " PulseAudio objects have not been set");
206 return -1; 206 return -1;
207 } 207 }
208 208
209 // Set the index for the PulseAudio 209 // Set the index for the PulseAudio
210 // input device to control 210 // input device to control
211 _paInputDeviceIndex = deviceIndex; 211 _paInputDeviceIndex = deviceIndex;
212 212
213 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 213 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
214 " the input mixer device is now open"); 214 " the input mixer device is now open");
215 215
216 return 0; 216 return 0;
217 } 217 }
218 218
219 bool AudioMixerManagerLinuxPulse::SpeakerIsInitialized() const 219 bool AudioMixerManagerLinuxPulse::SpeakerIsInitialized() const
220 { 220 {
221 DCHECK(thread_checker_.CalledOnValidThread()); 221 RTC_DCHECK(thread_checker_.CalledOnValidThread());
222 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", 222 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s",
223 __FUNCTION__); 223 __FUNCTION__);
224 224
225 return (_paOutputDeviceIndex != -1); 225 return (_paOutputDeviceIndex != -1);
226 } 226 }
227 227
228 bool AudioMixerManagerLinuxPulse::MicrophoneIsInitialized() const 228 bool AudioMixerManagerLinuxPulse::MicrophoneIsInitialized() const
229 { 229 {
230 DCHECK(thread_checker_.CalledOnValidThread()); 230 RTC_DCHECK(thread_checker_.CalledOnValidThread());
231 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s", 231 WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s",
232 __FUNCTION__); 232 __FUNCTION__);
233 233
234 return (_paInputDeviceIndex != -1); 234 return (_paInputDeviceIndex != -1);
235 } 235 }
236 236
237 int32_t AudioMixerManagerLinuxPulse::SetSpeakerVolume( 237 int32_t AudioMixerManagerLinuxPulse::SetSpeakerVolume(
238 uint32_t volume) 238 uint32_t volume)
239 { 239 {
240 DCHECK(thread_checker_.CalledOnValidThread()); 240 RTC_DCHECK(thread_checker_.CalledOnValidThread());
241 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 241 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
242 "AudioMixerManagerLinuxPulse::SetSpeakerVolume(volume=%u)", 242 "AudioMixerManagerLinuxPulse::SetSpeakerVolume(volume=%u)",
243 volume); 243 volume);
244 244
245 if (_paOutputDeviceIndex == -1) 245 if (_paOutputDeviceIndex == -1)
246 { 246 {
247 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 247 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
248 " output device index has not been set"); 248 " output device index has not been set");
249 return -1; 249 return -1;
250 } 250 }
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 } 365 }
366 366
367 minVolume = static_cast<uint32_t> (PA_VOLUME_MUTED); 367 minVolume = static_cast<uint32_t> (PA_VOLUME_MUTED);
368 368
369 return 0; 369 return 0;
370 } 370 }
371 371
372 int32_t 372 int32_t
373 AudioMixerManagerLinuxPulse::SpeakerVolumeStepSize(uint16_t& stepSize) const 373 AudioMixerManagerLinuxPulse::SpeakerVolumeStepSize(uint16_t& stepSize) const
374 { 374 {
375 DCHECK(thread_checker_.CalledOnValidThread()); 375 RTC_DCHECK(thread_checker_.CalledOnValidThread());
376 if (_paOutputDeviceIndex == -1) 376 if (_paOutputDeviceIndex == -1)
377 { 377 {
378 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 378 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
379 " output device index has not been set"); 379 " output device index has not been set");
380 return -1; 380 return -1;
381 } 381 }
382 382
383 // The sink input (stream) will always have step size = 1 383 // The sink input (stream) will always have step size = 1
384 // There are PA_VOLUME_NORM+1 steps 384 // There are PA_VOLUME_NORM+1 steps
385 stepSize = 1; 385 stepSize = 1;
386 386
387 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 387 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
388 "\tAudioMixerManagerLinuxPulse::SpeakerVolumeStepSize() => " 388 "\tAudioMixerManagerLinuxPulse::SpeakerVolumeStepSize() => "
389 "size=%i", stepSize); 389 "size=%i", stepSize);
390 390
391 return 0; 391 return 0;
392 } 392 }
393 393
394 int32_t 394 int32_t
395 AudioMixerManagerLinuxPulse::SpeakerVolumeIsAvailable(bool& available) 395 AudioMixerManagerLinuxPulse::SpeakerVolumeIsAvailable(bool& available)
396 { 396 {
397 DCHECK(thread_checker_.CalledOnValidThread()); 397 RTC_DCHECK(thread_checker_.CalledOnValidThread());
398 if (_paOutputDeviceIndex == -1) 398 if (_paOutputDeviceIndex == -1)
399 { 399 {
400 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 400 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
401 " output device index has not been set"); 401 " output device index has not been set");
402 return -1; 402 return -1;
403 } 403 }
404 404
405 // Always available in Pulse Audio 405 // Always available in Pulse Audio
406 available = true; 406 available = true;
407 407
408 return 0; 408 return 0;
409 } 409 }
410 410
411 int32_t 411 int32_t
412 AudioMixerManagerLinuxPulse::SpeakerMuteIsAvailable(bool& available) 412 AudioMixerManagerLinuxPulse::SpeakerMuteIsAvailable(bool& available)
413 { 413 {
414 DCHECK(thread_checker_.CalledOnValidThread()); 414 RTC_DCHECK(thread_checker_.CalledOnValidThread());
415 if (_paOutputDeviceIndex == -1) 415 if (_paOutputDeviceIndex == -1)
416 { 416 {
417 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 417 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
418 " output device index has not been set"); 418 " output device index has not been set");
419 return -1; 419 return -1;
420 } 420 }
421 421
422 // Always available in Pulse Audio 422 // Always available in Pulse Audio
423 available = true; 423 available = true;
424 424
425 return 0; 425 return 0;
426 } 426 }
427 427
428 int32_t AudioMixerManagerLinuxPulse::SetSpeakerMute(bool enable) 428 int32_t AudioMixerManagerLinuxPulse::SetSpeakerMute(bool enable)
429 { 429 {
430 DCHECK(thread_checker_.CalledOnValidThread()); 430 RTC_DCHECK(thread_checker_.CalledOnValidThread());
431 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 431 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
432 "AudioMixerManagerLinuxPulse::SetSpeakerMute(enable=%u)", 432 "AudioMixerManagerLinuxPulse::SetSpeakerMute(enable=%u)",
433 enable); 433 enable);
434 434
435 if (_paOutputDeviceIndex == -1) 435 if (_paOutputDeviceIndex == -1)
436 { 436 {
437 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 437 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
438 " output device index has not been set"); 438 " output device index has not been set");
439 return -1; 439 return -1;
440 } 440 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 505 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
506 " AudioMixerManagerLinuxPulse::SpeakerMute() => " 506 " AudioMixerManagerLinuxPulse::SpeakerMute() => "
507 "enabled=%i, enabled"); 507 "enabled=%i, enabled");
508 508
509 return 0; 509 return 0;
510 } 510 }
511 511
512 int32_t 512 int32_t
513 AudioMixerManagerLinuxPulse::StereoPlayoutIsAvailable(bool& available) 513 AudioMixerManagerLinuxPulse::StereoPlayoutIsAvailable(bool& available)
514 { 514 {
515 DCHECK(thread_checker_.CalledOnValidThread()); 515 RTC_DCHECK(thread_checker_.CalledOnValidThread());
516 if (_paOutputDeviceIndex == -1) 516 if (_paOutputDeviceIndex == -1)
517 { 517 {
518 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 518 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
519 " output device index has not been set"); 519 " output device index has not been set");
520 return -1; 520 return -1;
521 } 521 }
522 522
523 uint32_t deviceIndex = (uint32_t) _paOutputDeviceIndex; 523 uint32_t deviceIndex = (uint32_t) _paOutputDeviceIndex;
524 524
525 { 525 {
(...skipping 13 matching lines...) Expand all
539 return -1; 539 return -1;
540 540
541 available = static_cast<bool> (_paChannels == 2); 541 available = static_cast<bool> (_paChannels == 2);
542 542
543 return 0; 543 return 0;
544 } 544 }
545 545
546 int32_t 546 int32_t
547 AudioMixerManagerLinuxPulse::StereoRecordingIsAvailable(bool& available) 547 AudioMixerManagerLinuxPulse::StereoRecordingIsAvailable(bool& available)
548 { 548 {
549 DCHECK(thread_checker_.CalledOnValidThread()); 549 RTC_DCHECK(thread_checker_.CalledOnValidThread());
550 if (_paInputDeviceIndex == -1) 550 if (_paInputDeviceIndex == -1)
551 { 551 {
552 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 552 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
553 " input device index has not been set"); 553 " input device index has not been set");
554 return -1; 554 return -1;
555 } 555 }
556 556
557 uint32_t deviceIndex = (uint32_t) _paInputDeviceIndex; 557 uint32_t deviceIndex = (uint32_t) _paInputDeviceIndex;
558 558
559 AutoPulseLock auto_lock(_paMainloop); 559 AutoPulseLock auto_lock(_paMainloop);
(...skipping 23 matching lines...) Expand all
583 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 583 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
584 " AudioMixerManagerLinuxPulse::StereoRecordingIsAvailable()" 584 " AudioMixerManagerLinuxPulse::StereoRecordingIsAvailable()"
585 " => available=%i, available"); 585 " => available=%i, available");
586 586
587 return 0; 587 return 0;
588 } 588 }
589 589
590 int32_t AudioMixerManagerLinuxPulse::MicrophoneMuteIsAvailable( 590 int32_t AudioMixerManagerLinuxPulse::MicrophoneMuteIsAvailable(
591 bool& available) 591 bool& available)
592 { 592 {
593 DCHECK(thread_checker_.CalledOnValidThread()); 593 RTC_DCHECK(thread_checker_.CalledOnValidThread());
594 if (_paInputDeviceIndex == -1) 594 if (_paInputDeviceIndex == -1)
595 { 595 {
596 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 596 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
597 " input device index has not been set"); 597 " input device index has not been set");
598 return -1; 598 return -1;
599 } 599 }
600 600
601 // Always available in Pulse Audio 601 // Always available in Pulse Audio
602 available = true; 602 available = true;
603 603
604 return 0; 604 return 0;
605 } 605 }
606 606
607 int32_t AudioMixerManagerLinuxPulse::SetMicrophoneMute(bool enable) 607 int32_t AudioMixerManagerLinuxPulse::SetMicrophoneMute(bool enable)
608 { 608 {
609 DCHECK(thread_checker_.CalledOnValidThread()); 609 RTC_DCHECK(thread_checker_.CalledOnValidThread());
610 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 610 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
611 "AudioMixerManagerLinuxPulse::SetMicrophoneMute(enable=%u)", 611 "AudioMixerManagerLinuxPulse::SetMicrophoneMute(enable=%u)",
612 enable); 612 enable);
613 613
614 if (_paInputDeviceIndex == -1) 614 if (_paInputDeviceIndex == -1)
615 { 615 {
616 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 616 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
617 " input device index has not been set"); 617 " input device index has not been set");
618 return -1; 618 return -1;
619 } 619 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 " could not mute microphone, error%d", 654 " could not mute microphone, error%d",
655 LATE(pa_context_errno)(_paContext)); 655 LATE(pa_context_errno)(_paContext));
656 return -1; 656 return -1;
657 } 657 }
658 658
659 return 0; 659 return 0;
660 } 660 }
661 661
662 int32_t AudioMixerManagerLinuxPulse::MicrophoneMute(bool& enabled) const 662 int32_t AudioMixerManagerLinuxPulse::MicrophoneMute(bool& enabled) const
663 { 663 {
664 DCHECK(thread_checker_.CalledOnValidThread()); 664 RTC_DCHECK(thread_checker_.CalledOnValidThread());
665 if (_paInputDeviceIndex == -1) 665 if (_paInputDeviceIndex == -1)
666 { 666 {
667 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 667 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
668 " input device index has not been set"); 668 " input device index has not been set");
669 return -1; 669 return -1;
670 } 670 }
671 671
672 uint32_t deviceIndex = (uint32_t) _paInputDeviceIndex; 672 uint32_t deviceIndex = (uint32_t) _paInputDeviceIndex;
673 673
674 { 674 {
(...skipping 16 matching lines...) Expand all
691 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 691 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
692 "\tAudioMixerManagerLinuxPulse::MicrophoneMute() =>" 692 "\tAudioMixerManagerLinuxPulse::MicrophoneMute() =>"
693 " enabled=%i", enabled); 693 " enabled=%i", enabled);
694 694
695 return 0; 695 return 0;
696 } 696 }
697 697
698 int32_t 698 int32_t
699 AudioMixerManagerLinuxPulse::MicrophoneBoostIsAvailable(bool& available) 699 AudioMixerManagerLinuxPulse::MicrophoneBoostIsAvailable(bool& available)
700 { 700 {
701 DCHECK(thread_checker_.CalledOnValidThread()); 701 RTC_DCHECK(thread_checker_.CalledOnValidThread());
702 if (_paInputDeviceIndex == -1) 702 if (_paInputDeviceIndex == -1)
703 { 703 {
704 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 704 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
705 " input device index has not been set"); 705 " input device index has not been set");
706 return -1; 706 return -1;
707 } 707 }
708 708
709 // Always unavailable in Pulse Audio 709 // Always unavailable in Pulse Audio
710 // Could make it possible to use PA_VOLUME_MAX 710 // Could make it possible to use PA_VOLUME_MAX
711 // but that gives bad audio with some sound cards 711 // but that gives bad audio with some sound cards
712 available = false; 712 available = false;
713 713
714 return 0; 714 return 0;
715 } 715 }
716 716
717 int32_t AudioMixerManagerLinuxPulse::SetMicrophoneBoost(bool enable) 717 int32_t AudioMixerManagerLinuxPulse::SetMicrophoneBoost(bool enable)
718 { 718 {
719 DCHECK(thread_checker_.CalledOnValidThread()); 719 RTC_DCHECK(thread_checker_.CalledOnValidThread());
720 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id, 720 WEBRTC_TRACE(kTraceInfo, kTraceAudioDevice, _id,
721 "AudioMixerManagerLinuxPulse::SetMicrophoneBoost(enable=%u)", 721 "AudioMixerManagerLinuxPulse::SetMicrophoneBoost(enable=%u)",
722 enable); 722 enable);
723 723
724 if (_paInputDeviceIndex == -1) 724 if (_paInputDeviceIndex == -1)
725 { 725 {
726 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 726 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
727 " input device index has not been set"); 727 " input device index has not been set");
728 return -1; 728 return -1;
729 } 729 }
730 730
731 // Ensure the selected microphone destination has a valid boost control 731 // Ensure the selected microphone destination has a valid boost control
732 bool available(false); 732 bool available(false);
733 MicrophoneBoostIsAvailable(available); 733 MicrophoneBoostIsAvailable(available);
734 if (!available) 734 if (!available)
735 { 735 {
736 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 736 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
737 " it is not possible to enable microphone boost"); 737 " it is not possible to enable microphone boost");
738 return -1; 738 return -1;
739 } 739 }
740 740
741 // It is assumed that the call above fails! 741 // It is assumed that the call above fails!
742 742
743 return 0; 743 return 0;
744 } 744 }
745 745
746 int32_t AudioMixerManagerLinuxPulse::MicrophoneBoost(bool& enabled) const 746 int32_t AudioMixerManagerLinuxPulse::MicrophoneBoost(bool& enabled) const
747 { 747 {
748 DCHECK(thread_checker_.CalledOnValidThread()); 748 RTC_DCHECK(thread_checker_.CalledOnValidThread());
749 if (_paInputDeviceIndex == -1) 749 if (_paInputDeviceIndex == -1)
750 { 750 {
751 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 751 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
752 " input device index has not been set"); 752 " input device index has not been set");
753 return -1; 753 return -1;
754 } 754 }
755 755
756 // Microphone boost cannot be enabled on this platform! 756 // Microphone boost cannot be enabled on this platform!
757 enabled = false; 757 enabled = false;
758 758
759 return 0; 759 return 0;
760 } 760 }
761 761
762 int32_t AudioMixerManagerLinuxPulse::MicrophoneVolumeIsAvailable( 762 int32_t AudioMixerManagerLinuxPulse::MicrophoneVolumeIsAvailable(
763 bool& available) 763 bool& available)
764 { 764 {
765 DCHECK(thread_checker_.CalledOnValidThread()); 765 RTC_DCHECK(thread_checker_.CalledOnValidThread());
766 if (_paInputDeviceIndex == -1) 766 if (_paInputDeviceIndex == -1)
767 { 767 {
768 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 768 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
769 " input device index has not been set"); 769 " input device index has not been set");
770 return -1; 770 return -1;
771 } 771 }
772 772
773 // Always available in Pulse Audio 773 // Always available in Pulse Audio
774 available = true; 774 available = true;
775 775
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 } 924 }
925 925
926 minVolume = static_cast<uint32_t> (PA_VOLUME_MUTED); 926 minVolume = static_cast<uint32_t> (PA_VOLUME_MUTED);
927 927
928 return 0; 928 return 0;
929 } 929 }
930 930
931 int32_t AudioMixerManagerLinuxPulse::MicrophoneVolumeStepSize( 931 int32_t AudioMixerManagerLinuxPulse::MicrophoneVolumeStepSize(
932 uint16_t& stepSize) const 932 uint16_t& stepSize) const
933 { 933 {
934 DCHECK(thread_checker_.CalledOnValidThread()); 934 RTC_DCHECK(thread_checker_.CalledOnValidThread());
935 if (_paInputDeviceIndex == -1) 935 if (_paInputDeviceIndex == -1)
936 { 936 {
937 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id, 937 WEBRTC_TRACE(kTraceWarning, kTraceAudioDevice, _id,
938 " input device index has not been set"); 938 " input device index has not been set");
939 return -1; 939 return -1;
940 } 940 }
941 941
942 uint32_t deviceIndex = (uint32_t) _paInputDeviceIndex; 942 uint32_t deviceIndex = (uint32_t) _paInputDeviceIndex;
943 943
944 AutoPulseLock auto_lock(_paMainloop); 944 AutoPulseLock auto_lock(_paMainloop);
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 1145
1146 AutoPulseLock auto_lock(_paMainloop); 1146 AutoPulseLock auto_lock(_paMainloop);
1147 paOperation = LATE(pa_context_get_source_info_by_index)( 1147 paOperation = LATE(pa_context_get_source_info_by_index)(
1148 _paContext, device_index, PaSourceInfoCallback, (void*) this); 1148 _paContext, device_index, PaSourceInfoCallback, (void*) this);
1149 1149
1150 WaitForOperationCompletion(paOperation); 1150 WaitForOperationCompletion(paOperation);
1151 return true; 1151 return true;
1152 } 1152 }
1153 1153
1154 } 1154 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698