]> code.delx.au - pulseaudio/commitdiff
namereg: add new pa_namereg_is_valid_name_or_wildcard() call
authorLennart Poettering <lennart@poettering.net>
Sat, 29 Aug 2009 01:56:03 +0000 (03:56 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 29 Aug 2009 01:56:03 +0000 (03:56 +0200)
src/pulsecore/namereg.c
src/pulsecore/namereg.h

index e26923d41617b4eaacb189f89ed89bfba33012fc..7d221aafdf83674bcbfd13f05d93835545286479 100644 (file)
@@ -57,6 +57,8 @@ static pa_bool_t is_valid_char(char c) {
 pa_bool_t pa_namereg_is_valid_name(const char *name) {
     const char *c;
 
+    pa_assert(name);
+
     if (*name == 0)
         return FALSE;
 
@@ -70,6 +72,25 @@ pa_bool_t pa_namereg_is_valid_name(const char *name) {
     return TRUE;
 }
 
+pa_bool_t pa_namereg_is_valid_name_or_wildcard(const char *name, pa_namereg_type_t type) {
+
+    pa_assert(name);
+
+    if (pa_namereg_is_valid_name(name))
+        return TRUE;
+
+    if (type == PA_NAMEREG_SINK &&
+        pa_streq(name, "@DEFAULT_SINK@"))
+        return TRUE;
+
+    if (type == PA_NAMEREG_SOURCE &&
+        (pa_streq(name, "@DEFAULT_SOURCE@") ||
+         pa_streq(name, "@DEFAULT_MONITOR@")))
+        return TRUE;
+
+    return FALSE;
+}
+
 char* pa_namereg_make_valid_name(const char *name) {
     const char *a;
     char *b, *n;
@@ -191,7 +212,6 @@ void* pa_namereg_get(pa_core *c, const char *name, pa_namereg_type_t type) {
 
         if ((s = pa_namereg_get(c, NULL, PA_NAMEREG_SINK)))
             return s->monitor_source;
-
     }
 
     if (!name)
index 38fae6f58858b87647fd02f3573c226b7ff0ddd2..b5a976d7cada14004eebec3cb5eabe629365cee1 100644 (file)
@@ -45,6 +45,7 @@ pa_sink *pa_namereg_get_default_sink(pa_core *c);
 pa_source *pa_namereg_get_default_source(pa_core *c);
 
 pa_bool_t pa_namereg_is_valid_name(const char *name);
+pa_bool_t pa_namereg_is_valid_name_or_wildcard(const char *name, pa_namereg_type_t type);
 char* pa_namereg_make_valid_name(const char *name);
 
 #endif