]> code.delx.au - pulseaudio/commitdiff
generate default sink/source names from the device files they belong to
authorLennart Poettering <lennart@poettering.net>
Sat, 12 Aug 2006 16:26:59 +0000 (16:26 +0000)
committerLennart Poettering <lennart@poettering.net>
Sat, 12 Aug 2006 16:26:59 +0000 (16:26 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1223 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/modules/module-alsa-sink.c
src/modules/module-alsa-source.c
src/modules/module-oss.c

index efecfc21ed3fad22c444edfdfc3df73d6486f15a..e14cc5c819e854f713560e1f731f1128a4f4a940 100644 (file)
@@ -87,7 +87,6 @@ static const char* const valid_modargs[] = {
     NULL
 };
 
-#define DEFAULT_SINK_NAME "alsa_output"
 #define DEFAULT_DEVICE "default"
 
 static void update_usage(struct userdata *u) {
@@ -367,6 +366,9 @@ int pa__init(pa_core *c, pa_module*m) {
     snd_pcm_info_t *pcm_info = NULL;
     int err;
     char *t;
+    const char *name;
+    char *name_buf = NULL;
+    int namereg_fail;
     
     if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
         pa_log(__FILE__": failed to parse module arguments");
@@ -427,7 +429,14 @@ int pa__init(pa_core *c, pa_module*m) {
         u->mixer_handle = NULL;
     }
 
-    if (!(u->sink = pa_sink_new(c, __FILE__, pa_modargs_get_value(ma, "sink_name", DEFAULT_SINK_NAME), 0, &ss, &map))) {
+    if ((name = pa_modargs_get_value(ma, "sink_name", NULL)))
+        namereg_fail = 1;
+    else {
+        name = name_buf = pa_sprintf_malloc("alsa_output.%s", dev);
+        namereg_fail = 0;
+    }
+
+    if (!(u->sink = pa_sink_new(c, __FILE__, name, namereg_fail, &ss, &map))) {
         pa_log(__FILE__": Failed to create sink object");
         goto fail;
     }
@@ -502,6 +511,9 @@ int pa__init(pa_core *c, pa_module*m) {
         u->sink->get_hw_mute(u->sink);
      
 finish:
+
+    pa_xfree(name_buf);
+    
      if (ma)
          pa_modargs_free(ma);
 
index 6149224ad7a113199deff686b31c962c974475af..b4ef09d994d4c1ae2d4d9b255b5ec0e5c9c8949c 100644 (file)
@@ -88,7 +88,6 @@ static const char* const valid_modargs[] = {
     NULL
 };
 
-#define DEFAULT_SOURCE_NAME "alsa_input"
 #define DEFAULT_DEVICE "default"
 
 static void update_usage(struct userdata *u) {
@@ -360,6 +359,9 @@ int pa__init(pa_core *c, pa_module*m) {
     snd_pcm_info_t *pcm_info = NULL;
     int err;
     char *t;
+    const char *name;
+    char *name_buf = NULL;
+    int namereg_fail;
     
     if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
         pa_log(__FILE__": failed to parse module arguments");
@@ -420,7 +422,14 @@ int pa__init(pa_core *c, pa_module*m) {
         u->mixer_handle = NULL;
     }
 
-    if (!(u->source = pa_source_new(c, __FILE__, pa_modargs_get_value(ma, "source_name", DEFAULT_SOURCE_NAME), 0, &ss, &map))) {
+    if ((name = pa_modargs_get_value(ma, "source_name", NULL)))
+        namereg_fail = 1;
+    else {
+        name = name_buf = pa_sprintf_malloc("alsa_input.%s", dev);
+        namereg_fail = 0;
+    }
+    
+    if (!(u->source = pa_source_new(c, __FILE__, name, namereg_fail, &ss, &map))) {
         pa_log(__FILE__": Failed to create source object");
         goto fail;
     }
@@ -492,7 +501,9 @@ int pa__init(pa_core *c, pa_module*m) {
         u->source->get_hw_mute(u->source);
 
 finish:
-     if (ma)
+    pa_xfree(name_buf);
+
+    if (ma)
          pa_modargs_free(ma);
 
     if (pcm_info)
index c39726809af025e05fc23bf0ec7e2215ef89efb0..89a8152bc371507eff4a2e796890812daca6e611 100644 (file)
@@ -36,6 +36,7 @@
 #include <limits.h>
 
 #include <pulse/xmalloc.h>
+#include <pulse/util.h>
 
 #include <pulsecore/core-error.h>
 #include <pulsecore/iochannel.h>
@@ -96,8 +97,6 @@ static const char* const valid_modargs[] = {
     NULL
 };
 
-#define DEFAULT_SINK_NAME "oss_output"
-#define DEFAULT_SOURCE_NAME "oss_input"
 #define DEFAULT_DEVICE "/dev/dsp"
 
 static void update_usage(struct userdata *u) {
@@ -354,6 +353,9 @@ int pa__init(pa_core *c, pa_module*m) {
     pa_channel_map map;
     pa_modargs *ma = NULL;
     char hwdesc[64], *t;
+    const char *name;
+    char *name_buf = NULL;
+    int namereg_fail;
     
     assert(c);
     assert(m);
@@ -431,7 +433,14 @@ int pa__init(pa_core *c, pa_module*m) {
     }
 
     if (mode != O_WRONLY) {
-        if (!(u->source = pa_source_new(c, __FILE__, pa_modargs_get_value(ma, "source_name", DEFAULT_SOURCE_NAME), 0, &ss, &map)))
+        if ((name = pa_modargs_get_value(ma, "source_name", NULL)))
+            namereg_fail = 1;
+        else {
+            name = name_buf = pa_sprintf_malloc("oss_input.%s", pa_path_get_filename(p));
+            namereg_fail = 0;
+        }
+        
+        if (!(u->source = pa_source_new(c, __FILE__, name, namereg_fail, &ss, &map)))
             goto fail;
 
         u->source->userdata = u;
@@ -450,8 +459,18 @@ int pa__init(pa_core *c, pa_module*m) {
     } else
         u->source = NULL;
 
+    pa_xfree(name_buf);
+    name_buf = NULL;
+
     if (mode != O_RDONLY) {
-        if (!(u->sink = pa_sink_new(c, __FILE__, pa_modargs_get_value(ma, "sink_name", DEFAULT_SINK_NAME), 0, &ss, &map)))
+        if ((name = pa_modargs_get_value(ma, "sink_name", NULL)))
+            namereg_fail = 1;
+        else {
+            name = name_buf = pa_sprintf_malloc("oss_output.%s", pa_path_get_filename(p));
+            namereg_fail = 0;
+        }
+        
+        if (!(u->sink = pa_sink_new(c, __FILE__, name, namereg_fail, &ss, &map)))
             goto fail;
 
         u->sink->get_latency = sink_get_latency_cb;
@@ -469,6 +488,9 @@ int pa__init(pa_core *c, pa_module*m) {
     } else
         u->sink = NULL;
 
+    pa_xfree(name_buf);
+    name_buf = NULL;
+    
     assert(u->source || u->sink);
 
     u->io = pa_iochannel_new(c->mainloop, u->source ? fd : -1, u->sink ? fd : -1);
@@ -516,6 +538,8 @@ fail:
 
     if (ma)
         pa_modargs_free(ma);
+
+    pa_xfree(name_buf);
     
     return -1;
 }