summaryrefslogtreecommitdiff
path: root/pltmeta.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-05-17 20:50:47 +0200
committerGravatar waker <wakeroid@gmail.com>2012-05-17 20:50:47 +0200
commit816d87e1d38dc0fecbe1fa47794b2d7a18d2e321 (patch)
tree6753620029a94976bf27d474156723dd2f403813 /pltmeta.c
parentaf55e42f2422f8734bc80fb8a58eba80b29937ef (diff)
fixed many calls to pl_find_meta[_raw] being called without pl_lock;
added debug pl_ensure_lock function which asserts when pl_lock is not set when it is required; added new API functions for thread-safe metadata access
Diffstat (limited to 'pltmeta.c')
-rw-r--r--pltmeta.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/pltmeta.c b/pltmeta.c
index e2e6cd04..63c7279c 100644
--- a/pltmeta.c
+++ b/pltmeta.c
@@ -234,3 +234,16 @@ plt_delete_all_meta (playlist_t *it) {
UNLOCK;
}
+int
+plt_get_meta (playlist_t *handle, const char *key, char *val, int size) {
+ *val = 0;
+ LOCK;
+ const char *v = plt_find_meta (handle, key);
+ if (!v) {
+ UNLOCK;
+ return 0;
+ }
+ strncpy (val, v, size);
+ UNLOCK;
+ return 1;
+}