From 5b27e2255a8bbb8645f089b8e721343bba5bd396 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Tue, 22 Nov 2022 04:10:35 +0000 Subject: Add perceptual volume adjustment The perceived loudness change of a change in volume depends on the listening volume: at high volumes a 1 dB increment is noticeable, but at low volumes a larger increment is needed to get a comparable change in loudness. Perceptual volume adjustment accounts for this fact, and divides the hardware volume range into a number of steps. Each step changes the dB volume by a variable amount, with most of the steps concentrated at higher volumes. This makes it possible to sweep over the entire hardware volume range quickly, without losing the ability to finely adjust the volume at normal listening levels. Use "Volume Adjustment Mode" in the system settings menu to select perceptual volume mode. The number of steps used is controlled by "Number of Volume Steps". (Number of steps has no effect in direct adjustment mode.) It's still possible to set a specific dB volume level from the sound settings menu when perceptual volume is enabled, and perceptual volume does not affect the volume displayed by themes. Change-Id: I6f91fd3f7c5e2d323a914e47b5653033e92b4b3b --- apps/plugin.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'apps/plugin.h') diff --git a/apps/plugin.h b/apps/plugin.h index 20df7e72f2..286a5e2794 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -158,7 +158,7 @@ int plugin_open(const char *plugin, const char *parameter); #define PLUGIN_MAGIC 0x526F634B /* RocK */ /* increase this every time the api struct changes */ -#define PLUGIN_API_VERSION 264 +#define PLUGIN_API_VERSION 265 /* update this to latest version if a change to the api struct breaks backwards compatibility (and please take the opportunity to sort in any @@ -954,6 +954,7 @@ struct plugin_api { #ifdef HAVE_TAGCACHE bool (*tagtree_subentries_do_action)(bool (*action_cb)(const char *file_name)); #endif + void (*adjust_volume)(int steps); }; /* plugin header */ -- cgit v1.2.3