From ebefa2fd6e9e518a7fa2fdf708da5bd2ac9c1a55 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 10 Jul 2012 20:34:04 +0100 Subject: [PATCH] Add default priority setting in grab modules. --- src/epggrab/module.c | 16 +++++++++------- src/epggrab/module/eit.c | 2 +- src/epggrab/module/opentv.c | 2 +- src/epggrab/module/pyepg.c | 5 +++-- src/epggrab/module/xmltv.c | 4 ++-- src/epggrab/private.h | 11 +++++++---- 6 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/epggrab/module.c b/src/epggrab/module.c index 7217426f..a2b3bdcf 100644 --- a/src/epggrab/module.c +++ b/src/epggrab/module.c @@ -73,7 +73,7 @@ htsmsg_t *epggrab_module_list ( void ) * *************************************************************************/ epggrab_module_t *epggrab_module_create - ( epggrab_module_t *skel, const char *id, const char *name, + ( epggrab_module_t *skel, const char *id, const char *name, int priority, epggrab_channel_tree_t *channels ) { assert(skel); @@ -81,6 +81,7 @@ epggrab_module_t *epggrab_module_create /* Setup */ skel->id = strdup(id); skel->name = strdup(name); + skel->priority = priority; skel->channels = channels; if (channels) { skel->ch_save = epggrab_module_ch_save; @@ -227,7 +228,8 @@ void epggrab_module_channels_load ( epggrab_module_t *mod ) epggrab_module_int_t *epggrab_module_int_create ( epggrab_module_int_t *skel, - const char *id, const char *name, const char *path, + const char *id, const char *name, int priority, + const char *path, char* (*grab) (void*m), int (*parse) (void *m, htsmsg_t *data, epggrab_stats_t *sta), htsmsg_t* (*trans) (void *mod, char *data), @@ -237,7 +239,7 @@ epggrab_module_int_t *epggrab_module_int_create if (!skel) skel = calloc(1, sizeof(epggrab_module_int_t)); /* Pass through */ - epggrab_module_create((epggrab_module_t*)skel, id, name, channels); + epggrab_module_create((epggrab_module_t*)skel, id, name, priority, channels); /* Int data */ skel->type = EPGGRAB_INT; @@ -397,7 +399,7 @@ int epggrab_module_enable_socket ( void *m, uint8_t e ) */ epggrab_module_ext_t *epggrab_module_ext_create ( epggrab_module_ext_t *skel, - const char *id, const char *name, const char *sockid, + const char *id, const char *name, int priority, const char *sockid, int (*parse) (void *m, htsmsg_t *data, epggrab_stats_t *sta), htsmsg_t* (*trans) (void *mod, char *data), epggrab_channel_tree_t *channels ) @@ -411,7 +413,7 @@ epggrab_module_ext_t *epggrab_module_ext_create snprintf(path, 512, "%s/epggrab/%s.sock", hts_settings_get_root(), sockid); epggrab_module_int_create((epggrab_module_int_t*)skel, - id, name, path, + id, name, priority, path, NULL, parse, trans, channels); @@ -428,7 +430,7 @@ epggrab_module_ext_t *epggrab_module_ext_create epggrab_module_ota_t *epggrab_module_ota_create ( epggrab_module_ota_t *skel, - const char *id, const char *name, + const char *id, const char *name, int priority, void (*start) (epggrab_module_ota_t*m, struct th_dvb_mux_instance *tdmi), int (*enable) (void *m, uint8_t e ), @@ -437,7 +439,7 @@ epggrab_module_ota_t *epggrab_module_ota_create if (!skel) skel = calloc(1, sizeof(epggrab_module_ota_t)); /* Pass through */ - epggrab_module_create((epggrab_module_t*)skel, id, name, channels); + epggrab_module_create((epggrab_module_t*)skel, id, name, priority, channels); /* Setup */ skel->type = EPGGRAB_OTA; diff --git a/src/epggrab/module/eit.c b/src/epggrab/module/eit.c index a89a382f..c2082de2 100644 --- a/src/epggrab/module/eit.c +++ b/src/epggrab/module/eit.c @@ -430,7 +430,7 @@ static void _eit_start void eit_init ( void ) { - epggrab_module_ota_create(NULL, "eit", "EIT: DVB Grabber", + epggrab_module_ota_create(NULL, "eit", "EIT: DVB Grabber", 1, _eit_start, NULL, NULL); } diff --git a/src/epggrab/module/opentv.c b/src/epggrab/module/opentv.c index 8e8c8f93..18c77f7c 100644 --- a/src/epggrab/module/opentv.c +++ b/src/epggrab/module/opentv.c @@ -874,7 +874,7 @@ static int _opentv_prov_load_one ( const char *id, htsmsg_t *m ) sprintf(nbuf, "OpenTV: %s", name); mod = (opentv_module_t*) epggrab_module_ota_create(calloc(1, sizeof(opentv_module_t)), - ibuf, nbuf, + ibuf, nbuf, 2, _opentv_start, _opentv_enable, NULL); diff --git a/src/epggrab/module/pyepg.c b/src/epggrab/module/pyepg.c index 621eb743..3f0679a4 100644 --- a/src/epggrab/module/pyepg.c +++ b/src/epggrab/module/pyepg.c @@ -416,12 +416,13 @@ static int _pyepg_parse void pyepg_init ( void ) { /* Internal module */ - epggrab_module_int_create(NULL, "/usr/bin/pyepg", "PyEPG", "/usr/bin/pyepg", + epggrab_module_int_create(NULL, "/usr/bin/pyepg", "PyEPG", 4, + "/usr/bin/pyepg", NULL, _pyepg_parse, NULL, NULL); /* External module */ _pyepg_module = (epggrab_module_t*) - epggrab_module_ext_create(NULL, "pyepg", "PyEPG", "pyepg", + epggrab_module_ext_create(NULL, "pyepg", "PyEPG", 4, "pyepg", _pyepg_parse, NULL, &_pyepg_channels); } diff --git a/src/epggrab/module/xmltv.c b/src/epggrab/module/xmltv.c index f2cba064..c211d48a 100644 --- a/src/epggrab/module/xmltv.c +++ b/src/epggrab/module/xmltv.c @@ -525,7 +525,7 @@ static void _xmltv_load_grabbers ( void ) if ( outbuf[i] == '\n' || outbuf[i] == '\0' ) { outbuf[i] = '\0'; sprintf(name, "XMLTV: %s", &outbuf[n]); - epggrab_module_int_create(NULL, &outbuf[p], name, &outbuf[p], + epggrab_module_int_create(NULL, &outbuf[p], name, 3, &outbuf[p], NULL, _xmltv_parse, NULL, NULL); p = n = i + 1; } else if ( outbuf[i] == '|' ) { @@ -541,7 +541,7 @@ void xmltv_init ( void ) { /* External module */ _xmltv_module = (epggrab_module_t*) - epggrab_module_ext_create(NULL, "xmltv", "XMLTV", "xmltv", + epggrab_module_ext_create(NULL, "xmltv", "XMLTV", 3, "xmltv", _xmltv_parse, NULL, &_xmltv_channels); diff --git a/src/epggrab/private.h b/src/epggrab/private.h index 875422c2..e1abe0da 100644 --- a/src/epggrab/private.h +++ b/src/epggrab/private.h @@ -25,7 +25,8 @@ epggrab_module_t *epggrab_module_create ( epggrab_module_t *skel, - const char *id, const char *name, epggrab_channel_tree_t *channels ); + const char *id, const char *name, int priority, + epggrab_channel_tree_t *channels ); char *epggrab_module_grab_spawn ( void *m ); htsmsg_t *epggrab_module_trans_xml ( void *m, char *data ); @@ -57,7 +58,8 @@ epggrab_channel_t *epggrab_channel_find epggrab_module_int_t *epggrab_module_int_create ( epggrab_module_int_t *skel, - const char *id, const char *name, const char *path, + const char *id, const char *name, int priority, + const char *path, char* (*grab) (void*m), int (*parse) (void *m, htsmsg_t *data, epggrab_stats_t *sta), htsmsg_t* (*trans) (void *mod, char *data), @@ -69,7 +71,8 @@ epggrab_module_int_t *epggrab_module_int_create epggrab_module_ext_t *epggrab_module_ext_create ( epggrab_module_ext_t *skel, - const char *id, const char *name, const char *sockid, + const char *id, const char *name, int priority, + const char *sockid, int (*parse) (void *m, htsmsg_t *data, epggrab_stats_t *sta), htsmsg_t* (*trans) (void *mod, char *data), epggrab_channel_tree_t *channels ); @@ -80,7 +83,7 @@ epggrab_module_ext_t *epggrab_module_ext_create epggrab_module_ota_t *epggrab_module_ota_create ( epggrab_module_ota_t *skel, - const char *id, const char *name, + const char *id, const char *name, int priority, void (*start) (epggrab_module_ota_t*m, struct th_dvb_mux_instance *tdmi), int (*enable) (void *m, uint8_t e ),