mpegts linuxdvb: use new class lookup for satconf network lookup
This commit is contained in:
parent
2e13f5db01
commit
b96c432f69
4 changed files with 46 additions and 17 deletions
|
@ -73,21 +73,16 @@ linuxdvb_satconf_class_network_set(void *o, const void *v)
|
|||
static htsmsg_t *
|
||||
linuxdvb_satconf_class_network_enum(void *o)
|
||||
{
|
||||
extern const idclass_t linuxdvb_network_class;
|
||||
int i;
|
||||
linuxdvb_network_t *ln;
|
||||
htsmsg_t *m = htsmsg_create_list();
|
||||
idnode_set_t *is = idnode_find_all(&linuxdvb_network_class);
|
||||
for (i = 0; i < is->is_count; i++) {
|
||||
ln = (linuxdvb_network_t*)is->is_array[i];
|
||||
if (ln->ln_type == FE_QPSK) {
|
||||
htsmsg_t *e = htsmsg_create_map();
|
||||
htsmsg_add_str(e, "key", idnode_uuid_as_str(&ln->mn_id));
|
||||
htsmsg_add_str(e, "val", ln->mn_network_name);
|
||||
htsmsg_add_msg(m, NULL, e);
|
||||
}
|
||||
}
|
||||
idnode_set_free(is);
|
||||
extern const idclass_t linuxdvb_network_dvbs_class;
|
||||
htsmsg_t *m = htsmsg_create_map();
|
||||
htsmsg_t *p = htsmsg_create_map();
|
||||
htsmsg_add_str(m, "type", "api");
|
||||
htsmsg_add_str(m, "uri", "idnode");
|
||||
htsmsg_add_str(m, "event", "mpegts_network");
|
||||
htsmsg_add_str(p, "op", "list");
|
||||
htsmsg_add_str(p, "class", linuxdvb_network_dvbs_class.ic_class);
|
||||
htsmsg_add_msg(m, "params", p);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,17 @@ mpegts_network_class_save
|
|||
mn->mn_config_save(mn);
|
||||
}
|
||||
|
||||
static const char *
|
||||
mpegts_network_class_get_title ( idnode_t *in )
|
||||
{
|
||||
static char buf[256];
|
||||
mpegts_network_t *mn = (mpegts_network_t*)in;
|
||||
*buf = 0;
|
||||
if (mn->mn_display_name)
|
||||
mn->mn_display_name(mn, buf, sizeof(buf));
|
||||
return buf;
|
||||
}
|
||||
|
||||
static const void *
|
||||
mpegts_network_class_get_num_mux ( void *ptr )
|
||||
{
|
||||
|
@ -85,6 +96,7 @@ const idclass_t mpegts_network_class =
|
|||
.ic_caption = "MPEGTS Network",
|
||||
.ic_save = mpegts_network_class_save,
|
||||
.ic_event = "mpegts_network",
|
||||
.ic_get_title = mpegts_network_class_get_title,
|
||||
.ic_properties = (const property_t[]){
|
||||
{
|
||||
.type = PT_STR,
|
||||
|
|
|
@ -1981,6 +1981,28 @@ extjs_idnode0
|
|||
}
|
||||
}
|
||||
out = htsmsg_create_map();
|
||||
|
||||
/* List by class */
|
||||
} else if (!strcmp(op, "list")) {
|
||||
int i;
|
||||
const char *cls = http_arg_get(&hc->hc_req_args, "class");
|
||||
pthread_mutex_lock(&global_lock);
|
||||
const idclass_t *idc = idclass_find(cls);
|
||||
idnode_set_t *is = idnode_find_all(idc);
|
||||
out = htsmsg_create_map();
|
||||
if (is) {
|
||||
htsmsg_t *l = htsmsg_create_list();
|
||||
for (i = 0; i < is->is_count; i++) {
|
||||
idnode_t *in = is->is_array[i];
|
||||
htsmsg_t *e = htsmsg_create_map();
|
||||
htsmsg_add_str(e, "key", idnode_uuid_as_str(in));
|
||||
htsmsg_add_str(e, "val", idnode_get_title(in));
|
||||
htsmsg_add_msg(l, NULL, e);
|
||||
}
|
||||
idnode_set_free(is);
|
||||
htsmsg_add_msg(out, "entries", l);
|
||||
}
|
||||
pthread_mutex_unlock(&global_lock);
|
||||
|
||||
/* Children */
|
||||
} else if (!strcmp(op, "childs")) {
|
||||
|
|
|
@ -6,11 +6,11 @@ tvheadend.idnode_enum_stores = {}
|
|||
tvheadend.idnode_get_enum = function ( conf )
|
||||
{
|
||||
/* Build key */
|
||||
key = conf.url;
|
||||
var key = conf.url;
|
||||
if (conf.event)
|
||||
key += conf.event;
|
||||
if (conf.params)
|
||||
key += Ext.util.JSON.encode(conf.params);
|
||||
key += '?' + Ext.util.JSON.encode(conf.params);
|
||||
|
||||
/* Use cached */
|
||||
if (key in tvheadend.idnode_enum_stores)
|
||||
|
|
Loading…
Add table
Reference in a new issue