summaryrefslogtreecommitdiff
path: root/sms.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2019-03-23 17:18:10 -0700
committerMichael Pavone <pavone@retrodev.com>2019-03-23 17:18:10 -0700
commit1e9fd28a1ee92dce1bd9e6e7cdeb8fed880948d9 (patch)
tree154c06b129874b3a08d2b044ac5ac7f25b38f4a1 /sms.c
parenta2eed4d72417b2d2831310c93c142bc45beece39 (diff)
Configurable gain for overall output and individual components
Diffstat (limited to 'sms.c')
-rw-r--r--sms.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sms.c b/sms.c
index 1f9b888..cc33044 100644
--- a/sms.c
+++ b/sms.c
@@ -569,6 +569,13 @@ static void keyboard_up(system_header *system, uint8_t scancode)
io_keyboard_up(&sms->io, scancode);
}
+static void set_gain_config(sms_context *sms)
+{
+ char *config_gain;
+ config_gain = tern_find_path(config, "audio\0psg_gain\0", TVAL_PTR).ptrval;
+ render_audio_source_gaindb(sms->psg->audio, config_gain ? atof(config_gain) : 0.0f);
+}
+
static void config_updated(system_header *system)
{
sms_context *sms = (sms_context *)system;
@@ -620,6 +627,8 @@ sms_context *alloc_configure_sms(system_media *media, uint32_t opts, uint8_t for
sms->psg = malloc(sizeof(psg_context));
psg_init(sms->psg, sms->master_clock, 15*16);
+ set_gain_config(sms);
+
sms->vdp = init_vdp_context(0);
sms->vdp->system = &sms->header;