From 3058b1f8acdcfa2cdfa2f7744c6dd2b44228ce2f Mon Sep 17 00:00:00 2001 From: nplourde Date: Tue, 28 Nov 2006 23:05:45 +0000 Subject: adds support for AOCONTROL_GET_VOLUME/AOCONTROL_SET_VOLUME in ao_macosx, patcg by Crhis Roccati git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21368 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libao2/ao_macosx.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'libao2') diff --git a/libao2/ao_macosx.c b/libao2/ao_macosx.c index 60244ecbf7..626bb16e91 100644 --- a/libao2/ao_macosx.c +++ b/libao2/ao_macosx.c @@ -171,13 +171,36 @@ int req=(inNumFrames)*ao->packetSize; } static int control(int cmd,void *arg){ +ao_control_vol_t *control_vol; +OSStatus err; +Float32 pan, vol; switch (cmd) { - case AOCONTROL_SET_DEVICE: - case AOCONTROL_GET_DEVICE: case AOCONTROL_GET_VOLUME: + control_vol = (ao_control_vol_t*)arg; + err = AudioUnitGetParameter(ao->theOutputUnit, kHALOutputParam_Volume, kAudioUnitScope_Global, 0, &vol); + + if(err==0) { + // printf("GET VOL=%f\n", vol); + control_vol->left=control_vol->right=vol*100.0/4.0; + return CONTROL_TRUE; + } + else { + return CONTROL_FALSE; + } + case AOCONTROL_SET_VOLUME: + control_vol = (ao_control_vol_t*)arg; + + vol=(control_vol->left+control_vol->right)*4.0/200.0; + err = AudioUnitSetParameter(ao->theOutputUnit, kHALOutputParam_Volume, kAudioUnitScope_Global, 0, vol, 0); + if(err==0) { + // printf("SET VOL=%f\n", vol); + return CONTROL_TRUE; + } + else { + return CONTROL_FALSE; + } /* Everything is currently unimplemented */ - return CONTROL_FALSE; default: return CONTROL_FALSE; } -- cgit v1.2.3