From: Mark Clarkstone Date: Mon, 23 May 2016 15:15:30 +0000 (+0100) Subject: mdhelp: update play doc, include play doc in dvrentry, tidy picon servicetype, add... X-Git-Tag: v4.2.1~466 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e08f47975f7ffb0739915807bab07e7a686e4ac7;p=thirdparty%2Ftvheadend.git mdhelp: update play doc, include play doc in dvrentry, tidy picon servicetype, add bouquet tagging doc, hide some more property lists. desc: update some property desciptions --- diff --git a/docs/class/dvrentry.md b/docs/class/dvrentry.md index 23d09d795..19ca71ddc 100644 --- a/docs/class/dvrentry.md +++ b/docs/class/dvrentry.md @@ -121,14 +121,7 @@ See [Autorec](class/dvrautorec) for more information. --- -###Playing a Recording - -You can play a recording by clicking the *Play* icon. -This will automatically launch an appropriate player, otherwise you will -need to manually open the playlist to start watching (normally a -double-click on the downloaded file). - -Note that these are not links to an actual file but to a playlist. +inc/play --- diff --git a/docs/markdown/inc/play.md b/docs/markdown/inc/play.md index 9ff24b17e..1068d4a91 100644 --- a/docs/markdown/inc/play.md +++ b/docs/markdown/inc/play.md @@ -1,11 +1,11 @@ ###Playing a Stream/File -You can play a stream/file by copying/pasting the Play icon link from -the grid into the desired player/software. +You can play a stream/file by clicking the play icon !['Play Icon Image'](static/icons/control_play.png). +This will automatically launch an appropriate player, otherwise you will +need to manually open the playlist to start watching (normally a +double-click on the downloaded file). -**Notes**: -* The links don't link to the actual stream but to a playlist for +Note that the links don't link to the actual stream but to a playlist for use with media players such as VLC, If you'd prefer to receive the raw stream instead, you can do so by removing the `/play/` path from -the URL - see [URL Syntax](url) for more. - +the URL - see [URL Syntax](url) for more info. diff --git a/docs/property/bouquet_tagging.md b/docs/property/bouquet_tagging.md new file mode 100644 index 000000000..fd8db3e75 --- /dev/null +++ b/docs/property/bouquet_tagging.md @@ -0,0 +1,8 @@ +: + +Option | Description +-------------------------------|------------ +**Create bouquet tag** | Create a tag with the bouquets name and link it to all channels created by the bouquet. +**Create type-based tags** | Create a tag based on the channel type and link it to the channel. +**Create provider name tags** | Create a tag with the channel provider's name and link it to the channel. +**Create network name tags** | Create a tag with the network name and link it to all channels created by the bouquet. diff --git a/docs/property/config_picon_servicetype.md b/docs/property/config_picon_servicetype.md index b7850c16d..b215cf1d0 100644 --- a/docs/property/config_picon_servicetype.md +++ b/docs/property/config_picon_servicetype.md @@ -1,12 +1,14 @@ : -You must set the *Picon path* (above) to be able to correctly -generate icon filenames. Note that changing this option **won't** -automatically (re-)generate icon filenames, you must manually -(re-)generate them using the *[Reset Icons]* button in the -*Configuration -> Channel / EPG -> Channels* tab. -If your picon pack uses filenames that start with "1_0_1_xxxx" you'll want to -use the *force service type to 1* setting. If your filenames use the -standard naming scheme, e.g "1_0_19_xxxx" leave it as *Standard*. +You must set the *Picon path* (above) to be able to correctly +generate icon filenames. +Scheme | Description +------------------------------|------------ +**Standard** | If your filenames use the standard naming scheme, e.g "1_0_19_xxxx". +**force service type to 1** | If your picon pack uses filenames that start with "1_0_1_xxxx". +Note that changing this setting **won't** +automatically (re-)generate icon filenames, you must manually +(re-)generate them using the *[Reset Icons]* button in the +[Channels](class/channel) tab. diff --git a/docs/property/duplicate_handling.md b/docs/property/duplicate_handling.md new file mode 100644 index 000000000..5a8a53e2c --- /dev/null +++ b/docs/property/duplicate_handling.md @@ -0,0 +1,14 @@ +: + +Option | Description +---------------------------------------------|------------ +**Record all** | Record all matching events. +**Record if different episode number** | Record a matching event only if the episode number is different. +**Record if different subtitle** | Record a matching event only if the subtitle is different. +**Record if different description** | Record a matching event only if the description is different. +**Record once per week** | Record the first matching event once a week. +**Record once per day** | Record the first matching event once a day. + +*Local* or *All*? Local only checks the DVR log entries that were created by the +same autorec rule for duplicates, All checks all DVR log entries for +duplicates. diff --git a/src/bouquet.c b/src/bouquet.c index f48c6f32c..20a355fc7 100644 --- a/src/bouquet.c +++ b/src/bouquet.c @@ -956,6 +956,7 @@ bouquet_class_ext_url_notify ( void *obj, const char *lang ) CLASS_DOC(bouquet) PROP_DOC(bouquet_mapping_options) +PROP_DOC(bouquet_tagging) const idclass_t bouquet_class = { .ic_class = "bouquet", @@ -1005,7 +1006,7 @@ const idclass_t bouquet_class = { .get = bouquet_class_mapopt_get, .set = bouquet_class_mapopt_set, .rend = bouquet_class_mapopt_rend, - .opts = PO_ADVANCED + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_INT, @@ -1013,22 +1014,14 @@ const idclass_t bouquet_class = { .id = "chtag", .name = N_("Create tags"), .desc = N_("Create and link these tags to channels when " - "mapping; Create bouquet tag: create a " - "tag with the bouquets name and link it to all mapped " - "channels created by the bouquet. | Create " - "type-based tags: create a tag based on " - "the channel type and link it to the channel. | " - "Create provider name tags: create a tag with the " - "channel providers name and link it to the " - "channel. | Create network name tags: create a tag " - "with the network name and link it to all mapped " - "channels created by the bouquet."), + "mapping."), + .doc = prop_doc_bouquet_tagging, .notify = bouquet_class_chtag_notify, .list = bouquet_class_chtag_enum, .get = bouquet_class_chtag_get, .set = bouquet_class_chtag_set, .rend = bouquet_class_chtag_rend, - .opts = PO_ADVANCED + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_STR, diff --git a/src/channels.c b/src/channels.c index f7ffdd880..dce6cfc41 100644 --- a/src/channels.c +++ b/src/channels.c @@ -491,7 +491,7 @@ const idclass_t channel_class = { "good at time keeping."), .off = offsetof(channel_t, ch_epg_running), .list = channel_class_epg_running_list, - .opts = PO_ADVANCED + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_STR, diff --git a/src/config.c b/src/config.c index 4563d2ff9..26ba0018f 100644 --- a/src/config.c +++ b/src/config.c @@ -2047,6 +2047,7 @@ const idclass_t config_class = { "Help button)."), .off = offsetof(config_t, uilevel), .list = config_class_uilevel, + .opts = PO_DOC_NLIST, .group = 1 }, { @@ -2118,7 +2119,7 @@ const idclass_t config_class = { "Differentiated_services for more information. "), .off = offsetof(config_t, dscp), .list = config_class_dscp_list, - .opts = PO_EXPERT, + .opts = PO_EXPERT | PO_DOC_NLIST, .group = 1 }, { @@ -2190,7 +2191,7 @@ const idclass_t config_class = { .set = config_class_info_area_set, .get = config_class_info_area_get, .list = config_class_info_area_list, - .opts = PO_LORDER | PO_ADVANCED, + .opts = PO_LORDER | PO_ADVANCED | PO_DOC_NLIST, .group = 3 }, { @@ -2211,6 +2212,7 @@ const idclass_t config_class = { " theme isn't set in the Access Entries tab."), .list = theme_get_ui_list, .off = offsetof(config_t, theme_ui), + .opts = PO_DOC_NLIST, .group = 3 }, { @@ -2293,7 +2295,7 @@ const idclass_t config_class = { .list = config_class_chiconscheme_list, .doc = prop_doc_config_channelname_scheme, .off = offsetof(config_t, chicon_scheme), - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, .group = 6, }, { @@ -2317,7 +2319,7 @@ const idclass_t config_class = { .list = config_class_piconscheme_list, .doc = prop_doc_config_picon_servicetype, .off = offsetof(config_t, picon_scheme), - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, .group = 6, }, { diff --git a/src/dvr/dvr_autorec.c b/src/dvr/dvr_autorec.c index d0a28e601..59fe36f86 100644 --- a/src/dvr/dvr_autorec.c +++ b/src/dvr/dvr_autorec.c @@ -982,6 +982,7 @@ dvr_autorec_entry_class_owner_opts(void *o) } CLASS_DOC(dvrautorec) +PROP_DOC(duplicate_handling) const idclass_t dvr_autorec_entry_class = { .ic_class = "dvrautorec", @@ -1069,7 +1070,7 @@ const idclass_t dvr_autorec_entry_class = { .def.i = DVR_AUTOREC_BTYPE_ALL, .off = offsetof(dvr_autorec_entry_t, dae_btype), .list = dvr_autorec_entry_class_btype_list, - .opts = PO_HIDDEN | PO_ADVANCED, + .opts = PO_HIDDEN | PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_U32, @@ -1170,7 +1171,7 @@ const idclass_t dvr_autorec_entry_class = { .list = dvr_entry_class_pri_list, .def.i = DVR_PRIO_NORMAL, .off = offsetof(dvr_autorec_entry_t, dae_pri), - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_U32, @@ -1178,9 +1179,10 @@ const idclass_t dvr_autorec_entry_class = { .name = N_("Duplicate handling"), .desc = N_("Duplicate recording handling."), .def.i = DVR_AUTOREC_RECORD_ALL, + .doc = prop_doc_duplicate_handling, .off = offsetof(dvr_autorec_entry_t, dae_record), .list = dvr_autorec_entry_class_dedup_list, - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_U32, diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index fb8d42c4c..4326f0e2b 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -2951,7 +2951,7 @@ const idclass_t dvr_entry_class = { .type = PT_STR, .id = "disp_title", .name = N_("Title"), - .desc = N_("Title of the program."), + .desc = N_("Title of the program (display)."), .get = dvr_entry_class_disp_title_get, .set = dvr_entry_class_disp_title_set, .opts = PO_NOSAVE, @@ -2985,7 +2985,7 @@ const idclass_t dvr_entry_class = { .type = PT_STR, .id = "disp_description", .name = N_("Description"), - .desc = N_("Program synopsis."), + .desc = N_("Program synopsis (display)."), .get = dvr_entry_class_disp_description_get, .opts = PO_RDONLY | PO_NOSAVE | PO_HIDDEN, }, @@ -2993,12 +2993,12 @@ const idclass_t dvr_entry_class = { .type = PT_INT, .id = "pri", .name = N_("Priority"), - .desc = N_("Priority of the recording."), + .desc = N_("Priority of the recording. Higher-priority entries will take precedence and cancel lower-priority events."), .off = offsetof(dvr_entry_t, de_pri), .def.i = DVR_PRIO_NORMAL, .set = dvr_entry_class_pri_set, .list = dvr_entry_class_pri_list, - .opts = PO_SORTKEY, + .opts = PO_SORTKEY | PO_DOC_NLIST, }, { .type = PT_U32, diff --git a/src/dvr/dvr_timerec.c b/src/dvr/dvr_timerec.c index a45d3cfba..58b04d881 100644 --- a/src/dvr/dvr_timerec.c +++ b/src/dvr/dvr_timerec.c @@ -618,7 +618,7 @@ const idclass_t dvr_timerec_entry_class = { .list = dvr_entry_class_pri_list, .def.i = DVR_PRIO_NORMAL, .off = offsetof(dvr_timerec_entry_t, dte_pri), - .opts = PO_SORTKEY | PO_ADVANCED, + .opts = PO_SORTKEY | PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_U32, diff --git a/src/epggrab/module/xmltv.c b/src/epggrab/module/xmltv.c index 15497696b..580fe6f87 100644 --- a/src/epggrab/module/xmltv.c +++ b/src/epggrab/module/xmltv.c @@ -776,6 +776,7 @@ const idclass_t epggrab_mod_int_xmltv_class = { .desc = DN_CHNUM_DESC, .off = offsetof(epggrab_module_int_t, xmltv_chnum), .list = xmltv_dn_chnum_list, + .opts = PO_DOC_NLIST, .group = 1 }, {} @@ -793,6 +794,7 @@ const idclass_t epggrab_mod_ext_xmltv_class = { .name = DN_CHNUM_NAME, .desc = DN_CHNUM_DESC, .off = offsetof(epggrab_module_ext_t, xmltv_chnum), + .opts = PO_DOC_NLIST, .group = 1 }, {} diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index daae4c2a8..40292e3e3 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -520,6 +520,7 @@ const idclass_t mpegts_mux_class = .off = offsetof(mpegts_mux_t, mm_epg), .def.i = MM_EPG_ENABLE, .list = mpegts_mux_epg_list, + .opts = PO_DOC_NLIST, }, { .type = PT_STR, @@ -588,7 +589,7 @@ const idclass_t mpegts_mux_class = .off = offsetof(mpegts_mux_t, mm_scan_state), .set = mpegts_mux_class_scan_state_set, .list = mpegts_mux_class_scan_state_enum, - .opts = PO_NOSAVE | PO_SORTKEY, + .opts = PO_NOSAVE | PO_SORTKEY | PO_DOC_NLIST, }, { .type = PT_INT, @@ -596,7 +597,7 @@ const idclass_t mpegts_mux_class = .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, + .opts = PO_RDONLY | PO_SORTKEY | PO_DOC_NLIST, .list = mpegts_mux_class_scan_result_enum, }, { @@ -608,7 +609,7 @@ const idclass_t mpegts_mux_class = " appear garbled."), .off = offsetof(mpegts_mux_t, mm_charset), .list = dvb_charset_enum, - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_INT, @@ -635,7 +636,7 @@ const idclass_t mpegts_mux_class = .off = offsetof(mpegts_mux_t, mm_pmt_ac3), .def.i = MM_AC3_STANDARD, .list = mpegts_mux_ac3_list, - .opts = PO_HIDDEN | PO_EXPERT + .opts = PO_HIDDEN | PO_EXPERT | PO_DOC_NLIST, }, { .type = PT_BOOL, diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 18bdc4683..cc9ec324c 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -223,7 +223,7 @@ const idclass_t mpegts_service_class = "Conditional Access Packet Identifier. See Help " "for more information."), .off = offsetof(mpegts_service_t, s_dvb_prefcapid_lock), - .opts = PO_EXPERT, + .opts = PO_EXPERT | PO_DOC_NLIST, .list = mpegts_service_pref_capid_lock_list, }, { diff --git a/src/service.c b/src/service.c index 6bc029172..e442b8aa0 100644 --- a/src/service.c +++ b/src/service.c @@ -174,6 +174,7 @@ const idclass_t service_class = { .type = PT_BOOL, .id = "enabled", .name = N_("Enabled"), + .desc = N_("Enable/Disable service."), .off = offsetof(service_t, s_enabled), .notify = service_class_notify_enabled, }, @@ -186,7 +187,7 @@ const idclass_t service_class = { "\"Missing In PAT/SDT\"."), .list = service_class_auto_list, .off = offsetof(service_t, s_auto), - .opts = PO_ADVANCED, + .opts = PO_ADVANCED | PO_DOC_NLIST, }, { .type = PT_STR, @@ -234,7 +235,7 @@ const idclass_t service_class = { "service type provided by the stream."), .list = service_type_auto_list, .off = offsetof(service_t, s_type_user), - .opts = PO_ADVANCED + .opts = PO_ADVANCED | PO_DOC_NLIST, }, {} }