diff options
Diffstat (limited to 'plugins/oss/oss.c')
-rw-r--r-- | plugins/oss/oss.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/plugins/oss/oss.c b/plugins/oss/oss.c index e2fdf3ee..1570c2a0 100644 --- a/plugins/oss/oss.c +++ b/plugins/oss/oss.c @@ -309,19 +309,20 @@ oss_get_state (void) { static int oss_configchanged (DB_event_t *ev, uintptr_t data) { - const char *dev = deadbeef->conf_get_str ("oss.device", "/dev/dsp"); + deadbeef->conf_lock (); + const char *dev = deadbeef->conf_get_str_fast ("oss.device", "/dev/dsp"); if (strcmp (dev, oss_device)) { strncpy (oss_device, dev, sizeof (oss_device)-1); trace ("oss: config option changed, restarting\n"); deadbeef->sendmessage (M_REINIT_SOUND, 0, 0, 0); } + deadbeef->conf_unlock (); return 0; } static int oss_plugin_start (void) { - const char *dev = deadbeef->conf_get_str ("oss.device", "/dev/dsp"); - strncpy (oss_device, dev, sizeof (oss_device)-1); + deadbeef->conf_get_str ("oss.device", "/dev/dsp", oss_device, sizeof (oss_device)); deadbeef->ev_subscribe (DB_PLUGIN (&plugin), DB_EV_CONFIGCHANGED, DB_CALLBACK (oss_configchanged), 0); return 0; } |