diff options
author | waker <wakeroid@gmail.com> | 2011-03-31 22:06:22 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2011-03-31 22:06:22 +0200 |
commit | 5c2f94c8bfa7b98b3c832d0ce11c6ecdbd474029 (patch) | |
tree | eb92ff856f530485809ee0e2e0710f56f8d0155b /plugins/oss | |
parent | 57de90e3b8958b4d5edf1bd0145f98623768caa9 (diff) |
thread-safe config access
Diffstat (limited to 'plugins/oss')
-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; } |