]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mdhelp: update play doc, include play doc in dvrentry, tidy picon servicetype, add...
authorMark Clarkstone <hello@markclarkstone.co.uk>
Mon, 23 May 2016 15:15:30 +0000 (16:15 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 27 May 2016 16:14:29 +0000 (18:14 +0200)
15 files changed:
docs/class/dvrentry.md
docs/markdown/inc/play.md
docs/property/bouquet_tagging.md [new file with mode: 0644]
docs/property/config_picon_servicetype.md
docs/property/duplicate_handling.md [new file with mode: 0644]
src/bouquet.c
src/channels.c
src/config.c
src/dvr/dvr_autorec.c
src/dvr/dvr_db.c
src/dvr/dvr_timerec.c
src/epggrab/module/xmltv.c
src/input/mpegts/mpegts_mux.c
src/input/mpegts/mpegts_service.c
src/service.c

index 23d09d795007d679367571b26e769b681e909a7f..19ca71ddc3f5b85eb3d6c36094128a72ef09e5ff 100644 (file)
@@ -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.
+<tvh_include>inc/play</tvh_include>
 
 ---
 
index 9ff24b17ec4dfb57019d785e6b8704c35963aeb2..1068d4a9111764259002e4e8fb06f0611c1be192 100644 (file)
@@ -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 (file)
index 0000000..fd8db3e
--- /dev/null
@@ -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.
index b7850c16d8da4799ff9a4c2125664ceb91c7767e..b215cf1d0076c035e7985a03dbd17d8873564f72 100644 (file)
@@ -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 (file)
index 0000000..5a8a53e
--- /dev/null
@@ -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.
index f48c6f32c3181ee14b316f82e185fcb3bed4810f..20a355fc786691bfe1f79d92fa836d7fe67388f1 100644 (file)
@@ -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,
index f7ffdd8804f30fd96453a1ab8a38ab8f7f7f592c..dce6cfc4144496427e4bf036c8135cfe55883642 100644 (file)
@@ -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,
index 4563d2ff9214857998916bcc890ca0611e112ea2..26ba0018f82b7a05fa2788fdc964f7437c087936 100644 (file)
@@ -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,
     },
     {
index d0a28e6015c0dcde7fe9e1cf673c8743c3bd5d17..59fe36f8661227330c5b409245b45c2b0ef2d03b 100644 (file)
@@ -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,
index fb8d42c4c7afd2237aa602a32f746f963d071b44..4326f0e2b265863e7fe4b53f3a406d6a7b17b90e 100644 (file)
@@ -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,
index a45d3cfba0c1dc7f3bd0178a3eefb4f5fdb3cbb5..58b04d8816417721fd942da05dd7ce9197e4f4a5 100644 (file)
@@ -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,
index 15497696b519303492b640aae0ba1c513a2a6fa2..580fe6f8791b748e5a1de167d2ee67da1f68040c 100644 (file)
@@ -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
     },
     {}
index daae4c2a8eabd042f18f4e352044aef5576d690e..40292e3e3564fdbeae06a65c96351fd415e73645 100644 (file)
@@ -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,
index 18bdc4683973e007b84e6c0aeba8dbc321b03a79..cc9ec324c6fd198d372c737dd6e32cf53f11638e 100644 (file)
@@ -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,
     },
     {
index 6bc029172270e3d29fd14d640c893847d2bfaa4b..e442b8aa0d9f4f61ae4270604eb94c9fac0515d6 100644 (file)
@@ -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,
     },
     {}
   }