From: Mark Clarkstone Date: Sat, 23 Jan 2016 21:33:04 +0000 (+0000) Subject: Tooltips: Lots more.. X-Git-Tag: v4.2.1~1117 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=06d9721c1a8d2d5e1068b52c114980d0bd3c7ffc;p=thirdparty%2Ftvheadend.git Tooltips: Lots more.. --- diff --git a/src/dvr/dvr_autorec.c b/src/dvr/dvr_autorec.c index 3d66cd8b3..e9568df34 100644 --- a/src/dvr/dvr_autorec.c +++ b/src/dvr/dvr_autorec.c @@ -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), }, {} diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index e13107b2a..a96e5b806 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -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), }, {}