Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Cleaned out functions deprecated in Mac OS X 10.6 SDK.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Aug 23, 2011
1 parent 969ea5e commit 3c36587
Show file tree
Hide file tree
Showing 3 changed files with 197 additions and 64 deletions.
67 changes: 39 additions & 28 deletions src/audio/coreaudio/SDL_coreaudio.c
Expand Up @@ -67,25 +67,29 @@ findDevId(const char *name, AudioDeviceID devId, void *_data)
static void
build_device_list(int iscapture, addDevFn addfn, void *addfndata)
{
Boolean outWritable = 0;
OSStatus result = noErr;
UInt32 size = 0;
AudioDeviceID *devs = NULL;
UInt32 i = 0;
UInt32 max = 0;

result = AudioHardwareGetPropertyInfo(kAudioHardwarePropertyDevices,
&size, &outWritable);
AudioObjectPropertyAddress addr = {
kAudioHardwarePropertyDevices,
kAudioObjectPropertyScopeGlobal,
kAudioObjectPropertyElementMaster
};

result = AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &addr,
0, NULL, &size);
if (result != kAudioHardwareNoError)
return;

devs = (AudioDeviceID *) alloca(size);
if (devs == NULL)
return;

result = AudioHardwareGetProperty(kAudioHardwarePropertyDevices,
&size, devs);
result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &addr,
0, NULL, &size, devs);
if (result != kAudioHardwareNoError)
return;

Expand All @@ -98,19 +102,20 @@ build_device_list(int iscapture, addDevFn addfn, void *addfndata)
int usable = 0;
CFIndex len = 0;

result = AudioDeviceGetPropertyInfo(dev, 0, iscapture,
kAudioDevicePropertyStreamConfiguration,
&size, &outWritable);
addr.mScope = iscapture ? kAudioDevicePropertyScopeInput :
kAudioDevicePropertyScopeOutput;
addr.mSelector = kAudioDevicePropertyStreamConfiguration;

result = AudioObjectGetPropertyDataSize(dev, &addr, 0, NULL, &size);
if (result != noErr)
continue;

buflist = (AudioBufferList *) SDL_malloc(size);
if (buflist == NULL)
continue;

result = AudioDeviceGetProperty(dev, 0, iscapture,
kAudioDevicePropertyStreamConfiguration,
&size, buflist);
result = AudioObjectGetPropertyData(dev, &addr, 0, NULL,
&size, buflist);

if (result == noErr) {
UInt32 j;
Expand All @@ -127,11 +132,9 @@ build_device_list(int iscapture, addDevFn addfn, void *addfndata)
if (!usable)
continue;

size = sizeof(CFStringRef);
result = AudioDeviceGetProperty(dev, 0, iscapture,
kAudioDevicePropertyDeviceNameCFString,
&size, &cfstr);

addr.mSelector = kAudioObjectPropertyName;
size = sizeof (CFStringRef);
result = AudioObjectGetPropertyData(dev, &addr, 0, NULL, &size, &cfstr);
if (result != kAudioHardwareNoError)
continue;

Expand Down Expand Up @@ -183,13 +186,19 @@ find_device_by_name(_THIS, const char *devname, int iscapture)
UInt32 alive = 0;
pid_t pid = 0;

AudioObjectPropertyAddress addr = {
0,
kAudioObjectPropertyScopeGlobal,
kAudioObjectPropertyElementMaster
};

if (devname == NULL) {
size = sizeof(AudioDeviceID);
const AudioHardwarePropertyID propid =
size = sizeof (AudioDeviceID);
addr.mSelector =
((iscapture) ? kAudioHardwarePropertyDefaultInputDevice :
kAudioHardwarePropertyDefaultOutputDevice);

result = AudioHardwareGetProperty(propid, &size, &devid);
kAudioHardwarePropertyDefaultOutputDevice);
result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &addr,
0, NULL, &size, &devid);
CHECK_RESULT("AudioHardwareGetProperty (default device)");
} else {
FindDevIdData data;
Expand All @@ -203,10 +212,12 @@ find_device_by_name(_THIS, const char *devname, int iscapture)
devid = data.devId;
}

size = sizeof(alive);
result = AudioDeviceGetProperty(devid, 0, iscapture,
kAudioDevicePropertyDeviceIsAlive,
&size, &alive);
addr.mSelector = kAudioDevicePropertyDeviceIsAlive;
addr.mScope = iscapture ? kAudioDevicePropertyScopeInput :
kAudioDevicePropertyScopeOutput;

size = sizeof (alive);
result = AudioObjectGetPropertyData(devid, &addr, 0, NULL, &size, &alive);
CHECK_RESULT
("AudioDeviceGetProperty (kAudioDevicePropertyDeviceIsAlive)");

Expand All @@ -215,9 +226,9 @@ find_device_by_name(_THIS, const char *devname, int iscapture)
return 0;
}

size = sizeof(pid);
result = AudioDeviceGetProperty(devid, 0, iscapture,
kAudioDevicePropertyHogMode, &size, &pid);
addr.mSelector = kAudioDevicePropertyHogMode;
size = sizeof (pid);
result = AudioObjectGetPropertyData(devid, &addr, 0, NULL, &size, &pid);

/* some devices don't support this property, so errors are fine here. */
if ((result == noErr) && (pid != -1)) {
Expand Down
2 changes: 1 addition & 1 deletion src/video/cocoa/SDL_cocoamodes.h
Expand Up @@ -30,7 +30,7 @@ typedef struct

typedef struct
{
CFDictionaryRef moderef;
const void *moderef;
} SDL_DisplayModeData;

extern void Cocoa_InitModes(_THIS);
Expand Down

0 comments on commit 3c36587

Please sign in to comment.