From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54447) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a8mgm-0001px-EM for qemu-devel@nongnu.org; Tue, 15 Dec 2015 05:18:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a8mgj-0001Jz-6x for qemu-devel@nongnu.org; Tue, 15 Dec 2015 05:18:36 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33493) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a8mgj-0001Jc-1I for qemu-devel@nongnu.org; Tue, 15 Dec 2015 05:18:33 -0500 From: Gerd Hoffmann Date: Tue, 15 Dec 2015 11:18:25 +0100 Message-Id: <1450174708-20499-3-git-send-email-kraxel@redhat.com> In-Reply-To: <1450174708-20499-1-git-send-email-kraxel@redhat.com> References: <1450174708-20499-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PULL 2/5] audio/coreaudio.c: Use new-in-OSX-10.6 API for getting default voice List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Gerd Hoffmann From: Peter Maydell If we're building for OSX 10.6 or better, use the new API AudioObjectGetPropertyData for getting the default voice. Signed-off-by: Peter Maydell Message-id: 1448747724-15572-3-git-send-email-peter.maydell@linaro.org Signed-off-by: Gerd Hoffmann --- audio/coreaudio.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/audio/coreaudio.c b/audio/coreaudio.c index 433e009..2211e17 100644 --- a/audio/coreaudio.c +++ b/audio/coreaudio.c @@ -32,6 +32,10 @@ #define AUDIO_CAP "coreaudio" #include "audio_int.h" +#ifndef MAC_OS_X_VERSION_10_6 +#define MAC_OS_X_VERSION_10_6 1060 +#endif + static int isAtexit; typedef struct { @@ -50,6 +54,28 @@ typedef struct coreaudioVoiceOut { int rpos; } coreaudioVoiceOut; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 +/* The APIs used here only become available from 10.6 */ + +static OSStatus coreaudio_get_voice(AudioDeviceID *id) +{ + UInt32 size = sizeof(*id); + AudioObjectPropertyAddress addr = { + kAudioHardwarePropertyDefaultOutputDevice, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster + }; + + return AudioObjectGetPropertyData(kAudioObjectSystemObject, + &addr, + 0, + NULL, + &size, + id); +} +#else +/* Legacy versions of functions using deprecated APIs */ + static OSStatus coreaudio_get_voice(AudioDeviceID *id) { UInt32 size = sizeof(*id); @@ -59,6 +85,7 @@ static OSStatus coreaudio_get_voice(AudioDeviceID *id) &size, id); } +#endif static void coreaudio_logstatus (OSStatus status) { -- 1.8.3.1