From: Mark Clarkstone Date: Sun, 6 Dec 2015 14:59:21 +0000 (+0000) Subject: Another lot of tooltip descriptions! X-Git-Tag: v4.2.1~1353 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aed2e148462100a4509879e2afab964f8223f3e9;p=thirdparty%2Ftvheadend.git Another lot of tooltip descriptions! --- diff --git a/src/epggrab.c b/src/epggrab.c index 256e6884b..79510a75c 100644 --- a/src/epggrab.c +++ b/src/epggrab.c @@ -266,6 +266,10 @@ const idclass_t epggrab_class = { .type = PT_BOOL, .id = "channel_rename", .name = N_("Update channel name"), + .desc = N_("Automatically update channel names using " + "information provided by the enabled EPG providers. " + "Note: this may cause unwanted changes to " + "already defined channel names."), .off = offsetof(epggrab_conf_t, channel_rename), .group = 1, }, @@ -273,6 +277,10 @@ const idclass_t epggrab_class = { .type = PT_BOOL, .id = "channel_renumber", .name = N_("Update channel number"), + .desc = N_("Automatically update channel numbers using " + "information provided by the enabled EPG providers. " + "Note: this may cause unwanted changes to " + "already defined channel numbers."), .off = offsetof(epggrab_conf_t, channel_renumber), .group = 1, }, @@ -280,6 +288,10 @@ const idclass_t epggrab_class = { .type = PT_BOOL, .id = "channel_reicon", .name = N_("Update channel icon"), + .desc = N_("Automatically update channel icons using " + "information provided by the enabled EPG providers. " + "Note: this may cause unwanted changes to " + "already defined channel icons."), .off = offsetof(epggrab_conf_t, channel_reicon), .group = 1, }, @@ -287,6 +299,11 @@ const idclass_t epggrab_class = { .type = PT_INT, .id = "epgdb_periodicsave", .name = N_("Periodically save EPG to disk (hours)"), + .desc = N_("Writes the current in-memory EPG database to disk " + "every x hours, so should a crash/unexpected " + "shutdown occur EPG data is saved " + "periodically to the database (re-read on next " + "startup). Set to 0 to disable."), .off = offsetof(epggrab_conf_t, epgdb_periodicsave), .group = 1, }, @@ -294,6 +311,10 @@ const idclass_t epggrab_class = { .type = PT_STR, .id = "cron", .name = N_("Cron multi-line"), + .desc = N_("Multiple lines of the cron time specification. " + "The default cron triggers the internal grabbers " + "daily at 12:04 and 00:04. See Help on how to define " + "your own."), .off = offsetof(epggrab_conf_t, cron), .notify = epggrab_class_cron_notify, .opts = PO_MULTILINE | PO_ADVANCED, @@ -303,6 +324,7 @@ const idclass_t epggrab_class = { .type = PT_BOOL, .id = "ota_initial", .name = N_("Force initial EPG scan at start-up"), + .desc = N_("Force an initial EPG scan at start-up."), .off = offsetof(epggrab_conf_t, ota_initial), .opts = PO_ADVANCED, .group = 3, @@ -311,6 +333,10 @@ const idclass_t epggrab_class = { .type = PT_STR, .id = "ota_cron", .name = N_("Over-the-air Cron multi-line"), + .desc = N_("Multiple lines of the cron time specification. " + "The default cron triggers the Over-the-air " + "grabber daily at 02:04 and 14:04. See Help on how " + "to define your own."), .off = offsetof(epggrab_conf_t, ota_cron), .notify = epggrab_class_ota_cron_notify, .opts = PO_MULTILINE | PO_ADVANCED, @@ -320,6 +346,9 @@ const idclass_t epggrab_class = { .type = PT_U32, .id = "ota_timeout", .name = N_("EPG scan timeout in seconds (30-7200)"), + .desc = N_("The multiplex (mux) is tuned for this amount of " + "time at most. If the EPG data is complete before " + "this limit, the mux is released sooner."), .off = offsetof(epggrab_conf_t, ota_timeout), .opts = PO_ADVANCED, .group = 3, diff --git a/src/esfilter.c b/src/esfilter.c index b31542ba5..8932b3996 100644 --- a/src/esfilter.c +++ b/src/esfilter.c @@ -635,6 +635,8 @@ const idclass_t esfilter_class_video = { .islist = 1, .id = "type", .name = N_("Stream type"), + .desc = N_("The video stream types the filter should apply " + "to."), .get = esfilter_class_type_get, .set = esfilter_class_type_set_video, .list = esfilter_class_type_enum_video, @@ -644,6 +646,7 @@ const idclass_t esfilter_class_video = { .type = PT_STR, .id = "language", .name = N_("Language"), + .desc = N_("The language the filter should apply to."), .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, @@ -652,6 +655,9 @@ const idclass_t esfilter_class_video = { .type = PT_STR, .id = "service", .name = N_("Service"), + .desc = N_("The service the filter should apply to. " + "Leave blank to apply the filter to all " + "services."), .get = esfilter_class_service_get, .set = esfilter_class_service_set, .list = esfilter_class_service_enum, @@ -660,18 +666,32 @@ const idclass_t esfilter_class_video = { .type = PT_INT, .id = "sindex", .name = N_("Stream index"), + .desc = N_("The logical stream index to compare. Note that " + "this index is computed using all filters." + "Example: If filter is set to AC3 audio type and " + "the language to ‘eng’ and there are two AC3 " + "‘eng’ streams in the service, the first stream " + "could be identified using number 1 and the " + "second using number 2."), .off = offsetof(esfilter_t, esf_sindex), }, { .type = PT_INT, .id = "pid", .name = N_("PID"), + .desc = N_("Program identification (PID) number to compare. " + "Zero means any. This comparison is processed " + "only when service comparison is active and for " + "the Conditional Access filter."), .off = offsetof(esfilter_t, esf_pid), }, { .type = PT_INT, .id = "action", .name = N_("Action"), + .desc = N_("The rule action defines the operation when all " + "comparisons succeed. See Help for more " + "information on what the various rules do."), .get = esfilter_class_action_get, .set = esfilter_class_action_set, .list = esfilter_class_action_enum, @@ -680,12 +700,17 @@ const idclass_t esfilter_class_video = { .type = PT_BOOL, .id = "log", .name = N_("Log"), + .desc = N_("Write a short message to log identifying the " + "matched parameters. It is useful for debugging " + "your setup or structure of incoming streams."), .off = offsetof(esfilter_t, esf_log), }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), + .desc = N_("Free-format text field. Enter whatever you " + "like here."), .off = offsetof(esfilter_t, esf_comment), }, {} @@ -702,6 +727,8 @@ const idclass_t esfilter_class_audio = { .islist = 1, .id = "type", .name = N_("Stream type"), + .desc = N_("The audio stream types the filter should apply " + "to."), .get = esfilter_class_type_get, .set = esfilter_class_type_set_audio, .list = esfilter_class_type_enum_audio, @@ -711,6 +738,7 @@ const idclass_t esfilter_class_audio = { .type = PT_STR, .id = "language", .name = N_("Language"), + .desc = N_("The language the filter should apply to."), .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, @@ -719,6 +747,9 @@ const idclass_t esfilter_class_audio = { .type = PT_STR, .id = "service", .name = N_("Service"), + .desc = N_("The service the filter should apply to. " + "Leave blank to apply the filter to all " + "services."), .get = esfilter_class_service_get, .set = esfilter_class_service_set, .list = esfilter_class_service_enum, @@ -727,18 +758,32 @@ const idclass_t esfilter_class_audio = { .type = PT_INT, .id = "sindex", .name = N_("Stream index"), + .desc = N_("The logical stream index to compare. Note that " + "this index is computed using all filters." + "Example: If filter is set to AC3 audio type and " + "the language to ‘eng’ and there are two AC3 " + "‘eng’ streams in the service, the first stream " + "could be identified using number 1 and the " + "second using number 2."), .off = offsetof(esfilter_t, esf_sindex), }, { .type = PT_INT, .id = "pid", .name = N_("PID"), + .desc = N_("Program identification (PID) number to compare. " + "Zero means any. This comparison is processed " + "only when service comparison is active and for " + "the Conditional Access filter."), .off = offsetof(esfilter_t, esf_pid), }, { .type = PT_INT, .id = "action", .name = N_("Action"), + .desc = N_("The rule action defines the operation when all " + "comparisons succeed. See Help for more " + "information on what the various rules do."), .get = esfilter_class_action_get, .set = esfilter_class_action_set, .list = esfilter_class_action_enum, @@ -747,12 +792,17 @@ const idclass_t esfilter_class_audio = { .type = PT_BOOL, .id = "log", .name = N_("Log"), + .desc = N_("Write a short message to log identifying the " + "matched parameters. It is useful for debugging " + "your setup or structure of incoming streams."), .off = offsetof(esfilter_t, esf_log), }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), + .desc = N_("Free-format text field. Enter whatever you " + "like here."), .off = offsetof(esfilter_t, esf_comment), }, {} @@ -769,6 +819,8 @@ const idclass_t esfilter_class_teletext = { .islist = 1, .id = "type", .name = N_("Stream type"), + .desc = N_("Teletext stream type is only available for " + "this filter."), .get = esfilter_class_type_get, .set = esfilter_class_type_set_teletext, .list = esfilter_class_type_enum_teletext, @@ -778,6 +830,7 @@ const idclass_t esfilter_class_teletext = { .type = PT_STR, .id = "language", .name = N_("Language"), + .desc = N_("The language the filter should apply to."), .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, @@ -786,6 +839,9 @@ const idclass_t esfilter_class_teletext = { .type = PT_STR, .id = "service", .name = N_("Service"), + .desc = N_("The service the filter should apply to. " + "Leave blank to apply the filter to all " + "services."), .get = esfilter_class_service_get, .set = esfilter_class_service_set, .list = esfilter_class_service_enum, @@ -794,18 +850,32 @@ const idclass_t esfilter_class_teletext = { .type = PT_INT, .id = "sindex", .name = N_("Stream index"), + .desc = N_("The logical stream index to compare. Note that " + "this index is computed using all filters." + "Example: If filter is set to AC3 audio type and " + "the language to ‘eng’ and there are two AC3 " + "‘eng’ streams in the service, the first stream " + "could be identified using number 1 and the " + "second using number 2."), .off = offsetof(esfilter_t, esf_sindex), }, { .type = PT_INT, .id = "pid", .name = N_("PID"), + .desc = N_("Program identification (PID) number to compare. " + "Zero means any. This comparison is processed " + "only when service comparison is active and for " + "the Conditional Access filter."), .off = offsetof(esfilter_t, esf_pid), }, { .type = PT_INT, .id = "action", .name = N_("Action"), + .desc = N_("The rule action defines the operation when all " + "comparisons succeed. See Help for more " + "information on what the various rules do."), .get = esfilter_class_action_get, .set = esfilter_class_action_set, .list = esfilter_class_action_enum, @@ -814,12 +884,17 @@ const idclass_t esfilter_class_teletext = { .type = PT_BOOL, .id = "log", .name = N_("Log"), + .desc = N_("Write a short message to log identifying the " + "matched parameters. It is useful for debugging " + "your setup or structure of incoming streams."), .off = offsetof(esfilter_t, esf_log), }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), + .desc = N_("Free-format text field. Enter whatever you " + "like here."), .off = offsetof(esfilter_t, esf_comment), }, {} @@ -836,6 +911,8 @@ const idclass_t esfilter_class_subtit = { .islist = 1, .id = "type", .name = N_("Stream type"), + .desc = N_("The subtitle stream types the filter should " + "apply to."), .get = esfilter_class_type_get, .set = esfilter_class_type_set_subtit, .list = esfilter_class_type_enum_subtit, @@ -845,6 +922,7 @@ const idclass_t esfilter_class_subtit = { .type = PT_STR, .id = "language", .name = N_("Language"), + .desc = N_("The language the filter should apply to."), .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, @@ -853,6 +931,9 @@ const idclass_t esfilter_class_subtit = { .type = PT_STR, .id = "service", .name = N_("Service"), + .desc = N_("The service the filter should apply to. " + "Leave blank to apply the filter to all " + "services."), .get = esfilter_class_service_get, .set = esfilter_class_service_set, .list = esfilter_class_service_enum, @@ -861,18 +942,32 @@ const idclass_t esfilter_class_subtit = { .type = PT_INT, .id = "sindex", .name = N_("Stream index"), + .desc = N_("The logical stream index to compare. Note that " + "this index is computed using all filters." + "Example: If filter is set to AC3 audio type and " + "the language to ‘eng’ and there are two AC3 " + "‘eng’ streams in the service, the first stream " + "could be identified using number 1 and the " + "second using number 2."), .off = offsetof(esfilter_t, esf_sindex), }, { .type = PT_INT, .id = "pid", .name = N_("PID"), + .desc = N_("Program identification (PID) number to compare. " + "Zero means any. This comparison is processed " + "only when service comparison is active and for " + "the Conditional Access filter."), .off = offsetof(esfilter_t, esf_pid), }, { .type = PT_INT, .id = "action", .name = N_("Action"), + .desc = N_("The rule action defines the operation when all " + "comparisons succeed. See Help for more " + "information on what the various rules do."), .get = esfilter_class_action_get, .set = esfilter_class_action_set, .list = esfilter_class_action_enum, @@ -881,12 +976,17 @@ const idclass_t esfilter_class_subtit = { .type = PT_BOOL, .id = "log", .name = N_("Log"), + .desc = N_("Write a short message to log identifying the " + "matched parameters. It is useful for debugging " + "your setup or structure of incoming streams."), .off = offsetof(esfilter_t, esf_log), }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), + .desc = N_("Free-format text field. Enter whatever you " + "like here."), .off = offsetof(esfilter_t, esf_comment), }, {} @@ -903,6 +1003,8 @@ const idclass_t esfilter_class_ca = { .islist = 1, .id = "type", .name = N_("Stream type"), + .desc = N_("The CA stream type is only available for this " + "filter."), .get = esfilter_class_type_get, .set = esfilter_class_type_set_ca, .list = esfilter_class_type_enum_ca, @@ -912,6 +1014,8 @@ const idclass_t esfilter_class_ca = { .type = PT_STR, .id = "CAid", .name = N_("CA identification"), + .desc = N_("The CAID to compare. Leave blank to apply to " + "all IDs."), .get = esfilter_class_caid_get, .set = esfilter_class_caid_set, .list = esfilter_class_caid_enum, @@ -920,6 +1024,8 @@ const idclass_t esfilter_class_ca = { .type = PT_STR, .id = "CAprovider", .name = N_("CA provider"), + .desc = N_("The CA provider to compare. Leave blank to apply " + "to all providers."), .get = esfilter_class_caprovider_get, .set = esfilter_class_caprovider_set, .list = esfilter_class_caprovider_enum, @@ -928,6 +1034,9 @@ const idclass_t esfilter_class_ca = { .type = PT_STR, .id = "service", .name = N_("Service"), + .desc = N_("The service the filter should apply to. " + "Leave blank to apply the filter to all " + "services."), .get = esfilter_class_service_get, .set = esfilter_class_service_set, .list = esfilter_class_service_enum, @@ -936,18 +1045,32 @@ const idclass_t esfilter_class_ca = { .type = PT_INT, .id = "sindex", .name = N_("Stream index"), + .desc = N_("The logical stream index to compare. Note that " + "this index is computed using all filters." + "Example: If filter is set to AC3 audio type and " + "the language to ‘eng’ and there are two AC3 " + "‘eng’ streams in the service, the first stream " + "could be identified using number 1 and the " + "second using number 2."), .off = offsetof(esfilter_t, esf_sindex), }, { .type = PT_INT, .id = "pid", .name = N_("PID"), + .desc = N_("Program identification (PID) number to compare. " + "Zero means any. This comparison is processed " + "only when service comparison is active and for " + "the Conditional Access filter."), .off = offsetof(esfilter_t, esf_pid), }, { .type = PT_INT, .id = "action", .name = N_("Action"), + .desc = N_("The rule action defines the operation when all " + "comparisons succeed. See Help for more " + "information on what the various rules do."), .get = esfilter_class_action_get, .set = esfilter_class_action_set, .list = esfilter_class_action_enum, @@ -956,12 +1079,17 @@ const idclass_t esfilter_class_ca = { .type = PT_BOOL, .id = "log", .name = N_("Log"), + .desc = N_("Write a short message to log identifying the " + "matched parameters. It is useful for debugging " + "your setup or structure of incoming streams."), .off = offsetof(esfilter_t, esf_log), }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), + .desc = N_("Free-format text field. Enter whatever you " + "like here."), .off = offsetof(esfilter_t, esf_comment), }, {} @@ -978,6 +1106,8 @@ const idclass_t esfilter_class_other = { .islist = 1, .id = "type", .name = N_("Stream type"), + .desc = N_("The MPEGTS stream type is only available for " + "this filter."), .get = esfilter_class_type_get, .set = esfilter_class_type_set_other, .list = esfilter_class_type_enum_other, @@ -987,6 +1117,7 @@ const idclass_t esfilter_class_other = { .type = PT_STR, .id = "language", .name = N_("Language"), + .desc = N_("The language the filter should apply to."), .get = esfilter_class_language_get, .set = esfilter_class_language_set, .list = esfilter_class_language_enum, @@ -995,6 +1126,9 @@ const idclass_t esfilter_class_other = { .type = PT_STR, .id = "service", .name = N_("Service"), + .desc = N_("The service the filter should apply to. " + "Leave blank to apply the filter to all " + "services."), .get = esfilter_class_service_get, .set = esfilter_class_service_set, .list = esfilter_class_service_enum, @@ -1003,12 +1137,19 @@ const idclass_t esfilter_class_other = { .type = PT_INT, .id = "pid", .name = N_("PID"), + .desc = N_("Program identification (PID) number to compare. " + "Zero means any. This comparison is processed " + "only when service comparison is active and for " + "the Conditional Access filter."), .off = offsetof(esfilter_t, esf_pid), }, { .type = PT_INT, .id = "action", .name = N_("Action"), + .desc = N_("The rule action defines the operation when all " + "comparisons succeed. See Help for more " + "information on what the various rules do."), .get = esfilter_class_action_get, .set = esfilter_class_action_set, .list = esfilter_class_action_enum, @@ -1017,12 +1158,17 @@ const idclass_t esfilter_class_other = { .type = PT_BOOL, .id = "log", .name = N_("Log"), + .desc = N_("Write a short message to log identifying the " + "matched parameters. It is useful for debugging " + "your setup or structure of incoming streams."), .off = offsetof(esfilter_t, esf_log), }, { .type = PT_STR, .id = "comment", .name = N_("Comment"), + .desc = N_("Free-format text field. Enter whatever you " + "like here."), .off = offsetof(esfilter_t, esf_comment), }, {} diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 8a07611a7..c4cd21c59 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -496,6 +496,7 @@ const idclass_t mpegts_mux_class = .type = PT_BOOL, .id = "enabled", .name = N_("Enabled"), + .desc = N_("Enable or disable this mux."), .off = offsetof(mpegts_mux_t, mm_enabled), .def.i = 1, .notify = mpegts_mux_class_enabled_notify, @@ -504,6 +505,8 @@ const idclass_t mpegts_mux_class = .type = PT_INT, .id = "epg", .name = N_("EPG scan"), + .desc = N_("Select the EPG grabber to use on this mux. " + "Enable (auto) is the recommended value."), .off = offsetof(mpegts_mux_t, mm_epg), .def.i = MM_EPG_ENABLE, .list = mpegts_mux_epg_list, @@ -512,6 +515,7 @@ const idclass_t mpegts_mux_class = .type = PT_STR, .id = "network", .name = N_("Network"), + .desc = N_("The network this mux is on."), .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_mux_class_get_network, }, @@ -519,6 +523,7 @@ const idclass_t mpegts_mux_class = .type = PT_STR, .id = "network_uuid", .name = N_("Network UUID"), + .desc = N_("The networks universally unique identifier (UUID)."), .opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN | PO_EXPERT, .get = mpegts_mux_class_get_network_uuid, }, @@ -526,6 +531,7 @@ const idclass_t mpegts_mux_class = .type = PT_STR, .id = "name", .name = N_("Name"), + .desc = N_("The name (or freq) this mux is on."), .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_mux_class_get_name, }, @@ -533,6 +539,7 @@ const idclass_t mpegts_mux_class = .type = PT_STR, .id = "pnetwork_name", .name = N_("Provider network name"), + .desc = N_("The providers network name."), .off = offsetof(mpegts_mux_t, mm_provider_network_name), .opts = PO_RDONLY | PO_HIDDEN | PO_EXPERT, }, @@ -540,6 +547,7 @@ const idclass_t mpegts_mux_class = .type = PT_U16, .id = "onid", .name = N_("Original network ID"), + .desc = N_("The providers network ID."), .opts = PO_RDONLY | PO_ADVANCED, .off = offsetof(mpegts_mux_t, mm_onid), }, @@ -547,6 +555,8 @@ const idclass_t mpegts_mux_class = .type = PT_U16, .id = "tsid", .name = N_("Transport stream ID"), + .desc = N_("The transport stream ID of the mux within the " + "network."), .opts = PO_RDONLY | PO_ADVANCED, .off = offsetof(mpegts_mux_t, mm_tsid), }, @@ -554,6 +564,7 @@ const idclass_t mpegts_mux_class = .type = PT_STR, .id = "cridauth", .name = N_("CRID authority"), + .desc = N_("The Content reference identifier (CRID) authority."), .opts = PO_RDONLY | PO_HIDDEN | PO_EXPERT, .off = offsetof(mpegts_mux_t, mm_crid_authority), }, @@ -561,6 +572,9 @@ const idclass_t mpegts_mux_class = .type = PT_INT, .id = "scan_state", .name = N_("Scan status"), + .desc = N_("The scan state. New muxes will automatically be " + "changed to the PEND state. You can change this to " + "ACTIVE to queue a scan of this mux."), .off = offsetof(mpegts_mux_t, mm_scan_state), .set = mpegts_mux_class_scan_state_set, .list = mpegts_mux_class_scan_state_enum, @@ -570,6 +584,7 @@ const idclass_t mpegts_mux_class = .type = PT_INT, .id = "scan_result", .name = N_("Scan result"), + .desc = N_("The outcome of the last scan performed on this mux."), .off = offsetof(mpegts_mux_t, mm_scan_result), .opts = PO_RDONLY | PO_SORTKEY, .list = mpegts_mux_class_scan_result_enum, @@ -578,6 +593,9 @@ const idclass_t mpegts_mux_class = .type = PT_STR, .id = "charset", .name = N_("Character set"), + .desc = N_("The character set used on this mux. You should " + "not have to change this unless channel names, etc " + " appear garbled."), .off = offsetof(mpegts_mux_t, mm_charset), .list = dvb_charset_enum, .opts = PO_ADVANCED, @@ -586,6 +604,7 @@ const idclass_t mpegts_mux_class = .type = PT_INT, .id = "num_svc", .name = N_("# Services"), + .desc = N_("The total number of services found on this mux."), .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_mux_class_get_num_svc, }, @@ -593,6 +612,8 @@ const idclass_t mpegts_mux_class = .type = PT_INT, .id = "num_chn", .name = N_("# Channels"), + .desc = N_("The number of services on this mux that are " + "mapped to channels."), .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_mux_class_get_num_chn, }, @@ -600,6 +621,7 @@ const idclass_t mpegts_mux_class = .type = PT_INT, .id = "pmt_06_ac3", .name = N_("AC-3 detection"), + .desc = N_("Use AC-3 detection on this mux."), .off = offsetof(mpegts_mux_t, mm_pmt_ac3), .def.i = MM_AC3_STANDARD, .list = mpegts_mux_ac3_list, @@ -609,6 +631,8 @@ const idclass_t mpegts_mux_class = .type = PT_BOOL, .id = "eit_tsid_nocheck", .name = N_("EIT - skip TSID check"), + .desc = N_("Skip TSID checking. For when providers use invalid " + "Transport Stream IDs."), .off = offsetof(mpegts_mux_t, mm_eit_tsid_nocheck), .opts = PO_HIDDEN | PO_EXPERT }, diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index 5c2db8c7b..039fff78e 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -213,6 +213,7 @@ const idclass_t dvb_mux_dvbt_class = .type = PT_U32, .id = "frequency", .name = N_("Frequency (Hz)"), + .desc = N_("The frequency of the mux (in Hertz)."), .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_freq), .set = dvb_mux_dvbt_class_frequency_set, }, @@ -285,6 +286,7 @@ const idclass_t dvb_mux_dvbc_class = .type = PT_U32, .id = "frequency", .name = N_("Frequency (Hz)"), + .desc = N_("The frequency of the mux (in Hertz)."), .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_freq), .set = dvb_mux_dvbt_class_frequency_set, }, @@ -292,6 +294,7 @@ const idclass_t dvb_mux_dvbc_class = .type = PT_U32, .id = "symbolrate", .name = N_("Symbol rate (Sym/s)"), + .desc = N_("The symbol rate."), .off = offsetof(dvb_mux_t, lm_tuning.u.dmc_fe_qam.symbol_rate), }, { @@ -539,6 +542,7 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_U32, .id = "frequency", .name = N_("Frequency (kHz)"), + .desc = N_("The frequency of the mux (in Hertz)."), .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_freq), .set = dvb_mux_dvbs_class_frequency_set, }, @@ -546,6 +550,7 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_U32, .id = "symbolrate", .name = N_("Symbol rate (Sym/s)"), + .desc = N_("The symbol rate."), .off = offsetof(dvb_mux_t, lm_tuning.u.dmc_fe_qpsk.symbol_rate), .set = dvb_mux_dvbs_class_symbol_rate_set, }, @@ -556,6 +561,7 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_STR, .id = "modulation", .name = N_("Modulation"), + .desc = N_("The modulation used on the mux."), .set = dvb_mux_dvbs_class_modulation_set, .get = dvb_mux_dvbs_class_modulation_get, .list = dvb_mux_dvbs_class_modulation_list, @@ -568,6 +574,8 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_STR, .id = "rolloff", .name = N_("Rolloff"), + .desc = N_("The mux rolloff. Leave as AUTO unless you know the " + "exact rolloff for this mux."), .set = dvb_mux_dvbs_class_rolloff_set, .get = dvb_mux_dvbs_class_rolloff_get, .list = dvb_mux_dvbs_class_rolloff_list, @@ -577,6 +585,8 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_STR, .id = "pilot", .name = N_("Pilot"), + .desc = N_("Use pilot on this mux. AUTO is the recommended " + "value."), .opts = PO_ADVANCED, .set = dvb_mux_dvbs_class_pilot_set, .get = dvb_mux_dvbs_class_pilot_get, @@ -586,6 +596,7 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_INT, .id = "stream_id", .name = N_("ISI (Stream ID)"), + .desc = N_("The stream ID used for this mux."), .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_stream_id), .def.i = DVB_NO_STREAM_ID_FILTER, .opts = PO_ADVANCED @@ -604,6 +615,8 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_U32, .id = "pls_code", .name = N_("PLS code"), + .desc = N_("Enter the Physical Layer Scrambling (PLS) code " + "used on this mux."), .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_pls_code), .def.u32 = 1, .opts = PO_ADVANCED @@ -612,6 +625,7 @@ const idclass_t dvb_mux_dvbs_class = .type = PT_STR, .id = "orbital", .name = N_("Orbital position"), + .desc = N_("The orbital position of the satellite this mux is on."), .set = dvb_mux_dvbs_class_orbital_set, .get = dvb_mux_dvbs_class_orbital_get, .opts = PO_ADVANCED | PO_RDONLY @@ -648,6 +662,7 @@ const idclass_t dvb_mux_atsc_class = .type = PT_U32, .id = "frequency", .name = N_("Frequency (Hz)"), + .desc = N_("The frequency of the mux (in Hertz)."), .off = offsetof(dvb_mux_t, lm_tuning.dmc_fe_freq), .set = dvb_mux_dvbt_class_frequency_set, }, diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index 79bd97406..8c0a8151b 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -204,6 +204,9 @@ const idclass_t dvb_network_dvbt_class = .type = PT_STR, .id = "scanfile", .name = N_("Pre-defined muxes"), + .desc = N_("Use a pre-defined list of DVB-T muxes. " + "Note: these lists can sometimes be outdated and " + "may cause scanning to take longer than usual."), .set = dvb_network_class_scanfile_set, .get = dvb_network_class_scanfile_get, .list = dvb_network_dvbt_class_scanfile_list, @@ -223,6 +226,9 @@ const idclass_t dvb_network_dvbc_class = .type = PT_STR, .id = "scanfile", .name = N_("Pre-defined muxes"), + .desc = N_("Use a pre-defined list of DVB-C muxes. " + "Note: these lists can sometimes be outdated and " + "may cause scanning to take longer than usual."), .set = dvb_network_class_scanfile_set, .get = dvb_network_class_scanfile_get, .list = dvb_network_dvbc_class_scanfile_list, @@ -242,6 +248,9 @@ const idclass_t dvb_network_dvbs_class = .type = PT_STR, .id = "scanfile", .name = N_("Pre-defined muxes"), + .desc = N_("Use a pre-defined list of DVB-S/S2 muxes. " + "Note: these lists can sometimes be outdated and " + "may cause scanning to take longer than usual."), .set = dvb_network_class_scanfile_set, .get = dvb_network_class_scanfile_get, .list = dvb_network_dvbs_class_scanfile_list, @@ -251,6 +260,8 @@ const idclass_t dvb_network_dvbs_class = .type = PT_STR, .id = "orbital_pos", .name = N_("Orbital position"), + .desc = N_("Select the orbital position of the satellite " + "your dish is pointing at."), .set = dvb_network_class_orbital_pos_set, .get = dvb_network_class_orbital_pos_get, .list = dvb_network_class_orbital_pos_list, @@ -269,6 +280,9 @@ const idclass_t dvb_network_atsc_class = .type = PT_STR, .id = "scanfile", .name = N_("Pre-defined muxes"), + .desc = N_("Use a pre-defined list of ATSC muxes. " + "Note: these lists can sometimes be outdated and " + "may cause scanning to take longer than usual."), .set = dvb_network_class_scanfile_set, .get = dvb_network_class_scanfile_get, .list = dvb_network_atsc_class_scanfile_list, diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 6b848f50a..ba40980bf 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -92,6 +92,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "network", .name = N_("Network"), + .desc = N_("The network the service is on."), .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_service_class_get_network, }, @@ -99,6 +100,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "multiplex", .name = N_("Mux"), + .desc = N_("The mux the service is on."), .opts = PO_RDONLY | PO_NOSAVE, .get = mpegts_service_class_get_mux, }, @@ -106,6 +108,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "multiplex_uuid", .name = N_("Mux UUID"), + .desc = N_("The mux's universally unique identifier."), .opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN | PO_EXPERT, .get = mpegts_service_class_get_mux_uuid, }, @@ -113,6 +116,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "sid", .name = N_("Service ID"), + .desc = N_("The service ID as set by the provider."), .opts = PO_RDONLY | PO_ADVANCED, .off = offsetof(mpegts_service_t, s_dvb_service_id), }, @@ -120,6 +124,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "lcn", .name = N_("Local channel number"), + .desc = N_("The service's channel number as set by the provider."), .opts = PO_RDONLY | PO_ADVANCED, .off = offsetof(mpegts_service_t, s_dvb_channel_num), }, @@ -127,6 +132,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "lcn_minor", .name = N_("Local channel minor"), + .desc = N_("The service's channel minor as set by the provider."), .opts = PO_RDONLY | PO_EXPERT, .off = offsetof(mpegts_service_t, s_dvb_channel_minor), }, @@ -134,6 +140,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "lcn2", .name = N_("OpenTV channel number"), + .desc = N_("The OpenTV channel number as set by the provider."), .opts = PO_RDONLY | PO_EXPERT, .off = offsetof(mpegts_service_t, s_dvb_opentv_chnum), }, @@ -141,6 +148,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "srcid", .name = N_("ATSC source ID"), + .desc = N_("The ATSC source ID as set by the provider."), .opts = PO_RDONLY | PO_EXPERT, .off = offsetof(mpegts_service_t, s_atsc_source_id), }, @@ -148,6 +156,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "svcname", .name = N_("Service name"), + .desc = N_("The service name as set by the provider."), .opts = PO_RDONLY, .off = offsetof(mpegts_service_t, s_dvb_svcname), }, @@ -155,6 +164,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "provider", .name = N_("Provider"), + .desc = N_("The provider's name."), .opts = PO_RDONLY | PO_HIDDEN, .off = offsetof(mpegts_service_t, s_dvb_provider), }, @@ -162,6 +172,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "cridauth", .name = N_("CRID authority"), + .desc = N_("Content reference identifier authority."), .opts = PO_RDONLY | PO_HIDDEN | PO_EXPERT, .off = offsetof(mpegts_service_t, s_dvb_cridauth), }, @@ -169,6 +180,9 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "dvb_servicetype", .name = N_("Service type"), + .desc = N_("The service type flag as defined by the DVB " + "specifications (e.g. 0x02 = radio, 0x11 = MPEG2 " + "HD TV, 0x19 = H.264 HD TV)"), .opts = PO_RDONLY | PO_HIDDEN | PO_EXPERT, .off = offsetof(mpegts_service_t, s_dvb_servicetype), }, @@ -176,6 +190,8 @@ const idclass_t mpegts_service_class = .type = PT_BOOL, .id = "dvb_ignore_eit", .name = N_("Ignore EPG (EIT)"), + .desc = N_("Enable or disable ignoring of Event Information " + "Table (EIT) data on this mux."), .off = offsetof(mpegts_service_t, s_dvb_ignore_eit), .opts = PO_EXPERT, }, @@ -183,6 +199,7 @@ const idclass_t mpegts_service_class = .type = PT_STR, .id = "charset", .name = N_("Character set"), + .desc = N_("The character encoding for this service (e.g. UTF-8)."), .off = offsetof(mpegts_service_t, s_dvb_charset), .list = dvb_charset_enum, .opts = PO_EXPERT, @@ -191,6 +208,8 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "prefcapid", .name = N_("Preferred CA PID"), + .desc = N_("The Preferred Conditional Access Packet " + "Identifier. Used for decrypting scrambled streams."), .off = offsetof(mpegts_service_t, s_dvb_prefcapid), .opts = PO_EXPERT, }, @@ -198,6 +217,9 @@ const idclass_t mpegts_service_class = .type = PT_INT, .id = "prefcapid_lock", .name = N_("Lock preferred CA PID"), + .desc = N_("The locking mechanism selection for The Preferred " + "Conditional Access Packet Identifier. See Help " + "for more information."), .off = offsetof(mpegts_service_t, s_dvb_prefcapid_lock), .opts = PO_EXPERT, .list = mpegts_service_pref_capid_lock_list, @@ -206,6 +228,7 @@ const idclass_t mpegts_service_class = .type = PT_U16, .id = "force_caid", .name = N_("Force CA ID (e.g. 0x2600)"), + .desc = N_("Force usage of entered CA ID on this service."), .off = offsetof(mpegts_service_t, s_dvb_forcecaid), .opts = PO_EXPERT | PO_HEXA, }, @@ -213,6 +236,7 @@ const idclass_t mpegts_service_class = .type = PT_TIME, .id = "created", .name = N_("Created"), + .desc = N_("When the service was first identified and recorded."), .off = offsetof(mpegts_service_t, s_dvb_created), .opts = PO_ADVANCED | PO_RDONLY, }, @@ -220,6 +244,7 @@ const idclass_t mpegts_service_class = .type = PT_TIME, .id = "last_seen", .name = N_("Last seen"), + .desc = N_("When the service was last seen during a mux scan."), .off = offsetof(mpegts_service_t, s_dvb_last_seen), .opts = PO_ADVANCED | PO_RDONLY, }, diff --git a/src/satip/server.c b/src/satip/server.c index ec8d480b7..78d775aa8 100644 --- a/src/satip/server.c +++ b/src/satip/server.c @@ -587,6 +587,7 @@ const idclass_t satip_server_class = { .type = PT_STR, .id = "satip_uuid", .name = N_("Server UUID"), + .desc = N_("Universally unique identifier. Read only."), .off = offsetof(struct satip_server_conf, satip_uuid), .opts = PO_RDONLY | PO_EXPERT, .group = 1, @@ -595,6 +596,9 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_rtsp", .name = N_("RTSP port (554 or 9983, 0 = disable)"), + .desc = N_("Real Time Streaming Protocol (RTSP) port the " + "server should listen on (554 or 9983, 0 = " + "disable)."), .off = offsetof(struct satip_server_conf, satip_rtsp), .group = 1, }, @@ -602,6 +606,8 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_weight", .name = N_("Subscription weight"), + .desc = N_("The default subscription weight for each " + "subscription."), .off = offsetof(struct satip_server_conf, satip_weight), .opts = PO_ADVANCED, .group = 1, @@ -610,7 +616,8 @@ const idclass_t satip_server_class = { .type = PT_BOOL, .id = "satip_remote_weight", .name = N_("Accept remote subscription weight"), - .desc = N_("Accept the remote subscription weight (from the SAT>IP client)."), + .desc = N_("Accept the remote subscription weight " + "(from the SAT>IP client)."), .off = offsetof(struct satip_server_conf, satip_allow_remote_weight), .opts = PO_EXPERT, .group = 1, @@ -619,6 +626,8 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_descramble", .name = N_("Descramble services (limit per mux)"), + .desc = N_("The maximum number of services to decrypt per " + "mux."), .off = offsetof(struct satip_server_conf, satip_descramble), .opts = PO_ADVANCED, .group = 1, @@ -627,6 +636,9 @@ const idclass_t satip_server_class = { .type = PT_BOOL, .id = "satip_rewrite_pmt", .name = N_("Rewrite PMT"), + .desc = N_("Rewrite Program Association Table (PMT) packets " + "to only include information about the currently " + "streamed service."), .off = offsetof(struct satip_server_conf, satip_rewrite_pmt), .opts = PO_EXPERT, .group = 1, @@ -635,6 +647,11 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_muxcnf", .name = N_("Mux handling"), + .desc = N_("Select how Tvheadend should handle muxes. " + "Auto = accept the mux if it " + "doesn't already exist. Keep = Always keep the mux" + "regardless of whether it exists or not. Reject = " + "Always reject."), .off = offsetof(struct satip_server_conf, satip_muxcnf), .list = satip_server_class_muxcfg_list, .opts = PO_EXPERT, @@ -644,6 +661,8 @@ const idclass_t satip_server_class = { .type = PT_STR, .id = "satip_nat_ip", .name = N_("External IP (NAT)"), + .desc = N_("Enter external IP if behind Network address " + "translation (NAT)."), .off = offsetof(struct satip_server_conf, satip_nat_ip), .opts = PO_EXPERT, .group = 1, @@ -652,6 +671,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbs", .name = N_("DVB-S"), + .desc = N_("The number of DVB-S tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbs), .group = 2, }, @@ -659,6 +679,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbs2", .name = N_("DVB-S2"), + .desc = N_("The number of DVB-S2 tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbs2), .group = 2, }, @@ -666,6 +687,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbt", .name = N_("DVB-T"), + .desc = N_("The number of DVB-T tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbt), .group = 2, }, @@ -673,6 +695,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbt2", .name = N_("DVB-T2"), + .desc = N_("The number of DVB-T2 tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbt2), .group = 2, }, @@ -680,6 +703,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbc", .name = N_("DVB-C"), + .desc = N_("The number of DVB-C tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbc), .group = 2, }, @@ -687,6 +711,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbc2", .name = N_("DVB-C2"), + .desc = N_("The number of DVB-C2 tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbc2), .group = 2, }, @@ -694,6 +719,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_atsc", .name = N_("ATSC"), + .desc = N_("The number of ATSC tuners to export."), .off = offsetof(struct satip_server_conf, satip_atsc), .group = 2, }, @@ -701,6 +727,7 @@ const idclass_t satip_server_class = { .type = PT_INT, .id = "satip_dvbc2", .name = N_("DVB-Cable/AnnexB"), + .desc = N_("The number of DVB-Cable/AnnexB tuners to export."), .off = offsetof(struct satip_server_conf, satip_dvbcb), .group = 2, },