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/alsa/alsa.c | |
parent | 57de90e3b8958b4d5edf1bd0145f98623768caa9 (diff) |
thread-safe config access
Diffstat (limited to 'plugins/alsa/alsa.c')
-rw-r--r-- | plugins/alsa/alsa.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/alsa/alsa.c b/plugins/alsa/alsa.c index ed4ed014..6d619cf1 100644 --- a/plugins/alsa/alsa.c +++ b/plugins/alsa/alsa.c @@ -341,7 +341,7 @@ palsa_init (void) { mutex = 0; // get and cache conf variables - strcpy (conf_alsa_soundcard, deadbeef->conf_get_str ("alsa_soundcard", "default")); + deadbeef->conf_get_str ("alsa_soundcard", "default", conf_alsa_soundcard, sizeof (conf_alsa_soundcard)); trace ("alsa_soundcard: %s\n", conf_alsa_soundcard); snd_pcm_sw_params_t *sw_params = NULL; @@ -682,7 +682,8 @@ palsa_callback (char *stream, int len) { static int palsa_configchanged (DB_event_t *ev, uintptr_t data) { - const char *alsa_soundcard = deadbeef->conf_get_str ("alsa_soundcard", "default"); + deadbeef->conf_lock (); + const char *alsa_soundcard = deadbeef->conf_get_str_fast ("alsa_soundcard", "default"); int buffer = deadbeef->conf_get_int ("alsa.buffer", DEFAULT_BUFFER_SIZE); int period = deadbeef->conf_get_int ("alsa.period", DEFAULT_PERIOD_SIZE); if (audio && @@ -692,6 +693,7 @@ palsa_configchanged (DB_event_t *ev, uintptr_t data) { trace ("alsa: config option changed, restarting\n"); deadbeef->sendmessage (M_REINIT_SOUND, 0, 0, 0); } + deadbeef->conf_unlock (); return 0; } |