mirror of https://github.com/xemu-project/xemu.git
audio/coreaudio.c: Use new-in-OSX-10.6 API for getting default voice
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 <peter.maydell@linaro.org> Message-id: 1448747724-15572-3-git-send-email-peter.maydell@linaro.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
88a0f8300b
commit
624d1fc30f
|
@ -32,6 +32,10 @@
|
||||||
#define AUDIO_CAP "coreaudio"
|
#define AUDIO_CAP "coreaudio"
|
||||||
#include "audio_int.h"
|
#include "audio_int.h"
|
||||||
|
|
||||||
|
#ifndef MAC_OS_X_VERSION_10_6
|
||||||
|
#define MAC_OS_X_VERSION_10_6 1060
|
||||||
|
#endif
|
||||||
|
|
||||||
static int isAtexit;
|
static int isAtexit;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -50,6 +54,28 @@ typedef struct coreaudioVoiceOut {
|
||||||
int rpos;
|
int rpos;
|
||||||
} coreaudioVoiceOut;
|
} 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)
|
static OSStatus coreaudio_get_voice(AudioDeviceID *id)
|
||||||
{
|
{
|
||||||
UInt32 size = sizeof(*id);
|
UInt32 size = sizeof(*id);
|
||||||
|
@ -59,6 +85,7 @@ static OSStatus coreaudio_get_voice(AudioDeviceID *id)
|
||||||
&size,
|
&size,
|
||||||
id);
|
id);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void coreaudio_logstatus (OSStatus status)
|
static void coreaudio_logstatus (OSStatus status)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue