Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
channel: changed EPG running settings logic - added 'Not Set' state
  • Loading branch information
perexg committed Nov 3, 2015
1 parent 556bbeb commit 8aa97d4
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 6 deletions.
16 changes: 14 additions & 2 deletions src/channels.c
Expand Up @@ -327,6 +327,17 @@ channel_class_epg_parent_set ( void *o, const void *v )
return save;
}

static htsmsg_t *
channel_class_epg_running_list ( void *o, const char *lang )
{
static const struct strtab tab[] = {
{ N_("Not set"), -1 },
{ N_("Disabled"), 0 },
{ N_("Enabled"), 1 },
};
return strtab2htsmsg(tab, 1, lang);
}

const idclass_t channel_class = {
.ic_class = "channel",
.ic_caption = N_("Channel"),
Expand Down Expand Up @@ -411,10 +422,11 @@ const idclass_t channel_class = {
.opts = PO_ADVANCED
},
{
.type = PT_BOOL,
.type = PT_INT,
.id = "epg_running",
.name = N_("Use EPG Running State"),
.off = offsetof(channel_t, ch_epg_running),
.list = channel_class_epg_running_list,
.opts = PO_ADVANCED
},
{
Expand Down Expand Up @@ -845,7 +857,7 @@ channel_create0
ch->ch_enabled = 1;
ch->ch_autoname = 1;
ch->ch_epgauto = 1;
ch->ch_epg_running = 1;
ch->ch_epg_running = -1;

if (conf) {
ch->ch_load = 1;
Expand Down
2 changes: 2 additions & 0 deletions src/dvr/dvr.h
Expand Up @@ -426,6 +426,8 @@ uint32_t dvr_entry_get_removal_days( dvr_entry_t *de );

uint32_t dvr_entry_get_rerecord_errors( dvr_entry_t *de );

int dvr_entry_get_epg_running( dvr_entry_t *de );

time_t dvr_entry_get_start_time( dvr_entry_t *de );

time_t dvr_entry_get_stop_time( dvr_entry_t *de );
Expand Down
12 changes: 9 additions & 3 deletions src/dvr/dvr_db.c
Expand Up @@ -279,6 +279,14 @@ dvr_entry_get_rerecord_errors( dvr_entry_t *de )
return de->de_config->dvr_rerecord_errors;
}

int
dvr_entry_get_epg_running( dvr_entry_t *de )
{
if (de->de_channel->ch_epg_running < 0)
return de->de_config->dvr_running;
return de->de_channel->ch_epg_running > 0;
}

/*
* DBUS next dvr start notifications
*/
Expand Down Expand Up @@ -1574,9 +1582,7 @@ void dvr_event_running(epg_broadcast_t *e, epg_source_t esrc, int running)
if (esrc != EPG_SOURCE_EIT || e->dvb_eid == 0 || e->channel == NULL)
return;
LIST_FOREACH(de, &e->channel->ch_dvrs, de_channel_link) {
if (de->de_dvb_eid == 0 ||
!de->de_channel->ch_epg_running ||
!de->de_config->dvr_running) {
if (de->de_dvb_eid == 0 || !dvr_entry_get_epg_running(de)) {
de->de_running_start = de->de_running_stop = 0;
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion src/dvr/dvr_rec.c
Expand Up @@ -1208,7 +1208,7 @@ dvr_thread(void *aux)
return NULL;
comm_skip = de->de_config->dvr_skip_commercials;
postproc = de->de_config->dvr_postproc ? strdup(de->de_config->dvr_postproc) : NULL;
running_disabled = !de->de_channel->ch_epg_running || !de->de_config->dvr_running;
running_disabled = dvr_entry_get_epg_running(de) <= 0;
dvr_thread_global_unlock(de);

TAILQ_INIT(&backlog);
Expand Down

0 comments on commit 8aa97d4

Please sign in to comment.