Add ability to set the IPTV service type.
This commit is contained in:
parent
b709427f3e
commit
ce862f85fc
5 changed files with 67 additions and 2 deletions
|
@ -414,6 +414,9 @@ iptv_service_save(service_t *t)
|
|||
|
||||
htsmsg_add_u32(m, "pmt", t->s_pmt_pid);
|
||||
|
||||
if(t->s_servicetype)
|
||||
htsmsg_add_u32(m, "stype", t->s_servicetype);
|
||||
|
||||
if(t->s_iptv_port)
|
||||
htsmsg_add_u32(m, "port", t->s_iptv_port);
|
||||
|
||||
|
@ -591,6 +594,9 @@ iptv_service_load(void)
|
|||
if(!htsmsg_get_u32(c, "port", &u32))
|
||||
t->s_iptv_port = u32;
|
||||
|
||||
if(!htsmsg_get_u32(c, "stype", &u32))
|
||||
t->s_servicetype = u32;
|
||||
|
||||
pthread_mutex_lock(&t->s_stream_mutex);
|
||||
service_make_nicename(t);
|
||||
psi_load_service_settings(c, t);
|
||||
|
|
|
@ -1153,3 +1153,20 @@ service_is_primary_epg(service_t *svc)
|
|||
}
|
||||
return !ret ? 0 : (ret->s_dvb_service_id == svc->s_dvb_service_id);
|
||||
}
|
||||
|
||||
/*
|
||||
* list of known service types
|
||||
*/
|
||||
htsmsg_t *servicetype_list ( void )
|
||||
{
|
||||
htsmsg_t *ret, *e;
|
||||
int i;
|
||||
ret = htsmsg_create_list();
|
||||
for (i = 0; i < sizeof(stypetab) / sizeof(stypetab[0]); i++ ) {
|
||||
e = htsmsg_create_map();
|
||||
htsmsg_add_u32(e, "val", stypetab[i].val);
|
||||
htsmsg_add_str(e, "str", stypetab[i].str);
|
||||
htsmsg_add_msg(ret, NULL, e);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -578,4 +578,6 @@ void service_set_dvb_eit_enable(service_t *t, int dvb_eit_enable);
|
|||
|
||||
int service_is_primary_epg (service_t *t);
|
||||
|
||||
htsmsg_t *servicetype_list (void);
|
||||
|
||||
#endif // SERVICE_H__
|
||||
|
|
|
@ -1502,6 +1502,11 @@ service_update_iptv(htsmsg_t *in)
|
|||
save = 1;
|
||||
}
|
||||
|
||||
if (!htsmsg_get_u32(c, "stype", &u32)) {
|
||||
t->s_servicetype = u32;
|
||||
save = 1;
|
||||
}
|
||||
|
||||
if((s = htsmsg_get_str(c, "group")) != NULL) {
|
||||
if(!inet_pton(AF_INET, s, &t->s_iptv_group.s_addr)){
|
||||
inet_pton(AF_INET6, s, &t->s_iptv_group6.s6_addr);
|
||||
|
@ -1542,6 +1547,7 @@ build_record_iptv(service_t *t)
|
|||
}
|
||||
|
||||
htsmsg_add_u32(r, "port", t->s_iptv_port);
|
||||
htsmsg_add_u32(r, "stype", t->s_servicetype);
|
||||
htsmsg_add_u32(r, "enabled", t->s_enabled);
|
||||
return r;
|
||||
}
|
||||
|
@ -1613,6 +1619,11 @@ extjs_iptvservices(http_connection_t *hc, const char *remain, void *opaque)
|
|||
|
||||
out = htsmsg_create_map();
|
||||
|
||||
} else if (!strcmp(op, "servicetypeList")) {
|
||||
out = htsmsg_create_map();
|
||||
array = servicetype_list();
|
||||
htsmsg_add_msg(out, "entries", array);
|
||||
|
||||
} else {
|
||||
pthread_mutex_unlock(&global_lock);
|
||||
htsmsg_destroy(in);
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
tvheadend.servicetypeStore = new Ext.data.JsonStore({
|
||||
root : 'entries',
|
||||
id : 'val',
|
||||
url : '/iptv/services',
|
||||
baseParams : { op : 'servicetypeList' },
|
||||
fields : [ 'val', 'str' ],
|
||||
autoLoad : true,
|
||||
});
|
||||
|
||||
/**
|
||||
* IPTV service grid
|
||||
*/
|
||||
|
@ -88,7 +97,27 @@ tvheadend.iptv = function(adapterId) {
|
|||
width: 50,
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
{
|
||||
header : 'Service Type',
|
||||
width : 100,
|
||||
dataIndex : 'stype',
|
||||
hidden : true,
|
||||
editor : new fm.ComboBox({
|
||||
valueField : 'val',
|
||||
displayField : 'str',
|
||||
forceSelection : false,
|
||||
editable : false,
|
||||
mode : 'local',
|
||||
triggerAction : 'all',
|
||||
store : tvheadend.servicetypeStore,
|
||||
}),
|
||||
renderer: function(value, metadata, record, row, col, store) {
|
||||
var val = value ? tvheadend.servicetypeStore.getById(value) : null;
|
||||
return val ? val.get('str') :
|
||||
'<span class="tvh-grid-unset">Unset</span>';
|
||||
},
|
||||
},
|
||||
{
|
||||
header: "PMT PID",
|
||||
dataIndex: 'pmt',
|
||||
width: 50,
|
||||
|
@ -106,7 +135,7 @@ tvheadend.iptv = function(adapterId) {
|
|||
|
||||
var rec = Ext.data.Record.create([
|
||||
'id', 'enabled', 'channelname', 'interface', 'group', 'port',
|
||||
'sid', 'pmt', 'pcr'
|
||||
'sid', 'pmt', 'pcr', 'stype'
|
||||
]);
|
||||
|
||||
var store = new Ext.data.JsonStore({
|
||||
|
|
Loading…
Add table
Reference in a new issue