Rename all internal pa_ definitions to agl_
[staging/agl-audio-plugin.git] / router.c
index 855f9f8..a431b69 100644 (file)
--- a/router.c
+++ b/router.c
 #include "switch.h"
 #include "utils.h"
 
-pa_router *pa_router_init (struct userdata *u)
+agl_router *agl_router_init (struct userdata *u)
 {
-       pa_router *router;
+       agl_router *router;
        size_t num_classes;
 
        num_classes = agl_application_class_end;
 
-       router = pa_xnew0 (pa_router, 1);
+       router = pa_xnew0 (agl_router, 1);
        router->rtgroups.input = pa_hashmap_new (pa_idxset_string_hash_func,
                                                 pa_idxset_string_compare_func);
        router->rtgroups.output = pa_hashmap_new (pa_idxset_string_hash_func,
@@ -44,9 +44,9 @@ pa_router *pa_router_init (struct userdata *u)
        return router;
 }
 
-void pa_router_done (struct userdata *u)
+void agl_router_done (struct userdata *u)
 {
-       pa_router *router;
+       agl_router *router;
        agl_node *e,*n;
        agl_connection *conn, *c;
        agl_rtgroup *rtg;
@@ -84,9 +84,49 @@ void pa_router_done (struct userdata *u)
        }
 }
 
+bool agl_router_default_accept (struct userdata *u, agl_rtgroup *rtg, agl_node *node)
+{
+       /* TODO */
+       return true;
+}
+
+bool agl_router_phone_accept (struct userdata *u, agl_rtgroup *rtg, agl_node *node)
+{
+       /* TODO */
+       return true;
+}
+
+int agl_router_default_compare (struct userdata *u, agl_rtgroup *rtg, agl_node *n1, agl_node *n2)
+{
+       /* TODO */
+       return 1;
+}
+
+int agl_router_phone_compare (struct userdata *u, agl_rtgroup *rtg, agl_node *n1, agl_node *n2)
+{
+       /* TODO */
+       return 1;
+}
+
+void agl_router_register_node (struct userdata *u, agl_node *node)
+{
+       pa_assert (u);
+       pa_assert (node);
+
+       implement_default_route (u, node, NULL, agl_utils_new_stamp ());
+}
+
+void agl_router_unregister_node (struct userdata *u, agl_node *node)
+{
+       pa_assert (u);
+       pa_assert (node);
+
+       remove_routes (u, node, NULL, agl_utils_new_stamp ());
+}
+
 agl_node *agl_router_make_prerouting (struct userdata *u, agl_node *data)
 {
-       pa_router *router;
+       agl_router *router;
        int priority;
        static bool done_prerouting;
        uint32_t stamp;
@@ -101,7 +141,7 @@ agl_node *agl_router_make_prerouting (struct userdata *u, agl_node *data)
 
        done_prerouting = false;
        target = NULL;
-       stamp = pa_utils_new_stamp ();
+       stamp = agl_utils_new_stamp ();
 
        //make_explicit_routes (u, stamp);
 
@@ -141,7 +181,7 @@ agl_node *agl_router_make_prerouting (struct userdata *u, agl_node *data)
 
 void agl_router_make_routing (struct userdata *u)
 {
-       pa_router *router;
+       agl_router *router;
        static bool ongoing_routing;    /* true while we are actively routing */
        uint32_t stamp;
        agl_node *start, *end;
@@ -152,7 +192,7 @@ void agl_router_make_routing (struct userdata *u)
        if (ongoing_routing)            /* already routing, canceling */
                return;
        ongoing_routing = true;
-       stamp = pa_utils_new_stamp ();
+       stamp = agl_utils_new_stamp ();
 
        pa_log_debug("stamp for routing: %d", stamp);
 
@@ -196,3 +236,12 @@ agl_node *find_default_route (struct userdata *u, agl_node *start, uint32_t stam
 
        return NULL;
 }
+
+void remove_routes (struct userdata *u, agl_node *start, agl_node *end, uint32_t stamp)
+{
+       if (start->direction == agl_input) {
+               agl_switch_teardown_link (u, start, end);
+       } else {
+               agl_switch_teardown_link (u, end, start);
+       }
+}