config: fixup type for demo effect
[staging/agl-audio-plugin.git] / switch.c
index 05386a0..e3b5451 100644 (file)
--- a/switch.c
+++ b/switch.c
@@ -103,15 +103,14 @@ bool agl_switch_setup_link (struct userdata *u, agl_node *from, agl_node *to, bo
 
                                /* DEVICE DESTINATION */
                                case agl_device:
-                               /* IF THERE IS NO SOURCE : DEFAULT OUTPUT PREROUTE */
-                               /* if (!from)
-                                       return setup_device_output(u, to) != NULL;
-                               else { */
                                switch (from->implement) {
                                        /* STREAM TO DEVICE : OK */
                                        case agl_stream:
-                                               //if (!setup_default_stream2dev_link (u, from, to))
-                                               //      return false;
+                                               sink = agl_utils_get_alsa_sink (u, to->paname);
+                                               if (!sink) 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;
                                        /* DEVICE TO DEVICE : OK */
                                        case agl_device:
@@ -147,10 +146,9 @@ bool agl_switch_setup_link (struct userdata *u, agl_node *from, agl_node *to, bo
                                return false;
                        }
 
-                       sink = pa_utils_get_primary_alsa_sink (u);
-                       source = pa_utils_get_null_source (u, from->nullsink);
-
-                       from->loopnode = pa_loopnode_create (u, PA_LOOPNODE_SINK, from->index, source->index, sink->index);
+                       sink = agl_utils_get_primary_alsa_sink (u);
+                       source = agl_utils_get_null_source (u, from->nullsink);
+                       from->loopnode = agl_loopnode_create (u, AGL_LOOPNODE_SINK, from->index, source->index, sink->index);
                }
        }
 
@@ -181,9 +179,9 @@ bool agl_switch_teardown_link (struct userdata *u, agl_node *from, agl_node *to)
                }
                /* (the rest supposes "from->implement == agl_stream") */
                if (from->loopnode)
-                       pa_loopnode_destroy (u, from->loopnode);
+                       agl_loopnode_destroy (u, from->loopnode);
                if (from->nullsink)
-                       pa_utils_destroy_null_sink (u, from->nullsink);
+                       agl_utils_destroy_null_sink (u, from->nullsink);
        }
 
        //pa_log_debug("link %s => %s is torn down", from->amname, to->amname);