-
Notifications
You must be signed in to change notification settings - Fork 2
/
README
254 lines (199 loc) · 8.61 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
This is a "plugin" for the Video Disk Recorder (VDR).
Written by Carsten Siebholz (c.siebholz AT t-online.de>
From 0.0.8 on maintained by Andreas 'powARman' Regel (andreas.regel AT powarman.de)
from 0.1.5 on maintained by Wolfgang Astleitner (mrwastl AT users.sourceforge.net) & Andreas 'randy' Weinberger (vdr AT smue.org)
Project's homepage: http://projects.vdr-developer.org/projects/show/graphlcd
before 0.1.5: http://graphlcd.berlios.de/
before 0.0.8: http://c.siebholz.bei.t-online.de/
GIT repo: http://projects.vdr-developer.org/projects/show/graphlcd
See the file COPYING for license information.
Description:
------------
graphlcd is a plugin for the Video Disc Recorder and shows information
about the current state of VDR on displays supported by the GraphLCD
driver library.
Installation and Configuration:
-------------------------------
1. Install and configure the GraphLCD base package.
2. Unpack the tarball to .../VDR/PLUGINS/src directory
3. Compile the plugin
make plugins (from VDR's source directory)
or
make all (from the plugin's source directory)
4. Copy the 'graphlcd' subdirecory to <VDRconfigDir>/plugins/
Afterwards, the structure should look like this:
VDR config directory (eg: /video)
|
+- plugins
| |
| +- graphlcd (contains logonames.alias)
| | |
| | +-- fonts (contains *.fnt files)
| | |
| | +-- logos (contains *.glcd files)
| | |
. . +-- skins (contains skin files and definitions)
. .
5. If you are using VDR 1.3 or higher, you will have to recreate the
link to logonames.alias:
ln -sf logonames.alias.13 logonames.alias
6. Start VDR with the plugin.
You have to specify your the path and name of the driver library's
configuration file and the name of your display in the config file
on the command line.
Possible options are:
-c CONFIG, --config=CONFIG file name and path of the configuration file
-d DISPLAY, --display=DISPLAY name of the display
-s SKIN, --skin=SKIN name of the skin
-c: Sets the file path and name of the driver library's config file.
If this parameter is not given the default '/etc/graphlcd.conf'
will be used.
-d: Sets the name of the section in the config file that specifies
the display used for the plugin's output. If this parameter is
not given, the first section will be used.
-s: Sets the name of the skin to be used.
If this parameter is not given, skin 'default' will be used.
Examples:
vdr -P 'graphlcd -c /video/graphlcd.conf -d ks0108'
vdr -P 'graphlcd -c /etc/graphlcd.conf'
vdr -P 'graphlcd -c /video/graphlcd.conf -d usb13700 -s bigskin'
Channel Logos
-------------
To be able to see logos for the channels, you can create a *.glcd file
in the 'logos' directory. This file can be created with the convpic
tool from the GraphLCD base package. The size of the image must be
64x48 (for the *_l.glcd files) or 40x29 (for the *_m.glcd files).
Normally, the plugin looks for a file with the name
<ChannelID>_<Size>.glcd, where <ChannelID> is the ID of the channel
like used by VDR itself and <Size> is a character depending of the
size of the logo. (l for large size logos and m for medium size logos).
To keep an overview over the logos it instead would be better to name
them <ChannelName>_<Size>.glcd and use the file logonames.alias for the
relation between channel ID and channel name.
example: ZDF_l.glcd
Setup Parameters:
-----------------
Plugin active:
This is something like a 'main switch' for the plugin. If it's set to NO,
the output to the LCD will be suspended.
(Possible values: 'no', 'yes')
Show Date/Time:
Enables/disables the date/time bar.
(Possible values: 'no', 'yes', 'not in menu')
Show Channel:
Enables/disables the channel bar.
(Possible values: 'no', 'yes')
Show Logo:
Enables/disables the channel logo.
(Possible values: 'no', 'auto', 'medium', 'large')
Show Symbols:
Enables/disables the symbols for teletext, dolby digital, 2-channel audio,
encryption and recordings.
(Possible values: 'no', 'yes', 'compressed')
Show ET Symbols:
Enables/disables external triggered symbols.
graphlcd is able to show some symbols, that can be switched on and off by
external progams (like vbox). Therefore it reads a file
(/tmp/graphlcd_symbols). The format of this file is very simple: It might
have one or more lines. Each line triggers one symbol. The format of each
line is [ASCII-Char][0|1].
example:
V1
X0
This example enables the symbol 'V' and disables the symbol 'X'. To get an
idea, why the symbols are represented by those ASCII-Characters, look into
sym*.fon and sym*.bmp (in ./tools/crtfont/fonts/ directory): You will see,
that the symbols are nothing more than a special font and each symbol
stands for a character.
(Possible values: 'no', 'yes')
Show Program:
Enables/disables the time, title and subtitle of the current program.
(Possible values: 'no', 'yes')
Show Timebar:
Enables/disables the timebar (under the start and end time of the current
program).
(Possible values: 'no', 'yes')
Show Menu:
Enables/disables the menu.
(Possible values: 'no', 'yes')
Show Messages:
Enables/disables displaying messages.
(Possible values: 'no', 'yes')
Show Color Buttons:
Enables/disables the 4 colered buttons.
(Possible values: 'no', 'yes')
Show Volume:
Enables/disables the volume bar.
(Possible values: 'no', 'yes')
Show free cards:
enables/disables the display of the free cards as empty rectangles with one
icon for each card.
(Possible values: 'no', 'yes')
Identify replay type:
Based on the replay's name the plugins tries to identify the type of replay,
e.g. if it is a VDR, DVD or MP3 replay.
(Possible values: 'no', 'yes')
Modify replay string:
Enables/disables replay string modification (Identify replay type has to
be enabled for this). Based on the replay type graphlcd tries to 'improve'
the replay name string, e.g. extracts and capitalizes DVD titles.
(Possible values: 'no', 'yes')
Show Logo on Replay:
Enables/disables the replay-dependent logo (Identify replay type has to
be enabled for this).
(Possible values: 'no', 'auto', 'medium', 'large')
Scroll text lines:
Enables/disables the scrolling of text lines if they don't fit on screen.
(used by program information and replay text)
(Possible values: 'never', 'once', 'always')
Scroll speed:
Sets the scroll speed in pixels per update.
(Possible values: 1 <= x <= 10)
Scroll time interval:
Sets the time between scroller updates in milliseconds.
(Possible values: 100 <= x <= 2000)
Patches
-------
femon:
versions <= 1.7.7 require a patch to be functionable with graphlcd.
if graphlcd-plugin detects a femon version <= 1.7.7 and this version has not yet been patched,
femon will ignored by graphlcd (problem: if graphlcd calls an unpatched femon, vdr will crash
when shutting or restarting). the bug has already been reported to the maintainer of femon and
will be fixed in 1.7.8.
note: $SOURCEDIR/VDR == source directory of vdr. replace accordingly.
for femon <= 1.2.x apply the following patch:
cd $SOURCEDIR/VDR/PLUGINS/src/femon
patch -p0 < $SOURCEDIR/VDR/PLUGINS/src/graphlcd/patches/femon-1.1.5_fixnullandsegfault_path.diff
for femon > 1.2.x and <= 1.7.7 apply the following patch:
cd $SOURCEDIR/VDR/PLUGINS/src/femon
patch -p0 < $SOURCEDIR/VDR/PLUGINS/src/graphlcd/patches/femon-1.7.7_fixsegfault_patch.diff
or, if you don't want to apply a patch or the patch fails with your version of femon,
replace the entire function
bool cPluginFemon::Service(const char *Id, void *Data)
{
....
}
with the following one (should be valid for all femon versions >= 1.1.x):
bool cPluginFemon::Service(const char *Id, void *Data)
{
if (strcmp(Id,"FemonService-v1.0") == 0) {
if (Data) {
FemonService_v1_0 *data = (FemonService_v1_0*)Data;
if (! cDevice::ActualDevice() )
return false;
int ndx = cDevice::ActualDevice()->CardIndex();
data->fe_name = getFrontendName(ndx);
data->fe_status = getFrontendStatus(ndx);
data->fe_snr = getSNR(ndx);
data->fe_signal = getSignal(ndx);
data->fe_ber = getBER(ndx);
data->fe_unc = getUNC(ndx);
data->video_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetVideoBitrate() : 0.0;
data->audio_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetAudioBitrate() : 0.0;
data->dolby_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetDolbyBitrate() : 0.0;
}
return true;
}
return false;
}
after applying this patch uncomment DEFINES += -DGRAPHLCD_SERVICE_FEMON_VALID in the Makefile.