From bc0d93dd7211654b1b64d20029f7396458a5c9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Sun, 31 Mar 2013 14:20:46 +0200 Subject: [PATCH] Add support renaming of DVB networks --- src/dvb/dvb.h | 2 ++ src/dvb/dvb_network.c | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index db72f1cd..f81d46ef 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -110,6 +110,8 @@ typedef struct dvb_network { uint32_t dn_nitoid; uint32_t dn_skip_checksubscr; + char *dn_name; // User configured name + struct th_dvb_adapter_list dn_adapters; } dvb_network_t; diff --git a/src/dvb/dvb_network.c b/src/dvb/dvb_network.c index feca6cb6..74c8a14b 100644 --- a/src/dvb/dvb_network.c +++ b/src/dvb/dvb_network.c @@ -37,14 +37,20 @@ const static struct strtab typetab[] = { struct dvb_network_list dvb_networks; static idnode_t **dvb_network_get_childs(struct idnode *self); +static const char *dvb_network_get_title(struct idnode *self); static void dvb_network_save(idnode_t *in); static const idclass_t dvb_network_class = { .ic_class = "dvbnetwork", .ic_get_childs = dvb_network_get_childs, + .ic_get_title = dvb_network_get_title, .ic_save = dvb_network_save, .ic_properties = (const property_t[]){ { + "name", "Name", PT_STR, + offsetof(dvb_network_t, dn_name), + .notify = &idnode_notify_title_changed, + }, { "autodiscovery", "Auto discovery", PT_BOOL, offsetof(dvb_network_t, dn_autodiscovery) }, { @@ -62,6 +68,7 @@ static const idclass_t dvb_network_class = { dvb_network_t * dvb_network_create(int fe_type, const char *uuid) { + char defname[64]; dvb_network_t *dn = calloc(1, sizeof(dvb_network_t)); if(idnode_insert(&dn->dn_id, uuid, &dvb_network_class)) { free(dn); @@ -73,12 +80,25 @@ dvb_network_create(int fe_type, const char *uuid) TAILQ_INIT(&dn->dn_initial_scan_current_queue); dn->dn_autodiscovery = fe_type != FE_QPSK; + snprintf(defname, sizeof(defname), "%s network", val2str(fe_type, typetab)); + dn->dn_name = strdup(defname); LIST_INSERT_HEAD(&dvb_networks, dn, dn_global_link); return dn; } +/** + * + */ +static const char * +dvb_network_get_title(struct idnode *self) +{ + dvb_network_t *dn = (dvb_network_t *)self; + return dn->dn_name; +} + + /** * */