summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--router.c4
-rw-r--r--switch.c12
-rw-r--r--switch.h2
3 files changed, 13 insertions, 5 deletions
diff --git a/router.c b/router.c
index 16abd7c..ead298f 100644
--- a/router.c
+++ b/router.c
@@ -500,9 +500,9 @@ void implement_default_route (struct userdata *u,
uint32_t stamp)
{
if (start->direction == agl_input)
- agl_switch_setup_link (u, start, end, false);
+ agl_switch_setup_link (u, start, end);
else
- agl_switch_setup_link (u, end, start, false);
+ agl_switch_setup_link (u, end, start);
}
agl_node *find_default_route (struct userdata *u, agl_node *start, uint32_t stamp)
diff --git a/switch.c b/switch.c
index e3b5451..e7bf83a 100644
--- a/switch.c
+++ b/switch.c
@@ -27,7 +27,7 @@
#include "switch.h"
#include "node.h"
-bool agl_switch_setup_link (struct userdata *u, agl_node *from, agl_node *to, bool explicit)
+bool agl_switch_setup_link (struct userdata *u, agl_node *from, agl_node *to)
{
pa_core *core;
pa_sink *sink;
@@ -39,7 +39,7 @@ bool agl_switch_setup_link (struct userdata *u, agl_node *from, agl_node *to, bo
/* EXPLICIT ROUTES/DEFAULT ROUTES */
/* 1) EXPLICIT ROUTES : "FROM" AND "TO" ARE DEFINED */
- if (explicit) {
+ if (from && to) {
pa_assert (from);
pa_assert (to);
@@ -55,6 +55,14 @@ bool agl_switch_setup_link (struct userdata *u, agl_node *from, agl_node *to, bo
case agl_device:
//if (!setup_explicit_stream2dev_link (u, from, to))
// return false;
+ sink = agl_utils_get_alsa_sink (u, to->paname);
+ if (!sink) {
+ pa_log("sink output not found!!!!");
+ sink = agl_utils_get_primary_alsa_sink (u);
+ //break;
+ }
+ source = agl_utils_get_null_source (u, from->nullsink);
+ from->loopnode = agl_loopnode_create (u, AGL_LOOPNODE_SINK, from->index, source->index, sink->index);
break;
/* DEFAULT */
default:
diff --git a/switch.h b/switch.h
index c454f1a..ad27ffe 100644
--- a/switch.h
+++ b/switch.h
@@ -24,7 +24,7 @@
#include "userdata.h"
-bool agl_switch_setup_link (struct userdata *, agl_node *, agl_node *, bool);
+bool agl_switch_setup_link (struct userdata *, agl_node *, agl_node *);
bool agl_switch_teardown_link (struct userdata *, agl_node *, agl_node *);
/*pa_source *setup_device_input(struct userdata *, agl_node *);*/