This is a "plugin" for the Video Disk Recorder (VDR).

Project's homepage:          https://github.com/FireFlyVDR/vdr-plugin-skinelchihd/wiki
Latest version available at: https://github.com/FireFlyVDR/vdr-plugin-skinelchihd

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the file COPYING for more information.


Description:
------------
This plugin for Klaus Schmidinger's Video Disc Recorder VDR adds the "Elchi HD"
skin. It is based on the Elchi skin with major refactoring to make use of newer
VDR features like True Color support.


Requirements:
-------------
VDR 2.4.3+ (VDR 2.6.5+ requires at least skinElchiHD 1.2.4 due to conflicting declaration)
GraphicsMagick++ or ImageMagick++ 7.x
for SVG channel logos ImageMagick++ is required


Features:
---------
- True Color Support
- shaded surface look
- SD, HD and UHD Support (OSD, Channel Logos, Video stream info)
- SVG channel logo support (True Color, scaled to required OSD resolution)
- EPG image support (True Color) for EPG and recordings
- displays type of recording in Recordings Menu (HD, UHD)
- multithreaded scrolling and image loading
- if VDR is recording a REC symbols is displayed highlighted in red and white on the channel display and replay display
- if VDR is cutting or moving recordings a scissor symbols is displayed in the channel display and replay display

Installation
------------
The skinElchiHD plugin is compiled and installed the same way as any other plugin:
- cd <VDR>/PLUGINS/src
- tar xf vdr-skinelchihd-<version>.tar.bz2
- ln -s skinelchihd-<version> skinelchihd
- cd ../..
- make plugins  [IMAGELIB=graphicsmagick]

Append "IMAGELIB=imagemagick" or "IMAGELIB=graphicsmagick" to the make command to build with the respective library. 
Default (e.g. witout parameter) is ImageMagick++.

Copy the provided 50-skinelchihd.conf file to your VDR args dir (e.g. /etc/vdr/conf.d)
and adapt it if required or use the parameters on the VDR commandline.

Copy the theme files in the themes subdirectory to the VDR theme directory
  <configdir>/themes 


Usage:
------
Channel logos:
For displaying channel logos skinElchiHD requires PNG or SVG logo files. SkinElchiHD
does not provide logo files but there are several sets floating around in the
internet. The logos should have no background (= transparent) as it is added by
skinElchiHD.

The path to the logo files can be set with a command line parameter: 

  -l <LogoPath>,  --logopath=<LogoPath>     path to PNG and SVG channel logos
                                            (default: <ResourceDir>/plugins/skinelchihd/logos)
For displaying SVG channel logos ImagMagick++ is required.

Images of EPG and recordings: 
SkinElchiHD can display EPG images in JPEG format for both EPG events and recordings.
The path to EPG images can be set with:
  -e <EPGImageDir>, --epgimages=<ImageDir>  path to EPG images
                                            (default: <CacheDir>/plugins/skinelchihd/epgimages)

For the EPG the images need to follow the format "<SOURCE>_<EPGID>[_<No].jpg" 
where <SOURCE> is the DVB source (e.g. S19.2E-1-1019-10301) and <EPGID> the ID
of the EPG event. If there is more than one image then for the second and 
further images an ascending Number <No> beginning with '1' is appended and
skinElchiHD can display up to 5 images sequentially. Beginning with skinElchiHD 0.5.2
the first EPG image can also have a number '0' appended to have a consistent numbering
across all images. The time until the next images is dispalyed can be set via OSD in
the Setup of the plugin.

For recording images they have to reside in the folder of the recording and
need to end with ".jpg".


Setup Options:
--------------
The following settings are available in the setup -> plugins -> skinElchiHD setup menu:

General:
- scroll text:                      yes / no
  enable / disable scrolling of text

- Show timer and conflicts in menu: no / next recording / Timer-Conflict / all
  displays selected info in menus below header line 

- show logo if recording is HD/UHD: yes / no
  show a HD or UHD logo in front of recordings if it's detected as HD or UHD
  format. However, the detection is not perfect (e.g. for DVB-T2), so disable
  it in case of wrong detection

- Show warning if recording has errors: no / only uncut recordings / all recordings
  show an exclamation sign in front of recordings if it has errors (available
  for VDR 2.5.6+)

- Show recording details:           EPG / EPG + details  / EPG + details + genre
  select detail range of recordings

- Show EPG details:                 EPG / EPG + details  / EPG + details + genre
  select detail range of EPG entries

- Show video format info (if available): no / format / size and format
  shows size and format of current displayed stream in channel and replay menus

- use graphical progressbar:        yes/no
  convert ascii symbols [||||  ] to a graphical progress bar 

- EPG picture size:                 don't show / small / medium / large / extra large / huge
  select size of images in EPG and recordings menu

  - duration of each EPG image [s]: 5
    select time until next images is displayed

  - search for EPG images with      channel ID + event ID / event ID only
    recommended is "channel ID + event ID" because "event ID only" might pick
    wrong pictures when the event ID appears on several channels

- show remote timers in EPG
  in addition to local timers show remote timers in EPG


Channel Display
- show audio info:                  yes / no  
  select if info about available audio sreams is displayed

- show recording info:              no / only when recording / always
  this displays an additional line with the DVB device number 
  and name and infos about ongoing recurdings
     no:                   the additional line is never displayed
     only when recording:  the additional line is displayed only during recordings
     always:               the additional line is always shown even if it's empty

- show channel logos:               no / normal size / large size
  choose if channel logos should be displayed and which size

- search logos first as             SVG / PNG 
  search the logo files first with extension .svg or .png. This option is only
  available when compiled with ImageMagick++

- show signal bars:                 yes / no
  choose if signal bars should be displayed 
  (upper bar: signal strength, lower bar: signal qualitiy)

- show remote timers                yes / no
  show a timer symbol in front of events if there's a remote timer, otherwise 
  a symbol is only shown for local timers

- write logo messages to syslog:    yes / no
  write a message (found / not found) for each requested channel logo in the syslog
  this can be helpful to find missing logos or to verify the logopath  


Tips & Hints:
-------------
- use a script like yaVDR's R60copy_epgimage with VDR's '--record' parameter to copy
  the EPG images (downloaded by an EPG plugin) automatically into the recording's folder
- to convert SVG channel logs to png (including the links) call the following script
  in the channel logo folder (requires the 'convert' program from ImageMagick):

!/bin/bash
#
# convert all SVG files and links in the current directory to png
  
OLDIFS=$IFS
IFS=$'\n'

for svgfile in $(find . -iname "*.svg" -type f);
do
   pngfile=${svgfile%%.svg}.png
   if [ ! -e "$pngfile" ]; then
      echo "converting $svgfile -> $pngfile"
      convert -background none "$svgfile" "$pngfile"
   fi
done

for lnk in $(find . -lname "*.svg" );
do
   source="$(basename -s "svg" $lnk)png"
   target=$(realpath --relative-to=. "$lnk")
   target="${target%%.svg}.png"
   if [ ! -e "$source" ]; then
      echo "symlinking $source -> $target"
      ln -s "${target}" "${source}"
   fi
done
IFS=$OLDIFS
