void volume_init(void)
{
- int r;
-
- r = volume_get_volume();
- if (r < 0)
- volume = VOLUME_DEFAULT;
- else
- volume = r;
+ volume = VOLUME_DEFAULT;
+ sound_manager_get_master_volume(&volume);
mute = false;
}
return mute;
}
+static int _volume_get_max_volume(void)
+{
+ int vol;
+
+ vol = VOLUME_MAX;
+ sound_manager_get_max_master_volume(&vol);
+
+ return vol;
+}
+
int volume_set_volume(int vol)
{
int r;
return -1;
}
+ vol = (vol * _volume_get_max_volume()) / VOLUME_MAX;
+
r = sound_manager_set_master_volume(vol);
if (r < 0) {
_ERR("failed to set volume");
{
int vol, r;
- if (volume_is_mute())
- return volume;
+ if (volume_is_mute()) {
+ vol = volume;
+ } else {
+ r = sound_manager_get_master_volume(&vol);
+ if (r < 0)
+ return -1;
+ }
- r = sound_manager_get_master_volume(&vol);
- if (r < 0)
- return -1;
+ vol = (vol * VOLUME_MAX) / _volume_get_max_volume();
return vol;
}