Mercurial > mplayer.hg
changeset 21352:2d786b7625d7
adds support for AOCONTROL_GET_VOLUME/AOCONTROL_SET_VOLUME in ao_macosx, patcg by Crhis Roccati<roccati@pobox.com>
author | nplourde |
---|---|
date | Tue, 28 Nov 2006 23:05:45 +0000 |
parents | c611dfc4cb85 |
children | a965ca17debc |
files | libao2/ao_macosx.c |
diffstat | 1 files changed, 26 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libao2/ao_macosx.c Tue Nov 28 22:50:02 2006 +0000 +++ b/libao2/ao_macosx.c Tue Nov 28 23:05:45 2006 +0000 @@ -171,13 +171,36 @@ } 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; }