diff options
author | Brian Cameron <brian.cameron@sun.com> | 2008-03-27 09:36:58 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2008-03-27 09:36:58 +0000 |
commit | 01c237e91d664e14d9ec2afb1ddf0aa07ca0579c (patch) | |
tree | 11ec0d970c6208b19cc70f32221a26d4024ac42c /sys/sunaudio | |
parent | 70ee2ee5e08c424f76462fdc3f00f7cc219dbe44 (diff) |
sys/sunaudio/: Fix up the mixer tracks to use a volume range of 0-255, which is what the sun audio API uses. This sim...
Original commit message from CVS:
Patch by: Brian Cameron <brian.cameron at sun dot com>
* sys/sunaudio/gstsunaudiomixerctrl.c:
(gst_sunaudiomixer_ctrl_get_volume),
(gst_sunaudiomixer_ctrl_set_volume):
* sys/sunaudio/gstsunaudiomixertrack.c: (gst_sunaudiomixer_track_new):
Fix up the mixer tracks to use a volume range of 0-255, which is what
the sun audio API uses. This simplifies the code and avoids rounding
errors. Fixes #524593.
Diffstat (limited to 'sys/sunaudio')
-rw-r--r-- | sys/sunaudio/gstsunaudiomixerctrl.c | 15 | ||||
-rw-r--r-- | sys/sunaudio/gstsunaudiomixertrack.c | 2 |
2 files changed, 7 insertions, 10 deletions
diff --git a/sys/sunaudio/gstsunaudiomixerctrl.c b/sys/sunaudio/gstsunaudiomixerctrl.c index 4a6244b6..1299f53b 100644 --- a/sys/sunaudio/gstsunaudiomixerctrl.c +++ b/sys/sunaudio/gstsunaudiomixerctrl.c @@ -39,8 +39,6 @@ GST_DEBUG_CATEGORY_EXTERN (sunaudio_debug); #define GST_CAT_DEFAULT sunaudio_debug -#define SCALE_FACTOR 2.55 /* 255/100 */ - static gboolean gst_sunaudiomixer_ctrl_open (GstSunAudioMixerCtrl * mixer) { @@ -187,16 +185,15 @@ gst_sunaudiomixer_ctrl_get_volume (GstSunAudioMixerCtrl * mixer, switch (sunaudiotrack->track_num) { case GST_SUNAUDIO_TRACK_OUTPUT: - gain = (int) ((float) audioinfo.play.gain / (float) SCALE_FACTOR + 0.5); + gain = (int) audioinfo.play.gain; balance = audioinfo.play.balance; break; case GST_SUNAUDIO_TRACK_LINE_IN: - gain = (int) ((float) audioinfo.record.gain / (float) SCALE_FACTOR + 0.5); + gain = (int) audioinfo.record.gain; balance = audioinfo.record.balance; break; case GST_SUNAUDIO_TRACK_MONITOR: - gain = - (int) ((float) audioinfo.monitor_gain / (float) SCALE_FACTOR + 0.5); + gain = (int) audioinfo.monitor_gain; balance = audioinfo.record.balance; break; } @@ -272,15 +269,15 @@ gst_sunaudiomixer_ctrl_set_volume (GstSunAudioMixerCtrl * mixer, r_real_gain = volumes[1]; if (l_real_gain == r_real_gain) { - gain = (int) ((float) l_real_gain * (float) SCALE_FACTOR + 0.5); + gain = l_real_gain; balance = AUDIO_MID_BALANCE; } else if (l_real_gain < r_real_gain) { - gain = (int) ((float) r_real_gain * (float) SCALE_FACTOR + 0.5); + gain = r_real_gain; ratio = (float) l_real_gain / (float) r_real_gain; balance = AUDIO_RIGHT_BALANCE - (int) (ratio * (float) AUDIO_MID_BALANCE + 0.5); } else { - gain = (int) ((float) l_real_gain * (float) SCALE_FACTOR + 0.5); + gain = l_real_gain; ratio = (float) r_real_gain / (float) l_real_gain; balance = AUDIO_LEFT_BALANCE + (int) (ratio * (float) AUDIO_MID_BALANCE + 0.5); diff --git a/sys/sunaudio/gstsunaudiomixertrack.c b/sys/sunaudio/gstsunaudiomixertrack.c index e108695f..082073e8 100644 --- a/sys/sunaudio/gstsunaudiomixertrack.c +++ b/sys/sunaudio/gstsunaudiomixertrack.c @@ -89,7 +89,7 @@ gst_sunaudiomixer_track_new (GstSunAudioTrackType track_num, track->num_channels = max_chans; track->flags = flags; track->min_volume = 0; - track->max_volume = 100; + track->max_volume = 255; sunaudiotrack->track_num = track_num; sunaudiotrack->gain = (0 & 0xff); sunaudiotrack->balance = AUDIO_MID_BALANCE; |