From c43fbc7e3f4cb66c765f1be96187a0dba1822416 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Sat, 7 Sep 2013 01:06:55 +0100 Subject: [PATCH] api: add channel create method --- src/api/api_channel.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/api/api_channel.c b/src/api/api_channel.c index 038c2296..c0336a49 100644 --- a/src/api/api_channel.c +++ b/src/api/api_channel.c @@ -58,12 +58,32 @@ api_channel_grid idnode_set_add(ins, (idnode_t*)ch, &conf->filter); } +static int +api_channel_create + ( void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) +{ + htsmsg_t *conf; + channel_t *ch; + + if (!(conf = htsmsg_get_map(args, "conf"))) + return EINVAL; + + pthread_mutex_lock(&global_lock); + ch = channel_create(NULL, conf, NULL); + if (ch) + channel_save(ch); + pthread_mutex_unlock(&global_lock); + + return 0; +} + void api_channel_init ( void ) { static api_hook_t ah[] = { - { "channel/class", ACCESS_ANONYMOUS, api_idnode_class, (void*)&channel_class }, - { "channel/grid", ACCESS_ANONYMOUS, api_idnode_grid, api_channel_grid }, - { "channel/list", ACCESS_ANONYMOUS, api_channel_list, NULL }, + { "channel/class", ACCESS_ANONYMOUS, api_idnode_class, (void*)&channel_class }, + { "channel/grid", ACCESS_ANONYMOUS, api_idnode_grid, api_channel_grid }, + { "channel/list", ACCESS_ANONYMOUS, api_channel_list, NULL }, + { "channel/create", ACCESS_ADMIN, api_channel_create, NULL }, { NULL }, };