DVR: Add all weekdays as default
This commit is contained in:
parent
6de4fb94ea
commit
e9d4a61cc5
5 changed files with 68 additions and 51 deletions
|
@ -505,6 +505,7 @@ dvr_autorec_find_by_uuid(const char *uuid)
|
|||
|
||||
|
||||
htsmsg_t * dvr_autorec_entry_class_time_list(void *o, const char *null);
|
||||
htsmsg_t * dvr_autorec_entry_class_weekdays_get(uint32_t weekdays);
|
||||
htsmsg_t * dvr_autorec_entry_class_weekdays_list ( void *o );
|
||||
char * dvr_autorec_entry_class_weekdays_rend(uint32_t weekdays);
|
||||
|
||||
|
|
|
@ -554,18 +554,30 @@ dvr_autorec_entry_class_weekdays_set(void *o, const void *v)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const void *
|
||||
dvr_autorec_entry_class_weekdays_get(void *o)
|
||||
htsmsg_t *
|
||||
dvr_autorec_entry_class_weekdays_get(uint32_t weekdays)
|
||||
{
|
||||
dvr_autorec_entry_t *dae = (dvr_autorec_entry_t *)o;
|
||||
htsmsg_t *m = htsmsg_create_list();
|
||||
int i;
|
||||
for (i = 0; i < 7; i++)
|
||||
if (dae->dae_weekdays & (1 << i))
|
||||
if (weekdays & (1 << i))
|
||||
htsmsg_add_u32(m, NULL, i + 1);
|
||||
return m;
|
||||
}
|
||||
|
||||
static htsmsg_t *
|
||||
dvr_autorec_entry_class_weekdays_default(void)
|
||||
{
|
||||
return dvr_autorec_entry_class_weekdays_get(0x7f);
|
||||
}
|
||||
|
||||
static const void *
|
||||
dvr_autorec_entry_class_weekdays_get_(void *o)
|
||||
{
|
||||
dvr_autorec_entry_t *dae = (dvr_autorec_entry_t *)o;
|
||||
return dvr_autorec_entry_class_weekdays_get(dae->dae_weekdays);
|
||||
}
|
||||
|
||||
static const struct strtab dvr_autorec_entry_class_weekdays_tab[] = {
|
||||
{ "Mon", 1 },
|
||||
{ "Tue", 2 },
|
||||
|
@ -799,10 +811,10 @@ const idclass_t dvr_autorec_entry_class = {
|
|||
.id = "weekdays",
|
||||
.name = "Week Days",
|
||||
.set = dvr_autorec_entry_class_weekdays_set,
|
||||
.get = dvr_autorec_entry_class_weekdays_get,
|
||||
.get = dvr_autorec_entry_class_weekdays_get_,
|
||||
.list = dvr_autorec_entry_class_weekdays_list,
|
||||
.rend = dvr_autorec_entry_class_weekdays_rend_,
|
||||
.def.u32 = 0x7f
|
||||
.def.list = dvr_autorec_entry_class_weekdays_default
|
||||
},
|
||||
{
|
||||
.type = PT_INT,
|
||||
|
|
|
@ -402,12 +402,13 @@ static const void *
|
|||
dvr_timerec_entry_class_weekdays_get(void *o)
|
||||
{
|
||||
dvr_timerec_entry_t *dte = (dvr_timerec_entry_t *)o;
|
||||
htsmsg_t *m = htsmsg_create_list();
|
||||
int i;
|
||||
for (i = 0; i < 7; i++)
|
||||
if (dte->dte_weekdays & (1 << i))
|
||||
htsmsg_add_u32(m, NULL, i + 1);
|
||||
return m;
|
||||
return dvr_autorec_entry_class_weekdays_get(dte->dte_weekdays);
|
||||
}
|
||||
|
||||
static htsmsg_t *
|
||||
dvr_timerec_entry_class_weekdays_default(void)
|
||||
{
|
||||
return dvr_autorec_entry_class_weekdays_get(0x7f);
|
||||
}
|
||||
|
||||
static char *
|
||||
|
@ -479,7 +480,7 @@ const idclass_t dvr_timerec_entry_class = {
|
|||
.get = dvr_timerec_entry_class_weekdays_get,
|
||||
.list = dvr_autorec_entry_class_weekdays_list,
|
||||
.rend = dvr_timerec_entry_class_weekdays_rend,
|
||||
.def.u32 = 0x7f
|
||||
.def.list = dvr_timerec_entry_class_weekdays_default
|
||||
},
|
||||
{
|
||||
.type = PT_U32,
|
||||
|
|
78
src/prop.c
78
src/prop.c
|
@ -390,45 +390,47 @@ prop_serialize_value
|
|||
|
||||
/* Metadata */
|
||||
htsmsg_add_str(m, "caption", pl->name);
|
||||
if (pl->islist)
|
||||
if (pl->islist) {
|
||||
htsmsg_add_u32(m, "list", 1);
|
||||
|
||||
/* Default */
|
||||
// TODO: currently no support for list defaults
|
||||
switch (pl->type) {
|
||||
case PT_BOOL:
|
||||
htsmsg_add_bool(m, "default", pl->def.i);
|
||||
break;
|
||||
case PT_INT:
|
||||
htsmsg_add_s32(m, "default", pl->def.i);
|
||||
break;
|
||||
case PT_U16:
|
||||
htsmsg_add_u32(m, "default", pl->def.u16);
|
||||
break;
|
||||
case PT_U32:
|
||||
htsmsg_add_u32(m, "default", pl->def.u32);
|
||||
break;
|
||||
case PT_S64:
|
||||
htsmsg_add_s64(m, "default", pl->def.s64);
|
||||
break;
|
||||
case PT_DBL:
|
||||
htsmsg_add_dbl(m, "default", pl->def.d);
|
||||
break;
|
||||
case PT_STR:
|
||||
htsmsg_add_str(m, "default", pl->def.s ?: "");
|
||||
break;
|
||||
case PT_TIME:
|
||||
htsmsg_add_s64(m, "default", pl->def.tm);
|
||||
break;
|
||||
case PT_LANGSTR:
|
||||
/* TODO? */
|
||||
break;
|
||||
case PT_PERM:
|
||||
snprintf(buf, sizeof(buf), "%04o", pl->def.u32);
|
||||
htsmsg_add_str(m, "default", buf);
|
||||
break;
|
||||
case PT_NONE:
|
||||
break;
|
||||
if (pl->def.list)
|
||||
htsmsg_add_msg(m, "default", pl->def.list());
|
||||
} else {
|
||||
/* Default */
|
||||
switch (pl->type) {
|
||||
case PT_BOOL:
|
||||
htsmsg_add_bool(m, "default", pl->def.i);
|
||||
break;
|
||||
case PT_INT:
|
||||
htsmsg_add_s32(m, "default", pl->def.i);
|
||||
break;
|
||||
case PT_U16:
|
||||
htsmsg_add_u32(m, "default", pl->def.u16);
|
||||
break;
|
||||
case PT_U32:
|
||||
htsmsg_add_u32(m, "default", pl->def.u32);
|
||||
break;
|
||||
case PT_S64:
|
||||
htsmsg_add_s64(m, "default", pl->def.s64);
|
||||
break;
|
||||
case PT_DBL:
|
||||
htsmsg_add_dbl(m, "default", pl->def.d);
|
||||
break;
|
||||
case PT_STR:
|
||||
htsmsg_add_str(m, "default", pl->def.s ?: "");
|
||||
break;
|
||||
case PT_TIME:
|
||||
htsmsg_add_s64(m, "default", pl->def.tm);
|
||||
break;
|
||||
case PT_LANGSTR:
|
||||
/* TODO? */
|
||||
break;
|
||||
case PT_PERM:
|
||||
snprintf(buf, sizeof(buf), "%04o", pl->def.u32);
|
||||
htsmsg_add_str(m, "default", buf);
|
||||
break;
|
||||
case PT_NONE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Options */
|
||||
|
|
|
@ -85,6 +85,7 @@ typedef struct property {
|
|||
int64_t s64; // PT_S64
|
||||
double d; // PT_DBL
|
||||
time_t tm; // PT_TIME
|
||||
htsmsg_t *(*list)(void); // islist != 0
|
||||
} def;
|
||||
|
||||
/* Extended options */
|
||||
|
|
Loading…
Add table
Reference in a new issue