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

Side by Side Diff: media/audio/mac/audio_manager_mac.cc

Issue 250803008: Syntax correction in audio_manager_mac.cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | « no previous file | no next file » | 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/mac/audio_manager_mac.h" 5 #include "media/audio/mac/audio_manager_mac.h"
6 6
7 #include <CoreAudio/AudioHardware.h> 7 #include <CoreAudio/AudioHardware.h>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 bool AudioManagerMac::HasAudioOutputDevices() { 300 bool AudioManagerMac::HasAudioOutputDevices() {
301 return HasAudioHardware(kAudioHardwarePropertyDefaultOutputDevice); 301 return HasAudioHardware(kAudioHardwarePropertyDefaultOutputDevice);
302 } 302 }
303 303
304 bool AudioManagerMac::HasAudioInputDevices() { 304 bool AudioManagerMac::HasAudioInputDevices() {
305 return HasAudioHardware(kAudioHardwarePropertyDefaultInputDevice); 305 return HasAudioHardware(kAudioHardwarePropertyDefaultInputDevice);
306 } 306 }
307 307
308 // TODO(xians): There are several places on the OSX specific code which 308 // TODO(xians): There are several places on the OSX specific code which
309 // could benefit from these helper functions. 309 // could benefit from these helper functions.
310 bool AudioManagerMac::GetDefaultInputDevice( 310 bool AudioManagerMac::GetDefaultInputDevice(AudioDeviceID* device) {
311 AudioDeviceID* device) {
312 return GetDefaultDevice(device, true); 311 return GetDefaultDevice(device, true);
313 } 312 }
314 313
315 bool AudioManagerMac::GetDefaultOutputDevice( 314 bool AudioManagerMac::GetDefaultOutputDevice(AudioDeviceID* device) {
316 AudioDeviceID* device) {
317 return GetDefaultDevice(device, false); 315 return GetDefaultDevice(device, false);
318 } 316 }
319 317
320 bool AudioManagerMac::GetDefaultDevice( 318 bool AudioManagerMac::GetDefaultDevice(AudioDeviceID* device, bool input) {
321 AudioDeviceID* device, bool input) {
322 CHECK(device); 319 CHECK(device);
323 320
324 // Obtain the current output device selected by the user. 321 // Obtain the current output device selected by the user.
325 AudioObjectPropertyAddress pa; 322 AudioObjectPropertyAddress pa;
326 pa.mSelector = input ? kAudioHardwarePropertyDefaultInputDevice : 323 pa.mSelector = input ? kAudioHardwarePropertyDefaultInputDevice :
327 kAudioHardwarePropertyDefaultOutputDevice; 324 kAudioHardwarePropertyDefaultOutputDevice;
328 pa.mScope = kAudioObjectPropertyScopeGlobal; 325 pa.mScope = kAudioObjectPropertyScopeGlobal;
329 pa.mElement = kAudioObjectPropertyElementMaster; 326 pa.mElement = kAudioObjectPropertyElementMaster;
330 327
331 UInt32 size = sizeof(*device); 328 UInt32 size = sizeof(*device);
332 329 OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject,
333 OSStatus result = AudioObjectGetPropertyData( 330 &pa,
334 kAudioObjectSystemObject, 331 0,
335 &pa, 332 0,
336 0, 333 &size,
337 0, 334 device);
338 &size,
339 device);
340 335
341 if ((result != kAudioHardwareNoError) || (*device == kAudioDeviceUnknown)) { 336 if ((result != kAudioHardwareNoError) || (*device == kAudioDeviceUnknown)) {
342 DLOG(ERROR) << "Error getting default AudioDevice."; 337 DLOG(ERROR) << "Error getting default AudioDevice.";
343 return false; 338 return false;
344 } 339 }
345 340
346 return true; 341 return true;
347 } 342 }
348 343
349 bool AudioManagerMac::GetDefaultOutputChannels( 344 bool AudioManagerMac::GetDefaultOutputChannels(int* channels) {
350 int* channels) {
351 AudioDeviceID device; 345 AudioDeviceID device;
352 if (!GetDefaultOutputDevice(&device)) 346 if (!GetDefaultOutputDevice(&device))
353 return false; 347 return false;
354 348 return GetDeviceChannels(device, kAudioDevicePropertyScopeOutput, channels);
355 return GetDeviceChannels(device,
356 kAudioDevicePropertyScopeOutput,
357 channels);
358 } 349 }
359 350
360 bool AudioManagerMac::GetDeviceChannels( 351 bool AudioManagerMac::GetDeviceChannels(AudioDeviceID device,
361 AudioDeviceID device, 352 AudioObjectPropertyScope scope,
362 AudioObjectPropertyScope scope, 353 int* channels) {
363 int* channels) {
364 CHECK(channels); 354 CHECK(channels);
365 355
366 // Get stream configuration. 356 // Get stream configuration.
367 AudioObjectPropertyAddress pa; 357 AudioObjectPropertyAddress pa;
368 pa.mSelector = kAudioDevicePropertyStreamConfiguration; 358 pa.mSelector = kAudioDevicePropertyStreamConfiguration;
369 pa.mScope = scope; 359 pa.mScope = scope;
370 pa.mElement = kAudioObjectPropertyElementMaster; 360 pa.mElement = kAudioObjectPropertyElementMaster;
371 361
372 UInt32 size; 362 UInt32 size;
373 OSStatus result = AudioObjectGetPropertyDataSize(device, &pa, 0, 0, &size); 363 OSStatus result = AudioObjectGetPropertyDataSize(device, &pa, 0, 0, &size);
374 if (result != noErr || !size) 364 if (result != noErr || !size)
375 return false; 365 return false;
376 366
377 // Allocate storage. 367 // Allocate storage.
378 scoped_ptr<uint8[]> list_storage(new uint8[size]); 368 scoped_ptr<uint8[]> list_storage(new uint8[size]);
379 AudioBufferList& buffer_list = 369 AudioBufferList& buffer_list =
380 *reinterpret_cast<AudioBufferList*>(list_storage.get()); 370 *reinterpret_cast<AudioBufferList*>(list_storage.get());
381 371
382 result = AudioObjectGetPropertyData( 372 result = AudioObjectGetPropertyData(device, &pa, 0, 0, &size, &buffer_list);
383 device,
384 &pa,
385 0,
386 0,
387 &size,
388 &buffer_list);
389 if (result != noErr) 373 if (result != noErr)
390 return false; 374 return false;
391 375
392 // Determine number of input channels. 376 // Determine number of input channels.
393 int channels_per_frame = buffer_list.mNumberBuffers > 0 ? 377 int channels_per_frame = buffer_list.mNumberBuffers > 0 ?
394 buffer_list.mBuffers[0].mNumberChannels : 0; 378 buffer_list.mBuffers[0].mNumberChannels : 0;
395 if (channels_per_frame == 1 && buffer_list.mNumberBuffers > 1) { 379 if (channels_per_frame == 1 && buffer_list.mNumberBuffers > 1) {
396 // Non-interleaved. 380 // Non-interleaved.
397 *channels = buffer_list.mNumberBuffers; 381 *channels = buffer_list.mNumberBuffers;
398 } else { 382 } else {
399 // Interleaved. 383 // Interleaved.
400 *channels = channels_per_frame; 384 *channels = channels_per_frame;
401 } 385 }
402 386
403 return true; 387 return true;
404 } 388 }
405 389
406 int AudioManagerMac::HardwareSampleRateForDevice(AudioDeviceID device_id) { 390 int AudioManagerMac::HardwareSampleRateForDevice(AudioDeviceID device_id) {
407 Float64 nominal_sample_rate; 391 Float64 nominal_sample_rate;
408 UInt32 info_size = sizeof(nominal_sample_rate); 392 UInt32 info_size = sizeof(nominal_sample_rate);
409 393
410 static const AudioObjectPropertyAddress kNominalSampleRateAddress = { 394 static const AudioObjectPropertyAddress kNominalSampleRateAddress = {
411 kAudioDevicePropertyNominalSampleRate, 395 kAudioDevicePropertyNominalSampleRate,
412 kAudioObjectPropertyScopeGlobal, 396 kAudioObjectPropertyScopeGlobal,
413 kAudioObjectPropertyElementMaster 397 kAudioObjectPropertyElementMaster
414 }; 398 };
415 OSStatus result = AudioObjectGetPropertyData( 399 OSStatus result = AudioObjectGetPropertyData(device_id,
416 device_id, 400 &kNominalSampleRateAddress,
417 &kNominalSampleRateAddress, 401 0,
418 0, 402 0,
419 0, 403 &info_size,
420 &info_size, 404 &nominal_sample_rate);
421 &nominal_sample_rate);
422 if (result != noErr) { 405 if (result != noErr) {
423 OSSTATUS_DLOG(WARNING, result) 406 OSSTATUS_DLOG(WARNING, result)
424 << "Could not get default sample rate for device: " << device_id; 407 << "Could not get default sample rate for device: " << device_id;
425 return 0; 408 return 0;
426 } 409 }
427 410
428 return static_cast<int>(nominal_sample_rate); 411 return static_cast<int>(nominal_sample_rate);
429 } 412 }
430 413
431 int AudioManagerMac::HardwareSampleRate() { 414 int AudioManagerMac::HardwareSampleRate() {
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 void AudioManagerMac::ReleaseInputStream(AudioInputStream* stream) { 769 void AudioManagerMac::ReleaseInputStream(AudioInputStream* stream) {
787 input_streams_.remove(stream); 770 input_streams_.remove(stream);
788 AudioManagerBase::ReleaseInputStream(stream); 771 AudioManagerBase::ReleaseInputStream(stream);
789 } 772 }
790 773
791 AudioManager* CreateAudioManager(AudioLogFactory* audio_log_factory) { 774 AudioManager* CreateAudioManager(AudioLogFactory* audio_log_factory) {
792 return new AudioManagerMac(audio_log_factory); 775 return new AudioManagerMac(audio_log_factory);
793 } 776 }
794 777
795 } // namespace media 778 } // namespace media
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698