summaryrefslogtreecommitdiff
path: root/plugins/oss
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-03-31 22:06:22 +0200
committerGravatar waker <wakeroid@gmail.com>2011-03-31 22:06:22 +0200
commit5c2f94c8bfa7b98b3c832d0ce11c6ecdbd474029 (patch)
treeeb92ff856f530485809ee0e2e0710f56f8d0155b /plugins/oss
parent57de90e3b8958b4d5edf1bd0145f98623768caa9 (diff)
thread-safe config access
Diffstat (limited to 'plugins/oss')
-rw-r--r--plugins/oss/oss.c7
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;
}