Add support renaming of DVB networks

This commit is contained in:
Andreas Öman 2013-03-31 14:20:46 +02:00
parent 9414fd4d45
commit bc0d93dd72
2 changed files with 22 additions and 0 deletions

View file

@ -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;

View file

@ -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;
}
/**
*
*/