.type = PT_BOOL,
.id = "enabled",
.name = N_("Enabled"),
+ .desc = N_("Enable/disable auto-rec rule."),
.off = offsetof(dvr_autorec_entry_t, dae_enabled),
},
{
.type = PT_STR,
.id = "name",
.name = N_("Name"),
+ .desc = N_("The name given to the rule."),
.off = offsetof(dvr_autorec_entry_t, dae_name),
},
{
.type = PT_STR,
.id = "directory",
.name = N_("Directory"),
+ .desc = N_("When specified, this setting overrides the "
+ "subdirectory rules (except the base directory) "
+ "specified by the DVR configuration and puts all "
+ "recordings done by this entry into the specified "
+ "subdirectory. See Help for more info."),
.off = offsetof(dvr_autorec_entry_t, dae_directory),
},
{
.type = PT_STR,
.id = "title",
.name = N_("Title (regexp)"),
+ .desc = N_("The title of the programme to look for. Note that "
+ "this accepts case- insensitive regular expressions."),
.set = dvr_autorec_entry_class_title_set,
.off = offsetof(dvr_autorec_entry_t, dae_title),
},
.type = PT_BOOL,
.id = "fulltext",
.name = N_("Full-text"),
+ .desc = N_("When the fulltext is checked, the title pattern is "
+ "matched against title, subtitle, summary and description."),
.off = offsetof(dvr_autorec_entry_t, dae_fulltext),
},
{
.type = PT_STR,
.id = "channel",
.name = N_("Channel"),
+ .desc = N_("The channel on which this rule applies, i.e. the "
+ "channel you’re aiming to record."),
.set = dvr_autorec_entry_class_channel_set,
.get = dvr_autorec_entry_class_channel_get,
.rend = dvr_autorec_entry_class_channel_rend,
.type = PT_STR,
.id = "tag",
.name = N_("Channel tag"),
+ .desc = N_("A channel tag (e.g. a group of channels) on which "
+ "this rule applies."),
.set = dvr_autorec_entry_class_tag_set,
.get = dvr_autorec_entry_class_tag_get,
.rend = dvr_autorec_entry_class_tag_rend,
.type = PT_STR,
.id = "start",
.name = N_("Start after"),
+ .desc = N_("An event which starts between this “start after” "
+ "and “start before” will be matched (including "
+ "boundary values)."),
.set = dvr_autorec_entry_class_start_set,
.get = dvr_autorec_entry_class_start_get,
.list = dvr_autorec_entry_class_time_list_,
.type = PT_STR,
.id = "start_window",
.name = N_("Start before"),
+ .desc = N_("An event which starts between this “start after” "
+ "and “start before” will be matched (including "
+ "boundary values)."),
.set = dvr_autorec_entry_class_start_window_set,
.get = dvr_autorec_entry_class_start_window_get,
.list = dvr_autorec_entry_class_time_list_,
.type = PT_TIME,
.id = "start_extra",
.name = N_("Extra start time"),
+ .desc = N_("Start recording earlier than the defined start "
+ "time by x minutes."),
.off = offsetof(dvr_autorec_entry_t, dae_start_extra),
.list = dvr_autorec_entry_class_extra_list,
.opts = PO_DURATION | PO_SORTKEY | PO_ADVANCED
.type = PT_TIME,
.id = "stop_extra",
.name = N_("Extra stop time"),
+ .desc = N_("Continue recording for x minutes after scheduled "
+ "stop time"),
.off = offsetof(dvr_autorec_entry_t, dae_stop_extra),
.list = dvr_autorec_entry_class_extra_list,
.opts = PO_DURATION | PO_SORTKEY | PO_ADVANCED
.islist = 1,
.id = "weekdays",
.name = N_("Days of week"),
+ .desc = N_("Days of the week which the rule should apply."),
.set = dvr_autorec_entry_class_weekdays_set,
.get = dvr_autorec_entry_class_weekdays_get_,
.list = dvr_autorec_entry_class_weekdays_list,
.type = PT_INT,
.id = "minduration",
.name = N_("Minimum duration"),
+ .desc = N_("The minimal duration of a matching event - in "
+ "other words, only match programmes that are no "
+ "shorter than this duration."),
.list = dvr_autorec_entry_class_minduration_list,
.off = offsetof(dvr_autorec_entry_t, dae_minduration),
.opts = PO_ADVANCED
.type = PT_INT,
.id = "maxduration",
.name = N_("Maximum duration"),
+ .desc = N_("The maximal duration of a matching event - in "
+ "other words, only match programmes that are no "
+ "longer than this duration."),
.list = dvr_autorec_entry_class_maxduration_list,
.off = offsetof(dvr_autorec_entry_t, dae_maxduration),
.opts = PO_ADVANCED
.type = PT_U32,
.id = "content_type",
.name = N_("Content type"),
+ .desc = N_("The content type (Movie/Drama, Sports, etc.) to "
+ "be used to filter matching events/programmes."),
.list = dvr_autorec_entry_class_content_type_list,
.off = offsetof(dvr_autorec_entry_t, dae_content_type),
.opts = PO_ADVANCED
.type = PT_U32,
.id = "pri",
.name = N_("Priority"),
+ .desc = N_("The priority of any recordings set because of this "
+ "rule: in descending priority, values are "
+ "important, high, normal, low and unimportant. "
+ "Higher-priority events will take precedence and "
+ "cancel lower-priority events."),
.list = dvr_entry_class_pri_list,
.def.i = DVR_PRIO_NORMAL,
.off = offsetof(dvr_autorec_entry_t, dae_pri),
.type = PT_U32,
.id = "record",
.name = N_("Duplicate handling"),
+ .desc = N_("Duplicate recording handling."),
.def.i = DVR_AUTOREC_RECORD_ALL,
.off = offsetof(dvr_autorec_entry_t, dae_record),
.list = dvr_autorec_entry_class_dedup_list,
.type = PT_U32,
.id = "retention",
.name = N_("DVR log retention"),
+ .desc = N_("Number of days to retain logging information."),
.def.i = DVR_RET_DVRCONFIG,
.off = offsetof(dvr_autorec_entry_t, dae_retention),
.list = dvr_entry_class_retention_list,
.type = PT_U32,
.id = "removal",
.name = N_("DVR file retention period"),
+ .desc = N_("Number of days to keep the recordings` file."),
.def.i = DVR_RET_DVRCONFIG,
.off = offsetof(dvr_autorec_entry_t, dae_removal),
.list = dvr_entry_class_removal_list,
.type = PT_U32,
.id = "maxcount",
.name = N_("Maximum count (0=default)"),
+ .desc = N_("The maximum number of times this rule can be "
+ "triggered."),
.off = offsetof(dvr_autorec_entry_t, dae_max_count),
.opts = PO_HIDDEN | PO_EXPERT,
},
.type = PT_U32,
.id = "maxsched",
.name = N_("Maximum schedules limit (0=default)"),
+ .desc = N_("The maximum number of recording entries this rule "
+ "can create."),
.off = offsetof(dvr_autorec_entry_t, dae_max_sched_count),
.opts = PO_HIDDEN | PO_EXPERT,
},
.type = PT_STR,
.id = "config_name",
.name = N_("DVR configuration"),
+ .desc = N_("The DVR profile to be used/used by this rule."),
.set = dvr_autorec_entry_class_config_name_set,
.get = dvr_autorec_entry_class_config_name_get,
.rend = dvr_autorec_entry_class_config_name_rend,
.type = PT_STR,
.id = "brand",
.name = N_("Brand"),
+ .desc = N_("Branding information (if available)."),
.set = dvr_autorec_entry_class_brand_set,
.get = dvr_autorec_entry_class_brand_get,
.opts = PO_RDONLY | PO_ADVANCED,
.type = PT_STR,
.id = "season",
.name = N_("Season"),
+ .desc = N_("Season information (if available)."),
.set = dvr_autorec_entry_class_season_set,
.get = dvr_autorec_entry_class_season_get,
.opts = PO_RDONLY | PO_ADVANCED,
.type = PT_STR,
.id = "serieslink",
.name = N_("Series link"),
+ .desc = N_("Series link ID."),
.set = dvr_autorec_entry_class_series_link_set,
.get = dvr_autorec_entry_class_series_link_get,
.opts = PO_RDONLY | PO_ADVANCED,
.type = PT_STR,
.id = "owner",
.name = N_("Owner"),
+ .desc = N_("Owner of the rule."),
.off = offsetof(dvr_autorec_entry_t, dae_owner),
.get_opts = dvr_autorec_entry_class_owner_opts,
},
.type = PT_STR,
.id = "creator",
.name = N_("Creator"),
+ .desc = N_("The user who created the recording or the "
+ "auto-recording source and IP address if scheduled "
+ "by a matching rule."),
.off = offsetof(dvr_autorec_entry_t, dae_creator),
.get_opts = dvr_autorec_entry_class_owner_opts,
},
.type = PT_STR,
.id = "comment",
.name = N_("Comment"),
+ .desc = N_("Free-form text field, enter whatever you like here."),
.off = offsetof(dvr_autorec_entry_t, dae_comment),
},
{}
.type = PT_BOOL,
.id = "enabled",
.name = N_("Enabled"),
+ .desc = N_("Enable/disable the entry."),
.off = offsetof(dvr_entry_t, de_enabled),
.opts = PO_ADVANCED
},
.type = PT_TIME,
.id = "start",
.name = N_("Start time"),
+ .desc = N_("The start time as defined in EPG data (or timer entry)."),
.set = dvr_entry_class_start_set,
.off = offsetof(dvr_entry_t, de_start),
.get_opts = dvr_entry_class_start_opts,
.type = PT_TIME,
.id = "start_extra",
.name = N_("Pre-recording padding"),
+ .desc = N_("Start recording earlier than the EPG/timer defined "
+ "start time by x minutes, for example if a program "
+ "is to start at 13:00 and you set a padding of 5 "
+ "minutes it will start recording at 12:54:30 "
+ "(including a warm-up time of 30 seconds). If this "
+ "isn't set the pre-recording padding if set in "
+ "channel or DVR profile configuration will be used."),
.off = offsetof(dvr_entry_t, de_start_extra),
.set = dvr_entry_class_start_extra_set,
.list = dvr_entry_class_extra_list,
.type = PT_TIME,
.id = "start_real",
.name = N_("Scheduled start time"),
+ .desc = N_("The scheduled start time, including any pre-recording padding "
+ "and a warm-up time of 30 seconds."),
.get = dvr_entry_class_start_real_get,
.opts = PO_RDONLY | PO_NOSAVE,
},
.type = PT_TIME,
.id = "stop",
.name = N_("Stop time"),
+ .desc = N_("The time the entry will stop being recorded."),
.set = dvr_entry_class_stop_set,
.off = offsetof(dvr_entry_t, de_stop),
},
.type = PT_TIME,
.id = "stop_extra",
.name = N_("Post-recording padding"),
+ .desc = N_("Continue recording for x minutes after scheduled "
+ "stop time."),
.off = offsetof(dvr_entry_t, de_stop_extra),
.list = dvr_entry_class_extra_list,
.opts = PO_SORTKEY | PO_ADVANCED,
.type = PT_TIME,
.id = "stop_real",
.name = N_("Scheduled stop time"),
+ .desc = N_("The scheduled stop time including any post-recording "
+ "padding."),
.get = dvr_entry_class_stop_real_get,
.opts = PO_RDONLY | PO_NOSAVE,
},
.type = PT_TIME,
.id = "duration",
.name = N_("Duration"),
+ .desc = N_("The total recording time including pre and post "
+ "recording padding."),
.get = dvr_entry_class_duration_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_DURATION,
},
.type = PT_STR,
.id = "channel",
.name = N_("Channel"),
+ .desc = N_("The channel to be used/used for the recording."),
.set = dvr_entry_class_channel_set,
.get = dvr_entry_class_channel_get,
.rend = dvr_entry_class_channel_rend,
.type = PT_STR,
.id = "channel_icon",
.name = N_("Channel icon"),
+ /*.desc = N_("Channel icon URL."),*/
.get = dvr_entry_class_channel_icon_url_get,
.opts = PO_HIDDEN | PO_RDONLY | PO_NOSAVE | PO_NOUI,
},
.type = PT_STR,
.id = "channelname",
.name = N_("Channel name"),
+ .desc = N_("Name of channel used for the recording."),
.get = dvr_entry_class_channel_name_get,
.set = dvr_entry_class_channel_name_set,
.off = offsetof(dvr_entry_t, de_channel_name),
.type = PT_LANGSTR,
.id = "title",
.name = N_("Title"),
+ .desc = N_("Title of the program."),
.off = offsetof(dvr_entry_t, de_title),
.opts = PO_RDONLY,
},
.type = PT_STR,
.id = "disp_title",
.name = N_("Title"),
+ .desc = N_("Title of the program."),
.get = dvr_entry_class_disp_title_get,
.set = dvr_entry_class_disp_title_set,
.opts = PO_NOSAVE,
.type = PT_LANGSTR,
.id = "subtitle",
.name = N_("Subtitle"),
+ .desc = N_("Subtitle of the program (if any)."),
.off = offsetof(dvr_entry_t, de_subtitle),
.opts = PO_RDONLY,
},
.type = PT_STR,
.id = "disp_subtitle",
.name = N_("Subtitle"),
+ .desc = N_("Subtitle of the program (if any)."),
.get = dvr_entry_class_disp_subtitle_get,
.set = dvr_entry_class_disp_subtitle_set,
.opts = PO_NOSAVE,
.type = PT_LANGSTR,
.id = "description",
.name = N_("Description"),
+ .desc = N_("Program synopsis."),
.off = offsetof(dvr_entry_t, de_desc),
.opts = PO_RDONLY,
},
.type = PT_STR,
.id = "disp_description",
.name = N_("Description"),
+ .desc = N_("Program synopsis."),
.get = dvr_entry_class_disp_description_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN,
},
.type = PT_INT,
.id = "pri",
.name = N_("Priority"),
+ .desc = N_("Priority of the recording."),
.off = offsetof(dvr_entry_t, de_pri),
.def.i = DVR_PRIO_NORMAL,
.set = dvr_entry_class_pri_set,
.type = PT_U32,
.id = "retention",
.name = N_("DVR log retention"),
+ .desc = N_("Number of days to retain entry information."),
.off = offsetof(dvr_entry_t, de_retention),
.def.i = DVR_RET_DVRCONFIG,
.list = dvr_entry_class_retention_list,
.type = PT_U32,
.id = "removal",
.name = N_("DVR file retention period"),
+ .desc = N_("Number of days to keep the recordings` file."),
.off = offsetof(dvr_entry_t, de_removal),
.def.i = DVR_RET_DVRCONFIG,
.list = dvr_entry_class_removal_list,
.type = PT_STR,
.id = "config_name",
.name = N_("DVR configuration"),
+ .desc = N_("The DVR profile to be used/used by the entry."),
.set = dvr_entry_class_config_name_set,
.get = dvr_entry_class_config_name_get,
.list = dvr_entry_class_config_name_list,
.type = PT_STR,
.id = "owner",
.name = N_("Owner"),
+ .desc = N_("Owner of the entry."),
.off = offsetof(dvr_entry_t, de_owner),
.list = user_get_userlist,
.get_opts = dvr_entry_class_owner_opts,
.type = PT_STR,
.id = "creator",
.name = N_("Creator"),
+ .desc = N_("The user who created the recording or the "
+ "auto-recording source and IP address if scheduled "
+ "by a matching rule."),
.off = offsetof(dvr_entry_t, de_creator),
.get_opts = dvr_entry_class_owner_opts,
},
.type = PT_STR,
.id = "filename",
.name = N_("Filename"),
+ /*.desc = N_("Filename used by this entry."), */
.get = dvr_entry_class_filename_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_NOUI,
},
.type = PT_STR,
.id = "directory",
.name = N_("Directory"),
+ /*.desc = N_("Directory used by this entry."), */
.off = offsetof(dvr_entry_t, de_directory),
.opts = PO_RDONLY | PO_NOUI,
},
.type = PT_U32,
.id = "errorcode",
.name = N_("Error code"),
+ /*.desc = N_("Error code of entry."), */
.off = offsetof(dvr_entry_t, de_last_error),
.opts = PO_RDONLY | PO_NOUI,
},
.type = PT_U32,
.id = "errors",
.name = N_("Errors"),
+ .desc = N_("Number of errors that occurred during recording."),
.off = offsetof(dvr_entry_t, de_errors),
.opts = PO_RDONLY | PO_ADVANCED,
},
.type = PT_U32,
.id = "data_errors",
.name = N_("Data errors"),
+ .desc = N_("Number of errors that occurred during recording "
+ "(Transport errors)."),
.off = offsetof(dvr_entry_t, de_data_errors),
.opts = PO_RDONLY | PO_ADVANCED,
},
.type = PT_U16,
.id = "dvb_eid",
.name = N_("DVB EPG ID"),
+ .desc = N_("The EPG ID used by the entry."),
.off = offsetof(dvr_entry_t, de_dvb_eid),
.opts = PO_RDONLY | PO_EXPERT,
},
.type = PT_BOOL,
.id = "noresched",
.name = N_("Don't reschedule"),
+ .desc = N_("Don`t re-schedule if recording fails."),
.off = offsetof(dvr_entry_t, de_dont_reschedule),
.opts = PO_HIDDEN | PO_NOUI,
},
.type = PT_BOOL,
.id = "norerecord",
.name = N_("Don't re-record"),
+ .desc = N_("Don`t re-record if recording fails."),
.off = offsetof(dvr_entry_t, de_dont_rerecord),
.opts = PO_HIDDEN | PO_ADVANCED,
},
.type = PT_STR,
.id = "autorec",
.name = N_("Auto record"),
+ .desc = N_("Automatically record."),
.set = dvr_entry_class_autorec_set,
.get = dvr_entry_class_autorec_get,
.opts = PO_RDONLY | PO_NOUI,
.type = PT_STR,
.id = "autorec_caption",
.name = N_("Auto record caption"),
+ .desc = N_("Automatic recording caption."),
.get = dvr_entry_class_autorec_caption_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN | PO_NOUI,
},
.type = PT_STR,
.id = "timerec",
.name = N_("Auto time record"),
+ .desc = N_("Timer based automatic recording."),
.set = dvr_entry_class_timerec_set,
.get = dvr_entry_class_timerec_get,
.opts = PO_RDONLY | PO_EXPERT,
.type = PT_STR,
.id = "timerec_caption",
.name = N_("Time record caption"),
+ .desc = N_("Timer based automatic record caption."),
.get = dvr_entry_class_timerec_caption_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN | PO_NOUI,
},
.type = PT_STR,
.id = "parent",
.name = N_("Parent entry"),
+ .desc = N_("Parent entry."),
.set = dvr_entry_class_parent_set,
.get = dvr_entry_class_parent_get,
.opts = PO_RDONLY | PO_NOUI,
.type = PT_STR,
.id = "child",
.name = N_("Slave entry"),
+ .desc = N_("Slave entry."),
.set = dvr_entry_class_child_set,
.get = dvr_entry_class_child_get,
.opts = PO_RDONLY | PO_NOUI,
.type = PT_U32,
.id = "content_type",
.name = N_("Content type"),
+ .desc = N_("Content type."),
.list = dvr_entry_class_content_type_list,
.off = offsetof(dvr_entry_t, de_content_type),
.opts = PO_RDONLY | PO_SORTKEY,
.type = PT_U32,
.id = "broadcast",
.name = N_("Broadcast"),
+ .desc = N_("Broadcast."),
.set = dvr_entry_class_broadcast_set,
.get = dvr_entry_class_broadcast_get,
.opts = PO_RDONLY | PO_NOUI,
.type = PT_STR,
.id = "episode",
.name = N_("Episode"),
+ .desc = N_("Episode number/ID."),
.off = offsetof(dvr_entry_t, de_episode),
.opts = PO_RDONLY | PO_HIDDEN,
},
.type = PT_STR,
.id = "url",
.name = N_("URL"),
+ .desc = N_("URL."),
.get = dvr_entry_class_url_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_NOUI,
},
.type = PT_S64,
.id = "filesize",
.name = N_("File size"),
+ .desc = N_("Recording file size."),
.get = dvr_entry_class_filesize_get,
.opts = PO_RDONLY | PO_NOSAVE,
},
.type = PT_STR,
.id = "status",
.name = N_("Status"),
+ .desc = N_("The recording/entry status."),
.get = dvr_entry_class_status_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_LOCALE,
},
.type = PT_STR,
.id = "sched_status",
.name = N_("Schedule status"),
+ .desc = N_("Schedule status."),
.get = dvr_entry_class_sched_status_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN | PO_NOUI,
},
.type = PT_TIME,
.id = "duplicate",
.name = N_("Rerun of"),
+ .desc = N_("Name of program the entry is a rerun of."),
.get = dvr_entry_class_duplicate_get,
.opts = PO_RDONLY | PO_NOSAVE | PO_ADVANCED,
},
.type = PT_STR,
.id = "comment",
.name = N_("Comment"),
+ .desc = N_("Free-form text field, enter whatever you like here."),
.off = offsetof(dvr_entry_t, de_comment),
},
{}