summaryrefslogtreecommitdiffstats
path: root/router.h
diff options
context:
space:
mode:
authorManuel Bachmann <manuel.bachmann@iot.bzh>2016-07-07 17:29:08 +0200
committerYannick Gicquel <yannick.gicquel@iot.bzh>2016-10-11 17:09:07 +0200
commitcc70e0ae30920ca835bf011f8040afb6fea43f45 (patch)
treec4d503c5a556bee69842f38b28e85a182c70bfb8 /router.h
parent2478974dfde05063cbf0233e3d3c434ca2f46c7c (diff)
Implement routing groups and volume ramp up/down
Change-Id: I0e9d3b8b8be4d124907214c165617d86be6906fc Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Diffstat (limited to 'router.h')
-rw-r--r--router.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/router.h b/router.h
index 0bf21d5..cc7bf95 100644
--- a/router.h
+++ b/router.h
@@ -29,14 +29,14 @@
#define AGL_ZONE_MAX 8 /* max 8 zones, demo is using 5 */ /* DEFINED IN MURPHY */
typedef bool (*agl_rtgroup_accept_t)(struct userdata *, agl_rtgroup *, agl_node *);
-typedef int (*agl_rtgroup_compare_t)(struct userdata *, agl_rtgroup *, agl_node *, agl_node *);
+typedef int (*agl_rtgroup_effect_t)(struct userdata *, agl_rtgroup *, agl_node *, bool new);
struct agl_rtgroup {
char *name; /**< name of the rtgroup */
agl_dlist entries; /**< listhead of ordered rtentries */
agl_node *node; /**< final node */
agl_rtgroup_accept_t accept; /**< function pointer, whether to accept a node or not */
- agl_rtgroup_compare_t compare; /**< function pointer, comparision for ordering */
+ agl_rtgroup_effect_t effect; /**< function pointer, custom action such as volume up, down */
};
typedef struct {
@@ -73,13 +73,15 @@ void agl_router_done (struct userdata *);
bool agl_router_default_accept (struct userdata *, agl_rtgroup *, agl_node *);
bool agl_router_phone_accept (struct userdata *, agl_rtgroup *, agl_node *);
-int agl_router_default_compare (struct userdata *, agl_rtgroup *, agl_node *, agl_node *);
-int agl_router_phone_compare (struct userdata *, agl_rtgroup *, agl_node *, agl_node *);
+int agl_router_default_effect (struct userdata *, agl_rtgroup *, agl_node *, bool);
+int agl_router_phone_effect (struct userdata *, agl_rtgroup *, agl_node *, bool);
-agl_rtgroup *agl_router_create_rtgroup (struct userdata *, agl_direction, const char *, const char *, agl_rtgroup_accept_t, agl_rtgroup_compare_t);
+agl_rtgroup *agl_router_create_rtgroup (struct userdata *, agl_direction, const char *, const char *, agl_rtgroup_accept_t, agl_rtgroup_effect_t);
void agl_router_destroy_rtgroup (struct userdata *, agl_direction, const char *);
bool agl_router_assign_class_to_rtgroup (struct userdata *, agl_node_type, uint32_t, agl_direction, const char *);
void agl_router_assign_class_priority (struct userdata *, agl_node_type, int);
+int agl_router_get_node_priority (struct userdata *, agl_node *);
+bool agl_router_apply_node_priority_effect (struct userdata *, agl_node *, bool);
void agl_router_register_node (struct userdata *, agl_node *);
void agl_router_unregister_node (struct userdata *, agl_node *);