From 683efdcbdb83a45f8a6ff52831855d06a56df469 Mon Sep 17 00:00:00 2001 From: balrog Date: Sun, 4 May 2008 10:21:03 +0000 Subject: First cut at WM8750 volume control (Jan Kiszka). git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4321 c046a42c-6fe2-441c-8c8c-71466251a162 --- audio/audio.c | 22 ++++++++++++++++++++-- audio/audio.h | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'audio') diff --git a/audio/audio.c b/audio/audio.c index 9e7fe80443..c178584ca0 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -117,8 +117,8 @@ volume_t nominal_volume = { 1.0, 1.0 #else - UINT_MAX, - UINT_MAX + 1ULL << 32, + 1ULL << 32 #endif }; @@ -1955,3 +1955,21 @@ void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque) } } } + +void AUD_set_volume_out (SWVoiceOut *sw, int mute, uint8_t lvol, uint8_t rvol) +{ + if (sw) { + sw->vol.mute = mute; + sw->vol.l = nominal_volume.l * lvol / 255; + sw->vol.r = nominal_volume.r * rvol / 255; + } +} + +void AUD_set_volume_in (SWVoiceIn *sw, int mute, uint8_t lvol, uint8_t rvol) +{ + if (sw) { + sw->vol.mute = mute; + sw->vol.l = nominal_volume.l * lvol / 255; + sw->vol.r = nominal_volume.r * rvol / 255; + } +} diff --git a/audio/audio.h b/audio/audio.h index ec9eee46f4..ae29b8a63c 100644 --- a/audio/audio.h +++ b/audio/audio.h @@ -124,6 +124,9 @@ int AUD_is_active_out (SWVoiceOut *sw); void AUD_init_time_stamp_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts); uint64_t AUD_get_elapsed_usec_out (SWVoiceOut *sw, QEMUAudioTimeStamp *ts); +void AUD_set_volume_out (SWVoiceOut *sw, int mute, uint8_t lvol, uint8_t rvol); +void AUD_set_volume_in (SWVoiceIn *sw, int mute, uint8_t lvol, uint8_t rvol); + SWVoiceIn *AUD_open_in ( QEMUSoundCard *card, SWVoiceIn *sw, -- cgit v1.2.1