Skip to content
Snippets Groups Projects
Commit 4f38dd26 authored by Aimee Linden's avatar Aimee Linden
Browse files

DEV-49390 (SNOW-573): Deprecated methods for getting and setting the system audio mute on Mac

AudioHardwareGetProperty(), AudioDeviceGetProperty() and AudioDeviceSetProperty() were deprecated in the 10.5 SDK, replaced using AudioObjectGetPropertyData() and AudioObjectSetPropertyData().
parent 0cdaca2b
No related branches found
No related tags found
No related merge requests found
...@@ -452,16 +452,17 @@ std::string LLAppViewerMacOSX::generateSerialNumber() ...@@ -452,16 +452,17 @@ std::string LLAppViewerMacOSX::generateSerialNumber()
static AudioDeviceID get_default_audio_output_device(void) static AudioDeviceID get_default_audio_output_device(void)
{ {
AudioDeviceID device = 0; AudioDeviceID device = 0;
UInt32 size; UInt32 size = sizeof(device);
OSStatus err; AudioObjectPropertyAddress device_address = { kAudioHardwarePropertyDefaultOutputDevice,
kAudioObjectPropertyScopeGlobal,
size = sizeof(device); kAudioObjectPropertyElementMaster };
err = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &device);
OSStatus err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &device_address, 0, NULL, &size, &device);
if(err != noErr) if(err != noErr)
{ {
LL_DEBUGS("SystemMute") << "Couldn't get default audio output device (0x" << std::hex << err << ")" << LL_ENDL; LL_DEBUGS("SystemMute") << "Couldn't get default audio output device (0x" << std::hex << err << ")" << LL_ENDL;
} }
return device; return device;
} }
...@@ -469,11 +470,15 @@ static AudioDeviceID get_default_audio_output_device(void) ...@@ -469,11 +470,15 @@ static AudioDeviceID get_default_audio_output_device(void)
void LLAppViewerMacOSX::setMasterSystemAudioMute(bool new_mute) void LLAppViewerMacOSX::setMasterSystemAudioMute(bool new_mute)
{ {
AudioDeviceID device = get_default_audio_output_device(); AudioDeviceID device = get_default_audio_output_device();
if(device != 0) if(device != 0)
{ {
UInt32 mute = new_mute; UInt32 mute = new_mute;
OSStatus err = AudioDeviceSetProperty(device, NULL, 0, false, kAudioDevicePropertyMute, sizeof(mute), &mute); AudioObjectPropertyAddress device_address = { kAudioDevicePropertyMute,
kAudioDevicePropertyScopeOutput,
kAudioObjectPropertyElementMaster };
OSStatus err = AudioObjectSetPropertyData(device, &device_address, 0, NULL, sizeof(mute), &mute);
if(err != noErr) if(err != noErr)
{ {
LL_INFOS("SystemMute") << "Couldn't set audio mute property (0x" << std::hex << err << ")" << LL_ENDL; LL_INFOS("SystemMute") << "Couldn't set audio mute property (0x" << std::hex << err << ")" << LL_ENDL;
...@@ -486,13 +491,17 @@ bool LLAppViewerMacOSX::getMasterSystemAudioMute() ...@@ -486,13 +491,17 @@ bool LLAppViewerMacOSX::getMasterSystemAudioMute()
{ {
// Assume the system isn't muted // Assume the system isn't muted
UInt32 mute = 0; UInt32 mute = 0;
AudioDeviceID device = get_default_audio_output_device(); AudioDeviceID device = get_default_audio_output_device();
if(device != 0) if(device != 0)
{ {
UInt32 size = sizeof(mute); UInt32 size = sizeof(mute);
OSStatus err = AudioDeviceGetProperty(device, 0, false, kAudioDevicePropertyMute, &size, &mute); AudioObjectPropertyAddress device_address = { kAudioDevicePropertyMute,
kAudioDevicePropertyScopeOutput,
kAudioObjectPropertyElementMaster };
OSStatus err = AudioObjectGetPropertyData(device, &device_address, 0, NULL, &size, &mute);
if(err != noErr) if(err != noErr)
{ {
LL_DEBUGS("SystemMute") << "Couldn't get audio mute property (0x" << std::hex << err << ")" << LL_ENDL; LL_DEBUGS("SystemMute") << "Couldn't get audio mute property (0x" << std::hex << err << ")" << LL_ENDL;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment