Add support for disabling EIT grabbing on selected services.
This commit is contained in:
parent
18c983188d
commit
630b40d590
6 changed files with 82 additions and 2 deletions
|
@ -537,6 +537,9 @@ dvb_eit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
|
|||
if(t == NULL || !t->s_enabled || (ch = t->s_ch) == NULL)
|
||||
return 0;
|
||||
|
||||
if(!t->s_dvb_eit_enable)
|
||||
return 0;
|
||||
|
||||
while(len >= 12) {
|
||||
event_id = ptr[0] << 8 | ptr[1];
|
||||
start_time = dvb_convert_date(&ptr[2]);
|
||||
|
|
|
@ -238,6 +238,10 @@ dvb_transport_load(th_dvb_mux_instance_t *tdmi)
|
|||
s = htsmsg_get_str(c, "dvb_default_charset");
|
||||
t->s_dvb_default_charset = s ? strdup(s) : NULL;
|
||||
|
||||
if(htsmsg_get_u32(c, "dvb_eit_enable", &u32))
|
||||
u32 = 1;
|
||||
t->s_dvb_eit_enable = u32;
|
||||
|
||||
s = htsmsg_get_str(c, "channelname");
|
||||
if(htsmsg_get_u32(c, "mapped", &u32))
|
||||
u32 = 0;
|
||||
|
@ -278,6 +282,8 @@ dvb_transport_save(service_t *t)
|
|||
if(t->s_dvb_default_charset != NULL)
|
||||
htsmsg_add_str(m, "dvb_default_charset", t->s_dvb_default_charset);
|
||||
|
||||
htsmsg_add_u32(m, "dvb_eit_enable", t->s_dvb_eit_enable);
|
||||
|
||||
pthread_mutex_lock(&t->s_stream_mutex);
|
||||
psi_save_service_settings(m, t);
|
||||
pthread_mutex_unlock(&t->s_stream_mutex);
|
||||
|
@ -440,6 +446,8 @@ dvb_transport_build_msg(service_t *t)
|
|||
if(t->s_dvb_default_charset != NULL)
|
||||
htsmsg_add_str(m, "dvb_default_charset", t->s_dvb_default_charset);
|
||||
|
||||
htsmsg_add_u32(m, "dvb_eit_enable", t->s_dvb_eit_enable);
|
||||
|
||||
return m;
|
||||
}
|
||||
|
||||
|
|
|
@ -505,6 +505,7 @@ service_create(const char *identifier, int type, int source_type)
|
|||
t->s_enabled = 1;
|
||||
t->s_pcr_last = PTS_UNSET;
|
||||
t->s_dvb_default_charset = NULL;
|
||||
t->s_dvb_eit_enable = 1;
|
||||
TAILQ_INIT(&t->s_components);
|
||||
|
||||
streaming_pad_init(&t->s_streaming_pad);
|
||||
|
@ -692,6 +693,18 @@ service_set_dvb_default_charset(service_t *t, const char *dvb_default_charset)
|
|||
t->s_config_save(t);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void
|
||||
service_set_dvb_eit_enable(service_t *t, int dvb_eit_enable)
|
||||
{
|
||||
if(t->s_dvb_eit_enable == dvb_eit_enable)
|
||||
return;
|
||||
|
||||
t->s_dvb_eit_enable = dvb_eit_enable;
|
||||
t->s_config_save(t);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -482,6 +482,11 @@ typedef struct service {
|
|||
*/
|
||||
char *s_dvb_default_charset;
|
||||
|
||||
/**
|
||||
* Set if EIT grab is enabled for DVB service (the default).
|
||||
*/
|
||||
int s_dvb_eit_enable;
|
||||
|
||||
} service_t;
|
||||
|
||||
|
||||
|
@ -569,4 +574,6 @@ int service_get_signal_status(service_t *t, signal_status_t *status);
|
|||
|
||||
void service_set_dvb_default_charset(service_t *t, const char *dvb_default_charset);
|
||||
|
||||
void service_set_dvb_eit_enable(service_t *t, int dvb_eit_enable);
|
||||
|
||||
#endif // SERVICE_H__
|
||||
|
|
|
@ -1134,6 +1134,9 @@ service_update(htsmsg_t *in)
|
|||
|
||||
if((dvb_default_charset = htsmsg_get_str(c, "dvb_default_charset")) != NULL)
|
||||
service_set_dvb_default_charset(t, dvb_default_charset);
|
||||
|
||||
if(!htsmsg_get_u32(c, "dvb_eit_enable", &u32))
|
||||
service_set_dvb_eit_enable(t, u32);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1218,6 +1221,8 @@ extjs_servicedetails(http_connection_t *hc,
|
|||
if(t->s_dvb_default_charset != NULL)
|
||||
htsmsg_add_str(out, "dvb_default_charset", t->s_dvb_default_charset);
|
||||
|
||||
htsmsg_add_u32(out, "dvb_eit_enable", t->s_dvb_eit_enable);
|
||||
|
||||
pthread_mutex_unlock(&global_lock);
|
||||
|
||||
htsmsg_json_serialize(out, hq, 0);
|
||||
|
@ -1460,6 +1465,9 @@ extjs_service_update(htsmsg_t *in)
|
|||
|
||||
if((dvb_default_charset = htsmsg_get_str(c, "dvb_default_charset")) != NULL)
|
||||
service_set_dvb_default_charset(t, dvb_default_charset);
|
||||
|
||||
if(!htsmsg_get_u32(c, "dvb_eit_enable", &u32))
|
||||
service_set_dvb_eit_enable(t, u32);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -433,6 +433,47 @@ tvheadend.dvb_services = function(adapterId) {
|
|||
valueField:'key'
|
||||
})
|
||||
},
|
||||
{
|
||||
header: "EIT",
|
||||
dataIndex: 'dvb_eit_enable',
|
||||
width: 100,
|
||||
renderer: function(value, metadata, record, row, col, store) {
|
||||
if (value == '0')
|
||||
return 'Disabled';
|
||||
if (value == '1')
|
||||
return 'Enabled';
|
||||
},
|
||||
editor: new fm.ComboBox({
|
||||
mode: 'local',
|
||||
store: new Ext.data.SimpleStore({
|
||||
fields: ['key','value'],
|
||||
data: [
|
||||
['0','Disabled'],
|
||||
['1','Enabled']
|
||||
]
|
||||
}),
|
||||
typeAhead: true,
|
||||
lazyRender: true,
|
||||
triggerAction: 'all',
|
||||
displayField:'value',
|
||||
valueField:'key'
|
||||
})
|
||||
},
|
||||
/* var eitColumn = new Ext.grid.CheckColumn({
|
||||
header: "EIT Check",
|
||||
dataIndex: 'dvb_eit_enable',
|
||||
width: 45
|
||||
});
|
||||
|
||||
{
|
||||
header: "EIT",
|
||||
dataIndex: 'dvb_eit_enable',
|
||||
width: 45,
|
||||
editor: new fm.Checkbox({
|
||||
fieldLabel: 'EIT',
|
||||
name: 'eit',
|
||||
})
|
||||
},*/
|
||||
{
|
||||
header: "Type",
|
||||
dataIndex: 'type',
|
||||
|
@ -478,8 +519,8 @@ tvheadend.dvb_services = function(adapterId) {
|
|||
var store = new Ext.data.JsonStore({
|
||||
root: 'entries',
|
||||
fields: Ext.data.Record.create([
|
||||
'id', 'enabled', 'type', 'sid', 'pmt', 'pcr',
|
||||
'svcname', 'network', 'provider', 'mux', 'channelname', 'dvb_default_charset'
|
||||
'id', 'enabled', 'type', 'sid', 'pmt', 'pcr', 'svcname', 'network',
|
||||
'provider', 'mux', 'channelname', 'dvb_default_charset', 'dvb_eit_enable'
|
||||
]),
|
||||
url: "dvb/services/" + adapterId,
|
||||
autoLoad: true,
|
||||
|
|
Loading…
Add table
Reference in a new issue