char *dvr_comment;
profile_t *dvr_profile;
char *dvr_storage;
+ int dvr_pri;
int dvr_clone;
uint32_t dvr_rerecord_errors;
uint32_t dvr_retention_days;
DVR_PRIO_LOW = 3,
DVR_PRIO_UNIMPORTANT = 4,
DVR_PRIO_NOTSET = 5,
+ DVR_PRIO_DEFAULT = 6,
} dvr_prio_t;
typedef enum {
uint32_t dvr_timerec_get_removal_days( dvr_timerec_entry_t *dte );
-/**
- *
- */
-dvr_prio_t dvr_pri2val(const char *s);
-
-const char *dvr_val2pri(dvr_prio_t v);
-
/**
* Inotify support
*/
}
dae->dae_weekdays = 0x7f;
- dae->dae_pri = DVR_PRIO_NORMAL;
+ dae->dae_pri = DVR_PRIO_DEFAULT;
dae->dae_start = -1;
dae->dae_start_window = -1;
dae->dae_enabled = 1;
.type = PT_U32,
.id = "pri",
.name = N_("Priority"),
- .desc = N_("The priority of any recordings set because of this "
- "rule will take precedence and "
- "cancel lower-priority events."),
+ .desc = N_("Priority of the recording. Higher priority entries "
+ "will take precedence and cancel lower-priority events. "
+ "The 'Not Set' value inherits the settings from "
+ "the assigned DVR configuration."),
.list = dvr_entry_class_pri_list,
- .def.i = DVR_PRIO_NORMAL,
+ .def.i = DVR_PRIO_DEFAULT,
.off = offsetof(dvr_autorec_entry_t, dae_pri),
.opts = PO_ADVANCED | PO_DOC_NLIST,
},
.opts = PO_ADVANCED,
.group = 1,
},
+ {
+ .type = PT_U32,
+ .id = "pri",
+ .name = N_("Priority"),
+ .desc = N_("Priority of the entry, higher-priority entries will "
+ "take precedence and cancel lower-priority events."),
+ .list = dvr_entry_class_pri_list,
+ .def.i = DVR_PRIO_NORMAL,
+ .off = offsetof(dvr_config_t, dvr_pri),
+ .opts = PO_SORTKEY | PO_ADVANCED | PO_DOC_NLIST,
+ },
{
.type = PT_INT,
.id = "cache",
de->de_config = dvr_config_find_by_name_default(NULL);
if (de->de_config)
LIST_INSERT_HEAD(&de->de_config->dvr_entries, de, de_config_link);
+ de->de_pri = DVR_PRIO_DEFAULT;
idnode_load(&de->de_id, conf);
dvr_entry_class_pri_set(void *o, const void *v)
{
dvr_entry_t *de = (dvr_entry_t *)o;
- return dvr_entry_class_int_set(de, &de->de_pri, *(int *)v);
+ int pri = *(int *)v;
+ if (pri == DVR_PRIO_NOTSET || pri < 0 || pri > DVR_PRIO_DEFAULT)
+ pri = DVR_PRIO_DEFAULT;
+ return dvr_entry_class_int_set(de, &de->de_pri, pri);
}
htsmsg_t *
dvr_entry_class_pri_list ( void *o, const char *lang )
{
static const struct strtab tab[] = {
- { N_("Not set"), DVR_PRIO_NOTSET },
+ { N_("Default"), DVR_PRIO_DEFAULT },
{ N_("Important"), DVR_PRIO_IMPORTANT },
{ N_("High"), DVR_PRIO_HIGH, },
{ N_("Normal"), DVR_PRIO_NORMAL },
.type = PT_INT,
.id = "pri",
.name = N_("Priority"),
- .desc = N_("Priority of the recording. Higher priority entries will take precedence and cancel lower-priority events."),
+ .desc = N_("Priority of the recording. Higher priority entries "
+ "will take precedence and cancel lower-priority events. "
+ "The 'Not Set' value inherits the settings from "
+ "the assigned DVR configuration."),
.off = offsetof(dvr_entry_t, de_pri),
- .def.i = DVR_PRIO_NORMAL,
+ .def.i = DVR_PRIO_DEFAULT,
.set = dvr_entry_class_pri_set,
.list = dvr_entry_class_pri_list,
.opts = PO_SORTKEY | PO_DOC_NLIST | PO_ADVANCED,
return first ? -1 : res;
}
-/**
- *
- */
-static struct strtab priotab[] = {
- { "important", DVR_PRIO_IMPORTANT },
- { "high", DVR_PRIO_HIGH },
- { "normal", DVR_PRIO_NORMAL },
- { "low", DVR_PRIO_LOW },
- { "unimportant", DVR_PRIO_UNIMPORTANT }
-};
-
-dvr_prio_t
-dvr_pri2val(const char *s)
-{
- return str2val_def(s, priotab, DVR_PRIO_NORMAL);
-}
-
-const char *
-dvr_val2pri(dvr_prio_t v)
-{
- return val2str(v, priotab) ?: "invalid";
-}
-
/**
*
*/
struct sockaddr_storage sa;
access_t *aa;
uint32_t rec_count, net_count;
- int c1, c2;
+ int pri, c1, c2;
assert(de->de_s == NULL);
assert(de->de_chain == NULL);
- if(de->de_pri >= 0 && de->de_pri < ARRAY_SIZE(prio2weight))
+ pri = de->de_pri;
+ if(pri == DVR_PRIO_NOTSET)
+ pri = de->de_config->dvr_pri;
+ if(pri >= 0 && pri < ARRAY_SIZE(prio2weight))
weight = prio2weight[de->de_pri];
else
- weight = 300;
+ weight = prio2weight[DVR_PRIO_NORMAL];
snprintf(buf, sizeof(buf), "DVR: %s", lang_str_get(de->de_title, NULL));
dte->dte_title = strdup("Time-%F_%R");
dte->dte_weekdays = 0x7f;
- dte->dte_pri = DVR_PRIO_NORMAL;
+ dte->dte_pri = DVR_PRIO_DEFAULT;
dte->dte_start = -1;
dte->dte_stop = -1;
dte->dte_enabled = 1;
.type = PT_U32,
.id = "pri",
.name = N_("Priority"),
- .desc = N_("Priority of the entry, higher-priority entries will take precedence and cancel lower-priority events."),
+ .desc = N_("Priority of the recording. Higher priority entries "
+ "will take precedence and cancel lower-priority events. "
+ "The 'Not Set' value inherits the settings from "
+ "the assigned DVR configuration."),
.list = dvr_entry_class_pri_list,
- .def.i = DVR_PRIO_NORMAL,
+ .def.i = DVR_PRIO_DEFAULT,
.off = offsetof(dvr_timerec_entry_t, dte_pri),
.opts = PO_SORTKEY | PO_ADVANCED | PO_DOC_NLIST,
},