]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Tooltips: Lots more..
authorMark Clarkstone <hello@markclarkstone.co.uk>
Sat, 23 Jan 2016 21:33:04 +0000 (21:33 +0000)
committerJaroslav Kysela <perex@perex.cz>
Mon, 25 Jan 2016 17:47:23 +0000 (18:47 +0100)
src/dvr/dvr_autorec.c
src/dvr/dvr_db.c

index 3d66cd8b3b094d8eefa9e09dc4e2cd064540667f..e9568df34fbc57a0ac4d4b97e1828dc59783f52b 100644 (file)
@@ -970,24 +970,33 @@ const idclass_t dvr_autorec_entry_class = {
       .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),
     },
@@ -995,12 +1004,16 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1010,6 +1023,8 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1020,6 +1035,9 @@ const idclass_t dvr_autorec_entry_class = {
       .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_,
@@ -1029,6 +1047,9 @@ const idclass_t dvr_autorec_entry_class = {
       .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_,
@@ -1038,6 +1059,8 @@ const idclass_t dvr_autorec_entry_class = {
       .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
@@ -1046,6 +1069,8 @@ const idclass_t dvr_autorec_entry_class = {
       .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
@@ -1055,6 +1080,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1065,6 +1091,9 @@ const idclass_t dvr_autorec_entry_class = {
       .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
@@ -1073,6 +1102,9 @@ const idclass_t dvr_autorec_entry_class = {
       .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
@@ -1081,6 +1113,8 @@ const idclass_t dvr_autorec_entry_class = {
       .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
@@ -1089,6 +1123,11 @@ const idclass_t dvr_autorec_entry_class = {
       .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),
@@ -1098,6 +1137,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1107,6 +1147,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1116,6 +1157,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1125,6 +1167,8 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
     },
@@ -1132,6 +1176,8 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
     },
@@ -1139,6 +1185,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1149,6 +1196,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1157,6 +1205,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1165,6 +1214,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
@@ -1173,6 +1223,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
     },
@@ -1180,6 +1231,9 @@ const idclass_t dvr_autorec_entry_class = {
       .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,
     },
@@ -1187,6 +1241,7 @@ const idclass_t dvr_autorec_entry_class = {
       .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),
     },
     {}
index e13107b2a5793db3b4739a712f93174eec58a59c..a96e5b806608eb80db2cbf662156ed36afb9b897 100644 (file)
@@ -2805,6 +2805,7 @@ const idclass_t dvr_entry_class = {
       .type     = PT_BOOL,
       .id       = "enabled",
       .name     = N_("Enabled"),
+      .desc     = N_("Enable/disable the entry."),
       .off      = offsetof(dvr_entry_t, de_enabled),
       .opts     = PO_ADVANCED
     },
@@ -2812,6 +2813,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2820,6 +2822,13 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2829,6 +2838,8 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2836,6 +2847,7 @@ const idclass_t dvr_entry_class = {
       .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),
     },
@@ -2843,6 +2855,8 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2851,6 +2865,8 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2858,6 +2874,8 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2865,6 +2883,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2875,6 +2894,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2882,6 +2902,7 @@ const idclass_t dvr_entry_class = {
       .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),
@@ -2891,6 +2912,7 @@ const idclass_t dvr_entry_class = {
       .type     = PT_LANGSTR,
       .id       = "title",
       .name     = N_("Title"),
+      .desc     = N_("Title of the program."),
       .off      = offsetof(dvr_entry_t, de_title),
       .opts     = PO_RDONLY,
     },
@@ -2898,6 +2920,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2906,6 +2929,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2913,6 +2937,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2921,6 +2946,7 @@ const idclass_t dvr_entry_class = {
       .type     = PT_LANGSTR,
       .id       = "description",
       .name     = N_("Description"),
+      .desc     = N_("Program synopsis."),
       .off      = offsetof(dvr_entry_t, de_desc),
       .opts     = PO_RDONLY,
     },
@@ -2928,6 +2954,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2935,6 +2962,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2945,6 +2973,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2954,6 +2983,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2963,6 +2993,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2973,6 +3004,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -2981,6 +3013,9 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2988,6 +3023,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -2995,6 +3031,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3002,6 +3039,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3009,6 +3047,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3016,6 +3055,8 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3023,6 +3064,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3030,6 +3072,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3037,6 +3080,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3044,6 +3088,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -3052,6 +3097,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3059,6 +3105,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -3067,6 +3114,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3074,6 +3122,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -3082,6 +3131,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -3090,6 +3140,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -3098,6 +3149,7 @@ const idclass_t dvr_entry_class = {
       .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,
@@ -3106,6 +3158,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3113,6 +3166,7 @@ const idclass_t dvr_entry_class = {
       .type     = PT_STR,
       .id       = "url",
       .name     = N_("URL"),
+      .desc     = N_("URL."),
       .get      = dvr_entry_class_url_get,
       .opts     = PO_RDONLY | PO_NOSAVE | PO_NOUI,
     },
@@ -3120,6 +3174,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3127,6 +3182,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3134,6 +3190,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3141,6 +3198,7 @@ const idclass_t dvr_entry_class = {
       .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,
     },
@@ -3148,6 +3206,7 @@ const idclass_t dvr_entry_class = {
       .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),
     },
     {}