3 changeset 1406:c87abbb20491 tip
5 update scan file for fr-Reims
6 submitted by sylvestre.cartier gmail.com
7 author Christoph Pfister <pfister@linuxtv.org>
8 date Sun Nov 28 21:24:42 2010 +0100 (3 weeks ago)
14 a/util/scan/dvb-t/be-Brussels | 5
15 a/util/scan/dvb-t/be-Libramont | 10
16 a/util/scan/dvb-t/be-Schoten | 3
17 a/util/scan/dvb-t/be-St_Pieters_Leeuw | 3
18 a/util/scan/dvb-t/be-Tournai | 3
19 a/util/scan/dvb-t/cz-Brno | 10
20 a/util/scan/dvb-t/cz-Domazlice | 3
21 a/util/scan/dvb-t/cz-Klet | 4
22 a/util/scan/dvb-t/cz-Ostrava | 3
23 a/util/scan/dvb-t/cz-Plzen | 8
24 a/util/scan/dvb-t/cz-Praha | 7
25 a/util/scan/dvb-t/fr-Lille | 30
26 a/util/scan/dvb-t/fr-LilleT2 | 13
27 a/util/scan/dvb-t/hr-Zagreb | 3
28 b/util/alevt/COPYRIGHT | 297 +
29 b/util/alevt/ChangeLog | 535 ++
30 b/util/alevt/EXPORT.HOWTO | 84
31 b/util/alevt/Makefile | 130
32 b/util/alevt/README | 72
33 b/util/alevt/README.OLD | 78
34 b/util/alevt/ReadmeGR | 28
35 b/util/alevt/TODO | 12
36 b/util/alevt/alevt-cap.1 | 53
37 b/util/alevt/alevt-cap.c | 280 +
38 b/util/alevt/alevt-date.1 | 41
39 b/util/alevt/alevt-date.c | 225 +
40 b/util/alevt/alevt.1 | 60
41 b/util/alevt/alevt.desktop | 9
42 b/util/alevt/bdf2xbm.c | 212 +
43 b/util/alevt/cache.c | 229 +
44 b/util/alevt/cache.h | 41
45 b/util/alevt/dllist.h | 55
46 b/util/alevt/exp-gfx.c | 258 +
47 b/util/alevt/exp-html.c | 299 +
48 b/util/alevt/exp-txt.c | 226 +
49 b/util/alevt/export.c | 364 +
50 b/util/alevt/export.h | 66
51 b/util/alevt/fdset.c | 97
52 b/util/alevt/fdset.h | 28
53 b/util/alevt/font.c | 5
54 b/util/alevt/font.h | 19
55 b/util/alevt/hamm.c | 229 +
56 b/util/alevt/hamm.h | 7
57 b/util/alevt/help.c | 83
58 b/util/alevt/help.h | 8
59 b/util/alevt/icon.xbm | 17
60 b/util/alevt/lang.c | 393 +
61 b/util/alevt/lang.h | 28
62 b/util/alevt/main.c | 221 +
63 b/util/alevt/misc.c | 66
64 b/util/alevt/misc.h | 32
66 b/util/alevt/search.c | 127
67 b/util/alevt/search.h | 16
68 b/util/alevt/ui.c | 721 +++
69 b/util/alevt/ui.h | 35
70 b/util/alevt/vbi.c | 942 ++++
71 b/util/alevt/vbi.h | 47
72 b/util/alevt/vt.h | 62
73 b/util/alevt/vt900.out | 29
74 b/util/alevt/vt901.out | 29
75 b/util/alevt/vt902.out | 29
76 b/util/alevt/vt903.out | 29
77 b/util/alevt/vt904.out | 29
78 b/util/alevt/vt905.out | 29
79 b/util/alevt/vt906.out | 29
80 b/util/alevt/vt907.out | 29
81 b/util/alevt/vt908.out | 29
82 b/util/alevt/vt909.out | 29
83 b/util/alevt/vt910.out | 29
84 b/util/alevt/vt911.out | 29
85 b/util/alevt/vt912.out | 29
86 b/util/alevt/vt913.out | 29
87 b/util/alevt/vt914.out | 29
88 b/util/alevt/vt915.out | 29
89 b/util/alevt/vtxt-iso8859-7.bdf | 5768 ++++++++++++++++++++++++++++
90 b/util/alevt/vtxt-koi8.bdf | 5906 +++++++++++++++++++++++++++++
91 b/util/alevt/vtxt-latin-1.bdf | 5906 +++++++++++++++++++++++++++++
92 b/util/alevt/vtxt-latin-2.bdf | 5906 +++++++++++++++++++++++++++++
93 b/util/alevt/xio.c | 1156 +++++
94 b/util/alevt/xio.h | 80
95 b/util/gotox/Makefile | 17
96 b/util/gotox/gotox.c | 145
97 b/util/scan/dvb-c/at-Kabel-Braunau | 26
98 b/util/scan/dvb-c/at-Kabelsignal | 38
99 b/util/scan/dvb-c/de-komro-Rosenheim | 30
100 b/util/scan/dvb-c/fi-Oulu | 19
101 b/util/scan/dvb-c/hu-Digikabel | 21
102 b/util/scan/dvb-c/nl-REKAM-CAIW_Gouda | 4
103 b/util/scan/dvb-s/Agila2_C-146.0E | 60
104 b/util/scan/dvb-s/Apstar6_C-134.0E | 15
105 b/util/scan/dvb-s/AsiaSat2_C-100.5E | 51
106 b/util/scan/dvb-s/Asiasat4_C-122.2E | 27
107 b/util/scan/dvb-s/Astra-23.5E | 66
108 b/util/scan/dvb-s/Atlantic-Bird-3-5.0W | 4
109 b/util/scan/dvb-s/Chinastar1_C-87.5E | 15
110 b/util/scan/dvb-s/Insat2E_C-83.0E | 93
111 b/util/scan/dvb-s/Insat3A_C-93.5E | 66
112 b/util/scan/dvb-s/Insat4A_C-83.0E | 93
113 b/util/scan/dvb-s/Insat4B_C-93.5E | 51
114 b/util/scan/dvb-s/Intelsat8_C-166.0E | 39
115 b/util/scan/dvb-s/JCSat3A_C-128.0E | 18
116 b/util/scan/dvb-s/Measat3_C-91.5E | 54
117 b/util/scan/dvb-s/PalapaC2_C-113.0E | 39
118 b/util/scan/dvb-s/ST1_C-80.0E | 27
119 b/util/scan/dvb-s/Telkom1_C-108.0E | 48
120 b/util/scan/dvb-s/Telstar10_C-76.5E | 63
121 b/util/scan/dvb-s/Telstar18_C-138.0E | 18
122 b/util/scan/dvb-s/Thaicom1A_C-120.0E | 24
123 b/util/scan/dvb-s/Thaicom2_C-78.5E | 33
124 b/util/scan/dvb-s/Thaicom5_C-78.5E | 69
125 b/util/scan/dvb-s/Vinasat1_C-132.0E | 12
126 b/util/scan/dvb-t/au-AdelaideFoothills | 12
127 b/util/scan/dvb-t/au-Ballarat | 12
128 b/util/scan/dvb-t/au-Bendigo | 41
129 b/util/scan/dvb-t/au-Devonport | 19
130 b/util/scan/dvb-t/au-FraserCoast-Bundaberg | 12
131 b/util/scan/dvb-t/au-Goulburn-Rocky_Hill | 19
132 b/util/scan/dvb-t/au-Hervey_Bay-Ghost_Hill | 16
133 b/util/scan/dvb-t/au-Sutherland | 20
134 b/util/scan/dvb-t/be-All | 8
135 b/util/scan/dvb-t/ch-Geneva | 16
136 b/util/scan/dvb-t/cz-All | 41
137 b/util/scan/dvb-t/es-BaixoMinho | 16
138 b/util/scan/dvb-t/es-Granada | 8
139 b/util/scan/dvb-t/es-Pamplona | 9
140 b/util/scan/dvb-t/es-SC_Tenerife | 18
141 b/util/scan/dvb-t/es-Vitoria-Gasteiz | 8
142 b/util/scan/dvb-t/fi-Smedsbole | 13
143 b/util/scan/dvb-t/fr-Lille-Bouvigny | 26
144 b/util/scan/dvb-t/fr-Rochefort-sur-mer | 14
145 b/util/scan/dvb-t/hr-All | 30
146 b/util/scan/dvb-t/hu-Budapest | 8
147 b/util/scan/dvb-t/hu-Debrecen | 8
148 b/util/scan/dvb-t/hu-Gyor | 8
149 b/util/scan/dvb-t/hu-Kabhegy | 8
150 b/util/scan/dvb-t/hu-Kekes | 8
151 b/util/scan/dvb-t/hu-Kiskoros | 8
152 b/util/scan/dvb-t/hu-Nagykanizsa-Ujudvar | 8
153 b/util/scan/dvb-t/hu-Pecs | 8
154 b/util/scan/dvb-t/hu-Szeged | 8
155 b/util/scan/dvb-t/hu-Szentes | 8
156 b/util/scan/dvb-t/hu-Tokaj | 8
157 b/util/scan/dvb-t/hu-Uzd | 8
158 b/util/scan/dvb-t/hu-Vasvar-Hegyhatsal | 8
159 b/util/scan/dvb-t/il-All | 5
160 b/util/scan/dvb-t/ir-Tehran | 4
161 b/util/scan/dvb-t/it-Montevergine | 18
162 b/util/scan/dvb-t/lt-All | 39
163 b/util/scan/dvb-t/ro-Bucharest | 5
164 b/util/scan/dvb-t/si-Ljubljana | 5
165 b/util/scan/dvb-t/sk-Bardejov | 11
166 b/util/scan/dvb-t/sk-Michalovce | 11
167 b/util/scan/dvb-t/sk-Namestovo | 11
168 b/util/scan/dvb-t/sk-Poprad | 11
169 b/util/scan/dvb-t/sk-RimavskaSobota | 11
170 b/util/scan/dvb-t/sk-Trencin | 12
171 b/util/scan/dvb-t/sk-VelkyKrtis | 11
172 b/util/scan/dvb-t/sk-Zilina | 11
173 b/util/scan/dvb-t/vn-Thaibinh | 5
174 b/util/szap/util.c | 126
175 b/util/szap/util.h | 24
176 lib/libdvben50221/en50221_stdcam_llci.c | 19
177 lib/libdvbsec/dvbsec_api.c | 17
180 test/test_video.c | 53
182 util/femon/femon.c | 57
183 util/scan/dvb-c/at-KarrerNet | 18
184 util/scan/dvb-c/de-Primacom | 5
185 util/scan/dvb-c/de-Unitymedia | 17
186 util/scan/dvb-c/fi-Turku | 8
187 util/scan/dvb-c/se-comhem | 22
188 util/scan/dvb-s/AsiaSat3S_C-105.5E | 164
189 util/scan/dvb-t/au-Adelaide | 2
190 util/scan/dvb-t/au-Brisbane | 2
191 util/scan/dvb-t/au-SunshineCoast | 2
192 util/scan/dvb-t/ch-All | 1
193 util/scan/dvb-t/de-Baden-Wuerttemberg | 23
194 util/scan/dvb-t/de-Bayern | 56
195 util/scan/dvb-t/de-Berlin | 13
196 util/scan/dvb-t/de-Brandenburg | 4
197 util/scan/dvb-t/de-Bremen | 8
198 util/scan/dvb-t/de-Hamburg | 20
199 util/scan/dvb-t/de-Hessen | 26
200 util/scan/dvb-t/de-Mecklenburg-Vorpommern | 10
201 util/scan/dvb-t/de-Niedersachsen | 33
202 util/scan/dvb-t/de-Nordrhein-Westfalen | 16
203 util/scan/dvb-t/de-Rheinland-Pfalz | 10
204 util/scan/dvb-t/de-Saarland | 6
205 util/scan/dvb-t/de-Sachsen | 14
206 util/scan/dvb-t/de-Sachsen-Anhalt | 8
207 util/scan/dvb-t/de-Schleswig-Holstein | 26
208 util/scan/dvb-t/de-Thueringen | 8
209 util/scan/dvb-t/dk-All | 16
210 util/scan/dvb-t/es-Albacete | 20
211 util/scan/dvb-t/es-Alfabia | 3
212 util/scan/dvb-t/es-Collserola | 16
213 util/scan/dvb-t/es-Las_Palmas | 22
214 util/scan/dvb-t/es-Sevilla | 17
215 util/scan/dvb-t/fr-Boulogne | 17
216 util/scan/dvb-t/fr-Brest | 10
217 util/scan/dvb-t/fr-Chambery | 42
218 util/scan/dvb-t/fr-Laval | 12
219 util/scan/dvb-t/fr-Montbeliard | 28
220 util/scan/dvb-t/fr-Nantes | 13
221 util/scan/dvb-t/fr-Poitiers | 12
222 util/scan/dvb-t/fr-Reims | 18
223 util/scan/dvb-t/fr-Tours | 32
224 util/scan/dvb-t/gr-Athens | 2
225 util/scan/dvb-t/is-Reykjavik | 42
226 util/scan/dvb-t/it-Milano | 38
227 util/scan/dvb-t/se-Horby_Sallerup | 2
228 util/scan/dvb-t/se-Ornskoldsvik_As | 1
229 util/scan/dvb-t/se-Skelleftea | 1
230 util/scan/dvb-t/sk-BanskaBystrica | 9
231 util/scan/dvb-t/sk-Bratislava | 9
232 util/scan/dvb-t/sk-Kosice | 9
233 util/scan/dvb-t/uk-Aberdare | 17
234 util/scan/dvb-t/uk-Redruth | 13
235 util/scan/dvb-t/uk-StocklandHill | 15
236 util/scan/dvb-t/uk-Storeton | 15
237 util/scan/dvb-t/uk-WinterHill | 18
238 util/scan/scan.c | 11
239 util/szap/Makefile | 2
240 util/szap/azap.c | 27
241 util/szap/czap.c | 91
242 util/szap/szap.c | 97
243 util/szap/tzap.c | 73
244 232 files changed, 34875 insertions(+), 778 deletions(-)
245 diff -r af23d23c278b Make.rules
246 --- a/Make.rules Sat Jun 20 16:47:55 2009 +0200
247 +++ b/Make.rules Tue Dec 21 12:13:28 2010 +0100
249 sharedir ?= $(prefix)/share
252 -DESTDIR = $(DESTDIR)/
253 +DESTDIR := $(DESTDIR)/
257 diff -r af23d23c278b README
258 --- a/README Sat Jun 20 16:47:55 2009 +0200
259 +++ b/README Tue Dec 21 12:13:28 2010 +0100
261 util/dvbtraffic - Monitor traffic on a digital device.
262 util/femon - Monitor the tuning on a digital TV device.
263 util/zap - *Just* tunes a digital device - really intended for developers.
264 +util/gotox - Simple Rotor control utility
265 +util/alevt - Teletext capture and display utility
267 Hardware Specific Utilities:
268 util/av7110_loadkeys - Load remote keys into an av7110 based card
270 files as they are contained in the linuxtv-dvb-1.? release
271 and the 2.6.x Linux kernel.
273 +AleVT is not compiled by the main Makefile, because it depends on external
274 +libraries which might not be available in your system (see util/alevt/README for
275 +details). If you have the required libraries, to compile AleVT go to util/alevt/
278 Johannes Stezenbach <js@convergence.de>
279 Andrew de Quincey <adq_dvb@lidskialf.net>
280 diff -r af23d23c278b lib/libdvben50221/en50221_stdcam_llci.c
281 --- a/lib/libdvben50221/en50221_stdcam_llci.c Sat Jun 20 16:47:55 2009 +0200
282 +++ b/lib/libdvben50221/en50221_stdcam_llci.c Tue Dec 21 12:13:28 2010 +0100
283 @@ -374,14 +374,21 @@
284 } else if (resource_id == EN50221_APP_MMI_RESOURCEID) {
285 llci->stdcam.mmi_session_number = session_number;
289 + case S_SCALLBACK_REASON_CLOSE:
290 + if (resource_id == EN50221_APP_MMI_RESOURCEID) {
291 + llci->stdcam.mmi_session_number = -1;
292 + } else if (resource_id == EN50221_APP_DATETIME_RESOURCEID) {
293 + llci->datetime_session_number = -1;
294 + } else if (resource_id == EN50221_APP_AI_RESOURCEID) {
295 + llci->stdcam.ai_session_number = -1;
296 + } else if (resource_id == EN50221_APP_CA_RESOURCEID) {
297 + llci->stdcam.ca_session_number = -1;
298 + } else if (resource_id == EN50221_APP_MMI_RESOURCEID) {
299 + llci->stdcam.mmi_session_number = -1;
302 - case S_SCALLBACK_REASON_CLOSE:
303 - if (resource_id == EN50221_APP_MMI_RESOURCEID) {
304 - llci->stdcam.mmi_session_number = -1;
311 diff -r af23d23c278b lib/libdvbsec/dvbsec_api.c
312 --- a/lib/libdvbsec/dvbsec_api.c Sat Jun 20 16:47:55 2009 +0200
313 +++ b/lib/libdvbsec/dvbsec_api.c Tue Dec 21 12:13:28 2010 +0100
314 @@ -537,19 +537,12 @@
317 // generate the command
318 - if (integer < -256) {
320 - } else if (integer < 0) {
321 - integer = -integer;
323 - } else if (integer < 256) {
325 - } else if (integer < 512) {
330 + if (integer < 0.0) {
331 + data[3] = 0xD0; // West is a negative angle value
332 + } else if (integer >= 0.0) {
333 + data[3] = 0xE0; // East is a positive angle value
335 + integer = abs(integer);
336 data[3] |= ((integer / 16) & 0x0f);
337 integer = integer % 16;
338 data[4] |= ((integer & 0x0f) << 4) | fraction;
339 diff -r af23d23c278b test/Makefile
340 --- a/test/Makefile Sat Jun 20 16:47:55 2009 +0200
341 +++ b/test/Makefile Tue Dec 21 12:13:28 2010 +0100
350 diff -r af23d23c278b test/README
351 --- a/test/README Sat Jun 20 16:47:55 2009 +0200
352 +++ b/test/README Tue Dec 21 12:13:28 2010 +0100
358 +test_video : Play video-only file on /dev/dvb/adapter0/video0
359 diff -r af23d23c278b test/test_video.c
360 --- a/test/test_video.c Sat Jun 20 16:47:55 2009 +0200
361 +++ b/test/test_video.c Tue Dec 21 12:13:28 2010 +0100
364 #include <sys/ioctl.h>
368 #include <sys/types.h>
369 #include <sys/stat.h>
373 #include <linux/dvb/dmx.h>
374 -#include <linux/dvb/frontend_old.h>
375 -#include <linux/dvb/sec.h>
376 +#include <linux/dvb/frontend.h>
377 #include <linux/dvb/video.h>
378 #include <sys/poll.h>
384 -int videoSetBlank(int fd, boolean state)
385 +int videoSetBlank(int fd, int state)
389 @@ -138,72 +138,72 @@
391 int videoGetStatus(int fd)
393 - struct video_status stat;
394 + struct video_status vstat;
397 - if ((ans = ioctl(fd,VIDEO_GET_STATUS, &stat)) < 0) {
398 + if ((ans = ioctl(fd,VIDEO_GET_STATUS, &vstat)) < 0) {
399 perror("VIDEO GET STATUS: ");
403 printf("Video Status:\n");
404 printf(" Blank State : %s\n",
405 - (stat.video_blank ? "BLANK" : "STILL"));
406 + (vstat.video_blank ? "BLANK" : "STILL"));
407 printf(" Play State : ");
408 - switch ((int)stat.play_state){
409 + switch ((int)vstat.play_state){
411 - printf("STOPPED (%d)\n",stat.play_state);
412 + printf("STOPPED (%d)\n",vstat.play_state);
415 - printf("PLAYING (%d)\n",stat.play_state);
416 + printf("PLAYING (%d)\n",vstat.play_state);
419 - printf("FREEZED (%d)\n",stat.play_state);
420 + printf("FREEZED (%d)\n",vstat.play_state);
423 - printf("unknown (%d)\n",stat.play_state);
424 + printf("unknown (%d)\n",vstat.play_state);
428 printf(" Stream Source : ");
429 - switch((int)stat.stream_source){
430 + switch((int)vstat.stream_source){
431 case VIDEO_SOURCE_DEMUX:
432 - printf("DEMUX (%d)\n",stat.stream_source);
433 + printf("DEMUX (%d)\n",vstat.stream_source);
435 case VIDEO_SOURCE_MEMORY:
436 - printf("MEMORY (%d)\n",stat.stream_source);
437 + printf("MEMORY (%d)\n",vstat.stream_source);
440 - printf("unknown (%d)\n",stat.stream_source);
441 + printf("unknown (%d)\n",vstat.stream_source);
445 printf(" Format (Aspect Ratio): ");
446 - switch((int)stat.video_format){
447 + switch((int)vstat.video_format){
448 case VIDEO_FORMAT_4_3:
449 - printf("4:3 (%d)\n",stat.video_format);
450 + printf("4:3 (%d)\n",vstat.video_format);
452 case VIDEO_FORMAT_16_9:
453 - printf("16:9 (%d)\n",stat.video_format);
454 + printf("16:9 (%d)\n",vstat.video_format);
457 - printf("unknown (%d)\n",stat.video_format);
458 + printf("unknown (%d)\n",vstat.video_format);
462 printf(" Display Format : ");
463 - switch((int)stat.display_format){
464 + switch((int)vstat.display_format){
466 - printf("Pan&Scan (%d)\n",stat.display_format);
467 + printf("Pan&Scan (%d)\n",vstat.display_format);
469 case VIDEO_LETTER_BOX:
470 - printf("Letterbox (%d)\n",stat.display_format);
471 + printf("Letterbox (%d)\n",vstat.display_format);
473 case VIDEO_CENTER_CUT_OUT:
474 - printf("Center cutout (%d)\n",stat.display_format);
475 + printf("Center cutout (%d)\n",vstat.display_format);
478 - printf("unknown (%d)\n",stat.display_format);
479 + printf("unknown (%d)\n",vstat.display_format);
485 struct pollfd pfd[NFD];
489 pfd[0].fd = STDIN_FILENO;
490 pfd[0].events = POLLIN;
495 -main(int argc, char **argv)
496 +int main(int argc, char **argv)
501 perror("File open:");
504 - if ((fd = open("/dev/ost/video1",O_RDWR|O_NONBLOCK)) < 0){
505 + if ((fd = open("/dev/dvb/adapter0/video0",O_RDWR|O_NONBLOCK)) < 0){
506 perror("VIDEO DEVICE: ");
509 diff -r af23d23c278b util/Makefile
510 --- a/util/Makefile Sat Jun 20 16:47:55 2009 +0200
511 +++ b/util/Makefile Tue Dec 21 12:13:28 2010 +0100
514 $(MAKE) -C ttusb_dec_reset $@
516 + $(MAKE) -C gotox $@
518 diff -r af23d23c278b util/alevt/COPYRIGHT
519 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
520 +++ b/util/alevt/COPYRIGHT Tue Dec 21 12:13:28 2010 +0100
522 +This message applies to all files within the archive:
524 + Copyright (C) 1998,1999,2000 Edgar Toernig (froese@gmx.de)
525 + All rights reserved.
527 + This program is free software; you can redistribute it and/or modify
528 + it under the terms of the GNU General Public License Version 2 as
529 + published by the Free Software Foundation.
531 + This program is distributed in the hope that it will be useful,
532 + but WITHOUT ANY WARRANTY; without even the implied warranty of
533 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
534 + GNU General Public License for more details.
537 +And here's the GNU GPL V2:
539 + GNU GENERAL PUBLIC LICENSE
540 + Version 2, June 1991
542 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
543 + 675 Mass Ave, Cambridge, MA 02139, USA
544 + Everyone is permitted to copy and distribute verbatim copies
545 + of this license document, but changing it is not allowed.
549 + The licenses for most software are designed to take away your
550 +freedom to share and change it. By contrast, the GNU General Public
551 +License is intended to guarantee your freedom to share and change free
552 +software--to make sure the software is free for all its users. This
553 +General Public License applies to most of the Free Software
554 +Foundation's software and to any other program whose authors commit to
555 +using it. (Some other Free Software Foundation software is covered by
556 +the GNU Library General Public License instead.) You can apply it to
559 + When we speak of free software, we are referring to freedom, not
560 +price. Our General Public Licenses are designed to make sure that you
561 +have the freedom to distribute copies of free software (and charge for
562 +this service if you wish), that you receive source code or can get it
563 +if you want it, that you can change the software or use pieces of it
564 +in new free programs; and that you know you can do these things.
566 + To protect your rights, we need to make restrictions that forbid
567 +anyone to deny you these rights or to ask you to surrender the rights.
568 +These restrictions translate to certain responsibilities for you if you
569 +distribute copies of the software, or if you modify it.
571 + For example, if you distribute copies of such a program, whether
572 +gratis or for a fee, you must give the recipients all the rights that
573 +you have. You must make sure that they, too, receive or can get the
574 +source code. And you must show them these terms so they know their
577 + We protect your rights with two steps: (1) copyright the software, and
578 +(2) offer you this license which gives you legal permission to copy,
579 +distribute and/or modify the software.
581 + Also, for each author's protection and ours, we want to make certain
582 +that everyone understands that there is no warranty for this free
583 +software. If the software is modified by someone else and passed on, we
584 +want its recipients to know that what they have is not the original, so
585 +that any problems introduced by others will not reflect on the original
586 +authors' reputations.
588 + Finally, any free program is threatened constantly by software
589 +patents. We wish to avoid the danger that redistributors of a free
590 +program will individually obtain patent licenses, in effect making the
591 +program proprietary. To prevent this, we have made it clear that any
592 +patent must be licensed for everyone's free use or not licensed at all.
594 + The precise terms and conditions for copying, distribution and
595 +modification follow.
597 + GNU GENERAL PUBLIC LICENSE
598 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
600 + 0. This License applies to any program or other work which contains
601 +a notice placed by the copyright holder saying it may be distributed
602 +under the terms of this General Public License. The "Program", below,
603 +refers to any such program or work, and a "work based on the Program"
604 +means either the Program or any derivative work under copyright law:
605 +that is to say, a work containing the Program or a portion of it,
606 +either verbatim or with modifications and/or translated into another
607 +language. (Hereinafter, translation is included without limitation in
608 +the term "modification".) Each licensee is addressed as "you".
610 +Activities other than copying, distribution and modification are not
611 +covered by this License; they are outside its scope. The act of
612 +running the Program is not restricted, and the output from the Program
613 +is covered only if its contents constitute a work based on the
614 +Program (independent of having been made by running the Program).
615 +Whether that is true depends on what the Program does.
617 + 1. You may copy and distribute verbatim copies of the Program's
618 +source code as you receive it, in any medium, provided that you
619 +conspicuously and appropriately publish on each copy an appropriate
620 +copyright notice and disclaimer of warranty; keep intact all the
621 +notices that refer to this License and to the absence of any warranty;
622 +and give any other recipients of the Program a copy of this License
623 +along with the Program.
625 +You may charge a fee for the physical act of transferring a copy, and
626 +you may at your option offer warranty protection in exchange for a fee.
628 + 2. You may modify your copy or copies of the Program or any portion
629 +of it, thus forming a work based on the Program, and copy and
630 +distribute such modifications or work under the terms of Section 1
631 +above, provided that you also meet all of these conditions:
633 + a) You must cause the modified files to carry prominent notices
634 + stating that you changed the files and the date of any change.
636 + b) You must cause any work that you distribute or publish, that in
637 + whole or in part contains or is derived from the Program or any
638 + part thereof, to be licensed as a whole at no charge to all third
639 + parties under the terms of this License.
641 + c) If the modified program normally reads commands interactively
642 + when run, you must cause it, when started running for such
643 + interactive use in the most ordinary way, to print or display an
644 + announcement including an appropriate copyright notice and a
645 + notice that there is no warranty (or else, saying that you provide
646 + a warranty) and that users may redistribute the program under
647 + these conditions, and telling the user how to view a copy of this
648 + License. (Exception: if the Program itself is interactive but
649 + does not normally print such an announcement, your work based on
650 + the Program is not required to print an announcement.)
652 +These requirements apply to the modified work as a whole. If
653 +identifiable sections of that work are not derived from the Program,
654 +and can be reasonably considered independent and separate works in
655 +themselves, then this License, and its terms, do not apply to those
656 +sections when you distribute them as separate works. But when you
657 +distribute the same sections as part of a whole which is a work based
658 +on the Program, the distribution of the whole must be on the terms of
659 +this License, whose permissions for other licensees extend to the
660 +entire whole, and thus to each and every part regardless of who wrote it.
662 +Thus, it is not the intent of this section to claim rights or contest
663 +your rights to work written entirely by you; rather, the intent is to
664 +exercise the right to control the distribution of derivative or
665 +collective works based on the Program.
667 +In addition, mere aggregation of another work not based on the Program
668 +with the Program (or with a work based on the Program) on a volume of
669 +a storage or distribution medium does not bring the other work under
670 +the scope of this License.
672 + 3. You may copy and distribute the Program (or a work based on it,
673 +under Section 2) in object code or executable form under the terms of
674 +Sections 1 and 2 above provided that you also do one of the following:
676 + a) Accompany it with the complete corresponding machine-readable
677 + source code, which must be distributed under the terms of Sections
678 + 1 and 2 above on a medium customarily used for software interchange; or,
680 + b) Accompany it with a written offer, valid for at least three
681 + years, to give any third party, for a charge no more than your
682 + cost of physically performing source distribution, a complete
683 + machine-readable copy of the corresponding source code, to be
684 + distributed under the terms of Sections 1 and 2 above on a medium
685 + customarily used for software interchange; or,
687 + c) Accompany it with the information you received as to the offer
688 + to distribute corresponding source code. (This alternative is
689 + allowed only for noncommercial distribution and only if you
690 + received the program in object code or executable form with such
691 + an offer, in accord with Subsection b above.)
693 +The source code for a work means the preferred form of the work for
694 +making modifications to it. For an executable work, complete source
695 +code means all the source code for all modules it contains, plus any
696 +associated interface definition files, plus the scripts used to
697 +control compilation and installation of the executable. However, as a
698 +special exception, the source code distributed need not include
699 +anything that is normally distributed (in either source or binary
700 +form) with the major components (compiler, kernel, and so on) of the
701 +operating system on which the executable runs, unless that component
702 +itself accompanies the executable.
704 +If distribution of executable or object code is made by offering
705 +access to copy from a designated place, then offering equivalent
706 +access to copy the source code from the same place counts as
707 +distribution of the source code, even though third parties are not
708 +compelled to copy the source along with the object code.
710 + 4. You may not copy, modify, sublicense, or distribute the Program
711 +except as expressly provided under this License. Any attempt
712 +otherwise to copy, modify, sublicense or distribute the Program is
713 +void, and will automatically terminate your rights under this License.
714 +However, parties who have received copies, or rights, from you under
715 +this License will not have their licenses terminated so long as such
716 +parties remain in full compliance.
718 + 5. You are not required to accept this License, since you have not
719 +signed it. However, nothing else grants you permission to modify or
720 +distribute the Program or its derivative works. These actions are
721 +prohibited by law if you do not accept this License. Therefore, by
722 +modifying or distributing the Program (or any work based on the
723 +Program), you indicate your acceptance of this License to do so, and
724 +all its terms and conditions for copying, distributing or modifying
725 +the Program or works based on it.
727 + 6. Each time you redistribute the Program (or any work based on the
728 +Program), the recipient automatically receives a license from the
729 +original licensor to copy, distribute or modify the Program subject to
730 +these terms and conditions. You may not impose any further
731 +restrictions on the recipients' exercise of the rights granted herein.
732 +You are not responsible for enforcing compliance by third parties to
735 + 7. If, as a consequence of a court judgment or allegation of patent
736 +infringement or for any other reason (not limited to patent issues),
737 +conditions are imposed on you (whether by court order, agreement or
738 +otherwise) that contradict the conditions of this License, they do not
739 +excuse you from the conditions of this License. If you cannot
740 +distribute so as to satisfy simultaneously your obligations under this
741 +License and any other pertinent obligations, then as a consequence you
742 +may not distribute the Program at all. For example, if a patent
743 +license would not permit royalty-free redistribution of the Program by
744 +all those who receive copies directly or indirectly through you, then
745 +the only way you could satisfy both it and this License would be to
746 +refrain entirely from distribution of the Program.
748 +If any portion of this section is held invalid or unenforceable under
749 +any particular circumstance, the balance of the section is intended to
750 +apply and the section as a whole is intended to apply in other
753 +It is not the purpose of this section to induce you to infringe any
754 +patents or other property right claims or to contest validity of any
755 +such claims; this section has the sole purpose of protecting the
756 +integrity of the free software distribution system, which is
757 +implemented by public license practices. Many people have made
758 +generous contributions to the wide range of software distributed
759 +through that system in reliance on consistent application of that
760 +system; it is up to the author/donor to decide if he or she is willing
761 +to distribute software through any other system and a licensee cannot
764 +This section is intended to make thoroughly clear what is believed to
765 +be a consequence of the rest of this License.
767 + 8. If the distribution and/or use of the Program is restricted in
768 +certain countries either by patents or by copyrighted interfaces, the
769 +original copyright holder who places the Program under this License
770 +may add an explicit geographical distribution limitation excluding
771 +those countries, so that distribution is permitted only in or among
772 +countries not thus excluded. In such case, this License incorporates
773 +the limitation as if written in the body of this License.
775 + 9. The Free Software Foundation may publish revised and/or new versions
776 +of the General Public License from time to time. Such new versions will
777 +be similar in spirit to the present version, but may differ in detail to
778 +address new problems or concerns.
780 +Each version is given a distinguishing version number. If the Program
781 +specifies a version number of this License which applies to it and "any
782 +later version", you have the option of following the terms and conditions
783 +either of that version or of any later version published by the Free
784 +Software Foundation. If the Program does not specify a version number of
785 +this License, you may choose any version ever published by the Free Software
788 + 10. If you wish to incorporate parts of the Program into other free
789 +programs whose distribution conditions are different, write to the author
790 +to ask for permission. For software which is copyrighted by the Free
791 +Software Foundation, write to the Free Software Foundation; we sometimes
792 +make exceptions for this. Our decision will be guided by the two goals
793 +of preserving the free status of all derivatives of our free software and
794 +of promoting the sharing and reuse of software generally.
798 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
799 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
800 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
801 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
802 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
803 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
804 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
805 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
806 +REPAIR OR CORRECTION.
808 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
809 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
810 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
811 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
812 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
813 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
814 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
815 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
816 +POSSIBILITY OF SUCH DAMAGES.
818 + END OF TERMS AND CONDITIONS
819 diff -r af23d23c278b util/alevt/ChangeLog
820 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
821 +++ b/util/alevt/ChangeLog Tue Dec 21 12:13:28 2010 +0100
823 +Thu Feb 11 22:05:00 MET 2010 (1.7.0)
825 + - redesigned version:
826 + - outfile, new starting methods, libzvbi implementation
827 + - lots of bug fixes, all patches available in the Internet applied
828 + - extensive code cleanup
830 +Mon Dec 3 03:11:07 MET 2007 (1.6.2)
832 + - compilation fixes for newer gcc
833 + - makefile tweaks (man vs share/man, /usr/X11R6 vs /usr, etc)
834 + - default device changed to /dev/vbi0
835 + - adapt to current v4l2 api
836 + - some minor fixes collected during the past years
838 + This is a build-time update to conform to newer compilers and
839 + system environments. If you have a running AleVT there's no
840 + reason to update. The only real fix is in the html-exporter
841 + which was producing broken html (missing double-quotes).
843 +Thu Jan 23 01:53:10 MET 2003
845 + - Fixed a bug in contrib/cap-all.c (fdset_init before vbi_open)
846 + - Expaned cap-all.c to show how to save in two formats simultaneously.
848 +Tue Aug 20 05:22:16 MEST 2002 (1.6.1)
850 + - Removed the bttv-warning from the help pages ;-)
852 +Mon Jul 23 18:34:32 MEST 2001
854 + - Fixed bug in ui.c - found by <pawel@sakowski.eu.org>.
855 + - When clicking on page numbers accept sub-page numbers too.
857 +Sat Dec 23 15:12:11 MET 2000
859 + - Fixed 'double height last line' bug in export.c reported by
860 + <Matthias.Kleinmann@urz.uni-heidelberg.de>
862 +Thu Oct 12 02:19:31 MEST 2000
864 + - The fix was wrong. Removed it.
866 +Wed Oct 11 19:41:38 MEST 2000 (1.6.0)
868 + - Some documentation tweaks.
869 + - Release. Made it 1.6 because of V4l2 API.
871 +Thu Sep 21 21:07:12 MEST 2000
873 + - Removed old bttv-only decoder. Only the v4l2-based stays.
874 + If the device does not support v4l2, default parameters
875 + appropriate for the bttv-driver are taken.
876 + - Subpage cycling (up/down and 2nd wheel) stays in the current
879 +Sat Sep 16 23:52:12 MEST 2000
881 + - Experimental v4l2 interface added.
882 + - Finetune defaults to 1 now. Works best for me. Tell me
883 + if you don't like it.
884 + - Russian patch still not added :-/
885 + - Fixed the bug in xio.c that Ben Smithurst
886 + <ben@scientia.demon.co.uk> found.
887 + - Added the dual-wheel-mouse patch from Holger Fitzner.
889 +Tue May 30 03:09:24 MEST 2000
891 + - As Matto Fransen <matto@matto.nl> reported: the ; after  
892 + in exp-html is missing. fixed that.
894 +Tue May 9 20:21:52 MEST 2000
896 + - Removed the -oldbttv/-newbttv options. If your driver has
897 + a buffer size different from that in the current bttv you
898 + either have to support the VBISIZE ioctl or change the source.
899 + (Tried to implement an autodetect by non-blocking reads but
900 + that confuses the driver that much that it no longers gives
902 + - Added a compression option to the png export filter and
903 + changed the default compression level to the lib's default.
904 + The prev default of 9 was way to slow.
906 +Wed May 3 19:18:55 MEST 2000
908 + - Added a smaller font. Made out of the neep9 font from
909 + the really great jmk-fonts (http://www.pobox.com/~jmknoble).
911 +Sat Apr 29 02:36:41 MEST 2000
913 + - Fixed SEGV in export.c:adjust.
914 + - Fixed a possible buffer overrun in exp-txt.c
916 +Thu Nov 4 21:18:52 MET 1999 (1.5.1)
918 + - Added os.h. That way alevt compiles right out of the
919 + box on all BSD systems (I hope *g*).
920 + - Fixed the DST bug in alevt-date.
921 + - Put vtwiz.pl in contrib, a perl/tk/set-tv script to
922 + launch alevt written by Joern Borgert.
924 +Tue Oct 26 23:55:09 MEST 1999 (1.5.1-pre1)
926 + - Added timeout option to alevt-cap.
927 + - Use install instead of cp in the Makefile.
928 + - Added -I/usr/local/include and -L/usr/local/lib
930 + - Changed #ifdef FREEBSD to #ifdef BSD.
931 + - exchanged contrib/paul-export.patch with
932 + paul.fmt_page.c (a replacement for export.c:fmt_page())
933 + and paul.fmt_page.patch (the same in form of a
935 + - Some doc corrections.
937 +Thu Oct 14 02:49:48 MEST 1999
939 + - Added FREEBSD patches.
941 +Fri Oct 8 23:36:45 MEST 1999 (1.5.0)
943 + - Updated the documentation.
945 + So, what's new since 1.4.9 (nearly 4 months ago)?
946 + Two major things: full latin-2 support and export
947 + filters for alevt-cap and alevt itself.
949 + For the latin-2 support page enhancement packets
950 + have to be decoded and some latin-1 pages may
951 + benefit from that, too. Note: if you select
952 + latin-2 everything is latin-2, even cut'n paste.
953 + (new cmdline option -charset latin-1|2)
955 + The export filters allow saving pages in different
956 + formats. At the moment there's ascii (with and with-
957 + out color), html, png, and ppm. The png filter
958 + requires libpng. If you don't have it (or don't want
959 + png support) just remove the WITH_PNG from the
960 + Makefile. To save the currently displayed page just
961 + press 's'. See alevt-cap(1) for the format string.
963 + Preview: 1.5.1 will have the FreeBSD patches and
964 + any bug fixes. (But not more *g*).
966 +Fri Oct 8 02:06:35 MEST 1999 (1.5.0-pre4)
968 + Finally I could get away from my Playstation and
969 + work a little bit on alevt *g*
971 + - Tried to change alevt-date with freebsd patches from
972 + Thomas Runge <runge@rostock.zgdv.de>. They do not
973 + have the timezone and daylight variables. But I do
974 + not have tm_gmtoff. So it's commented out for the
976 + - Made font.[ch] so that only one copy of the fonts is
977 + in the executable when including export modules
978 + (exp-gfx.c uses them). Had to tweak the makefile.
979 + - Added 's' for saving pages to files. Prompts for
980 + a format string and a filename and saves the
981 + currently displayed page.
982 + (Formerly, 's' and 'S' were aliases for '/' and '?'
984 + - Found a bug in export.c regarding double height lines.
985 + - Added a patch to the contrib dir to pass the URL you
986 + click on to netscape.
988 + The documentation updates are still missing. That's
989 + the last thing to do for 1.5.0. But that's so boring...
991 +Fri Aug 20 21:28:18 MEST 1999
993 + Back from holidays and time for alevt...
995 + - Added html, png, and ppm export modules from Paul.
996 + - Fixed the return status for export_output.
997 + - Tweaked the makefile for libpng support.
998 + - Added the export howto to the contrib dir.
999 + - Added Paul's fmt_page routine to contrib as a patch
1001 + - Added "-format help" to list all output formats and
1004 + Still to do: update man page of alevt-cap, add export
1005 + to alevt, add erc to alevt-cap.
1007 + Oh, btw, alevt is running on FreeBSD with the bt848
1008 + driver from Roger Hardiman <roger@cs.strath.ac.uk> *g*.
1009 + I wonder if it's possible to port his driver to linux.
1010 + Maybe it runs better then bttv... (I still get reports
1011 + with stuck xawtvs ...)
1013 +Mon Jul 19 01:15:50 MEST 1999 (1.5.0-pre3)
1015 + - Added export modules. It's gotten much to complex.
1017 + A lot of things still to do: add other formats [Paul?],
1018 + add documentation, add format-help, add export to alevt,
1019 + add erc to alevt-cap, ...
1021 +Mon Jul 12 00:09:03 MEST 1999
1023 + - Added an incomplete 20x24 font to the contrib dir.
1025 +Tue Jun 29 00:46:03 MEST 1999 (1.5.0-pre2)
1027 + - Added lanugage tables from Radoslaw.
1028 + - Added new latin-2 font from Radoslaw.
1029 + - Fixed a bug with hold graphics. There's still one bug
1030 + on CNN's page 100 (has to do with set-after behaviour of
1031 + color select in hold graphics mode). The last line of the
1032 + earth should be blue-blue-green not blue-green-green.
1033 + AleVT always uses set-at behaviour. Afaik, this combination
1034 + (hold + set-after) is the only way to see the difference
1035 + between set-at and set-after. Set-after will blow up the
1036 + code so I will leave it as it is.
1037 + - vbi now collects all pkt26 and enhances the page before
1038 + it is passed on. Seem's to work.
1040 +Tue Jun 22 22:13:45 MEST 1999 (1.5.0-pre1)
1042 + - Fixed hamm24. And, it should be fast now *g*
1043 + - Moved the language conversion parts to lang.c
1044 + - Added additional lang_chars for use with the latin-2 charset.
1045 + - Added -charset latin-1/2 option.
1046 + - Added pkt x/26 decoding. ... and noticed, that these packets
1047 + are sent between line 0 and 1. FUCK. Now I have to save
1048 + all x/26 until the page is complete. But not today... :-(
1050 + Things are getting more and more uglier. The right thing
1051 + to do would be to make a big font with all possible chars
1052 + (including cyrillic, arabic, smoothed graphics, ...).
1053 + That would mean to make each char in vtp->data 16 bit.
1054 + And then add an attribute word for each char so that the
1055 + enhanced attributes work, too. Searching and cut & paste
1056 + would be more complicated... but the worst, the pages
1057 + will be much bigger (4 times larger). Really bad for
1058 + the cache and god knows for what else...
1059 + Is it worth all the trouble??? I don't need that!
1061 +Tue Jun 15 01:25:40 MEST 1999
1063 + - Changed .specs file again. I previously changed alevt.spec
1064 + instead of alevt.spec.in :-(
1066 +Mon Jun 14 23:45:48 MEST 1999 (1.4.9)
1068 + - Made a very simple capture program (alevt-cap). Just collects
1069 + the given pages and writes them to disk in ASCII.
1070 + I will only accept bug reports/fixes, no enhancement requests
1072 + (I can't believe it; I even wrote a man page...)
1073 + - Changed the subpage delimiter on the command line from '/' to '.'
1074 + The old one ('/') is still accepted. (Reason: alevt-cap uses
1075 + the page number as part of the filename and a / is inconvenient.
1076 + And I already wanted to let you enter subpages with the keypad
1077 + and the '.' would be a nice key for that.)
1078 + - Tweaked the .specs file... (Btw, alevt-date and alevt-cap should
1079 + not be installed in the X11 tree.)
1081 +Thu Jun 10 22:13:40 MEST 1999
1083 + - moved the hamming decoding and associated table to hamm.c
1084 + - played with pkt26 to support polish stations. not finished.
1086 +Tue Jun 8 21:00:42 MEST 1999
1088 + - Added -[no]bell option. And the 'b' key.
1089 + - Replaced all xio_bell calls with appropriate status messages.
1091 +Sat Jun 5 00:42:19 MEST 1999 (1.4.8)
1093 + - Shit. Just after the release I found a bug. The header line
1094 + isn't updated as it should :-( (Just affects parallel mode
1095 + transmission, so no new version, yet.)
1096 + - Created mailing list. Either go to http://alevt.listbot.com/
1097 + or write mail to alevt-subscribe@listbot.com.
1098 + - Added bttv-patch to the contrib dir for those who don't want
1099 + to wait for bttv-0.6.5.
1101 +Fri Jun 4 17:19:41 MEST 1999 (1.4.7)
1103 + - Added autodetection of VBIBUF_SIZE (only with newer bttv, 0.6.5).
1104 + - Forgot to close vbi_fd in vbi_close :-/
1105 + - Made ERC on by default. If the page has no errors it
1106 + costs nothing and if it has you'll turn it on anyway.
1107 + - Changed parameters of EV_HEADER.
1108 + - Removed XAWTV_HACKS.
1109 + - Updated some docu.
1110 + - Modified the contrib samples to reflect previous API changes.
1112 +Fri May 28 20:16:44 MEST 1999
1114 + - Added status messages.
1115 + - Added EV_TIMER event.
1116 + - Added channel change detection (only with newer bttv, 0.6.5).
1117 + Sends EV_RESET event. The XAWTV_HACKS can be removed *phww*.
1118 + Now the cache is automatically cleared if you switch to a
1119 + new channel. It even works with a SAT receiver connected to
1122 +Thu May 27 23:54:32 MEST 1999 (1.4.6 unofficial)
1124 + - Cache reset didn't reset npages and hi_subno.
1125 + - Added XAWTV_HACKS, that is: alevt scans for a window with
1126 + the _XAWTV_STATION property and registers for property changes.
1127 + Result: when switching channels in xawtv, the cache is cleared.
1128 + (This is just an ugly hack. Xawtv must already be running
1129 + when alevt is started. If you quit and restart xawtv, it no
1130 + longer works. There's no method to detect if the monitored
1131 + xawtv is really the one controlling our /dev/vbi, etc...)
1132 + Added on request of Paul Ortyl <ortylp@key.net.pl>.
1133 + - Added error reduction circuit. It's part of the cache.
1134 + Errors in a new page are replaced by characters/lines from
1135 + an already cached (older) page. May be toggled by pressing
1136 + 'e' (editor is now on 'E'). It's not enabled by default
1137 + because it takes some CPU time. Idea by Paul Ortyl.
1138 + - TODO: clean up. document new features. add status messages.
1140 +Sun May 23 19:13:07 MEST 1999 (1.4.5)
1142 + - New spec file from Karsten Hopp <karsten.hopp@delix.de>
1143 + - Changed it even further *g*
1144 + - Fixed a bug with graphics selection of double height lines.
1145 + - Documented the -oldbttv option in the man page. Now it's in
1146 + every page. This should finally halve the mails I get.
1147 + (For the other halve I have to write alevt-capture *g*)
1149 +Sat May 8 02:41:21 MEST 1999
1151 + - Ehhh, changed u32 typedef from unsigned long to unsigned int.
1152 + Same for s32. The Alpha's longs are 64 bits.
1153 + Thanks to Sdruddin Rejeb <rejeb@dpmail.epfl.ch>.
1154 + (There's something strange with this in the X libs. They are
1155 + sometimes very lazy about ints and longs. Someone with an
1156 + Alpha should check the cut & paste, both, text and graphics
1159 +Thu Apr 29 22:38:37 MEST 1999
1161 + - Updated contrib/t1.c
1162 + - Added ':' as a subpage delimiter for clicking (2:7 is the same as 2/7)
1164 +Mon Apr 19 19:40:09 MEST 1999
1166 + - Switched the scrolling direction of the wheel
1168 +Mon Mar 29 01:23:06 MEST 1999 (1.4.4)
1170 + - fixed DST bug in alevt-date
1171 + - added crude latin-2 support. 'make FONT=latin-2' should be enough.
1172 + (found the stuff on the website http://www.penguin.cz/~marvin/ of
1173 + Daniel Smolik <smolikdan@email.cz>. I don't know if he is the one
1174 + who made the font).
1176 +Wed Mar 17 20:53:59 MET 1999
1178 + - added timeout to alevt-date
1180 +Fri Feb 19 18:22:53 MET 1999 (1.4.3>
1182 + - Makefile changes.
1184 +Fri Jan 29 18:01:27 MET 1999
1186 + - fixed bug in dllist.h. dl_insert_first(h, dl_remove(n)) was only
1187 + working due to gcc implementation details.
1189 +Mon Jan 25 18:33:42 MET 1999 (1.4.2)
1191 + - fixed 'clear cache'. no longer removes the help pages.
1192 + - made next/prev key/button to skip missing pages.
1193 + - added support for wheeled mice. (I heard it's really cool *g*)
1194 + - problem with subpages > 0xff fixed.
1196 +Thu Jan 21 17:31:46 MET 1999 (1.4.1)
1198 + - added man pages from Thomas Schoepf <schoepf@usa.net>.
1199 + - added rpm-spec file from Mario Mikocevic <mozgy@times.hr>.
1200 + (looks a little bit odd, but I don't know very much about rpms)
1201 + - minor option fix in alevt-date (people are really using it!?!)
1203 +Tue Jan 5 03:50:08 MET 1999 (1.4.0)
1205 + - should be 1.3.10 but that gives problems with the help pages :-(
1206 + - fixed varargs for alpha
1207 + - default is now -newbttv (aka -fuckbttv). use -oldbttv for v<0.5.20.
1209 +Sat Jan 2 21:40:54 MET 1999
1211 + - small patches to alevt-date (-vbi options and tzset fix)
1212 + - played with pkt8/30. what a mess. MTV is 25:13 ahead *g*
1214 +Wed Dec 30 19:30:14 MET 1998 (1.3.9)
1216 + - slightly modified the pll (may need further tuning)
1218 +Wed Dec 30 05:27:26 MET 1998 (1.3.8)
1220 + - added pll (-finetune auto). try -debug for status msgs.
1222 +Tue Dec 29 05:15:53 MET 1998 (1.3.7)
1224 + - added finetune option (see README)
1225 + - you may now type -newbttv instead of -fuckbttv *g*
1227 +Mon Dec 28 19:36:32 MET 1998 (1.3.6)
1229 + - Makefile: R5 -> R6 :-(
1230 + - vbi.c now works without cache.c
1231 + - added alevt-date (set system time from teletext)
1232 + - bug in option parsing (error reporting)
1234 +Thu Dec 17 19:56:16 MET 1998 (1.3.5)
1236 + - added -L/usr/X11R6/lib in Makefile
1237 + - put some blurb (in german) in contrib.
1239 +Thu Dec 17 05:01:34 MET 1998 (1.3.4)
1241 + - added class hints on (invisible) leader window to make docking
1242 + in wmaker easier. instant name for leader is "VTLeader" and for
1243 + the viewing windows "VTPage"
1244 + - made the icon a little bit smaller
1246 +Mon Dec 14 23:05:41 MET 1998 (1.3.3)
1250 + - added spanish/portuguese charset decoding
1251 + - added similar looking glyphs for czech
1252 + - minor changes on the font
1253 + - middle click on current page number opens new parent window
1254 + - case dependant search if the pattern begins with a '!'
1255 + - line editing may be aborted with ^C
1257 +Sun Dec 13 17:55:32 MET 1998 (1.3.2)
1259 + - when there were multiple windows of the same page, cycling through
1260 + the subpages changed all windows. fixed.
1261 + - hilight the found text (make it the selection).
1262 + - slightly modified the hilight colors.
1263 + - default window size set to 41x25 (looks better).
1264 + - rewrote the editor.
1266 +Sun Dec 13 07:03:10 MET 1998 (1.3.1)
1268 + - fixed one command line option
1269 + - corrected bug in searching
1271 +Sat Dec 12 20:27:03 MET 1998 (1.3.0)
1275 + - searching is now ready (still need a status line for error msgs).
1276 + - set SIGPIPE to SIG_DFL. some shells (KDE) set it to SIG_IGN and then
1277 + the timer task won't be killed on exit.
1278 + - updated the help pages.
1279 + - I'm frustrated! BTTV_VERSION doesn't work on /dev/vbi. So no
1280 + autodetection of driver version. Added -fuckbttv option instead.
1282 +Fri Dec 11 19:36:03 MET 1998 (1.2.5)
1284 + - reworked national charset (lang) handling. everthing now done in vbi.c.
1285 + the rest just deals with latin-1.
1286 + - first version of searching (functional, but dirty. needs more work.)
1288 +Thu Dec 10 20:06:27 MET 1998 (1.2.4)
1290 + - new file edline.c (line editor for the menu line. start for searching...)
1292 + - added an 48x48 icon from Ulf Rompe
1293 + - added pasting into the line editor (insert key).
1294 + - release ownership of XA_PRIMARY when deselecting selection.
1296 +Tue Dec 8 21:26:26 MET 1998 (1.2.3)
1298 + - new file ui.c (most user interface stuff from main.c)
1299 + - rewrote option parsing
1300 + - allow specification of child windows on command line. now
1301 + it's possible to regenerate the complete window layout by
1302 + the commandline (may be of some use for session management).
1303 + - some spelling fixes in the help pages from Mark Bryars
1305 +Mon Dec 7 16:59:28 MET 1998 (1.2.2)
1307 + - reworked hidden handling in xio.c
1309 +Sun Dec 6 19:54:10 MET 1998 (1.2.1)
1311 + - class name changed! from Alevt to AleVT.
1312 + - window/icon title shows current page number
1313 + - changed the icon to a 64 pixel width one. not nice but ...
1314 + - added a small mini icon for the title bar. is there a property I can set?
1315 + - pressing on the CPN puts the page on hold
1316 + - pressing on the violet * reveals concealed text
1317 + - added simple menu if no FastText menu is present
1318 + - allow subpages to be specified on the command line (eg 100/4)
1320 +Sat Dec 5 20:59:51 MET 1998 (1.2.0)
1324 + - finished the help pages.
1325 + - added command line handling
1326 + - added user geometry handling in xio.c
1328 +Sat Dec 5 02:28:16 MET 1998 (1.1.2)
1330 + - allow magazin 9 (help system)
1331 + - start box char after a pagenumber selects subpage 1 (hack)
1332 + - added a crude page editor (just to create the help pages. not for users.)
1333 + - started with the online help system (sounds great, hehe)
1335 +Tue Dec 1 20:19:53 MET 1998 (1.1.1)
1337 + - added concept of parent and child windows. now, the middle mouse
1338 + button changes the contens of the child window. if there isn't
1339 + one, it is created.
1340 + - Middle mouse button on x/y (subpage cycling) selects the previous
1341 + subpage. (updating the child with subpages is hairy...)
1343 +Sun Nov 29 23:34:18 MET 1998 (1.1.0)
1347 + - removed most of the recovery for single bad lines (does too much harm)
1348 + - changed handling of parallel mode transmission (untested. unused in .de)
1349 + - added selection (text & graphic!). try pasting into xpaint :-)
1350 + - added cache-clear function ('c')
1351 + - click on x/y selects the next subpage
1352 + - some minor tweaks
1353 + - added an icon bitmap.
1355 +Wed Nov 24 23:33:34 MET 1998 (1.0.0)
1357 + First Release 1.0.0
1358 diff -r af23d23c278b util/alevt/EXPORT.HOWTO
1359 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1360 +++ b/util/alevt/EXPORT.HOWTO Tue Dec 21 12:13:28 2010 +0100
1362 +HOW TO IMPLEMENT A NEW EXPORT MODULE:
1364 +As an example look at exp-txt.c (it implements two modules which
1365 +are pretty similar).
1367 +You have to create one exported structure (struct export_module).
1368 +This structure holds the following data:
1370 +1. The name of the format (example: "ascii").
1372 +2. The default extension to use for building filenames ("txt").
1374 +3. A list of module options. It's a 0 terminated array of char
1375 +pointers, one for each option (similar to argv of main).
1376 +If an option string contains a '=', it is an option that
1377 +requires an argument. The part after the '=' is ignored at
1378 +the moment. Later, I want to add help messages that show
1379 +these options strings and then the part after the '=' becomes
1381 +If you do not have local options, set this field to 0.
1383 +4. The number of bytes for local data in the export structure.
1384 +There you may store data collected during option parsing or
1385 +for whatever you want.
1386 +Don't use global variables for storing this data! With
1387 +alevt-cap you may give:
1389 +alevt-cap -format ascii,color 100 -format ascii 100
1391 +to save the page in two different formats. Using global
1392 +vars would inhibit this. The data area in struct export
1393 +starts at the 'data' field. You have to cast it to the
1394 +appropriate type (see the D macro in exp-txt.c).
1395 +If you do not need local data, set this field to 0.
1397 +5. An open function (or call it constructor). It is called
1398 +when your module is needed and it is passed a struct export
1399 +(the instance). This function may be used to initialize
1400 +the local data in the export struct.
1401 +If all goes well return 0. Else call export_error (see
1402 +below) and return -1.
1403 +If you do not need an open function, set this field to 0.
1405 +6. A close function (or call it destructor). It is called
1406 +when your module is no longer needed. If you allocated
1407 +memory in the open func, this is the place to free it.
1408 +If you do not need a close function, set it to 0.
1410 +7. An option function. It is called for each module option
1411 +the user has given. It is passed an option number (first
1412 +option in the option-array gives 1, ...) and a char pointer
1413 +to the argument for that option (0 if the option does not
1414 +need an arg). The argument pointer keeps valid until the
1415 +close function is called.
1416 +If all goes well, return 0. Else call export_error and
1418 +If you gave an option list at point 3 you have to specify
1419 +this function. Else set it to 0.
1421 +8. An output function. It is called to produce the output.
1422 +It is given the file name to use and a fmt_page pointer.
1423 +The fmt_page contains an interpreted image of the page.
1424 +There are no control chars in it. It uses the character
1425 +set defined by the two fonts.
1426 +These function may be called consecutive for multiple
1427 +pages. Don't expect one output for one open/close.
1428 +Return codes as above... (0: ok, -1: error).
1430 +The export_error function: If one of your functions wants to
1431 +report an error, it has to use the export_error function.
1432 +It's a printf like function to set error messages. In alevt-cap
1433 +these messages are printed to stderr, in alevt they will be
1434 +shown in the status line (so don't make them too long).
1436 +The last step is to add your export_module structure to the
1437 +list of modules in export.c (at the top).
1438 +Please, make sure that this structure is the only exported
1439 +symbol. All other things should be static.
1441 +That's all. A structure describing your module and 4 functions
1442 +(open, close, option, output) to implement it. Shouldn't be too
1446 diff -r af23d23c278b util/alevt/Makefile
1447 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1448 +++ b/util/alevt/Makefile Tue Dec 21 12:13:28 2010 +0100
1453 +DEFS+=-DUSE_LIBZVBI
1459 +CFLAGS=$(OPT) -DVERSION=\"$(VER)\" $(DEFS) -I$(USR_X11R6)/include
1460 +EXPOBJS=export.o exp-txt.o exp-html.o exp-gfx.o font.o
1461 +OBJS=main.o ui.o xio.o fdset.o vbi.o cache.o help.o search.o misc.o hamm.o lang.o $(EXPOBJS)
1462 +TOBJS=alevt-date.o vbi.o fdset.o misc.o hamm.o lang.o
1463 +COBJS=alevt-cap.o vbi.o fdset.o misc.o hamm.o lang.o $(EXPOBJS)
1465 +ifneq ($(findstring WITH_PNG,$(DEFS)),)
1466 +EXPLIBS=-lpng -lz -lm
1469 +ifneq ($(findstring USE_LIBZVBI,$(DEFS)),)
1470 +ZVBILIB=-lzvbi -lpthread
1471 +EXPLIBS+=$(ZVBILIB)
1474 +all: alevt alevt-date alevt-cap alevt.1 alevt-date.1 alevt-cap.1
1477 + $(CC) $(OPT) $(OBJS) -o alevt -L$(PREFIX)/lib -L$(PREFIX)/lib64 -lX11 $(EXPLIBS)
1479 +alevt-date: $(TOBJS)
1480 + $(CC) $(OPT) $(TOBJS) -o alevt-date $(ZVBILIB)
1482 +alevt-cap: $(COBJS)
1483 + $(CC) $(OPT) $(COBJS) -o alevt-cap $(EXPLIBS)
1485 +font.o: font1.xbm font2.xbm font3.xbm font4.xbm
1486 +fontsize.h: font1.xbm font2.xbm font3.xbm font4.xbm
1487 + fgrep -h "#define" font1.xbm font2.xbm font3.xbm font4.xbm >fontsize.h
1489 +font1.xbm: bdf2xbm $(FONT)-latin-1.bdf
1490 + ./bdf2xbm font1 <$(FONT)-latin-1.bdf >font1.xbm
1492 +font2.xbm: bdf2xbm $(FONT)-latin-2.bdf
1493 + ./bdf2xbm font2 <$(FONT)-latin-2.bdf >font2.xbm
1495 +font3.xbm: bdf2xbm vtxt-koi8.bdf
1496 + ./bdf2xbm font3 <vtxt-koi8.bdf >font3.xbm
1498 +font4.xbm: bdf2xbm vtxt-iso8859-7.bdf
1499 + ./bdf2xbm font4 <vtxt-iso8859-7.bdf >font4.xbm
1502 + $(HOSTCC) bdf2xbm.c -o bdf2xbm
1505 + rm -f *.o page*.txt a.out core bdf2xbm font?.xbm fontsize.h
1506 + rm -f alevt alevt-date alevt-cap
1509 + install -m 0755 alevt ${RPM_BUILD_ROOT}$(USR_X11R6)/bin
1510 + install -m 0755 alevt-date ${RPM_BUILD_ROOT}$(USR_X11R6)/bin
1511 + install -m 0755 alevt-cap ${RPM_BUILD_ROOT}$(USR_X11R6)/bin
1512 + install -m 0644 alevt.1 ${RPM_BUILD_ROOT}$(USR_X11R6)/$(MAN)/man1
1513 + install -m 0644 alevt-date.1 ${RPM_BUILD_ROOT}$(USR_X11R6)/$(MAN)/man1
1514 + install -m 0644 alevt-cap.1 ${RPM_BUILD_ROOT}$(USR_X11R6)/$(MAN)/man1
1515 + install -d 0755 $(RPM_BUILD_ROOT)$(USR_X11R6)/include/X11/pixmaps
1516 + install -m 0644 alevt.png $(RPM_BUILD_ROOT)$(USR_X11R6)/include/X11/pixmaps
1519 + install -m 0755 alevt $(DESTDIR)$(PREFIX)/bin
1520 + install -m 0755 alevt-date $(DESTDIR)$(PREFIX)/bin
1521 + install -m 0755 alevt-cap $(DESTDIR)$(PREFIX)/bin
1522 + install -m 0644 alevt.1 $(DESTDIR)$(PREFIX)/share/man/man1
1523 + install -m 0644 alevt-date.1 $(DESTDIR)$(PREFIX)/share/man/man1
1524 + install -m 0644 alevt-cap.1 $(DESTDIR)$(PREFIX)/share/man/man1
1525 + install -m 0644 alevt.png $(DESTDIR)$(PREFIX)/share/pixmaps
1526 + install -m 0644 alevt.desktop $(DESTDIR)$(PREFIX)/share/applications
1529 + rm -f /usr/bin/alevt /usr/bin/alevt-cap /usr/bin/alevt-date \
1530 + /usr/share/pixmaps/alevt.png /usr/share/applications/alevt.desktop \
1531 + /usr/share/man/man1/alevt.1 /usr/share/man/man1/alevt-cap.1 \
1532 + /usr/share/man/man1/alevt-date.1
1535 + makedepend -Y -- $(CFLAGS_none) -- *.c 2>/dev/null
1537 +tar-html: alevt.1 alevt-date.1 alevt-cap.1
1538 + for i in alevt.1 alevt-date.1 alevt-cap.1 ; do \
1539 + j=`basename $$i .1` ; \
1540 + j=`basename $$j .1x` ; \
1541 + nroff -man $$i | { \
1542 + echo "<HTML><HEAD><TITLE>AleVT</TITLE></HEAD><BODY>" ; \
1543 + man2html -bare -uelem U -nodepage ; \
1544 + echo "</B0DY></HTML>" ; \
1545 + } | sed -e "s,</B> <B>, ,g" -e "s,</U> <U>, ,g" >~/exit/alevt/$$j.html ;\
1548 +tar: tar-html clean
1549 + sed s/VERSION/$(VER)/g <alevt.lsm.in >~/exit/alevt/alevt-$(VER).lsm
1550 + sed s/VERSION/$(VER)/g <alevt.spec.in >alevt.spec
1552 + ln -s alevt alevt-$(VER) ;\
1553 + tar vcfz ~/exit/alevt/alevt-$(VER).tar.gz alevt-$(VER)/* ;\
1555 + cat <CHANGELOG >~/exit/alevt/changes
1559 +alevt-cap.o: vt.h misc.h fdset.h dllist.h vbi.h cache.h lang.h export.h
1560 +alevt-date.o: os.h vt.h misc.h fdset.h dllist.h vbi.h cache.h lang.h
1561 +cache.o: misc.h dllist.h cache.h vt.h help.h
1562 +exp-gfx.o: lang.h misc.h vt.h export.h font.h fontsize.h
1563 +exp-html.o: lang.h misc.h vt.h export.h
1564 +exp-txt.o: os.h export.h vt.h misc.h
1565 +export.o: vt.h misc.h export.h
1566 +fdset.o: dllist.h misc.h fdset.h
1567 +font.o: font1.xbm font2.xbm font3.xbm font4.xbm
1568 +hamm.o: vt.h misc.h hamm.h
1569 +help.o: vt.h misc.h vt900.out vt901.out vt902.out vt903.out vt904.out vt905.out
1570 +help.o: vt906.out vt907.out vt908.out vt909.out vt910.out vt911.out vt912.out
1571 +lang.o: misc.h vt.h lang.h
1572 +main.o: vt.h misc.h fdset.h dllist.h xio.h vbi.h cache.h lang.h ui.h
1575 +search.o: vt.h misc.h cache.h dllist.h search.h
1576 +ui.o: vt.h misc.h xio.h dllist.h vbi.h cache.h lang.h fdset.h
1577 +ui.o: search.h export.h ui.h
1578 +vbi.o: os.h vt.h misc.h vbi.h dllist.h cache.h lang.h fdset.h hamm.h
1579 +xio.o: vt.h misc.h dllist.h xio.h fdset.h lang.h icon.xbm font.h fontsize.h
1580 diff -r af23d23c278b util/alevt/README
1581 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1582 +++ b/util/alevt/README Tue Dec 21 12:13:28 2010 +0100
1586 +this software is not just a program, it's moreover a legend.
1587 +It is THE protagonist of all videotext applications under Linux.
1589 +During the past 10 years the video standards, the APIs, the kernel
1590 +have seen lots of changes.
1591 +But unfortunately this program has NOT seen much maintenance.
1592 +The results of that misfit appearance are:
1594 +1. lots of forks flying around in the Internet
1595 +2. lots of patches flying around, some good, some disgusting, some out of time
1596 +3. lots of cruft which is completely outdated or obsolete for other reasons
1598 +To handle all that in one big effort I decided to redesign the program
1599 +completely, enlarging its capabilities for DVB-S at the same time.
1601 +So here are the changes:
1603 +1. Erasure of old help pages and rename / reorganize / update the rest
1604 +-> redesign of the online help system / implying alevt-date and alevt-cap
1606 +2. Erasure of old outdated integers, functions, parameters:
1608 +- bell, big_buf, debug, display, editor, erc, fine_tune, newbttv,
1611 +3. Coding style cleanups (no superfluous comments, not more than
1612 + 80 characters per column, no uncommented code.
1614 +4. No strange characters in the outfile, latin alphabet in purity instead.
1616 +5. Alevt can be started in 4 modes now if you are running it in DVB mode:
1618 +- by service id (sid)
1619 +- by teletext pid (ttpid)
1621 +- without parameter
1623 +6. Starting it in DVB mode on the command line it presents you
1624 +a table with human readable values such as sid, teletext pid,
1625 +PMT (Program Map Table), provider name, service name, language, service type.
1626 +This makes it easier for you to start multiple teletext windows
1627 +in multiple console sessions manually.
1629 +If working with a script and the option -o (outfile) you can
1630 +also start multiple teletext windows of all channels in a transponder.
1631 +I develop a GUI using TCL / TK 8.5 and Iwidgets 4.01 to do that and other
1632 +tasks graphically (i. e. by mouse click).
1634 +7. If you install the program on the command line by typing "make &
1635 + make install" there is an uninstaller now to revert the installation:
1640 +Uwe Bugla, February 11th, 2010.
1642 +External dependencies
1644 +AleVT needs some system libraries to be installed in your system.
1645 +They are zlib, libX11, libpng and libzvbi.
1648 +- Andreas Rottmann from debian.org for compiler fixes and
1649 + other kinds of investigation.
1650 +- Francesco Lavra for supplying a kernel patch to avoid kernel demux
1651 + incompatibilities with kernels >= 2.6.32
1652 +- Andy Walls for helpful investigation in kernelspace
1653 +- Edgar Toernig for providing the source version 1.6.2 and doing all the
1654 + development for the basic versions
1655 +- Tom Zoerner for the implementation of libzvbi
1656 diff -r af23d23c278b util/alevt/README.OLD
1657 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1658 +++ b/util/alevt/README.OLD Tue Dec 21 12:13:28 2010 +0100
1660 +Hi, Menden, 21 Sep 2000
1662 + This program decodes and displays Videotext/Teletext from a
1668 + There's nothing to configure. A simple 'make' is all.
1669 + If you do not want png support remove the WITH_PNG in
1670 + the Makefile. Additionally, if you want a smaller font
1671 + uncomment the "FONT=neep9" line.
1673 + It gives you 'alevt', 'alevt-date', and 'alevt-cap' and
1674 + their man pages 'alevt.1x', 'alevt-date.1', and 'alevt-cap.1'.
1676 + You can install them where ever you want (i.e. /usr/local/bin).
1677 + The programs are self-contained and require no other files.
1679 + NOTE: Be careful with 'make install'. It's just for me :-)
1684 + If you have a lot of decoding errors (lot of these lightning symbols)
1685 + you may try pressing the 'f' and 'F' key. This allows fine tuning of
1686 + the decoder circuit. There's also a -finetune command line option.
1687 + This should only be necessary on really bad signals.
1689 + Maybe, I add autotuning later...
1691 + UPDATE: added autotuning. It's the default. If you add -debug the
1692 + the actions of the pll are printed to stdout.
1694 + To get the old (pre finetune) behaviour start it with -finetune 0.
1696 + UPDATE: disabled autotuning *g* sometimes it's too jumpy...
1700 + I added a little tool to set the system time from the videotext
1701 + time. The date is not interpreted (not even transmitted on some
1702 + channels). So it allows only adjustment of +/-12 hours.
1703 + The default allowed adjustment is limited to +/-2 hours (use
1704 + -delta to change). Without the -set option it just display
1705 + the date in the format of the date command. Look at strftime(3)
1706 + for possible control sequences you may use in the -format option.
1711 + If you want to play with the font size, you may resize it with
1712 + xv (xv font1.xbm). Just make sure, that its width is a multiple of
1713 + 32 and its height a multiple of 8. A simple make will create
1714 + a version of AleTV with the new font. Warning: a make clean
1715 + will erase font1.xbm. The next make will recreate font.xbm from
1718 + AleVT has a built in page editor. If you start it with -editor
1719 + you may press 'E' to invoke it. For the usage you have to consult
1720 + the sources. (It's very crude!)
1723 +TODO: (no specific order)
1725 + - Error correction in alevt-cap
1726 + - Better language support. Internal 16-bit charset.
1727 + - Separated graphics.
1728 + - Rewrite the whole stuff. A networked teletext daemon and clients
1729 + that connect to it for display, capture, cgi, ...
1734 + The primary site of AleVT is http://goron.de/~froese
1737 +Edgar Toernig (froese@gmx.de)
1738 diff -r af23d23c278b util/alevt/ReadmeGR
1739 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1740 +++ b/util/alevt/ReadmeGR Tue Dec 21 12:13:28 2010 +0100
1744 +ÅëëçíéêÜ ãéá ôï ALEVT
1745 +Ç ðñïóèÞêç Åëëçíéêþí Ýãéíå ôñïðïðïéþíôáò ôï patch alevt-1.6.3.rus.diff ðïõ âñßóêåôå óôï öÜêåëï
1746 +contrib óôá sources ôïõ alevt-1.6.3
1748 +ÎåêéíÞóôå ôï ðñüãñáììá ìå ôçí ðáñÜìåôñï
1750 +alevt -charset iso8859-7
1756 +ÄïõëåéÝò ðïõ Ý÷ïõí íá ãßíïõí:
1757 +Êáëýôåñïò ó÷åäéáóìüò ôïõ font file vtxt-iso8859-7.bdf
1758 +ïé Áããëéêïß ÷áñáêôÞñåò ìïéÜæïõí óáí bold óå ó÷Ýóç ìå ôïõò Åëëçíéêïýò êáé õðÜñ÷ïõí
1759 +êÜðïéá ìéêñÜ ðñïâëçìáôÜêéá ìå ôïõò graphics (0x01 -0x1f)
1761 +¸ëåã÷ïò ãéá ôï áí áðåéêïíßæïíôáé óùóôÜ üëïé ïé ÷áñáêôÞñåò
1763 +¼ðïéïò èÝëåé íá âïçèÞóåé ðáñáêáëþ íá ìïõ óôåßëåé ôçò áëëáãÝò ôïõ óôï sl45sms@yahoo.gr
1764 +Áí êÜðïéïò êÜíåé åêôåôáìÝíåò áëëáãÝò ðïõ äåí áöïñïýí ôá ÅëëçíéêÜ èá ðñÝðåé íá ôéò óôåßëåé êáé
1765 +óôïí óõããñáöÝá ôïõ ðñïãñÜììáôïò
1767 +ÍåüôåñÜ áñ÷åßá ôïõ ðáñüíôïò èá ìðïñåßôå íá âñßóêåôå óôï http://go.to/sl45sms/alevt/index.html
1769 +ÓêáñâÝëçò Ðáíáãéþôçò
1770 diff -r af23d23c278b util/alevt/TODO
1771 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1772 +++ b/util/alevt/TODO Tue Dec 21 12:13:28 2010 +0100
1774 +Hi, these are issues that I unfortunately cannot resolve myself:
1776 +1. graphical menu written in GKT2, to be used in general connection with
1777 + the outfile (-o) option.
1779 +2. for usage without script and outfile option:
1780 + DVB monitoring demon helping the program to rewrite the PAT when the
1781 + external player software has chosen a channel which is part of a
1783 + At the moment alevt hangs when the transponder is changed.
1785 +Uwe Bugla, February 11th, 2010.
1786 diff -r af23d23c278b util/alevt/alevt-cap.1
1787 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1788 +++ b/util/alevt/alevt-cap.1 Tue Dec 21 12:13:28 2010 +0100
1790 +.TH alevt-cap 1 "February 07, 2010"
1792 +alevt-cap \- capture teletext windows.
1798 +This manual page documents briefly the
1802 +\fBalevt-cap\fP is a program to capture teletext pages.
1805 +.B \-cs -charset <latin-1/2/koi8-r/iso-8859-7>
1808 +.B \-f -format <fmt[,options]>
1811 +.B \-f help -format help
1812 +lists available storage formats
1817 +.B \-n -name <filename>
1819 +.B \-t -timeout <secs>
1825 +.B \-t -ttpid <ttpid>
1828 +.B \-v -vbi <vbidev>
1831 +Sequence: /dev/vbi; /dev/vbi0; /dev/video0; /dev/dvb/adapter0/demux0
1833 +ppp.ss stands for a page number and an optional
1834 +subpage number (example: 123.4).
1837 +.BR alevt-date (1) , alevt (1).
1840 +alevt-cap was written by Edgar Toernig <froese@gmx.de>.
1842 +This manual page was written by Uwe Bugla <uwe.bugla@gmx.de>.
1843 diff -r af23d23c278b util/alevt/alevt-cap.c
1844 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1845 +++ b/util/alevt/alevt-cap.c Tue Dec 21 12:13:28 2010 +0100
1848 +#include <stdlib.h>
1849 +#include <string.h>
1850 +#include <locale.h>
1851 +#include <signal.h>
1852 +#include <unistd.h>
1858 +#include "dllist.h"
1859 +#include "export.h"
1861 +static volatile int timed_out = 0;
1862 +static char *channel;
1863 +char *outfile = "";
1869 + struct dl_node node[1];
1870 + char *name; // file name
1871 + char *pgno_str; // the pgno as given on the cmdline
1872 + int pgno, subno; // decoded pgno
1873 + struct export *export; // export data
1874 + struct vt_page vtp[1]; // the capture page data
1878 +static void usage(FILE *fp, int exitval)
1880 + fprintf(fp, "\nUsage: %s [options] ppp.ss...\n", prgname);
1883 + " Valid options:\t\tDefault:\n"
1884 + " -cs -charset\t\tlatin-1\n"
1885 + " <latin-1/2/koi8-r/iso8859-7>\n"
1886 + " -f -format <fmt,options>\tascii\n"
1887 + " -f help -format help\n"
1889 + " -n -name <filename>\t\tttext-%%s.%%e\n"
1890 + " -s -sid <sid>\t\t(none;dvb only)\n"
1891 + " -to -timeout <secs>\t\t(none)\n"
1892 + " -t -ttpid <ttpid>\t\t(none;dvb only)\n"
1893 + " -v -vbi <vbidev>\t\t/dev/vbi\n"
1894 + " \t\t/dev/vbi0\n"
1895 + " \t\t/dev/video0\n"
1896 + " \t\t/dev/dvb/adapter0/demux0\n"
1898 + " ppp.ss stands for a page number and an\n"
1899 + " optional subpage number (ie 123.4).\n"
1905 +static void exp_help(FILE *fp)
1907 + struct export_module **ep;
1911 + "\nSyntax: -format Name[,Options]\n"
1913 + " Name\tExt.\tOptions\n"
1914 + " --------------------------------\n"
1916 + for (ep = modules; *ep; ep++)
1918 + fprintf(fp, " %-7s\t.%-4s", (*ep)->fmt_name, (*ep)->extension);
1919 + for (c = '\t', cp = (*ep)->options; cp && *cp; cp++, c = ',')
1920 + fprintf(fp, "%c%s", c, *cp);
1921 + fprintf(fp, "\n");
1925 + "Common options: reveal,hide\n"
1926 + "Example: -format ansi,reveal,bg=none\n"
1933 +static int arg_pgno(char *p, int *subno)
1941 + pgno = strtol(p, &end, 16);
1942 + if ((*end == ':' || *end == '/' || *end == '.') && end[1])
1943 + *subno = strtol(end + 1, &end, 16);
1945 + if (pgno >= 0x100 && pgno <= 0x899)
1946 + if (*subno == ANY_SUB || (*subno >= 0x00 && *subno <= 0x3f7f))
1949 + fatal("%s: invalid page number", p);
1953 +static int option(int argc, char **argv, int *ind, char **arg)
1955 + static struct { char *nam, *altnam; int arg; } opts[] = {
1956 + { "-charset", "-cs", 1 },
1957 + { "-format", "-f", 1 },
1958 + { "-help", "-h", 0 },
1959 + { "-name", "-n", 1 },
1960 + { "-sid", "-s", 1 },
1961 + { "-timeout", "-to", 1 },
1962 + { "-ttpid", "-t", 1 },
1963 + { "-vbi", "-v", 1 },
1970 + *arg = argv[(*ind)++];
1971 + for (i = 0; i < NELEM(opts); ++i)
1972 + if (streq(*arg, opts[i].nam) || streq(*arg, opts[i].altnam))
1976 + *arg = argv[(*ind)++];
1978 + fatal("option %s requires an argument", *arg);
1984 + fatal("%s: invalid option", *arg);
1992 +static void event(struct dl_head *reqs, struct vt_event *ev)
1994 + struct req *req, *nxt;
1998 + case EV_PAGE: // new page
2000 + struct vt_page *vtp = ev->p1;
2002 + for (req = PTR reqs->first; nxt = PTR req->node->next; req = nxt)
2003 + if (req->pgno == vtp->pgno)
2004 + if (req->subno == ANY_SUB || req->subno == vtp->subno)
2007 + dl_insert_last(reqs + 1, dl_remove(req->node));
2014 +int main(int argc, char **argv)
2016 + char *vbi_name = NULL;
2018 + char *fname = "ttext-%s.%e";
2019 + char *out_fmt = "ascii";
2020 + struct export *fmt = 0;
2025 + struct dl_head reqs[2]; // simple linear lists of requests & captures
2028 + setlocale (LC_CTYPE, "");
2029 + setprgname(argv[0]);
2032 + dl_init(reqs); // the requests
2033 + dl_init(reqs+1); // the captured pages
2036 + while (opt = option(argc, argv, &ind, &arg))
2039 + case 1: // charset
2040 + if (streq(arg, "latin-1") || streq(arg, "1"))
2042 + else if (streq(arg, "latin-2") || streq(arg, "2"))
2044 + else if (streq(arg, "koi8-r") || streq(arg, "koi"))
2046 + else if (streq(arg, "iso8859-7") || streq(arg, "el"))
2049 + fatal("bad charset (not latin-1/2/koi8-r/iso8859-7)");
2052 + if (streq(arg, "help") || streq(arg, "?") || streq(arg, "list"))
2063 + case 5: // timeout
2064 + timeout = strtol(arg, 0, 10);
2065 + if (timeout < 1 || timeout > 999999)
2066 + fatal("bad timeout value", timeout);
2068 + case 6: // service id
2069 + sid = strtoul(arg, NULL, 0);
2071 + case 7: // teletext pid
2072 + ttpid = strtoul(arg, NULL, 0);
2077 + case -1: // non-option arg
2079 + fmt = export_open(out_fmt);
2081 + fatal("%s", export_errstr());
2082 + if (not(req = malloc(sizeof(*req))))
2083 + out_of_mem(sizeof(*req));
2084 + req->name = fname;
2085 + req->pgno_str = arg;
2086 + req->pgno = arg_pgno(arg, &req->subno);
2087 + req->export = fmt;
2088 + dl_insert_last(reqs, req->node);
2092 + if (dl_empty(reqs))
2093 + fatal("no pages requested");
2096 + if (not(vbi = vbi_open(vbi_name, 0, channel, outfile, sid, ttpid)))
2097 + fatal("cannot open %s", vbi_name);
2098 + vbi_add_handler(vbi, event, reqs); // register event handler
2103 + // capture pages (moves requests from reqs[0] to reqs[1])
2104 + while (not dl_empty(reqs) && not timed_out)
2105 + if (fdset_select(fds, 30000) == 0) // 30sec select time out
2107 + error("no signal.");
2112 + vbi_del_handler(vbi, event, reqs);
2114 + if (not dl_empty(reqs))
2115 + error("capture aborted. Some pages are missing.");
2117 + for (req = PTR reqs[1].first; req->node->next; req = PTR req->node->next)
2119 + fname = export_mkname(req->export, req->name, req->vtp, req->pgno_str);
2120 + if (not fname || export(req->export, req->vtp, fname))
2121 + error("error saving page %s: %s", req->pgno_str, export_errstr());
2125 + exit(dl_empty(reqs) ? 0 : 1);
2127 diff -r af23d23c278b util/alevt/alevt-date.1
2128 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2129 +++ b/util/alevt/alevt-date.1 Tue Dec 21 12:13:28 2010 +0100
2131 +.TH alevt-date 1 "February 07, 2010"
2133 +alevt-date \- print out UTC date.
2139 +This manual page documents briefly the
2143 +\fBalevt-date\fP is a program to print the UTC date.
2146 +.B \-d -delta <max_secs>
2149 +.B \-f -format <fmtstr>
2156 +set the system clock
2158 +.B \-t -timeout <seconds>
2161 +.B \-v -vbi <vbidev>
2162 +vbi device /dev/vbi; /dev/vbi0; /dev/video0; /dev/dvb/adapter0/demux0
2166 +.BR alevt-cap (1) , alevt (1).
2169 +alevt-date was written by Edgar Toernig <froese@gmx.de>.
2171 +This manual page was written by Uwe Bugla <uwe.bugla@gmx.de>.
2172 diff -r af23d23c278b util/alevt/alevt-date.c
2173 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2174 +++ b/util/alevt/alevt-date.c Tue Dec 21 12:13:28 2010 +0100
2177 +#include <string.h>
2178 +#include <sys/time.h>
2180 +#include <stdlib.h>
2181 +#include <unistd.h>
2182 +#include <signal.h>
2190 +char *fmt = "%a %b %d %H:%M:%S %Z %Y";
2191 +int max_diff = 2*60*60; // default: 2 hours
2193 +char *outfile = "";
2194 +static char *channel;
2198 +static void chk_time(int t)
2205 + if (t < 0 || t > 235959 || t%100 > 59 || t/100%100 > 59)
2209 + tm = localtime(&sys_t);
2211 + // Now convert to UTC seconds
2212 + t = t/100/100 * 60*60 + t/100%100 * 60 + t%100;
2214 + t -= tm->tm_gmtoff; // dst already included...
2221 + dt = t - sys_t % (24*60*60);
2222 + if (dt <= -12*60*60)
2225 + if (dt <= -max_diff || dt >= max_diff)
2226 + fatal("time diff too big (%2d:%02d:%02d)", dt/60/60, abs(dt)/60%60, abs(dt)%60);
2232 + struct timeval tv[1];
2234 + tv->tv_sec = sys_t;
2235 + tv->tv_usec = 500000;
2236 + if (settimeofday(tv, 0) == -1)
2237 + ioerror("settimeofday");
2241 + tm = localtime(&sys_t);
2242 + if (strftime(buf, sizeof(buf), fmt, tm))
2249 +static void event(void *_, struct vt_event *ev)
2253 + /* vbi may generate EV_PAGE, EV_HEADER, EV_XPACKET */
2254 + /* for event arguments see vt.h */
2256 + case EV_HEADER: // a new title line (for running headers)
2258 + static int last_t = -1;
2262 + if (ev->i2 & PG_OUTOFSEQ)
2265 + for (i = 32; i < 40; ++i)
2266 + if (s[i] >= '0' && s[i] <= '9')
2267 + t = t * 10+ s[i] - '0';
2268 + if (t >= 1000000 && t <= 1235959)
2269 + if (t == last_t || t - last_t == 1)
2270 + chk_time(t - 1000000);
2278 +static void usage(FILE *fp, int exit_val)
2280 + fprintf(fp, "usage: %s [options]\n", prgname);
2283 + " Valid options:\t\tDefault:\n"
2284 + " -d -delta <max_secs>\t7200 (2 hours)\n"
2285 + " -f -format <fmtstr>\t\t%%c\n"
2287 + " -s -set\t\t\toff\n"
2288 + " -to -timeout <seconds>\t(none)\n"
2289 + " -v -vbi <vbidev>\t\t/dev/vbi\n"
2290 + " \t\t/dev/vbi0\n"
2291 + " \t\t/dev/video0\n"
2292 + " \t\t/dev/dvb/adapter0/demux0\n"
2298 +static int option(int argc, char **argv, int *ind, char **arg)
2300 + static struct { char *nam, *altnam; int arg; } opts[] = {
2301 + { "-delta", "-d", 1 },
2302 + { "-format", "-f", 1 },
2303 + { "-help", "-h", 0 },
2304 + { "-set", "-s", 0 },
2305 + { "-timeout", "-to", 1 },
2306 + { "-vbi", "-v", 1 },
2313 + *arg = argv[(*ind)++];
2314 + for (i = 0; i < NELEM(opts); ++i)
2315 + if (streq(*arg, opts[i].nam) || streq(*arg, opts[i].altnam))
2319 + *arg = argv[(*ind)++];
2321 + fatal("option %s requires an argument", *arg);
2327 + fatal("%s: invalid option", *arg);
2335 +int main(int argc, char **argv)
2337 + char *vbi_name = NULL;
2344 + setprgname(argv[0]);
2346 + while (opt = option(argc, argv, &ind, &arg))
2350 + max_diff = atoi(arg);
2352 + fatal("-delta: illegal value '%s'", arg);
2353 + if (max_diff > 12*60*60)
2355 + max_diff = 12*60*60;
2356 + error("-delta: %d too big. Assuming %d", arg, max_diff);
2359 + case 2: // -format
2368 + case 5: // -timeout
2369 + timeout = atoi(arg);
2370 + if (timeout < 1 || timeout > 60*60)
2371 + fatal("-timeout: illegal value '%s'", arg);
2385 + signal(SIGALRM, SIG_DFL); // kill me
2388 + vbi = vbi_open(vbi_name, 0, channel, outfile, sid, ttpid); // open device
2390 + fatal_ioerror(vbi_name);
2391 + vbi_add_handler(vbi, event, 0); // register event handler
2394 + fdset_select(fds, -1); // call scheduler
2396 + /* never reached */
2397 + vbi_del_handler(vbi, event, 0);
2401 diff -r af23d23c278b util/alevt/alevt.1
2402 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2403 +++ b/util/alevt/alevt.1 Tue Dec 21 12:13:28 2010 +0100
2405 +.TH alevt 1 "February 07, 2010"
2407 +alevt \- a teletext browser for analogue and DVB channels.
2413 +This manual page documents briefly the
2417 +\fBalevt\fP is a program to read teletext from analogue or DVB channels.
2421 +channel name (dvb only)
2423 +.B \-ch -child <ppp.ss>
2426 +.B \-cs -charset <latin-1/2/koi8-r/iso8859-7>
2433 +path + file for all services (dvb only)
2435 +.B \-p -parent <ppp.ss>
2439 +service id (dvb only)
2441 +.B \-t -ttpid <ttpid>
2442 +teletext pid (dvb only)
2444 +.B \-v -vbi <vbidev>
2447 +Sequence: /dev/vbi; /dev/vbi0; /dev/video0; /dev/dvb/adapter0/demux0
2449 +Order is important! Each page number opens a new window
2450 +with the previously given geometry, device, and display.
2452 +ppp.ss stands for a page number and an optional
2453 +subpage number (example: 123.4).
2455 +The -child option requires a parent window. So it must
2456 +be preceded by a parent or another child window.
2459 +.BR alevt-cap (1), alevt-date (1).
2462 +alevt was written by Edgar Toernig <froese@gmx.de>.
2464 +This manual page was written by Uwe Bugla <uwe.bugla@gmx.de>.
2465 diff -r af23d23c278b util/alevt/alevt.desktop
2466 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2467 +++ b/util/alevt/alevt.desktop Tue Dec 21 12:13:28 2010 +0100
2472 +Comment=Teletext Browser
2477 +Categories=GNOME;GTK;AudioVideo;Video;
2478 diff -r af23d23c278b util/alevt/bdf2xbm.c
2479 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2480 +++ b/util/alevt/bdf2xbm.c Tue Dec 21 12:13:28 2010 +0100
2483 + Simple program to convert a bdf-font to a bitmap.
2484 + The characters are arranged in a 32x8 matrix.
2485 + usage: bdf2xbm [identifier] <bdf >xbm
2486 + Copyright 1998,1999 by E. Toernig (froese@gmx.de)
2490 +#include <string.h>
2491 +#include <stdlib.h>
2493 +#include <stdarg.h>
2496 +#define streq(a,b) (strcmp((a),(b)) == 0)
2502 +char *font = "font%dx%d";
2504 +unsigned char *bmap;
2507 +static void error(char *fmt, ...)
2511 + va_start(args, fmt);
2512 + fprintf(stderr, "bdf2xbm");
2514 + fprintf(stderr, ":%d", lineno);
2515 + fprintf(stderr, ": ");
2516 + vfprintf(stderr, fmt, args);
2517 + fputc('\n', stderr);
2522 +static int nextline()
2524 + static char buf[256];
2531 + if (fgets(buf, sizeof(buf), stdin) == 0)
2538 + while (isspace(*p))
2542 + word[nword++] = p;
2543 + while (*p && not isspace(*p))
2544 + *p = toupper(*p), p++;
2549 + } while (nword == 0);
2551 + for (i = nword; i < 64; ++i)
2557 +static inline void setbit(int ch, int x, int y)
2560 + int yo = ch / 32 * h + y;
2561 + int xo = ch % 32 * w + x;
2563 + bmap[yo * bpl + xo / 8] |= 1 << (xo % 8);
2567 +static void dobitmap(int ch, int x, int y)
2571 + for (i = 0; i < y; ++i)
2574 + if (nword > 1 || strlen(word[0]) != (x + 7) / 8 * 2)
2575 + error("bad BITMAP");
2576 + for (j = 0; j < x; ++j)
2578 + int c = word[0][j / 4];
2579 + if (c >= '0' && c <= '9')
2581 + else if (c >= 'A' && c <= 'F')
2584 + error("bad hexchar in BITMAP");
2585 + if (c & (8 >> (j % 4)))
2592 +static void dochar()
2594 + int ch = -1, x = -1, y = -1;
2596 + while (nextline())
2598 + if (streq(word[0], "ENDCHAR"))
2600 + else if (streq(word[0], "ENCODING") && nword == 2)
2602 + ch = atoi(word[1]);
2603 + if (ch < 0 || ch > 255)
2604 + error("bad character code %d", ch);
2606 + else if (streq(word[0], "BBX") && nword == 5)
2608 + x = atoi(word[1]), y = atoi(word[2]);
2609 + if (x < 1 || x > 64 || y < 1 || y > 64)
2610 + error("bad BBX (%dx%d)", x, y);
2612 + else if (streq(word[0], "BITMAP"))
2615 + error("missing BBX");
2617 + error("missing ENDCODING");
2618 + dobitmap(ch, x, y);
2621 + error("unexpected EOF (missing ENDCHAR)");
2625 +static void dofile()
2632 + if (nword != 2 || not streq(word[0], "STARTFONT"))
2633 + error("not a bdf-file");
2635 + while (nextline())
2637 + if (streq(word[0], "ENDFONT"))
2639 + else if (streq(word[0], "FONTBOUNDINGBOX") && nword == 5)
2642 + error("multiple FONTBOUNDINGBOXes!?!");
2643 + w = atoi(word[1]), h = atoi(word[2]);
2644 + if (w < 1 || w > 64 || h < 1 || h > 64)
2645 + error("bad bounding box %dx%d\n", w, h);
2646 + bpl = (w*32+7)/8; // rounding is unnecessary
2647 + bmap = calloc(1, bpl * h*8);
2649 + error("out of memory");
2651 + else if (streq(word[0], "STARTCHAR"))
2654 + error("no FONTBOUNDINGBOX");
2658 + error("unexpected EOF (missing ENDFONT)");
2662 +static void writexbm()
2666 + unsigned char *p = bmap;
2671 + sprintf(buf, font, w, h);
2673 + printf("#define %s_width %d\n", buf, 32 * w);
2674 + printf("#define %s_height %d\n", buf, 8 * h);
2675 + printf("static unsigned char %s_bits[] = {\n", buf);
2676 + for (i = 0; i < 16 * h * w / 8; ++i)
2678 + for (j = 0; j < 16; ++j)
2679 + printf("0x%02x,", *p++);
2686 +int main(int argc, char **argv)
2694 diff -r af23d23c278b util/alevt/cache.c
2695 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2696 +++ b/util/alevt/cache.c Tue Dec 21 12:13:28 2010 +0100
2698 +#include <stdlib.h>
2699 +#include <string.h>
2701 +#include "dllist.h"
2706 +static inline int hash(int pgno)
2709 + return pgno % HASH_SIZE;
2713 +static void do_erc(struct vt_page *ovtp, struct vt_page *nvtp)
2717 + if (nvtp->errors == 0 && ovtp->lines == nvtp->lines)
2720 + for (l = 0; l < H; ++l)
2722 + if (~nvtp->lines & (1 << l))
2723 + memcpy(nvtp->data[l], ovtp->data[l], W);
2724 + else if (ovtp->lines & (1 << l))
2725 + for (c = 0; c < W; ++c)
2726 + if (nvtp->data[l][c] == BAD_CHAR)
2727 + nvtp->data[l][c] = ovtp->data[l][c];
2729 + nvtp->lines |= ovtp->lines;
2733 +static void cache_close(struct cache *ca)
2735 + struct cache_page *cp;
2738 + for (i = 0; i < HASH_SIZE; ++i)
2739 + while (not dl_empty(ca->hash + i))
2741 + cp = PTR ca->hash[i].first;
2742 + dl_remove(cp->node);
2749 +static void cache_reset(struct cache *ca)
2751 + struct cache_page *cp, *cpn;
2754 + for (i = 0; i < HASH_SIZE; ++i)
2755 + for (cp = PTR ca->hash[i].first; cpn = PTR cp->node->next; cp = cpn)
2756 + if (cp->page->pgno / 256 != 9) // don't remove help pages
2758 + dl_remove(cp->node);
2762 + memset(ca->hi_subno, 0, sizeof(ca->hi_subno[0]) * 0x900);
2765 +/* Get a page from the cache.
2766 + If subno is SUB_ANY, the newest subpage of that page is returned */
2769 +static struct vt_page * cache_get(struct cache *ca, int pgno, int subno)
2771 + struct cache_page *cp;
2772 + int h = hash(pgno);
2774 + for (cp = PTR ca->hash[h].first; cp->node->next; cp = PTR cp->node->next)
2775 + if (cp->page->pgno == pgno)
2776 + if (subno == ANY_SUB || cp->page->subno == subno)
2778 + // found, move to front (make it 'new')
2779 + dl_insert_first(ca->hash + h, dl_remove(cp->node));
2785 +/* Put a page in the cache.
2786 + If it's already there, it is updated. */
2789 +static struct vt_page * cache_put(struct cache *ca, struct vt_page *vtp)
2791 + struct cache_page *cp;
2792 + int h = hash(vtp->pgno);
2794 + for (cp = PTR ca->hash[h].first; cp->node->next; cp = PTR cp->node->next)
2795 + if (cp->page->pgno == vtp->pgno && cp->page->subno == vtp->subno)
2798 + if (cp->node->next)
2801 + dl_insert_first(ca->hash + h, dl_remove(cp->node));
2803 + do_erc(cp->page, vtp);
2807 + cp = malloc(sizeof(*cp));
2810 + if (vtp->subno >= ca->hi_subno[vtp->pgno])
2811 + ca->hi_subno[vtp->pgno] = vtp->subno + 1;
2813 + dl_insert_first(ca->hash + h, cp->node);
2820 +/* Same as cache_get but doesn't make the found entry new */
2823 +static struct vt_page * cache_lookup(struct cache *ca, int pgno, int subno)
2825 + struct cache_page *cp;
2826 + int h = hash(pgno);
2828 + for (cp = PTR ca->hash[h].first; cp->node->next; cp = PTR cp->node->next)
2829 + if (cp->page->pgno == pgno)
2830 + if (subno == ANY_SUB || cp->page->subno == subno)
2836 +static struct vt_page * cache_foreach_pg(struct cache *ca, int pgno, int subno,
2837 + int dir, int (*func)(), void *data)
2839 + struct vt_page *vtp, *s_vtp = 0;
2841 + if (ca->npages == 0)
2844 + if (vtp = cache_lookup(ca, pgno, subno))
2845 + subno = vtp->subno;
2846 + else if (subno == ANY_SUB)
2847 + subno = dir < 0 ? 0 : 0xffff;
2852 + while (subno < 0 || subno >= ca->hi_subno[pgno])
2859 + subno = dir < 0 ? ca->hi_subno[pgno] - 1 : 0;
2861 + if (vtp = cache_lookup(ca, pgno, subno))
2867 + if (func(data, vtp))
2874 +static int cache_mode(struct cache *ca, int mode, int arg)
2880 + case CACHE_MODE_ERC:
2882 + ca->erc = arg ? 1 : 0;
2889 +static struct cache_ops cops =
2900 +struct cache * cache_open(void)
2903 + struct vt_page *vtp;
2906 + if (not(ca = malloc(sizeof(*ca))))
2909 + for (i = 0; i < HASH_SIZE; ++i)
2910 + dl_init(ca->hash + i);
2912 + memset(ca->hi_subno, 0, sizeof(ca->hi_subno));
2917 + for (vtp = help_pages; vtp < help_pages + nr_help_pages; vtp++)
2918 + cache_put(ca, vtp);
2927 diff -r af23d23c278b util/alevt/cache.h
2928 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2929 +++ b/util/alevt/cache.h Tue Dec 21 12:13:28 2010 +0100
2936 +#include "dllist.h"
2938 +#define HASH_SIZE 113
2943 + struct dl_head hash[HASH_SIZE];
2944 + int erc; // error reduction circuit on
2946 + u16 hi_subno[0x9ff + 1]; // 0:pg not in cache, 1-3f80:highest subno + 1
2947 + struct cache_ops *op;
2953 + struct dl_node node[1];
2954 + struct vt_page page[1];
2960 + void (*close)(struct cache *ca);
2961 + struct vt_page *(*get)(struct cache *ca, int pgno, int subno);
2962 + struct vt_page *(*put)(struct cache *ca, struct vt_page *vtp);
2963 + void (*reset)(struct cache *ca);
2964 + struct vt_page *(*foreach_pg)(struct cache *ca, int pgno, int subno, int dir,
2965 + int (*func)(), void *data);
2966 + int (*mode)(struct cache *ca, int mode, int arg);
2969 +struct cache *cache_open(void);
2970 +#define CACHE_MODE_ERC 1
2972 diff -r af23d23c278b util/alevt/dllist.h
2973 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2974 +++ b/util/alevt/dllist.h Tue Dec 21 12:13:28 2010 +0100
2982 + struct dl_node *next;
2983 + struct dl_node *prev;
2989 + struct dl_node *first;
2990 + struct dl_node *null;
2991 + struct dl_node *last;
2995 +static inline struct dl_head * dl_init(struct dl_head *h)
2997 + h->first = (struct dl_node *)&h->null;
2999 + h->last = (struct dl_node *)&h->first;
3004 +static inline struct dl_node * dl_remove(struct dl_node *n)
3006 + n->prev->next = n->next;
3007 + n->next->prev = n->prev;
3012 +static inline struct dl_node *
3013 + dl_insert_after(struct dl_node *p, struct dl_node *n)
3015 + n->next = p->next;
3018 + n->next->prev = n;
3022 +#define dl_empty(h) ((h)->first->next == 0)
3023 +#define dl_insert_before(p, n) dl_insert_after((p)->prev, (n))
3024 +#define dl_insert_first(h, n) ({ struct dl_node *_n = (n); \
3025 + dl_insert_before((h)->first, _n); })
3026 +#define dl_insert_last(h, n) ({ struct dl_node *_n = (n); \
3027 + dl_insert_after((h)->last, _n); })
3028 +#define dl_remove_first(h) dl_remove((h)->first) // mustn't be empty!
3029 +#define dl_remove_last(h) dl_remove((h)->last) // mustn't be empty!
3031 diff -r af23d23c278b util/alevt/exp-gfx.c
3032 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3033 +++ b/util/alevt/exp-gfx.c Tue Dec 21 12:13:28 2010 +0100
3035 +/* Copyright 1999 by Paul Ortyl <ortylp@from.pl> */
3038 +#include <stdlib.h>
3039 +#include <string.h>
3041 +#include "export.h"
3043 +#define WW (W*CW) /* pixel width of window */
3044 +#define WH (H*CH) /* pixel hegiht of window */
3047 +static inline void draw_char(unsigned char * colour_matrix, int fg, int bg,
3048 + int c, int dbl, int _x, int _y, int sep)
3051 + unsigned char* src= (latin1==LATIN1 ? font1_bits : font2_bits);
3055 + for(y=0;y<(CH<<dbl); y++)
3057 + for(x=0;x<CW; x++)
3059 + int bitnr, bit, maskbitnr, maskbit;
3060 + bitnr=(c/32*CH + (y>>dbl))*CW*32+ c%32*CW +x;
3061 + bit=(*(src+bitnr/8))&(1<<bitnr%8);
3064 + maskbitnr=(0xa0/32*CH + (y>>dbl))*CW*32+ 0xa0%32*CW +x;
3065 + maskbit=(*(src+maskbitnr/8))&(1<<maskbitnr%8);
3066 + *(colour_matrix+WW*(dest_y+y)+dest_x+x)=
3067 + (char)((bit && (!maskbit)) ? fg : bg);
3070 + *(colour_matrix+WW*(dest_y+y)+dest_x+x)=
3071 + (char)(bit ? fg : bg);
3078 +static void prepare_colour_matrix(/*struct export *e,*/
3079 + struct fmt_page *pg,
3080 + unsigned char *colour_matrix)
3083 + for (y = 0; y < H; ++y)
3085 + for (x = 0; x < W; ++x)
3087 + if (pg->dbl & (1<<(y-1)))
3089 + if (pg->data[y-1][x].attr & EA_HDOUBLE)
3090 + draw_char(colour_matrix, pg->data[y][x].fg,
3091 + pg->data[y][x].bg, pg->data[y][x].ch,
3094 + ((pg->data[y][x].attr & EA_SEPARATED) ? 1 : 0)
3099 + draw_char(colour_matrix, pg->data[y][x].fg,
3100 + pg->data[y][x].bg, pg->data[y][x].ch,
3101 + ((pg->data[y][x].attr & EA_DOUBLE) ? 1 : 0),
3103 + ((pg->data[y][x].attr & EA_SEPARATED) ? 1 : 0)
3112 +static int ppm_output(struct export *e, char *name, struct fmt_page *pg);
3114 +struct export_module export_ppm = // exported module definition
3117 + "ppm", // extension
3123 + ppm_output // output
3127 +static int ppm_output(struct export *e, char *name, struct fmt_page *pg)
3131 + static u8 rgb1[][3]={{0,0,0},
3139 + unsigned char *colour_matrix;
3141 + if (!(colour_matrix=malloc(WH*WW)))
3143 + export_error("cannot allocate memory");
3147 + prepare_colour_matrix(/*e,*/ pg, (unsigned char *)colour_matrix);
3148 + if (not(fp = fopen(name, "w")))
3150 + free(colour_matrix);
3151 + export_error("cannot create file");
3154 + fprintf(fp,"P6 %d %d 1\n", WW, WH);
3156 + for(n=0;n<WH*WW;n++)
3158 + if (!fwrite(rgb1[(int) *(colour_matrix+n)], 3, 1, fp))
3160 + export_error("error while writting to file");
3161 + free(colour_matrix);
3166 + free(colour_matrix);
3175 +static int png_open(struct export *e);
3176 +static int png_option(struct export *e, int opt, char *arg);
3177 +static int png_output(struct export *e, char *name, struct fmt_page *pg);
3178 +static char *png_opts[] = // module options
3180 + "compression=<0-9>", // set compression level
3184 +struct png_data // private data in struct export
3189 +struct export_module export_png = // exported module definition
3192 + "png", // extension
3193 + png_opts, // options
3194 + sizeof(struct png_data), // size
3197 + png_option, // option
3198 + png_output // output
3201 +#define D ((struct png_data *)e->data)
3204 +static int png_open(struct export *e)
3206 + D->compression = Z_DEFAULT_COMPRESSION;
3211 +static int png_option(struct export *e, int opt, char *arg)
3215 + case 1: // compression=
3216 + if (*arg >= '0' && *arg <= '9')
3217 + D->compression = *arg - '0';
3224 +static int png_output(struct export *e, char *name, struct fmt_page *pg)
3228 + png_structp png_ptr;
3229 + png_infop info_ptr;
3230 + png_byte *row_pointers[WH];
3231 + static u8 rgb8[][3]={{ 0, 0, 0},
3239 + unsigned char *colour_matrix;
3241 + if (!(colour_matrix=malloc(WH*WW)))
3243 + export_error("cannot allocate memory");
3246 + prepare_colour_matrix(/*e,*/ pg, (unsigned char *)colour_matrix);
3247 + if (not(fp = fopen(name, "w")))
3249 + free(colour_matrix);
3250 + export_error("cannot create file");
3253 + png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,
3254 + NULL, NULL, NULL);
3257 + free(colour_matrix);
3259 + export_error("libpng init error");
3262 + info_ptr = png_create_info_struct(png_ptr);
3265 + png_destroy_write_struct(&png_ptr,
3266 + (png_infopp)NULL);
3267 + free(colour_matrix);
3269 + export_error("libpng init error");
3272 + png_init_io(png_ptr, fp);
3273 + png_set_compression_level(png_ptr, D->compression);
3274 + png_set_compression_mem_level(png_ptr, 9);
3275 + png_set_compression_window_bits(png_ptr, 15);
3276 + png_set_IHDR(png_ptr, info_ptr, WW, WH,
3277 + 8, PNG_COLOR_TYPE_PALETTE , PNG_INTERLACE_NONE,
3278 + PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
3279 + png_set_PLTE(png_ptr, info_ptr,(png_color*) rgb8 , 8);
3280 + png_write_info(png_ptr, info_ptr);
3281 + for(x=0; x<WH; x++)
3282 + { row_pointers[x]=colour_matrix+x*WW; }
3283 + png_write_image(png_ptr, row_pointers);
3284 + png_write_end(png_ptr, info_ptr);
3285 + png_destroy_write_struct(&png_ptr, &info_ptr);
3286 + free(colour_matrix);
3293 diff -r af23d23c278b util/alevt/exp-html.c
3294 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3295 +++ b/util/alevt/exp-html.c Tue Dec 21 12:13:28 2010 +0100
3297 +/* Copyright 1999 by Paul Ortyl <ortylp@from.pl> */
3300 +#include <string.h>
3302 +#include "export.h"
3304 +static int html_open(struct export *e);
3305 +static int html_option(struct export *e, int opt, char *arg);
3306 +static int html_output(struct export *e, char *name, struct fmt_page *pg);
3307 +static char *html_opts[] = // module options
3309 + "gfx-chr=<char>", // substitute <char> for gfx-symbols
3310 + "bare", // no headers
3314 +struct html_data // private data in struct export
3321 +struct export_module export_html = // exported module definition
3324 + "html", // extension
3325 + html_opts, // options
3326 + sizeof(struct html_data), // size
3327 + html_open, // open
3329 + html_option, // option
3330 + html_output // output
3333 +#define D ((struct html_data *)e->data)
3336 +static int html_open(struct export *e)
3340 + //e->reveal=1; // the default should be the same for all formats.
3345 +static int html_option(struct export *e, int opt, char *arg)
3349 + case 1: // gfx-chr=
3350 + D->gfx_chr = *arg ?: ' ';
3352 + case 2: // bare (no headers)
3359 +#define HTML_BLACK "#000000"
3360 +#define HTML_RED "#FF0000"
3361 +#define HTML_GREEN "#00FF00"
3362 +#define HTML_YELLOW "#FFFF00"
3363 +#define HTML_BLUE "#0000FF"
3364 +#define HTML_MAGENTA "#FF00FF"
3365 +#define HTML_CYAN "#00FFFF"
3366 +#define HTML_WHITE "#FFFFFF"
3368 +#undef UNREADABLE_HTML //no '\n'
3369 +#define STRIPPED_HTML //only necessary fields in header
3371 +static int html_output(struct export *e, char *name, struct fmt_page *pg)
3374 + const char* html_colours[]={ HTML_BLACK,
3385 +#ifdef UNREADABLE_HTML
3388 +#define HTML_NL fputc('\n',fp);
3391 + if (not(fp = fopen(name, "w")))
3393 + export_error("cannot create file");
3399 +#ifndef STRIPPED_HTML
3400 + fputs("<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">",fp);
3403 + fputs("<html><head>",fp);
3405 +#ifndef STRIPPED_HTML
3406 + fputs("<meta http-equiv=\"Content-Type\" content=\"text/html;",fp);
3408 + case LATIN1: fprintf(fp,"charset=iso-8859-1\">"); break;
3409 + case LATIN2: fprintf(fp,"charset=iso-8859-2\">"); break;
3410 + case KOI8: fprintf(fp,"charset=koi8-r\">"); break;
3411 + case GREEK: fprintf(fp,"charset=iso-8859-7\">"); break;
3414 + fputs("<meta name=\"GENERATOR\" content=\"alevt-cap\">",fp);
3418 + case LATIN1: fprintf(fp,"<meta charset=iso-8859-1\">"); break;
3419 + case LATIN2: fprintf(fp,"<meta charset=iso-8859-2\">"); break;
3420 + case KOI8: fprintf(fp,"<meta charset=koi8-r\">"); break;
3421 + case GREEK: fprintf(fp,"<meta charset=iso-8859-7\">"); break;
3425 + fputs("</head>",fp);
3426 + fputs("<body text=\"#FFFFFF\" bgcolor=\"#000000\">",fp);
3430 + fputs("<tt><b>",fp);
3433 + // write tables in form of HTML format
3434 + for (y = 0; y < 25; ++y)
3436 + int last_nonblank=0;
3437 + int first_unprinted=0;
3439 + // previous char was
3440 + // is used for deciding to put semicolon or not
3443 + // for output filled with ' ' up to 40 chars
3444 + // set last_nonblank=39
3445 + for (x = 0 ; x < 40; ++x)
3447 + if (pg->data[y][x].attr & EA_GRAPHIC)
3448 + {pg->data[y][x].ch= D->gfx_chr;}
3450 + if (pg->data[y][x].ch!=' ')
3456 + for (x = 0 ; x <= last_nonblank ; ++x)
3458 + if (pg->data[y][x].ch==' ')
3460 + // if single space between blinking/colour words
3461 + // then make the space blinking/colour too
3464 + if ((pg->data[y][x-1].ch!=' ')
3465 + &&(pg->data[y][x+1].ch!=' ')
3466 + &&(pg->data[y][x-1].attr & EA_BLINK)
3467 + &&(pg->data[y][x+1].attr & EA_BLINK))
3468 + {pg->data[y][x].attr |= EA_BLINK;}
3470 + {pg->data[y][x].attr &= ~EA_BLINK;}
3472 + if ((pg->data[y][x-1].ch!=' ')
3473 + &&(pg->data[y][x+1].ch!=' ')
3474 + &&(pg->data[y][x-1].fg==pg->data[y][x+1].fg))
3475 + {pg->data[y][x].fg=pg->data[y][x-1].fg;}
3477 + pg->data[y][x].fg=7;
3481 + pg->data[y][x].attr &= ~EA_BLINK;
3482 + pg->data[y][x].fg=7;
3487 + // if foreground is black set the foreground to previous
3488 + // background colour to let it be visible
3489 + if (!pg->data[y][x].fg)
3490 + {pg->data[y][x].fg=pg->data[y][x].bg;}
3492 + //check if attributes changed,
3493 + //if yes then print chars and update first_unprinted
3494 + //if not then go to next char
3498 + (pg->data[y][x].attr & EA_BLINK)
3500 + (pg->data[y][x-1].attr & EA_BLINK)
3504 + pg->data[y][x].fg == pg->data[y][x-1].fg
3506 + &&(x!=last_nonblank))
3513 + int z=first_unprinted;
3514 + for(;(pg->data[y][z].ch==' ') && (z<x);z++)
3518 + fprintf(fp," ");
3530 + first_unprinted=z;
3532 + if (z==x) continue;
3534 + if (pg->data[y][first_unprinted].attr & EA_BLINK)
3536 + fprintf(fp,"<blink>");
3540 + if (pg->data[y][first_unprinted].fg!=7)
3542 + fprintf(fp,"<font color=\"%s\">",
3543 + html_colours[pg->data[y][first_unprinted].fg]);
3546 + for(;(z<x)||(z==last_nonblank);z++)
3549 + if (pg->data[y][z].ch==' ')
3551 + for(;(pg->data[y][z].ch==' ') && (z<x);z++)
3555 + fprintf(fp," ");
3570 + //if previous nbsp --> put semicolon!!!
3571 + if (nbsp) fputc(';',fp);
3572 + fputc(pg->data[y][z].ch,fp);
3577 + if (pg->data[y][first_unprinted].fg!=7)
3579 + fprintf(fp,"</font>");
3581 + if (pg->data[y][first_unprinted].attr & EA_BLINK)
3582 + fprintf(fp,"</blink>");
3584 + first_unprinted=z;
3590 + fputs("</b></tt>",fp);
3592 + fputs("</body></html>",fp);
3596 diff -r af23d23c278b util/alevt/exp-txt.c
3597 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3598 +++ b/util/alevt/exp-txt.c Tue Dec 21 12:13:28 2010 +0100
3601 +#include <string.h>
3602 +#include <stdlib.h>
3604 +#include "export.h"
3606 +static int txt_open(struct export *e);
3607 +static int txt_option(struct export *e, int opt, char *arg);
3608 +static int txt_output(struct export *e, char *name, struct fmt_page *pg);
3609 +static char *txt_opts[] = // module options
3611 + "color", // generate ansi color codes (and attributes)
3612 + "gfx-chr=<char>", // substitute <char> for gfx-symbols
3613 + "fg=<0-7|none>", // assume term has <x> as foreground color
3614 + "bg=<0-7|none>", // assume term has <x> as background color
3615 + "lines=<1-25>", // output 24 or 25 lines
3620 +struct txt_data // private data in struct export
3627 + struct fmt_char curr[1];
3632 +struct export_module export_txt = // exported module definition
3635 + "txt", // extension
3636 + txt_opts, // options
3637 + sizeof(struct txt_data), // data size
3640 + txt_option, // option
3641 + txt_output, // output
3645 +struct export_module export_ansi = // exported module definition
3648 + "txt", // extension
3649 + txt_opts, // options
3650 + sizeof(struct txt_data), // data size
3653 + txt_option, // option
3654 + txt_output, // output
3657 +#define D ((struct txt_data *)e->data)
3660 +char * my_stpcpy(char *dst, const char *src)
3662 + while (*dst = *src++)
3668 +static int txt_open(struct export *e)
3674 + if (e->mod == &export_ansi)
3680 +static int txt_option(struct export *e, int opt, char *arg)
3687 + case 2: // gfx-chr=
3688 + D->gfx_chr = *arg ?: ' ';
3691 + D->def_fg = *arg - '0';
3694 + D->def_bg = *arg - '0';
3697 + D->endline = atoi(arg);
3698 + if (D->endline < 1 || D->endline > H)
3700 + export_error("lines: invalid number");
3708 +static void put_attr(struct export *e, struct fmt_char *new)
3717 + fg = D->curr->fg ^ new->fg;
3718 + bg = D->curr->bg ^ new->bg;
3719 + attr = (D->curr->attr ^ new->attr) & (EA_BLINK | EA_DOUBLE);
3721 + if (fg | bg | attr)
3723 + if (~new->attr & attr) // reset some attributes -> reset all.
3725 + if (fg && new->fg == D->def_fg) // switch to def fg -> reset all
3727 + if (bg && new->bg == D->def_bg) // switch to def bg -> reset all
3730 + p = my_stpcpy(buf, "\e[");
3733 + p = my_stpcpy(p, ";"); // "0;" but 0 isn't neccesary
3734 + attr = -1; // set all attributes
3735 + fg = new->fg ^ D->def_fg; // set fg if != default fg
3736 + bg = new->bg ^ D->def_bg; // set bg if != default bg
3738 + if (attr & new->attr & EA_BLINK)
3739 + p = my_stpcpy(p, "5;"); // blink
3740 + if (attr & new->attr & EA_DOUBLE)
3741 + p = my_stpcpy(p, "1;"); // bold
3743 + p += sprintf(p, "%d;", new->fg + 30); // fg-color
3745 + p += sprintf(p, "%d;", new->bg + 40); // bg-color
3746 + p[-1] = 'm'; // replace last ;
3752 + fputs(buf, D->fp);
3756 +static int txt_output(struct export *e, char *name, struct fmt_page *pg)
3758 + struct fmt_char def_c[1];
3759 + struct fmt_char l[W+2];
3763 + D->fp = fopen(name, "w");
3766 + export_error("cannot create file");
3770 + /* initialize default colors. These have to be restored at EOL. */
3772 + def_c->fg = D->def_fg;
3773 + def_c->bg = D->def_bg;
3774 + def_c->attr = E_DEF_ATTR;
3775 + *D->curr = *def_c;
3776 + L[-1] = L[W] = *def_c;
3778 + for (y = 0; y < D->endline; y++)
3779 + if (~pg->hid & (1 << y)) // not hidden
3781 + // character conversion
3782 + for (x = 0; x < W; ++x)
3784 + struct fmt_char c = pg->data[y][x];
3788 + case 0x00: case 0xa0: c.ch = ' '; break;
3789 + case 0x7f: c.ch = '*'; break;
3790 + case BAD_CHAR: c.ch = '?'; break;
3792 + if (c.attr & EA_GRAPHIC)
3793 + c.ch = D->gfx_chr;
3801 + // optimize color and attribute changes
3802 + // delay fg and attr changes as far as possible
3803 + for (x = 0; x < W; ++x)
3804 + if (L[x].ch == ' ')
3806 + L[x].fg = L[x-1].fg;
3807 + l[x].attr = L[x-1].attr;
3810 + // move fg and attr changes to prev bg change point
3811 + for (x = W-1; x >= 0; x--)
3812 + if (L[x].ch == ' ' && L[x].bg == L[x+1].bg)
3814 + L[x].fg = L[x+1].fg;
3815 + L[x].attr = L[x+1].attr;
3819 + // now emit the whole line (incl EOL)
3820 + for (x = 0; x < W+1; ++x)
3821 + put_attr(e, L + x);
3826 diff -r af23d23c278b util/alevt/export.c
3827 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3828 +++ b/util/alevt/export.c Tue Dec 21 12:13:28 2010 +0100
3830 +#include <stdarg.h>
3831 +#include <stdlib.h>
3833 +#include <string.h>
3836 +#include "export.h"
3838 +extern struct export_module export_txt;
3839 +extern struct export_module export_ansi;
3840 +extern struct export_module export_html;
3841 +extern struct export_module export_png;
3842 +extern struct export_module export_ppm;
3843 +struct export_module *modules[] =
3856 +static char *glbl_opts[] =
3858 + "reveal", // show hidden text
3859 + "hide", // don't show hidden text (default)
3863 +static char errbuf[64];
3866 +void export_error(char *str, ...)
3870 + va_start(args, str);
3871 + vsnprintf(errbuf, sizeof(errbuf)-1, str, args);
3875 +char * export_errstr(void)
3881 +static int find_opt(char **opts, char *opt, char *arg)
3885 + char **oo, *o, *a;
3890 + if (a = strchr(o, '='))
3892 + a = buf + (a - o);
3893 + o = strcpy(buf, o);
3896 + if (strcasecmp(o, opt) == 0)
3898 + if ((a != 0) == (arg != 0))
3907 +struct export * export_open(char *fmt)
3909 + struct export_module **eem, *em;
3911 + char *opt, *optend, *optarg;
3914 + if (fmt = strdup(fmt))
3916 + if (opt = strchr(fmt, ','))
3918 + for (eem = modules; em = *eem; eem++)
3919 + if (strcasecmp(em->fmt_name, fmt) == 0)
3923 + if (e = malloc(sizeof(*e) + em->local_size))
3928 + memset(e + 1, 0, em->local_size);
3929 + if (not em->open || em->open(e) == 0)
3931 + for (; opt; opt = optend)
3933 + if (optend = strchr(opt, ','))
3937 + if (optarg = strchr(opt, '='))
3939 + if ((opti = find_opt(glbl_opts, opt, optarg)) > 0)
3941 + if (opti == 1) // reveal
3943 + else if (opti == 2) // hide
3946 + else if (opti == 0 &&
3947 + (opti = find_opt(em->options, opt, optarg)) > 0)
3949 + if (em->option(e, opti, optarg))
3955 + export_error("%s: unknown option", opt);
3957 + export_error("%s: takes no arg", opt);
3959 + export_error("%s: missing arg", opt);
3972 + export_error("out of memory");
3975 + export_error("unknown format: %s", fmt);
3979 + export_error("out of memory");
3984 +void export_close(struct export *e)
3986 + if (e->mod->close)
3993 +static char * hexnum(char *buf, unsigned int num)
3995 + char *p = buf + 5;
4001 + *--p = "0123456789abcdef"[num % 16];
4008 +static char * adjust(char *p, char *str, char fill, int width)
4010 + int l = width - strlen(str);
4014 + while (*p = *str++)
4020 +char * export_mkname(struct export *e, char *fmt, struct vt_page *vtp, char *usr)
4025 + while (*p = *fmt++)
4028 + char buf[32], buf2[32];
4032 + while (*fmt >= '0' && *fmt <= '9')
4033 + width = width*10 + *fmt++ - '0';
4038 + p = adjust(p, "%", '%', width);
4040 + case 'e': // extension
4041 + p = adjust(p, e->mod->extension, '.', width);
4043 + case 'p': // pageno[.subno]
4045 + p = adjust(p,strcat(strcat(hexnum(buf, vtp->pgno),
4046 + "."), hexnum(buf2, vtp->subno)), ' ', width);
4048 + p = adjust(p, hexnum(buf, vtp->pgno), ' ', width);
4050 + case 'S': // subno
4051 + p = adjust(p, hexnum(buf, vtp->subno), '0', width);
4054 + p = adjust(p, hexnum(buf, vtp->pgno), '0', width);
4056 + case 's': // user strin
4057 + p = adjust(p, usr, ' ', width);
4059 + //TODO: add date, channel name, ...
4064 + export_error("out of memory");
4069 +static void fmt_page(struct export *e, struct fmt_page *pg, struct vt_page *vtp)
4073 + u8 *p = vtp->data[0];
4077 + sprintf(buf, "\2%x.%02x\7", vtp->pgno, vtp->subno & 0xff);
4079 + for (y = 0; y < H; y++)
4081 + struct fmt_char c;
4082 + int last_ch = ' ';
4083 + int dbl = 0, hold = 0;
4089 + for (x = 0; x < W; ++x)
4092 + if (y == 0 && x < 8)
4096 + case 0x00 ... 0x07: /* alpha + fg color */
4098 + c.attr &= ~(EA_GRAPHIC | EA_CONCEALED);
4100 + case 0x08: /* flash */
4101 + c.attr |= EA_BLINK;
4103 + case 0x09: /* steady */
4104 + c.attr &= ~EA_BLINK;
4106 + case 0x0a: /* end box */
4107 + case 0x0b: /* start box */
4109 + case 0x0c: /* normal height */
4110 + c.attr &= EA_DOUBLE;
4112 + case 0x0d: /* double height */
4113 + if (y < H-2) /* ignored on last 2 lines */
4115 + c.attr |= EA_DOUBLE;
4119 + case 0x10 ... 0x17: /* gfx + fg color */
4121 + c.attr |= EA_GRAPHIC;
4122 + c.attr &= ~EA_CONCEALED;
4124 + case 0x18: /* conceal */
4125 + c.attr |= EA_CONCEALED;
4127 + case 0x19: /* contiguous gfx */
4128 + c.attr &= ~EA_SEPARATED;
4130 + case 0x1a: /* separate gfx */
4131 + c.attr |= EA_SEPARATED;
4133 + case 0x1c: /* black bg */
4136 + case 0x1d: /* new bg */
4139 + case 0x1e: /* hold gfx */
4142 + case 0x1f: /* release gfx */
4146 + case 0x0e: /* SO */
4147 + case 0x0f: /* SI */
4148 + case 0x1b: /* ESC */
4154 + if (hold && (c.attr & EA_GRAPHIC))
4158 + if (c.attr & EA_GRAPHIC)
4159 + if ((c.ch & 0xa0) == 0x20)
4162 + c.ch += (c.ch & 0x40) ? 32 : -32;
4164 + if (c.attr & EA_CONCEALED)
4165 + if (not e->reveal)
4167 + pg->data[y][x] = c;
4171 + pg->dbl |= 1 << y;
4172 + for (x = 0; x < W; ++x)
4174 + if (~pg->data[y][x].attr & EA_DOUBLE)
4175 + pg->data[y][x].attr |= EA_HDOUBLE;
4176 + pg->data[y+1][x] = pg->data[y][x];
4177 + pg->data[y+1][x].ch = ' ';
4183 + pg->hid = pg->dbl << 1;
4187 +int export(struct export *e, struct vt_page *vtp, char *name)
4189 + struct fmt_page pg[1];
4191 + fmt_page(e, pg, vtp);
4192 + return e->mod->output(e, name, pg);
4194 diff -r af23d23c278b util/alevt/export.h
4195 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4196 +++ b/util/alevt/export.h Tue Dec 21 12:13:28 2010 +0100
4207 + u8 ch, fg, bg, attr;
4210 +#define EA_DOUBLE 1 // double height char
4211 +#define EA_HDOUBLE 2 // single height char in double height line
4212 +#define EA_BLINK 4 // blink
4213 +#define EA_CONCEALED 8 // concealed
4214 +#define EA_GRAPHIC 16 // graphic symbol
4215 +#define EA_SEPARATED 32 // use separated graphic symbol
4219 +#define E_DEF_ATTR 0
4224 + struct vt_page *vtp;
4226 + struct fmt_char data[H][W];
4232 + struct export_module *mod; // module type
4233 + char *fmt_str; // saved option string (splitted)
4235 + int reveal; // reveal hidden chars
4236 + // local data for module's use. initialized to 0.
4237 + struct { int dummy; } data[0];
4241 +struct export_module
4243 + char *fmt_name; // the format type name (ASCII/HTML/PNG/...)
4244 + char *extension; // the default file name extension
4245 + char **options; // module options
4247 + int (*open)(struct export *fmt);
4248 + void (*close)(struct export *fmt);
4249 + int (*option)(struct export *fmt, int opt, char *arg);
4250 + int (*output)(struct export *fmt, char *name, struct fmt_page *pg);
4254 +extern struct export_module *modules[]; // list of modules (for help msgs)
4255 +void export_error(char *str, ...); // set error
4256 +char *export_errstr(void); // return last error
4257 +char *export_mkname(struct export *e, char *fmt, struct vt_page *vtp, char *usr);
4260 +struct export *export_open(char *fmt);
4261 +void export_close(struct export *e);
4262 +int export(struct export *e, struct vt_page *vtp, char *user_str);
4264 diff -r af23d23c278b util/alevt/fdset.c
4265 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4266 +++ b/util/alevt/fdset.c Tue Dec 21 12:13:28 2010 +0100
4268 +#include <stdlib.h>
4269 +#include <unistd.h>
4270 +#include <sys/time.h>
4271 +#include "dllist.h"
4275 +struct fdset fds[1]; /* global fd list */
4278 +int fdset_init(struct fdset *fds)
4280 + dl_init(fds->list);
4281 + fds->del_count = 0;
4286 +int fdset_add_fd(struct fdset *fds, int fd, void *handler, void *data)
4288 + struct fdset_node *fn;
4295 + for (fn = PTR fds->list->first; fn->node->next; fn = PTR fn->node->next)
4299 + if (not(fn = malloc(sizeof(*fn))))
4302 + fn->handler = handler;
4304 + dl_insert_last(fds->list, fn->node);
4309 +int fdset_del_fd(struct fdset *fds, int fd)
4311 + struct fdset_node *fn;
4313 + for (fn = PTR fds->list->first; fn->node->next; fn = PTR fn->node->next)
4316 + dl_remove(fn->node);
4325 +int fdset_select(struct fdset *fds, int timeout)
4327 + struct fdset_node *fn;
4329 + struct timeval tv[1], *tvp = 0;
4330 + int max_fd, x, del_count;
4334 + for (fn = PTR fds->list->first; fn->node->next; fn = PTR fn->node->next)
4336 + FD_SET(fn->fd, rfds);
4337 + if (fn->fd >= max_fd)
4338 + max_fd = fn->fd + 1;
4343 + tv->tv_sec = timeout/1000;
4344 + tv->tv_usec = timeout%1000*1000;
4348 + x = select(max_fd, rfds, 0, 0, tvp);
4352 + /* A little bit complicated. A called handler may modify the fdset... */
4354 + del_count = fds->del_count;
4355 + for (fn = PTR fds->list->first; fn->node->next; fn = PTR fn->node->next)
4356 + if (FD_ISSET(fn->fd, rfds))
4358 + FD_CLR(fn->fd, rfds);
4359 + fn->handler(fn->data, fn->fd);
4360 + if (fds->del_count != del_count)
4365 diff -r af23d23c278b util/alevt/fdset.h
4366 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4367 +++ b/util/alevt/fdset.h Tue Dec 21 12:13:28 2010 +0100
4372 +#include "dllist.h"
4377 + struct dl_head list[1];
4382 +struct fdset_node /*internal*/
4384 + struct dl_node node[1];
4386 + void (*handler)(void *data, int fd);
4390 +extern struct fdset fds[1]; /* global fd list */
4392 +int fdset_init(struct fdset *fds);
4393 +int fdset_add_fd(struct fdset *fds, int fd, void *handler, void *data);
4394 +int fdset_del_fd(struct fdset *fds, int fd);
4395 +int fdset_select(struct fdset *fds, int timeout /*millisec*/);
4397 diff -r af23d23c278b util/alevt/font.c
4398 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4399 +++ b/util/alevt/font.c Tue Dec 21 12:13:28 2010 +0100
4401 +#define static /* I want them global */
4402 +#include "font1.xbm"
4403 +#include "font2.xbm"
4404 +#include "font3.xbm"
4405 +#include "font4.xbm"
4406 diff -r af23d23c278b util/alevt/font.h
4407 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4408 +++ b/util/alevt/font.h Tue Dec 21 12:13:28 2010 +0100
4413 +#include "fontsize.h" /* the #defines from font?.xbm */
4415 +#if font1_width != font2_width || font1_height != font2_height
4416 +#error different font sizes.
4419 +extern unsigned char font1_bits[];
4420 +extern unsigned char font2_bits[];
4421 +extern unsigned char font3_bits[];
4422 +extern unsigned char font4_bits[];
4424 +#define font_width font1_width
4425 +#define font_height font1_height
4426 +#define CW (font_width/32) /* pixel width of a character */
4427 +#define CH (font_height/8) /* pixel height of a character */
4429 diff -r af23d23c278b util/alevt/hamm.c
4430 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4431 +++ b/util/alevt/hamm.c Tue Dec 21 12:13:28 2010 +0100
4436 +// table to decode hamm8/4 encoded bytes.
4437 +// the low 4 bits are the (corrected) data bits
4438 +// bit 8 is set if there was a single bit error
4439 +// bit 12 is set if there was an uncorrectable error
4441 +// the idea: you may add up to 15 words and get the
4442 +// number of single bit errors in b8-b11 and the number
4443 +// of double errors in b12-b15
4446 +static unsigned short hammtab[256] =
4448 + 0x0101, 0x100f, 0x0001, 0x0101, 0x100f, 0x0100, 0x0101, 0x100f,
4449 + 0x100f, 0x0102, 0x0101, 0x100f, 0x010a, 0x100f, 0x100f, 0x0107,
4450 + 0x100f, 0x0100, 0x0101, 0x100f, 0x0100, 0x0000, 0x100f, 0x0100,
4451 + 0x0106, 0x100f, 0x100f, 0x010b, 0x100f, 0x0100, 0x0103, 0x100f,
4452 + 0x100f, 0x010c, 0x0101, 0x100f, 0x0104, 0x100f, 0x100f, 0x0107,
4453 + 0x0106, 0x100f, 0x100f, 0x0107, 0x100f, 0x0107, 0x0107, 0x0007,
4454 + 0x0106, 0x100f, 0x100f, 0x0105, 0x100f, 0x0100, 0x010d, 0x100f,
4455 + 0x0006, 0x0106, 0x0106, 0x100f, 0x0106, 0x100f, 0x100f, 0x0107,
4456 + 0x100f, 0x0102, 0x0101, 0x100f, 0x0104, 0x100f, 0x100f, 0x0109,
4457 + 0x0102, 0x0002, 0x100f, 0x0102, 0x100f, 0x0102, 0x0103, 0x100f,
4458 + 0x0108, 0x100f, 0x100f, 0x0105, 0x100f, 0x0100, 0x0103, 0x100f,
4459 + 0x100f, 0x0102, 0x0103, 0x100f, 0x0103, 0x100f, 0x0003, 0x0103,
4460 + 0x0104, 0x100f, 0x100f, 0x0105, 0x0004, 0x0104, 0x0104, 0x100f,
4461 + 0x100f, 0x0102, 0x010f, 0x100f, 0x0104, 0x100f, 0x100f, 0x0107,
4462 + 0x100f, 0x0105, 0x0105, 0x0005, 0x0104, 0x100f, 0x100f, 0x0105,
4463 + 0x0106, 0x100f, 0x100f, 0x0105, 0x100f, 0x010e, 0x0103, 0x100f,
4464 + 0x100f, 0x010c, 0x0101, 0x100f, 0x010a, 0x100f, 0x100f, 0x0109,
4465 + 0x010a, 0x100f, 0x100f, 0x010b, 0x000a, 0x010a, 0x010a, 0x100f,
4466 + 0x0108, 0x100f, 0x100f, 0x010b, 0x100f, 0x0100, 0x010d, 0x100f,
4467 + 0x100f, 0x010b, 0x010b, 0x000b, 0x010a, 0x100f, 0x100f, 0x010b,
4468 + 0x010c, 0x000c, 0x100f, 0x010c, 0x100f, 0x010c, 0x010d, 0x100f,
4469 + 0x100f, 0x010c, 0x010f, 0x100f, 0x010a, 0x100f, 0x100f, 0x0107,
4470 + 0x100f, 0x010c, 0x010d, 0x100f, 0x010d, 0x100f, 0x000d, 0x010d,
4471 + 0x0106, 0x100f, 0x100f, 0x010b, 0x100f, 0x010e, 0x010d, 0x100f,
4472 + 0x0108, 0x100f, 0x100f, 0x0109, 0x100f, 0x0109, 0x0109, 0x0009,
4473 + 0x100f, 0x0102, 0x010f, 0x100f, 0x010a, 0x100f, 0x100f, 0x0109,
4474 + 0x0008, 0x0108, 0x0108, 0x100f, 0x0108, 0x100f, 0x100f, 0x0109,
4475 + 0x0108, 0x100f, 0x100f, 0x010b, 0x100f, 0x010e, 0x0103, 0x100f,
4476 + 0x100f, 0x010c, 0x010f, 0x100f, 0x0104, 0x100f, 0x100f, 0x0109,
4477 + 0x010f, 0x100f, 0x000f, 0x010f, 0x100f, 0x010e, 0x010f, 0x100f,
4478 + 0x0108, 0x100f, 0x100f, 0x0105, 0x100f, 0x010e, 0x010d, 0x100f,
4479 + 0x100f, 0x010e, 0x010f, 0x100f, 0x010e, 0x000e, 0x100f, 0x010e,
4482 +#if 0 // this information is contained in hamm24par bit 5
4483 +// simple parity table (sum of 1 bits modulo 2)
4486 +static char odd_parity[256] =
4488 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4489 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4490 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4491 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4492 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4493 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4494 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4495 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4496 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4497 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4498 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4499 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4500 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0,
4501 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4502 + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
4503 + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0
4507 +// this table generates the parity checks for hamm24/18 decoding.
4508 +// bit 0 is for test A, 1 for B, ...
4509 +// thanks to R. Gancarz for this fine table *g*
4512 +static char hamm24par[3][256] =
4514 + { // parities of first byte
4515 + 0, 33, 34, 3, 35, 2, 1, 32, 36, 5, 6, 39, 7, 38, 37, 4,
4516 + 37, 4, 7, 38, 6, 39, 36, 5, 1, 32, 35, 2, 34, 3, 0, 33,
4517 + 38, 7, 4, 37, 5, 36, 39, 6, 2, 35, 32, 1, 33, 0, 3, 34,
4518 + 3, 34, 33, 0, 32, 1, 2, 35, 39, 6, 5, 36, 4, 37, 38, 7,
4519 + 39, 6, 5, 36, 4, 37, 38, 7, 3, 34, 33, 0, 32, 1, 2, 35,
4520 + 2, 35, 32, 1, 33, 0, 3, 34, 38, 7, 4, 37, 5, 36, 39, 6,
4521 + 1, 32, 35, 2, 34, 3, 0, 33, 37, 4, 7, 38, 6, 39, 36, 5,
4522 + 36, 5, 6, 39, 7, 38, 37, 4, 0, 33, 34, 3, 35, 2, 1, 32,
4523 + 40, 9, 10, 43, 11, 42, 41, 8, 12, 45, 46, 15, 47, 14, 13, 44,
4524 + 13, 44, 47, 14, 46, 15, 12, 45, 41, 8, 11, 42, 10, 43, 40, 9,
4525 + 14, 47, 44, 13, 45, 12, 15, 46, 42, 11, 8, 41, 9, 40, 43, 10,
4526 + 43, 10, 9, 40, 8, 41, 42, 11, 15, 46, 45, 12, 44, 13, 14, 47,
4527 + 15, 46, 45, 12, 44, 13, 14, 47, 43, 10, 9, 40, 8, 41, 42, 11,
4528 + 42, 11, 8, 41, 9, 40, 43, 10, 14, 47, 44, 13, 45, 12, 15, 46,
4529 + 41, 8, 11, 42, 10, 43, 40, 9, 13, 44, 47, 14, 46, 15, 12, 45,
4530 + 12, 45, 46, 15, 47, 14, 13, 44, 40, 9, 10, 43, 11, 42, 41, 8
4531 + }, { // parities of second byte
4532 + 0, 41, 42, 3, 43, 2, 1, 40, 44, 5, 6, 47, 7, 46, 45, 4,
4533 + 45, 4, 7, 46, 6, 47, 44, 5, 1, 40, 43, 2, 42, 3, 0, 41,
4534 + 46, 7, 4, 45, 5, 44, 47, 6, 2, 43, 40, 1, 41, 0, 3, 42,
4535 + 3, 42, 41, 0, 40, 1, 2, 43, 47, 6, 5, 44, 4, 45, 46, 7,
4536 + 47, 6, 5, 44, 4, 45, 46, 7, 3, 42, 41, 0, 40, 1, 2, 43,
4537 + 2, 43, 40, 1, 41, 0, 3, 42, 46, 7, 4, 45, 5, 44, 47, 6,
4538 + 1, 40, 43, 2, 42, 3, 0, 41, 45, 4, 7, 46, 6, 47, 44, 5,
4539 + 44, 5, 6, 47, 7, 46, 45, 4, 0, 41, 42, 3, 43, 2, 1, 40,
4540 + 48, 25, 26, 51, 27, 50, 49, 24, 28, 53, 54, 31, 55, 30, 29, 52,
4541 + 29, 52, 55, 30, 54, 31, 28, 53, 49, 24, 27, 50, 26, 51, 48, 25,
4542 + 30, 55, 52, 29, 53, 28, 31, 54, 50, 27, 24, 49, 25, 48, 51, 26,
4543 + 51, 26, 25, 48, 24, 49, 50, 27, 31, 54, 53, 28, 52, 29, 30, 55,
4544 + 31, 54, 53, 28, 52, 29, 30, 55, 51, 26, 25, 48, 24, 49, 50, 27,
4545 + 50, 27, 24, 49, 25, 48, 51, 26, 30, 55, 52, 29, 53, 28, 31, 54,
4546 + 49, 24, 27, 50, 26, 51, 48, 25, 29, 52, 55, 30, 54, 31, 28, 53,
4547 + 28, 53, 54, 31, 55, 30, 29, 52, 48, 25, 26, 51, 27, 50, 49, 24
4548 + }, { // parities of third byte
4549 + 63, 14, 13, 60, 12, 61, 62, 15, 11, 58, 57, 8, 56, 9, 10, 59,
4550 + 10, 59, 56, 9, 57, 8, 11, 58, 62, 15, 12, 61, 13, 60, 63, 14,
4551 + 9, 56, 59, 10, 58, 11, 8, 57, 61, 12, 15, 62, 14, 63, 60, 13,
4552 + 60, 13, 14, 63, 15, 62, 61, 12, 8, 57, 58, 11, 59, 10, 9, 56,
4553 + 8, 57, 58, 11, 59, 10, 9, 56, 60, 13, 14, 63, 15, 62, 61, 12,
4554 + 61, 12, 15, 62, 14, 63, 60, 13, 9, 56, 59, 10, 58, 11, 8, 57,
4555 + 62, 15, 12, 61, 13, 60, 63, 14, 10, 59, 56, 9, 57, 8, 11, 58,
4556 + 11, 58, 57, 8, 56, 9, 10, 59, 63, 14, 13, 60, 12, 61, 62, 15,
4557 + 31, 46, 45, 28, 44, 29, 30, 47, 43, 26, 25, 40, 24, 41, 42, 27,
4558 + 42, 27, 24, 41, 25, 40, 43, 26, 30, 47, 44, 29, 45, 28, 31, 46,
4559 + 41, 24, 27, 42, 26, 43, 40, 25, 29, 44, 47, 30, 46, 31, 28, 45,
4560 + 28, 45, 46, 31, 47, 30, 29, 44, 40, 25, 26, 43, 27, 42, 41, 24,
4561 + 40, 25, 26, 43, 27, 42, 41, 24, 28, 45, 46, 31, 47, 30, 29, 44,
4562 + 29, 44, 47, 30, 46, 31, 28, 45, 41, 24, 27, 42, 26, 43, 40, 25,
4563 + 30, 47, 44, 29, 45, 28, 31, 46, 42, 27, 24, 41, 25, 40, 43, 26,
4564 + 43, 26, 25, 40, 24, 41, 42, 27, 31, 46, 45, 28, 44, 29, 30, 47
4568 +// table to extract the lower 4 bit from hamm24/18 encoded bytes
4571 +static char hamm24val[256] =
4573 + 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
4574 + 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
4575 + 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5,
4576 + 6, 6, 6, 6, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7,
4577 + 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9,
4578 + 10, 10, 10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 11, 11, 11, 11,
4579 + 12, 12, 12, 12, 13, 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13,
4580 + 14, 14, 14, 14, 15, 15, 15, 15, 14, 14, 14, 14, 15, 15, 15, 15,
4581 + 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
4582 + 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3,
4583 + 4, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 5, 5, 5, 5,
4584 + 6, 6, 6, 6, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7,
4585 + 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9,
4586 + 10, 10, 10, 10, 11, 11, 11, 11, 10, 10, 10, 10, 11, 11, 11, 11,
4587 + 12, 12, 12, 12, 13, 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13,
4588 + 14, 14, 14, 14, 15, 15, 15, 15, 14, 14, 14, 14, 15, 15, 15, 15
4591 +// mapping from parity checks made by table hamm24par to error
4592 +// results return by hamm24.
4593 +// (0 = no error, 0x0100 = single bit error, 0x1000 = double error)
4596 +static short hamm24err[64] =
4598 + 0x0000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
4599 + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
4600 + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
4601 + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
4602 + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
4603 + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
4604 + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
4605 + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
4608 +// mapping from parity checks made by table hamm24par to faulty bit
4609 +// in the decoded 18 bit word.
4612 +static int hamm24cor[64] =
4614 + 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
4615 + 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
4616 + 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
4617 + 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
4618 + 0x00000, 0x00000, 0x00000, 0x00001, 0x00000, 0x00002, 0x00004, 0x00008,
4619 + 0x00000, 0x00010, 0x00020, 0x00040, 0x00080, 0x00100, 0x00200, 0x00400,
4620 + 0x00000, 0x00800, 0x01000, 0x02000, 0x04000, 0x08000, 0x10000, 0x20000,
4621 + 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000, 0x00000,
4625 +int hamm8(u8 *p, int *err)
4627 + int a = hammtab[p[0]];
4633 +int hamm16(u8 *p, int *err)
4635 + int a = hammtab[p[0]];
4636 + int b = hammtab[p[1]];
4639 + return (a & 15) | (b & 15) * 16;
4643 +int hamm24(u8 *p, int *err)
4645 + int e = hamm24par[0][p[0]] ^ hamm24par[1][p[1]] ^ hamm24par[2][p[2]];
4646 + int x = hamm24val[p[0]] + p[1] % 128 * 16 + p[2] % 128 * 2048;
4647 + *err += hamm24err[e];
4648 + return x ^ hamm24cor[e];
4652 +int chk_parity(u8 *p, int n)
4655 + for (err = 0; n--; p++)
4656 + if (hamm24par[0][*p] & 32)
4659 + *p = BAD_CHAR, err++;
4662 diff -r af23d23c278b util/alevt/hamm.h
4663 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4664 +++ b/util/alevt/hamm.h Tue Dec 21 12:13:28 2010 +0100
4668 +int hamm8(u8 *p, int *err);
4669 +int hamm16(u8 *p, int *err);
4670 +int hamm24(u8 *p, int *err);
4671 +int chk_parity(u8 *p, int n);
4673 diff -r af23d23c278b util/alevt/help.c
4674 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4675 +++ b/util/alevt/help.c Tue Dec 21 12:13:28 2010 +0100
4681 +#define HELP_HEADER \
4682 +"........\6AleVT Online Help System ", \
4683 +" \22`p0`0 p `0pppp ", \
4684 +"\4\35\22\177 \177j5`p \177 j5 j5 \7 Version \34", \
4685 +"\4\35\22\177,\177j5\177.! +t>! j5 \7"VFILL VERSION" \34", \
4686 +" \22# #\42!\42# \42 \42! ",
4687 +#define FLOF_DATA \
4688 + 1, { {0x100,ANY_SUB}, {0x200,ANY_SUB}, {0x300,ANY_SUB}, \
4689 + {0x400,ANY_SUB}, {0x0ff,ANY_SUB}, {0x100,ANY_SUB} }
4692 +struct vt_page help_pages[] =
4694 + { 0x900, 0, -1, 0, 0, (1<<26)-1, {
4695 +#include "vt900.out"
4698 + { 0x901, 1, -1, 0, 0, (1<<26)-1, {
4699 +#include "vt901.out"
4702 + { 0x902, 1, -1, 0, 0, (1<<26)-1, {
4703 +#include "vt902.out"
4706 + { 0x903, 1, -1, 0, 0, (1<<26)-1, {
4707 +#include "vt903.out"
4710 + { 0x904, 1, -1, 0, 0, (1<<26)-1, {
4711 +#include "vt904.out"
4714 + { 0x905, 2, -1, 0, 0, (1<<26)-1, {
4715 +#include "vt905.out"
4718 + { 0x906, 1, -1, 0, 0, (1<<26)-1, {
4719 +#include "vt906.out"
4722 + { 0x907, 2, -1, 0, 0, (1<<26)-1, {
4723 +#include "vt907.out"
4726 + { 0x908, 1, -1, 0, 0, (1<<26)-1, {
4727 +#include "vt908.out"
4730 + { 0x909, 0, -1, 0, 0, (1<<26)-1, {
4731 +#include "vt909.out"
4734 + { 0x910, 2, -1, 0, 0, (1<<26)-1, {
4735 +#include "vt910.out"
4738 + { 0x911, 1, -1, 0, 0, (1<<26)-1, {
4739 +#include "vt911.out"
4742 + { 0x912, 2, -1, 0, 0, (1<<26)-1, {
4743 +#include "vt912.out"
4746 + { 0x913, 1, -1, 0, 0, (1<<26)-1, {
4747 +#include "vt913.out"
4750 + { 0x914, 0, -1, 0, 0, (1<<26)-1, {
4751 +#include "vt914.out"
4754 + { 0x915, 0, -1, 0, 0, (1<<26)-1, {
4755 +#include "vt915.out"
4759 +const int nr_help_pages = NELEM(help_pages);
4760 diff -r af23d23c278b util/alevt/help.h
4761 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4762 +++ b/util/alevt/help.h Tue Dec 21 12:13:28 2010 +0100
4769 +extern struct vt_page help_pages[];
4770 +extern const int nr_help_pages;
4772 diff -r af23d23c278b util/alevt/icon.xbm
4773 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4774 +++ b/util/alevt/icon.xbm Tue Dec 21 12:13:28 2010 +0100
4776 +#define icon_width 58
4777 +#define icon_height 20
4778 +static unsigned char icon_bits[] = {
4779 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff,
4780 + 0xff, 0xff, 0xff, 0x03, 0x0f, 0x30, 0xfe, 0xff, 0xf8, 0x11, 0x00, 0x03,
4781 + 0x0f, 0x30, 0xfe, 0xff, 0xf8, 0x11, 0x00, 0x03, 0xc5, 0x23, 0xaa, 0xaa,
4782 + 0xa8, 0xf1, 0xf1, 0x03, 0xc6, 0x22, 0xfe, 0xd5, 0x58, 0xb1, 0xb1, 0x02,
4783 + 0x45, 0x23, 0x06, 0xaa, 0xa8, 0x51, 0x51, 0x01, 0xc6, 0x22, 0x06, 0xd6,
4784 + 0x58, 0xb1, 0xb1, 0x02, 0x45, 0x23, 0x62, 0xac, 0xa8, 0x51, 0x51, 0x01,
4785 + 0xc6, 0x22, 0x62, 0xd4, 0x58, 0xb1, 0xb1, 0x02, 0x45, 0x23, 0x62, 0xac,
4786 + 0xa8, 0x51, 0x51, 0x01, 0xc6, 0x23, 0x62, 0xd4, 0xf8, 0xb1, 0xb1, 0x02,
4787 + 0x05, 0x20, 0x02, 0xae, 0x61, 0x58, 0x51, 0x01, 0x06, 0x20, 0x02, 0x56,
4788 + 0x61, 0xa8, 0xb1, 0x02, 0xc5, 0x23, 0xe2, 0xab, 0x06, 0x56, 0x51, 0x01,
4789 + 0x46, 0x22, 0xe2, 0x57, 0x05, 0xaa, 0xb1, 0x02, 0xc7, 0x23, 0x06, 0xfe,
4790 + 0x9f, 0xff, 0xf1, 0x03, 0xc7, 0x23, 0x06, 0xfe, 0x9f, 0xff, 0xf1, 0x03,
4791 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff,
4792 + 0xff, 0xff, 0xff, 0x03, };
4793 diff -r af23d23c278b util/alevt/lang.c
4794 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4795 +++ b/util/alevt/lang.c Tue Dec 21 12:13:28 2010 +0100
4797 +#include <string.h>
4806 +static u8 lang_char[256];
4807 +static u8 lang_chars[1+8+8][16] =
4809 + { 0, 0x23,0x24,0x40,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x7b,0x7c,0x7d,0x7e },
4811 + // for latin-1 font
4813 + { 0, '£', '$', '@', '«', '½', '»', '¬', '#', '', '¼', '¦', '¾', '÷' },
4815 + { 0, '#', '$', '§', 'Ä', 'Ö', 'Ü', '^', '_', '°', 'ä', 'ö', 'ü', 'ß' },
4816 + // Swedish/Finnish/Hungarian (100%)
4817 + { 0, '#', '¤', 'É', 'Ä', 'Ö', 'Å', 'Ü', '_', 'é', 'ä', 'ö', 'å', 'ü' },
4819 + { 0, '£', '$', 'é', '°', 'ç', '»', '¬', '#', 'ù', 'à', 'ò', 'è', 'ì' },
4821 + { 0, 'é', 'ï', 'à', 'ë', 'ê', 'ù', 'î', '#', 'è', 'â', 'ô', 'û', 'ç' },
4822 + // Portuguese/Spanish (100%)
4823 + { 0, 'ç', '$', '¡', 'á', 'é', 'í', 'ó', 'ú', '¿', 'ü', 'ñ', 'è', 'à' },
4824 + // Czech/Slovak (60%)
4825 + { 0, '#', 'u', 'c', 't', 'z', 'ý', 'í', 'r', 'é', 'á', 'e', 'ú', 's' },
4826 + // reserved (English mapping)
4827 + { 0, '£', '$', '@', '«', '½', '»', '¬', '#', '', '¼', '¦', '¾', '÷' },
4829 + // for latin-2 font
4831 + { 0, '#', 'ñ', '±', '¯', '¦', '£', 'æ', 'ó', 'ê', '¿', '¶', '³', '¼' },
4833 + { 0, '#', '$', '§', 'Ä', 'Ö', 'Ü', '^', '_', '°', 'ä', 'ö', 'ü', 'ß' },
4834 + // Estonian (100%)
4835 + { 0, '#', 'õ', '©', 'Ä', 'Ö', '®', 'Ü', 'Õ', '¹', 'ä', 'ö', '¾', 'ü' },
4836 + // Lettish/Lithuanian (90%)
4837 + { 0, '#', '$', '©', 'ë', 'ê', '®', 'è', 'ü', '¹', '±', 'u', '¾', 'i' },
4839 + { 0, 'é', 'i', 'a', 'ë', 'ì', 'u', 'î', '#', 'e', 'â', 'ô', 'u', 'ç' },
4840 + // Serbian/Croation/Slovenian (100%)
4841 + { 0, '#', 'Ë', 'È', 'Æ', '®', 'Ð', '©', 'ë', 'è', 'æ', '®', 'ð', '¹' },
4842 + // Czech/Slovak (100%)
4843 + { 0, '#', 'ù', 'è', '»', '¾', 'ý', 'í', 'ø', 'é', 'á', 'ì', 'ú', '¹' },
4845 + { 0, '#', '¢', 'Þ', 'Â', 'ª', 'Ã', 'Î', 'i', 'þ', 'â', 'º', 'ã', 'î' },
4848 +/* Yankable latin charset :-)
4849 + !"#$%&'()*+,-./0123456789:;<=>?
4850 + @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
4851 + `abcdefghijklmnopqrstuvwxyz{|}~
4852 + ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿
4853 + ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
4854 + àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
4858 +static struct mark { u8 *g0, *latin1, *latin2; } marks[16] =
4863 + /* grave - ` */ { " aeiouAEIOU",
4866 + /* acute - ' */ { " aceilnorsuyzACEILNORSUYZ",
4867 + "'ácéílnórsúýzÁCÉÍLNÓRSÚÝZ",
4868 + "'áæéíåñóà¶úý¼ÁÆÉÍÅÑÓÀ¦Úݬ" },
4869 + /* cirumflex - ^ */ { " aeiouAEIOU",
4872 + /* tilde - ~ */ { " anoANO",
4875 + /* ??? - ¯ */ { "",
4878 + /* breve - u */ { "aA",
4881 + /* abovedot - · */ { "zZ",
4884 + /* diaeresis ¨ */ { "aeiouAEIOU",
4887 + /* ??? - . */ { "",
4890 + /* ringabove - ° */ { " auAU",
4893 + /* cedilla - ¸ */ { "cstCST",
4896 + /* ??? - _ */ { " ",
4899 + /* dbl acute - " */ { " ouOU",
4902 + /* ogonek - \, */ { "aeAE",
4905 + /* caron - v */ { "cdelnrstzCDELNRSTZ",
4906 + "cdelnrstzCDELNRSTZ",
4907 + "èïìµòø¹»¾ÈÏÌ¥ÒØ©«®" },
4911 +static u8 g2map_latin1[] =
4912 + /*0123456789abcdef*/
4914 + "°±²³×µ¶·÷'\"»¼½¾¿"
4917 + " ÆЪH ILLØ ºÞTNn"
4918 + "Kædðhiillø ßþtn\x7f";
4921 +static u8 g2map_latin2[] =
4922 + /*0123456789abcdef*/
4925 + " `´^~ ¢ÿ¨.°¸_½²·"
4928 + "K ðdhiil³o ßptn\x7f";
4931 +void lang_init(void)
4935 + memset(lang_char, 0, sizeof(lang_char));
4936 + for (i = 1; i <= 13; i++)
4937 + lang_char[lang_chars[0][i]] = i;
4941 +void conv2latin(u8 *p, int n, int lang)
4943 + int c, gfx = 0, lat=0;
4945 + if ((latin1 == KOI8) && lang==12) { /* russian */
4949 + if(c==0x1b) lat = !lat; /* ESC switches languages inside page */
4952 + if (not gfx || (c & 0xa0) != 0x20) {
4953 + if(!lat) conv2koi8(p);
4956 + else if ((c & 0xe8) == 0)
4961 +else if ((latin1 == GREEK) && lang==15) { /* Hellas */
4965 + if(c==0x1b) lat = !lat; /* ESC switches languages inside page */
4967 + if ( is_greek(c)) {
4968 + if (not gfx || (c & 0xa0) != 0x20) {
4969 + if(!lat) conv2greek(p);
4972 + else if ((c & 0xe8) == 0)
4981 + if (lang_char[c = *p])
4983 + if (not gfx || (c & 0xa0) != 0x20)
4984 + *p = lang_chars[lang + 1][lang_char[c]];
4986 + else if ((c & 0xe8) == 0)
4994 +/* check for Greek chars - needs locale iso8859-7 set */
4995 +int is_greek(int c)
4997 + if( isalpha(c | 0x80)) return 1;
5002 +/* check for russian chars - needs locale KOI8-R set */
5005 + if( isalpha(c | 0x80)) return 1;
5006 + if( c=='&' ) return 1;
5011 +/* teletext to koi8-r conversion */
5012 +void conv2koi8(u8 *p)
5015 + static u8 l2koi[]={
5016 + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
5017 + 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3,
5018 + 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xFF, 0xFA, 0xFB, 0xFC, 0xFD,
5019 + 0xFE, 0xF9, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
5020 + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1,
5021 + 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB,
5022 + 0xDC, 0xDD, 0xDE, 0xDF
5026 + if ( (c >= 0x40) && (c <= 0x7f)) *p=l2koi[(c & 0x7f) - 0x40];
5027 + if (c=='&') *p='Ù';
5031 +/* teletext to iso8859-7 conversion */
5032 +void conv2greek(u8 *p)
5035 + static u8 l2greek[]={
5036 +/* 1 @ 0x40->ú*/0xc0,
5037 +/* 2 A 0x41->Á*/0xc1,
5038 +/* 3 B 0x42->Â*/0xc2,
5039 +/* 4 C 0x43->Ã*/0xc3,
5040 +/* 5 D 0x44->Ä*/0xc4,
5041 +/* 6 E 0x45->Å*/0xc5,
5042 +/* 7 F 0x46->Æ*/0xc6,
5043 +/* 8 G 0x47->Ç*/0xc7,
5044 +/* 9 H 0x48->È*/0xc8,
5045 +/*10 I 0x49->É*/0xc9,
5046 +/*11 J 0x4a->Ê*/0xca,
5047 +/*12 K 0x4b->Ë*/0xcb,
5048 +/*13 L 0x4c->Ì*/0xcc,
5049 +/*14 M 0x4d->Í*/0xcd,
5050 +/*15 N 0x4e->Î*/0xce,
5051 +/*16 O 0x4f->Ï*/0xcf,
5052 +/*17 P 0x50->Ð*/0xd0,
5053 +/*18 Q 0x51->Ñ*/0xd1,
5054 +/*19 R 0x52->?*/0x52,
5055 +/*20 S 0x53->Ó*/0xd3,
5056 +/*21 T 0x54->Ô*/0xd4,
5057 +/*22 U 0x55->Õ*/0xd5,
5058 +/*23 V 0x56->Ö*/0xd6,
5059 +/*24 W 0x57->÷*/0xd7,
5060 +/*25 X 0x58->Ø*/0xd8,
5061 +/*26 Y 0x59->Ù*/0xd9,
5062 +/*27 Z 0x5a->?*/0x5a,
5063 +/*28 [ 0x5b->?*/0x5b,
5064 +/*!29 \ 0x5c->Ü*/0xdc,
5065 +/*!30 ] 0x5d->Ý*/0xdd,
5066 +/*!31 ^ 0x5e->Þ*/0xde,
5067 +/*!32 _ 0x5f->ß*/0xdf,
5068 +/*33 ` 0x60->?*/0x60,
5069 +/*!34 a 0x61->á*/0xe1,
5070 +/*!35 b 0x62->â*/0xe2,
5071 +/*!36 c 0x63->ã*/0xe3,
5072 +/*!37 d 0x64->ä*/0xe4,
5073 +/*!38 e 0x65->å*/0xe5,
5074 +/*!39 f 0x66->æ*/0xe6,
5075 +/*!40 g 0x67->ç*/0xe7,
5076 +/*!41 h 0x68->è*/0xe8,
5077 +/*!42 i 0x69->é*/0xe9,
5078 +/*!43 j 0x6a->ê*/0xea,
5079 +/*!44 k 0x6b->ë*/0xeb,
5080 +/*!45 l 0x6c->ì*/0xec,
5081 +/*!46 m 0x6d->í*/0xed,
5082 +/*!47 n 0x6e->î*/0xee,
5083 +/*!48 o 0x6f->ï*/0xef,
5084 +/*!49 p 0x70->ð*/0xf0,
5085 +/*!50 q 0x71->ñ*/0xf1,
5086 +/*!51 r 0x72->ò*/0xf2,
5087 +/*!52 s 0x73->ó*/0xf3,
5088 +/*!53 t 0x74->ô*/0xf4,
5089 +/*!54 u 0x75->õ*/0xf5,
5090 +/*!55 v 0x76->ö*/0xf6,
5091 +/*!56 w 0x77->÷*/0xf7,
5092 +/*!57 x 0x78->ø*/0xf8,
5093 +/*!58 y 0x79->ù*/0xf9,
5094 +/*59 z 0x7a->ú(ìå ôüíï)*/0xc0,
5095 +/*60 { 0x7b->?*/0x7b,
5096 +/*!61 | 0x7c->ü*/0xfc,
5097 +/*!62 } 0x7d->ý*/0xfd,
5098 +/*!63 ~ 0x7e->þ*/0xfe,
5102 + if ( (c >= 0x40) && (c <= 0x7f)) *p=l2greek[(c & 0x7f) - 0x40];
5106 +void init_enhance(struct enhance *eh)
5112 +void add_enhance(struct enhance *eh, int dcode, u32 *t)
5115 + if (dcode == eh->next_des)
5117 + memcpy(eh->trip + dcode * 13, t, 13 * sizeof(*t));
5121 + eh->next_des = -1;
5125 +void enhance(struct enhance *eh, struct vt_page *vtp)
5130 + if (eh->next_des < 1)
5133 + for (p = eh->trip, e = p + eh->next_des * 13; p < e; p++)
5134 + if (*p % 2048 != 2047)
5136 + int adr = *p % 64;
5137 + int mode = *p / 64 % 32;
5138 + int data = *p / 2048 % 128;
5145 + case 15: // char from G2 set
5146 + if (adr < W && row < H)
5147 + if (latin1==LATIN1)
5148 + vtp->data[row][adr] = g2map_latin1[data-32];
5149 + else if (latin1==LATIN2)
5150 + vtp->data[row][adr] = g2map_latin2[data-32];
5152 + case 16 ... 31: // char from G0 set with diacritical mark
5153 + if (adr < W && row < H)
5155 + struct mark *mark = marks + (mode - 16);
5158 + if (x = strchr(mark->g0, data))
5159 + if (latin1==LATIN1)
5160 + data = mark->latin1[x - mark->g0];
5161 + else if (latin1==LATIN2)
5162 + data = mark->latin2[x - mark->g0];
5163 + vtp->data[row][adr] = data;
5171 + if ((adr -= 40) == 0)
5176 + case 1: // full row color
5179 + case 4: // set active position
5182 + case 7: // address row 0 (+ full row color)
5190 diff -r af23d23c278b util/alevt/lang.h
5191 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5192 +++ b/util/alevt/lang.h Tue Dec 21 12:13:28 2010 +0100
5210 + int next_des; // next expected designation code
5211 + u32 trip[13*16]; // tripplets
5214 +void lang_init(void);
5215 +void conv2latin(u8 *p, int n, int lang);
5216 +void conv2koi8(u8 *p);
5217 +void conv2greek(u8 *p);
5218 +void init_enhance(struct enhance *eh);
5219 +void add_enhance(struct enhance *eh, int dcode, u32 *data);
5220 +void enhance(struct enhance *eh, struct vt_page *vtp);
5222 diff -r af23d23c278b util/alevt/main.c
5223 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5224 +++ b/util/alevt/main.c Tue Dec 21 12:13:28 2010 +0100
5227 +#include <stdlib.h>
5228 +#include <string.h>
5229 +#include <locale.h>
5239 +static char *geometry;
5240 +static char *dpy_name;
5241 +static char *vbi_name = NULL;
5242 +static struct xio *xio;
5243 +static struct vbi *vbi;
5244 +static int erc = 1;
5245 +char *outfile = "";
5246 +static char *channel;
5247 +static int ttpid = -1;
5251 +static void usage(FILE *fp, int exitval)
5253 + fprintf(fp, "\nUsage: %s [options]\n", prgname);
5256 + " Valid options:\t\tDefault:\n"
5257 + " -c <channel name>\t\t(none;dvb only)\n"
5258 + " -ch -child <ppp.ss>\t\t(none)\n"
5259 + " -cs -charset\t\tlatin-1\n"
5260 + " <latin-1/2/koi8-r/iso8859-7>\n"
5262 + " -o <outfile>\t\t(none;dvb only)\n"
5263 + " -p -parent <ppp.ss>\t\t900\n"
5264 + " -s -sid <sid>\t\t(none;dvb only)\n"
5265 + " -t -ttpid <ttpid>\t\t(none;dvb only)\n"
5266 + " -v -vbi <vbidev>\t\t/dev/vbi\n"
5267 + " \t\t/dev/vbi0\n"
5268 + " \t\t/dev/video0\n"
5269 + " \t\t/dev/dvb/adapter0/demux0\n"
5271 + " ppp.ss stands for a page number and an\n"
5272 + " optional subpage number (Example: 123.4).\n"
5274 + " The -child option requires a parent\n"
5275 + " window. So it must be preceded by\n"
5276 + " a parent or another child window.\n"
5282 +static int arg_pgno(char *p, int *subno)
5290 + pgno = strtol(p, &end, 16);
5291 + if ((*end == ':' || *end == '/' || *end == '.') && end[1])
5292 + *subno = strtol(end + 1, &end, 16);
5294 + if (pgno >= 0x100 && pgno <= 0x999)
5295 + if (*subno == ANY_SUB || (*subno >= 0x00 && *subno <= 0x3f7f))
5298 + fatal("%s: invalid page number", p);
5302 +static struct vtwin * start(int argc, char **argv, struct vtwin *parent,
5303 + int pgno, int subno)
5305 + static int valid_vbi_name = 1;
5307 + if (!valid_vbi_name)
5311 + vbi = vbi_open(vbi_name, cache_open(), channel, outfile, sid, ttpid);
5315 + error("cannot open device: %s", vbi_name);
5316 + valid_vbi_name = 0;
5317 + vbi = open_null_vbi(cache_open());
5320 + vbi->cache->op->mode(vbi->cache, CACHE_MODE_ERC, erc);
5323 + xio = xio_open_dpy(dpy_name, argc, argv);
5325 + fatal("cannot open display");
5327 + parent = vtwin_new(xio, vbi, geometry, parent, pgno, subno);
5329 + fatal("cannot create window");
5331 + if (!valid_vbi_name)
5334 + send_errmsg(vbi, "cannot open device: %s", vbi_name);
5336 + send_errmsg(vbi, "cannot open any device", vbi_name);
5343 +static int option(int argc, char **argv, int *ind, char **arg)
5345 + static struct { char *nam, *altnam; int arg; } opts[] = {
5346 + { "-channel", "-c", 1 },
5347 + { "-child", "-ch", 1 },
5348 + { "-charset", "-cs", 1 },
5349 + { "-help", "-h", 0 },
5350 + { "-outfile", "-o", 1 },
5351 + { "-parent", "-p", 1 },
5352 + { "-sid", "-s", 1 },
5353 + { "-ttpid", "-t", 1 },
5354 + { "-vbi", "-v", 1 },
5359 + *arg = argv[(*ind)++];
5360 + for (i = 0; i < NELEM(opts); ++i)
5361 + if (streq(*arg, opts[i].nam) || streq(*arg, opts[i].altnam))
5365 + *arg = argv[(*ind)++];
5367 + fatal("option %s requires an argument", *arg);
5372 + fatal("%s: invalid option", *arg);
5379 +int main(int argc, char **argv)
5381 + struct vtwin *parent = 0;
5387 + setprgname(argv[0]);
5391 + while (opt = option(argc, argv, &ind, &arg))
5395 + case 1: // channel
5400 + fatal("-child requires a parent window");
5401 + pgno = arg_pgno(arg, &subno);
5402 + parent = start(argc, argv, parent, pgno, subno);
5405 + case 3: // charset
5406 + if (streq(arg, "latin-1") || streq(arg, "1"))
5408 + else if (streq(arg, "latin-2") || streq(arg, "2"))
5410 + else if (streq(arg, "koi8-r") || streq(arg, "koi"))
5412 + else if (streq(arg, "iso8859-7") || streq(arg, "el"))
5415 + fatal("bad charset (not latin-1/2/koi8-r/iso8859-7)");
5420 + case 5: // outfile
5424 + case -1: // non-option arg
5425 + pgno = arg_pgno(arg, &subno);
5426 + parent = start(argc, argv, 0, pgno, subno);
5430 + sid = strtoul(arg, NULL, 0);
5433 + ttpid = strtoul(arg, NULL, 0);
5443 + start(argc, argv, 0, 0x900, ANY_SUB);
5447 diff -r af23d23c278b util/alevt/misc.c
5448 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5449 +++ b/util/alevt/misc.c Tue Dec 21 12:13:28 2010 +0100
5452 +#include <stdarg.h>
5457 +extern char *strrchr(const char *, int);
5458 +NORETURN(exit(int));
5461 +void setprgname(char *str)
5463 + char *x = strrchr(str, '/');
5464 + prgname = x ? x+1 : str;
5468 +static void print_prgname(void)
5470 + if (prgname && *prgname)
5471 + fprintf(stderr, "%s: ", prgname);
5475 +void error(const char *str, ...)
5478 + va_start(args, str);
5480 + vfprintf(stderr, str, args);
5481 + fputc('\n', stderr);
5485 +void ioerror(const char *str)
5492 +void fatal(const char *str, ...)
5495 + va_start(args, str);
5497 + vfprintf(stderr, str, args);
5498 + fputc('\n', stderr);
5503 +void fatal_ioerror(const char *str)
5511 +void out_of_mem(int size)
5514 + fatal("out of memory allocating %d bytes.", size);
5515 + fatal("out of memory.");
5517 diff -r af23d23c278b util/alevt/misc.h
5518 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5519 +++ b/util/alevt/misc.h Tue Dec 21 12:13:28 2010 +0100
5523 +#define PTR (void *)
5524 +#define NELEM(x) ((int)(sizeof(x)/sizeof(*(x))))
5525 +#define NORETURN(x) void x __attribute__((__noreturn__))
5526 +#define DEFINE(x) typeof(x) x
5527 +#define OFFSET_OF(type, elem) ((u8 *)&((type *)0)->elem - (u8 *)0)
5528 +#define BASE_OF(type, elem, p) ((type *)((u8 *)(p) - OFFSET_OF(type, elem)))
5531 +#define streq(a, b) (strcmp((a), (b)) == 0)
5532 +#define min(a,b) ({ typeof(a) _a = a; typeof(b) _b = b; _a < _b ? _a : _b; })
5533 +#define max(a,b) ({ typeof(a) _a = a; typeof(b) _b = b; _a > _b ? _a : _b; })
5534 +#define bound(a,b,c) ({ typeof(a) _a = a; typeof(b) _b = b; typeof(c) _c = c; \
5535 + _b < _a ? _a : _b > _c ? _c : _b; })
5537 +typedef unsigned char u8;
5538 +typedef unsigned short u16;
5539 +typedef unsigned int u32;
5540 +typedef signed char s8;
5541 +typedef signed short s16;
5542 +typedef signed int s32;
5544 +extern char *prgname;
5545 +void setprgname(char *argv_0);
5547 +NORETURN(fatal(const char *str, ...));
5548 +NORETURN(fatal_ioerror(const char *str));
5549 +NORETURN(out_of_mem(int size));
5550 +void error(const char *str, ...);
5551 +void ioerror(const char *str);
5553 diff -r af23d23c278b util/alevt/os.h
5554 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5555 +++ b/util/alevt/os.h Tue Dec 21 12:13:28 2010 +0100
5559 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBsd__) \
5560 + || defined(__bsdi__)
5564 diff -r af23d23c278b util/alevt/search.c
5565 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5566 +++ b/util/alevt/search.c Tue Dec 21 12:13:28 2010 +0100
5568 +#include <sys/types.h> // for freebsd
5569 +#include <stdlib.h>
5573 +#include "search.h"
5576 +static void convert(u8 *p, u8 *buf, int *line)
5578 + int x, y, c, ch, gfx, hid = 0;
5580 + for (y = 1, p += 40; y < 25; ++y)
5585 + for (x = 0; x < 40; ++x)
5588 + switch (ch = *p++)
5590 + case 0x00 ... 0x07:
5593 + case 0x10 ... 0x17:
5602 + case 0x20 ... 0x7e:
5603 + if (gfx && ch != ' ' && (ch & 0xa0) == 0x20)
5605 + case 0xa0 ... 0xff:
5624 +static int search_pg(struct search *s, struct vt_page *vtp)
5627 + u8 buf[H *(W+1) + 1];
5630 + convert(PTR vtp->data, buf, line);
5631 + if (regexec(s->pattern, buf, 1, m, 0) == 0)
5634 + if (m->rm_so >= 0)
5636 + s->y = line[m->rm_so / (W+1)];
5637 + s->x = m->rm_so % (W+1);
5638 + s->len = m->rm_eo - m->rm_so;
5639 + if (s->x + s->len > 40)
5640 + s->len = 40 - s->x;
5648 +struct search * search_start(struct cache *ca, u8 *pattern)
5653 + if (not(s = malloc(sizeof(*s))))
5656 + if (pattern[0] == '!')
5661 + if (regcomp(s->pattern, pattern, f | REG_NEWLINE) != 0)
5674 +void search_end(struct search *s)
5676 + regfree(s->pattern);
5681 +int search_next(struct search *s, int *pgno, int *subno, int dir)
5683 + struct vt_page *vtp = 0;
5686 + vtp = s->cache->op->foreach_pg(s->cache, *pgno, *subno, dir,
5691 + *pgno = vtp->pgno;
5692 + *subno = vtp->subno ?: ANY_SUB;
5695 diff -r af23d23c278b util/alevt/search.h
5696 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5697 +++ b/util/alevt/search.h Tue Dec 21 12:13:28 2010 +0100
5706 + struct cache *cache;
5707 + regex_t pattern[1];
5708 + int x, y, len; // the position of the match
5711 +struct search *search_start(struct cache *ca, u8 *pattern);
5712 +void search_end(struct search *s);
5713 +int search_next(struct search *s, int *pgno, int *subno, int dir);
5715 diff -r af23d23c278b util/alevt/ui.c
5716 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5717 +++ b/util/alevt/ui.c Tue Dec 21 12:13:28 2010 +0100
5720 +#include <unistd.h>
5721 +#include <stdlib.h>
5722 +#include <string.h>
5725 +#include <stdarg.h>
5731 +#include "search.h"
5732 +#include "export.h"
5735 +static void vtwin_event(struct vtwin *w, struct vt_event *ev);
5736 +static void msg(struct vtwin *w, u8 *str, ...);
5737 +static void err(struct vtwin *w, u8 *str, ...);
5739 +#define hist(w,o) ((w)->hist + (((w)->hist_top + (o)) & (N_HISTORY-1)))
5742 +static int inc_hex(int i, int bcd_mode)
5747 + if ((i & 0x000f) > 0x0009)
5748 + i = (i + 0x0010) & 0x0ff0;
5749 + if ((i & 0x00f0) > 0x090)
5750 + i = (i + 0x0100) & 0x0f00;
5751 + if ((i & 0x0f00) > 0x0900)
5752 + i = (i + 0x1000) & 0xf000;
5758 +static int dec_hex(int i, int bcd_mode)
5763 + if ((i & 0x000f) > 0x0009)
5764 + i = (i & 0xfff0) + 0x0009;
5765 + if ((i & 0x00f0) > 0x0090)
5766 + i = (i & 0xff00) + 0x0099;
5767 + if ((i & 0x0f00) > 0x0900)
5768 + i = (i & 0xf000) + 0x0999;
5774 +static void set_title(struct vtwin *w)
5776 + char buf[32], buf2[32];
5778 + if (w->subno == ANY_SUB)
5779 + sprintf(buf, "%x", w->pgno);
5781 + sprintf(buf, "%x/%x", w->pgno, w->subno);
5783 + sprintf(buf2, "(%s)", buf);
5785 + sprintf(buf2, "%s", buf);
5786 + xio_title(w->xw, buf2);
5790 +static void query_page(struct vtwin *w, int pgno, int subno)
5795 + w->hold = 0; //subno != ANY_SUB;
5796 + xio_set_concealed(w->xw, w->revealed = 0);
5798 + if (hist(w, 0)->pgno != pgno ||
5799 + (hist(w,0)->subno == ANY_SUB && subno != ANY_SUB))
5801 + hist(w, 0)->pgno = pgno;
5802 + hist(w, 0)->subno = subno;
5803 + hist(w, 1)->pgno = 0; // end marker
5805 + xio_cancel_selection(w->xw);
5806 + if (vbi_query_page(w->vbi, pgno, subno) == 0)
5814 +static void new_or_query(struct vtwin *w, int pgno, int subno, int new_win)
5819 + query_page(w->child, pgno, subno);
5821 + vtwin_new(w->xw->xio, w->vbi, 0, w, pgno, subno);
5824 + query_page(w, pgno, subno);
5827 +static int _next_pgno(int *arg, struct vt_page *vtp)
5829 + int pgno = vtp->pgno;
5831 + if (arg[0] == pgno) // want different page
5833 + if (arg[1]) // and not a hex page
5834 + for (; pgno; pgno >>=4)
5835 + if ((pgno & 15) > 9)
5841 +static int _next_subno(int *arg, struct vt_page *vtp)
5843 + return vtp->pgno == arg[0]; // only subpages of this page
5847 +static void do_next_pgno(struct vtwin *w, int dir, int bcd_mode, int subs,
5850 + struct vt_page *vtp;
5851 + struct vtwin *cw = (new_win && w->child) ? w->child : w;
5852 + int pgno = cw->pgno;
5853 + int subno = cw->subno;
5855 + if (w->vbi->cache)
5859 + arg[1] = bcd_mode;
5860 + if (vtp = w->vbi->cache->op->foreach_pg(w->vbi->cache,
5861 + pgno, subno, dir, subs ? _next_subno:_next_pgno, &arg))
5863 + new_or_query(w, vtp->pgno, subs ? vtp->subno : ANY_SUB, new_win);
5867 + err(w, "No page.");
5870 +#define notdigit(x) (not isdigit((x)))
5873 +static int chk_screen_fromto(u8 *p, int x, int *n1, int *n2)
5877 + if (x >= 0 && x+5 < 42)
5878 + if (notdigit(p[1]) || notdigit(p[0]))
5879 + if (isdigit(p[2]))
5880 + if (p[3] == '/' || p[3] == ':')
5881 + if (isdigit(p[4]))
5882 + if (notdigit(p[5]) || notdigit(p[6])) /* p[6] is save here */
5885 + if (isdigit(p[1]))
5886 + *n1 += p[1] % 16 * 16;
5888 + if (isdigit(p[5]))
5889 + *n2 = *n2 * 16 + p[5] % 16;
5896 +static int chk_screen_pgno(u8 *p, int x, int *pgno, int *subno)
5900 + if (x >= 0 && x+4 < 42)
5901 + if (notdigit(p[0]) && notdigit(p[4]))
5902 + if (isdigit(p[1]) && isdigit(p[2]) && isdigit(p[3]))
5904 + *pgno = p[1] % 16 * 256 + p[2] % 16 * 16 + p[3] % 16;
5905 + if (*pgno >= 0x100 && *pgno <= 0x999)
5909 + if (p[4] == '.' || p[4] == '/')
5910 + if (isdigit(p[5]))
5911 + if (notdigit(p[6]) || notdigit(p[7])) /* p[7] is save here */
5913 + *subno = p[5] % 16;
5914 + if (isdigit(p[6]))
5915 + *subno = *subno * 16 + p[6] % 16;
5918 + // pgno followed by start box gets subno 1
5919 + if (x+4 < 42 && p[4] == 11)
5928 +static void do_screen_pgno(struct vtwin *w, int x, int y, int new_win)
5933 + if (x >= 0 && x < 40)
5935 + if (xio_get_line(w->xw, y, buf+1) == 0)
5937 + buf[0] = buf[41] = ' ';
5940 + for (i = -6; i < 35; i++)
5942 + if (w->vtp == 0 || w->vtp->subno != 0)
5943 + if (chk_screen_fromto(buf, x+i, &n1, &n2))
5945 + // subno cycling works wrong with children.
5946 + // so middle button cycles backwards...
5947 + if (w->subno != ANY_SUB)
5949 + n1 = new_win ? dec_hex(n1, 1) : inc_hex(n1, 1);
5954 + new_or_query(w, w->pgno, n1, 0);
5958 + if (chk_screen_pgno(buf, x+i, &n1, &n2))
5960 + new_or_query(w, n1, n2, new_win);
5966 + err(w, "No page.");
5970 +static void do_flof_pgno(struct vtwin *w, int button, int x, int new_win)
5972 + struct vt_page *vtp = w->vtp;
5973 + int lk = 99, i, c;
5975 + if (vtp && vtp->flof)
5980 + for (i = 0; i <= x && i < 40; ++i)
5981 + if ((c = vtp->data[24][i]) < 8) // fg-color code
5983 + lk = "x\0\1\2\3x\3x"[lk]; // color -> link#
5985 + case KEY_F(1): lk = 0; break;
5986 + case KEY_F(2): lk = 1; break;
5987 + case KEY_F(3): lk = 2; break;
5988 + case KEY_F(4): lk = 3; break;
5989 + case KEY_F(5): lk = 5; break;
5991 + if (lk < 6 && (vtp->link[lk].pgno & 0xff) != 0xff)
5993 + new_or_query(w, vtp->link[lk].pgno, vtp->link[lk].subno, new_win);
6001 + case 1 ... 3: lk = x / 8; break;
6002 + case KEY_F(1): lk = 0; break;
6003 + case KEY_F(2): lk = 1; break;
6004 + case KEY_F(3): lk = 2; break;
6005 + case KEY_F(4): lk = 3; break;
6006 + case KEY_F(5): lk = 4; break;
6010 + case 0: new_or_query(w, 0x100, ANY_SUB, new_win); return;
6011 + case 1: do_next_pgno(w, -1, 1, 0, new_win); return;
6012 + case 2: new_or_query(w, 0x900, ANY_SUB, new_win); return;
6013 + case 3: do_next_pgno(w, 1, 1, 0, new_win); return;
6014 + case 4: new_or_query(w, 0x999, ANY_SUB, new_win); return;
6017 + err(w, "No page.");
6021 +static void do_hist_pgno(struct vtwin *w)
6023 + if (hist(w, -1)->pgno)
6026 + query_page(w, hist(w, 0)->pgno, hist(w, 0)->subno);
6029 + err(w, "Empty history.");
6033 +static void put_head_line(struct vtwin *w, u8 *p)
6038 + xio_get_line(w->xw, 0, buf);
6040 + memcpy(buf + 8, p + 8, 32);
6042 + if (w->subno == ANY_SUB)
6043 + sprintf(buf, "\2%3x \5\xb7", w->pgno);
6045 + sprintf(buf, "\2S%02x \5\xb7", w->subno & 0xff);
6051 + if (w->xw->concealed)
6055 + xio_put_line(w->xw, 0, buf);
6059 +static void put_menu_line(struct vtwin *w)
6061 + if (w->status > 0)
6062 + xio_put_line(w->xw, 24, w->statusline);
6063 + else if (w->vtp && w->vtp->flof)
6064 + xio_put_line(w->xw, 24, w->vtp->data[24]);
6066 + xio_put_line(w->xw, 24, "\0 100 \4<< \6Help \4>>\0 999 ");
6070 +static void _msg(struct vtwin *w, u8 *str, va_list args)
6075 + i = vsprintf(buf, str, args);
6078 + memset(w->statusline, ' ', W);
6079 + memcpy(w->statusline + (W-i+1)/2, buf, i);
6085 +static void msg(struct vtwin *w, u8 *str, ...)
6089 + va_start(args, str);
6090 + _msg(w, str, args);
6095 +static void err(struct vtwin *w, u8 *str, ...)
6099 + va_start(args, str);
6100 + _msg(w, str, args);
6105 +static void next_search(struct vtwin *w, int rev)
6109 + int pgno = w->pgno;
6110 + int subno = w->subno;
6111 + int dir = rev ? -w->searchdir : w->searchdir;
6113 + if (search_next(w->search, &pgno, &subno, dir) == 0)
6115 + query_page(w, pgno, subno);
6116 + if (not w->searching && w->search->len)
6117 + xio_set_selection(w->xw, w->search->x, w->search->y,
6118 + w->search->x + w->search->len - 1, w->search->y);
6122 + err(w, "Pattern not found.");
6125 + err(w, "No search pattern.");
6129 +static void start_search(struct vtwin *w, u8 *string)
6137 + search_end(w->search);
6138 + w->search = search_start(w->vbi->cache, string);
6139 + if (w->search == 0)
6141 + err(w, "Bad search pattern.");
6145 + next_search(w, 0);
6149 +static void start_save2(struct vtwin *w, u8 *name)
6151 + if (name && *name)
6152 + if (export(w->export, w->vtp, name))
6153 + err(w, export_errstr());
6155 + export_close(w->export);
6161 +struct vtwin * vtwin_new(struct xio *xio, struct vbi *vbi, char *geom,
6162 + struct vtwin *parent, int pgno, int subno)
6166 + if (not(w = malloc(sizeof(*w))))
6169 + if (not (w->xw = xio_open_win(xio, geom)))
6175 + w->parent = parent;
6177 + if (parent && parent->child)
6178 + fatal("internal error: parent already has a child != 0");
6180 + parent->child = w;
6183 + hist(w,0)->pgno = 0;
6184 + hist(w,1)->pgno = 0;
6186 + xio_set_handler(w->xw, vtwin_event, w);
6187 + vbi_add_handler(w->vbi, vtwin_event, w);
6188 + query_page(w, pgno, subno);
6198 +static void vtwin_close(struct vtwin *w)
6201 + w->parent->child = w->child;
6203 + w->child->parent = w->parent;
6206 + search_end(w->search);
6208 + export_close(w->export);
6210 + vbi_del_handler(w->vbi, vtwin_event, w);
6211 + xio_close_win(w->xw, 1);
6216 +static void vtwin_event(struct vtwin *w, struct vt_event *ev)
6218 + struct xio_win *xw = w->xw;
6228 + if (w->status > 0 && --w->status == 0)
6238 + if (w->pgno >= 0x100)
6246 + w->pgno = w->pgno * 16 + i;
6247 + if (w->pgno >= 0x100)
6248 + query_page(w, w->pgno, ANY_SUB);
6256 + query_page(w, 0x900, ANY_SUB);
6259 + if (w->vbi->cache)
6261 + i = w->vbi->cache->op->mode(w->vbi->cache,
6262 + CACHE_MODE_ERC, 0);
6263 + w->vbi->cache->op->mode(w->vbi->cache,
6264 + CACHE_MODE_ERC, !i);
6265 + msg(w, "Error reduction %sabled.", i ? "dis" : "en");
6269 + if (vtwin_new(xw->xio, w->vbi, 0, 0, w->pgno, w->subno) == 0)
6270 + err(w, "Unable to open new window.");
6273 + do_next_pgno(w, 1, not ev->i2, 0, 0);
6276 + do_next_pgno(w, -1, not ev->i2, 0, 0);
6279 + do_next_pgno(w, -1, not ev->i2, 1, 0);
6282 + do_next_pgno(w, 1, not ev->i2, 1, 0);
6288 + w->hold = !w->hold;
6291 + vbi_reset(w->vbi);
6294 + if (w->vtp && w->vtp->flof &&
6295 + (w->vtp->link[5].pgno & 0xff) != 0xff)
6296 + query_page(w, w->vtp->link[5].pgno,
6297 + w->vtp->link[5].subno);
6299 + query_page(w, 0x100, ANY_SUB);
6302 + xio_set_concealed(xw, w->revealed = !w->revealed);
6304 + case KEY_F(1) ... KEY_F(5):
6305 + do_flof_pgno(w, ev->i1, 0, ev->i2);
6308 + next_search(w, 0);
6311 + next_search(w, 1);
6314 + err(w, "Unused key.");
6322 + search_end(w->search);
6325 + query_page(w, w->pgno, w->subno);
6326 + msg(w, "Cache cleared!");
6333 + else if (ev->i1 == 5) // wheel mouse
6334 + do_next_pgno(w, 1, not ev->i2, 0, 0);
6335 + else if (ev->i1 == 4) // wheel mouse
6336 + do_next_pgno(w, -1, not ev->i2, 0, 0);
6337 + else if (ev->i1 == 7) // dual wheel mouse
6338 + do_next_pgno(w, 1, not ev->i2, 1, 0);
6339 + else if (ev->i1 == 6) // dual wheel mouse
6340 + do_next_pgno(w, -1, not ev->i2, 1, 0);
6341 + else if (ev->i4 == 24)
6342 + do_flof_pgno(w, ev->i1, ev->i3, ev->i1 == 2);
6343 + else if (ev->i4 == 0 && ev->i3 < 5)
6346 + w->hold = !w->hold;
6348 + vtwin_new(xw->xio, w->vbi, 0, 0, w->pgno, w->subno);
6350 + else if (ev->i4 == 0 && ev->i3 < 8)
6352 + if (ev->i1 == 2 && w->child)
6354 + xio_set_concealed(w->xw, w->revealed = !w->revealed);
6357 + do_screen_pgno(w, ev->i3, ev->i4, ev->i1 == 2);
6362 + struct vt_page *vtp = ev->p1;
6366 + printf("errors=%4d\n",vtp->errors);
6367 + if (w->searching || not(w->hold || ev->i1))
6368 + if (vtp->pgno == w->pgno)
6369 + if (w->subno == ANY_SUB || vtp->subno == w->subno)
6373 + put_head_line(w, vtp->data[0]);
6374 + for (i = 1; i < 24; ++i)
6375 + xio_put_line(w->xw, i, vtp->data[i]);
6384 + int hdr_mag = ev->i1 / 256;
6385 + int flags = ev->i3;
6386 + int mag = w->pgno;
6391 + if (flags & PG_OUTOFSEQ)
6394 + if (~flags & PG_MAGSERIAL)
6395 + if (mag != hdr_mag)
6398 + put_head_line(w, p);
6403 +#if 0 /* VPS data (seems to be unused in .de */
6406 + if (ev->i1 == 8 && ev->i2 == 30 && p[0]/2 == 1)
6409 + int pil, cni, pty, misc;
6411 + for (i = 7; i < 20; ++i)
6412 + p[i] = hamm8(p+i, &ev->i3);
6413 + if (ev->i3 & 0xf000) /* uncorrectable errors */
6415 + cni = p[9] + p[15]/4*16 + p[16]%4*64 + p[10]%4*256
6416 + + p[16]/4*1024 + p[17]*4096;
6417 + pty = p[18] + p[19]*16;
6418 + pil = p[10]/4 + p[11]*4 + p[12]*64 + p[13]*1024
6419 + + p[14]*16384 + p[15]%4*262144;
6420 + misc = p[7] + p[8]*16;
6421 + err(w, "%02x %04x %05x %02x: %.20s", misc, cni, pil, pty, p+20);
6428 + char *errmsg = ev->p1;
6429 + if (errmsg != NULL && *errmsg != '\0')
6440 diff -r af23d23c278b util/alevt/ui.h
6441 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6442 +++ b/util/alevt/ui.h Tue Dec 21 12:13:28 2010 +0100
6450 +#include "search.h"
6452 +#define N_HISTORY (1 << 6) // number of history entries
6456 + struct vtwin *parent, *child;
6457 + struct xio_win *xw;
6462 + } hist[N_HISTORY];
6468 + struct vt_page *vtp;
6469 + struct search *search;
6472 + u8 statusline[W+1];
6473 + struct export *export;
6476 +extern struct vtwin *vtwin_new(struct xio *xio, struct vbi *vbi, char *geom,
6477 + struct vtwin *parent, int pgno, int subno);
6479 diff -r af23d23c278b util/alevt/vbi.c
6480 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6481 +++ b/util/alevt/vbi.c Tue Dec 21 12:13:28 2010 +0100
6483 +#define _GNU_SOURCE
6484 +#include <stdlib.h>
6485 +#include <string.h>
6486 +#include <unistd.h>
6490 +#include <stdarg.h>
6491 +#include <sys/ioctl.h>
6492 +#include <sys/poll.h>
6500 +#include <libzvbi.h>
6503 +static vbi_capture * pZvbiCapt;
6504 +static vbi_raw_decoder * pZvbiRawDec;
6505 +static vbi_sliced * pZvbiData;
6506 +static vbi_proxy_client * pProxy;
6508 +#define ZVBI_BUFFER_COUNT 10
6509 +#define ZVBI_TRACE 0
6512 +static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name,
6513 + const char *channel, char *outfile, u_int16_t sid, int ttpid);
6514 +static void dvb_handler(struct vbi *vbi, int fd);
6516 +#define FAC (1<<16) // factor for fix-point arithmetic
6518 +static u8 *rawbuf; // one common buffer for raw vbi data
6519 +static int rawbuf_size; // its current size
6521 +static char *vbi_names[]
6522 + = { "/dev/vbi", "/dev/vbi0", "/dev/video0", "/dev/dvb/adapter0/demux0",
6523 + NULL }; // default device names if none was given at the command line
6526 +static void out_of_sync(struct vbi *vbi)
6528 + int i; // discard all in progress pages
6529 + for (i = 0; i < 8; ++i)
6530 + vbi->rpage[i].page->flags &= ~PG_ACTIVE;
6534 +// send an event to all clients
6535 +static void vbi_send(struct vbi *vbi, int type, int i1, int i2, int i3, void *p1)
6537 + struct vt_event ev[1];
6538 + struct vbi_client *cl, *cln;
6539 + ev->resource = vbi;
6545 + for (cl = PTR vbi->clients->first; cln = PTR cl->node->next; cl = cln)
6546 + cl->handler(cl->data, ev);
6550 +static void vbi_send_page(struct vbi *vbi, struct raw_page *rvtp, int page)
6552 + struct vt_page *cvtp = 0;
6554 + if (rvtp->page->flags & PG_ACTIVE)
6556 + if (rvtp->page->pgno % 256 != page)
6558 + rvtp->page->flags &= ~PG_ACTIVE;
6559 + enhance(rvtp->enh, rvtp->page);
6561 + cvtp = vbi->cache->op->put(vbi->cache, rvtp->page);
6562 + vbi_send(vbi, EV_PAGE, 0, 0, 0, cvtp ?: rvtp->page);
6568 +static void pll_add(struct vbi *vbi, int n, int err)
6573 +// process one videotext packet
6574 +static int vt_line(struct vbi *vbi, u8 *p)
6576 + struct vt_page *cvtp;
6577 + struct raw_page *rvtp;
6578 + int hdr, mag, mag8, pkt, i;
6581 + hdr = hamm16(p, &err);
6586 + pkt = (hdr >> 3) & 0x1f;
6588 + rvtp = vbi->rpage + mag;
6589 + cvtp = rvtp->page;
6594 + int b1, b2, b3, b4;
6595 + b1 = hamm16(p, &err); // page number
6596 + b2 = hamm16(p+2, &err); // subpage number + flags
6597 + b3 = hamm16(p+4, &err); // subpage number + flags
6598 + b4 = hamm16(p+6, &err); // language code + more flags
6599 + if (vbi->ppage->page->flags & PG_MAGSERIAL)
6600 + vbi_send_page(vbi, vbi->ppage, b1);
6601 + vbi_send_page(vbi, rvtp, b1);
6606 + cvtp->errors = (err >> 8) + chk_parity(p + 8, 32);;
6607 + cvtp->pgno = mag8 * 256 + b1;
6608 + cvtp->subno = (b2 + b3 * 256) & 0x3f7f;
6609 + cvtp->lang = "\0\4\2\6\1\5\3\7"[b4 >> 5] + (latin1==LATIN1 ? 0 : 8);
6610 + cvtp->flags = b4 & 0x1f;
6611 + cvtp->flags |= b3 & 0xc0;
6612 + cvtp->flags |= (b2 & 0x80) >> 2;
6615 + vbi->ppage = rvtp;
6616 + pll_add(vbi, 1, cvtp->errors);
6617 + conv2latin(p + 8, 32, cvtp->lang);
6618 + vbi_send(vbi, EV_HEADER, cvtp->pgno, cvtp->subno, cvtp->flags, p);
6622 + cvtp->flags |= PG_ACTIVE;
6623 + init_enhance(rvtp->enh);
6624 + memcpy(cvtp->data[0]+0, p, 40);
6625 + memset(cvtp->data[0]+40, ' ', sizeof(cvtp->data)-40);
6631 + pll_add(vbi, 1, err = chk_parity(p, 40));
6633 + if (~cvtp->flags & PG_ACTIVE)
6636 + cvtp->errors += err;
6637 + cvtp->lines |= 1 << pkt;
6638 + conv2latin(p, 40, cvtp->lang);
6639 + memcpy(cvtp->data[pkt], p, 40);
6646 + if (~cvtp->flags & PG_ACTIVE)
6649 + d = hamm8(p, &err);
6653 + for (i = 0; i < 13; ++i)
6654 + t[i] = hamm24(p + 1 + 3*i, &err);
6658 + add_enhance(rvtp->enh, d, t);
6664 + if (~cvtp->flags & PG_ACTIVE)
6665 + return 0; // -1 flushes all pages. We may never resync again
6667 + b1 = hamm8(p, &err);
6668 + b2 = hamm8(p + 37, &err);
6671 + if (b1 != 0 || not(b2 & 8))
6674 + for (i = 0; i < 6; ++i)
6677 + b1 = hamm16(p+1+6*i, &err);
6678 + b2 = hamm16(p+3+6*i, &err);
6679 + b3 = hamm16(p+5+6*i, &err);
6682 + x = (b2 >> 7) | ((b3 >> 5) & 0x06);
6683 + cvtp->link[i].pgno = ((mag ^ x) ?: 8) * 256 + b1;
6684 + cvtp->link[i].subno = (b2 + b3 * 256) & 0x3f7f;
6693 + p[0] = hamm8(p, &err); // designation code
6694 + p[1] = hamm16(p+1, &err); // initial page
6695 + p[3] = hamm16(p+3, &err); // initial subpage + mag
6696 + p[5] = hamm16(p+5, &err); // initial subpage + mag
6699 + err += chk_parity(p+20, 20);
6700 + conv2latin(p+20, 20, 0);
6701 + vbi_send(vbi, EV_XPACKET, mag8, pkt, err, p);
6711 +// called when new vbi data is waiting
6712 +static void vbi_handler(struct vbi *vbi, int fd)
6715 + struct timeval timeout;
6720 + timeout.tv_sec = 0;
6721 + timeout.tv_usec = 25000;
6722 + res = vbi_capture_read_sliced(pZvbiCapt, pZvbiData, &lineCount, ×tamp,
6726 + for (line=0; line < lineCount; line++)
6728 + if ((pZvbiData[line].id & VBI_SLICED_TELETEXT_B) != 0)
6730 + vt_line(vbi, pZvbiData[line].data);
6740 +int vbi_add_handler(struct vbi *vbi, void *handler, void *data)
6742 + struct vbi_client *cl;
6744 + if (not(cl = malloc(sizeof(*cl))))
6746 + cl->handler = handler;
6748 + dl_insert_last(vbi->clients, cl->node);
6753 +void vbi_del_handler(struct vbi *vbi, void *handler, void *data)
6755 + struct vbi_client *cl;
6757 + for (cl = PTR vbi->clients->first; cl->node->next; cl = PTR cl->node->next)
6758 + if (cl->handler == handler && cl->data == data)
6760 + dl_remove(cl->node);
6767 +struct vbi * vbi_open(char *vbi_name, struct cache *ca,
6768 + const char *channel, char *outfile, u_int16_t sid, int ttpid)
6770 + static int inited = 0;
6775 + if (vbi_name == NULL)
6778 + char *tried_devices = NULL;
6779 + char *old_tried_devices = NULL;
6780 + for (i = 0; vbi_names[i] != NULL; i++)
6782 + vbi_name = vbi_names[i];
6783 + // collect device names for the error message below
6784 + if (old_tried_devices)
6786 + if (asprintf(&tried_devices, "%s, %s", old_tried_devices, vbi_name) < 0)
6787 + tried_devices = NULL;
6788 + free(old_tried_devices);
6790 + else if (asprintf(&tried_devices, "%s", vbi_name) < 0)
6791 + tried_devices = NULL;
6792 + if (tried_devices == NULL)
6794 + old_tried_devices = tried_devices;
6795 + if (access(vbi_name, R_OK) != 0)
6797 + vbi = vbi_open(vbi_name, ca, channel, outfile, sid, ttpid);
6800 + if (tried_devices != NULL)
6801 + free(tried_devices);
6806 + error("could not open any of the standard devices (%s)", tried_devices);
6807 + free(tried_devices);
6815 + if (not(vbi = malloc(sizeof(*vbi))))
6817 + error("out of memory");
6820 + if (!vbi_dvb_open(vbi, vbi_name, channel, outfile, sid, ttpid)) {
6822 + dl_init(vbi->clients);
6824 + vbi->ppage = vbi->rpage;
6825 + fdset_add_fd(fds, vbi->fd, dvb_handler, vbi);
6829 + services = VBI_SLICED_TELETEXT_B;
6833 + pProxy = vbi_proxy_client_create(vbi_name, "alevt",
6834 + VBI_PROXY_CLIENT_NO_STATUS_IND, &pErrStr, ZVBI_TRACE);
6835 + if (pProxy != NULL)
6837 + pZvbiCapt = vbi_capture_proxy_new(pProxy, ZVBI_BUFFER_COUNT, 0,
6838 + &services, 0, &pErrStr);
6839 + if (pZvbiCapt == NULL)
6841 + vbi_proxy_client_destroy(pProxy);
6845 + if (pZvbiCapt == NULL)
6846 + pZvbiCapt = vbi_capture_v4l2_new(vbi_name, ZVBI_BUFFER_COUNT,
6847 + &services, 0, &pErrStr, ZVBI_TRACE);
6848 + if (pZvbiCapt == NULL)
6849 + pZvbiCapt = vbi_capture_v4l_new(vbi_name, 0, &services, 0, &pErrStr,
6852 + if (pZvbiCapt != NULL)
6854 + pZvbiRawDec = vbi_capture_parameters(pZvbiCapt);
6855 + if ((pZvbiRawDec != NULL) && ((services & VBI_SLICED_TELETEXT_B) != 0))
6857 + pZvbiData = malloc((pZvbiRawDec->count[0] + pZvbiRawDec->count[1]) \
6858 + * sizeof(*pZvbiData));
6860 + vbi->fd = vbi_capture_fd(pZvbiCapt);
6863 + vbi_capture_delete(pZvbiCapt);
6866 + if (pErrStr != NULL)
6868 + fprintf(stderr, "libzvbi: %s\n", pErrStr);
6872 + if (vbi->fd == -1)
6875 + dl_init(vbi->clients);
6877 + vbi->ppage = vbi->rpage;
6878 + fdset_add_fd(fds, vbi->fd, vbi_handler, vbi);
6890 +void vbi_close(struct vbi *vbi)
6892 + fdset_del_fd(fds, vbi->fd);
6894 + vbi->cache->op->close(vbi->cache);
6896 + if (pZvbiData != NULL)
6900 + if (pZvbiCapt != NULL)
6902 + vbi_capture_delete(pZvbiCapt);
6905 + if (pProxy != NULL)
6907 + vbi_proxy_client_destroy(pProxy);
6914 +struct vt_page * vbi_query_page(struct vbi *vbi, int pgno, int subno)
6916 + struct vt_page *vtp = 0;
6918 + vtp = vbi->cache->op->get(vbi->cache, pgno, subno);
6923 + vbi_send(vbi, EV_PAGE, 1, 0, 0, vtp);
6928 +void vbi_reset(struct vbi *vbi)
6931 + vbi->cache->op->reset(vbi->cache);
6932 + vbi_send(vbi, EV_RESET, 0, 0, 0, 0);
6936 +/* Starting from here: DVB API */
6937 +#include <linux/dvb/dmx.h>
6938 +#include <linux/dvb/frontend.h>
6939 +#include <linux/dvb/video.h>
6941 +static int dvb_get_table(int fd, u_int16_t pid, u_int8_t tblid, u_int8_t *buf,
6944 + struct dmx_sct_filter_params sctFilterParams;
6945 + struct pollfd pfd;
6947 + memset(&sctFilterParams, 0, sizeof(sctFilterParams));
6948 + sctFilterParams.pid = pid;
6949 + sctFilterParams.timeout = 10000;
6950 + sctFilterParams.flags = DMX_ONESHOT | DMX_IMMEDIATE_START | DMX_CHECK_CRC;
6951 + sctFilterParams.filter.filter[0] = tblid;
6952 + sctFilterParams.filter.mask[0] = 0xff;
6953 + if (ioctl(fd, DMX_SET_FILTER, &sctFilterParams)) {
6954 + perror("DMX_SET_FILTER");
6958 + pfd.events = POLLIN;
6959 + r = poll(&pfd, 1, 10000);
6965 + r = read(fd, buf, bufsz);
6972 + ioctl(fd, DMX_STOP, 0);
6976 +static const u_int8_t byterev8[256] = {
6977 + 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
6978 + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
6979 + 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
6980 + 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
6981 + 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
6982 + 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
6983 + 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
6984 + 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
6985 + 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
6986 + 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
6987 + 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
6988 + 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
6989 + 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
6990 + 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
6991 + 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
6992 + 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
6993 + 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
6994 + 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
6995 + 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
6996 + 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
6997 + 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
6998 + 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
6999 + 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
7000 + 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
7001 + 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
7002 + 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
7003 + 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
7004 + 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
7005 + 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
7006 + 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
7007 + 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
7008 + 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
7011 +static void dvb_handle_pes_payload(struct vbi *vbi, const u_int8_t *buf,
7014 + unsigned int p, i;
7015 + u_int8_t data[42];
7017 + if (buf[0] < 0x10 || buf[0] > 0x1f)
7018 + return; /* no EBU teletext data */
7019 + for (p = 1; p < len; p += /*6 + 40*/ 2 + buf[p + 1]) {
7021 + printf("Txt Line:\n"
7022 + " data_unit_id 0x%02x\n"
7023 + " data_unit_length 0x%02x\n"
7024 + " reserved_for_future_use 0x%01x\n"
7025 + " field_parity 0x%01x\n"
7026 + " line_offset 0x%02x\n"
7027 + " framing_code 0x%02x\n"
7028 + " magazine_and_packet_addr 0x%04x\n"
7029 + " data_block 0x%02x 0x%02x 0x%02x 0x%02x\n",
7032 + (buf[p+2] >> 5) & 1,
7035 + (buf[p+4] << 8) | buf[p+5],
7036 + buf[p+6], buf[p+7], buf[p+8], buf[p+9]);
7038 + for (i = 0; i < sizeof(data); i++)
7039 + data[i] = byterev8[buf[p+4+i]];
7040 + /* note: we should probably check for missing lines and then
7041 + * call out_of_sync(vbi); and/or vbi_reset(vbi); */
7042 + vt_line(vbi, data);
7046 +static unsigned int rawptr;
7048 +static void dvb_handler(struct vbi *vbi, int fd)
7050 + /* PES packet start code prefix and stream_id == private_stream_1 */
7051 + static const u_int8_t peshdr[4] = { 0x00, 0x00, 0x01, 0xbd };
7054 + unsigned int p, i, len;
7056 + u_int32_t crc, crccomp;
7058 + if (rawptr >= (unsigned int)rawbuf_size)
7060 + n = read(vbi->fd, rawbuf + rawptr, rawbuf_size - rawptr);
7066 + if (memcmp(rawbuf, peshdr, sizeof(peshdr))) {
7067 + bp = memmem(rawbuf, rawptr, peshdr, sizeof(peshdr));
7070 + rawptr -= (bp - rawbuf);
7071 + memmove(rawbuf, bp, rawptr);
7075 + len = (rawbuf[4] << 8) | rawbuf[5];
7080 + if (rawptr < len + 6)
7082 + p = 9 + rawbuf[8];
7084 + for (i = 0; i < len - p; i++) {
7086 + printf("\n%04x:", i);
7087 + printf(" %02x", rawbuf[p + i]);
7091 + if (!dl_empty(vbi->clients))
7092 + dvb_handle_pes_payload(vbi, rawbuf + p, len - p);
7095 + memmove(rawbuf, rawbuf + len, rawptr);
7099 +static int vbi_dvb_open(struct vbi *vbi, const char *vbi_name,
7100 + const char *channel, char *outfile, u_int16_t sid, int ttpid)
7105 + u_int16_t service_id;
7106 + u_int8_t service_type;
7107 + char service_provider_name[64];
7108 + char service_name[64];
7109 + u_int8_t txtlang[3];
7111 + u_int8_t txtmagazine;
7113 + } progtbl[16], *progp;
7114 + u_int8_t tbl[4096];
7115 + u_int8_t * ppname, * psname, pncode, sncode, pnlen, snlen;
7118 + unsigned int i, j, k, l, progcnt = 0;
7119 + struct dmx_pes_filter_params filterpar;
7121 + /* open DVB demux device */
7123 + vbi_name = "/dev/dvb/adapter0/demux0";
7124 + if ((vbi->fd = open(vbi_name, O_RDWR)) == -1) {
7125 + error("cannot open demux device %s", vbi_name);
7128 + memset(progtbl, 0, sizeof(progtbl));
7129 + if (ttpid >= 0x15 && ttpid < 0x1fff) {
7130 + vbi->ttpid = ttpid;
7131 + printf("Using command line specified teletext PID 0x%x\n",
7135 + /* parse PAT to enumerate services and to find the PMT PIDs */
7136 + r = dvb_get_table(vbi->fd, 0, 0, tbl, sizeof(tbl));
7139 + if (!(tbl[5] & 1)) {
7140 + error("PAT not active (current_next_indicator == 0)");
7143 + if (tbl[6] != 0 || tbl[7] != 0) {
7144 + error("PAT has multiple sections");
7148 + error("PAT too short\n");
7152 + for (i = 0; i < (unsigned)r; i += 4) {
7153 + if (progcnt >= sizeof(progtbl)/sizeof(progtbl[0])) {
7154 + error("Program table overflow");
7157 + progtbl[progcnt].service_id = (tbl[8 + i] << 8) | tbl[9 + i];
7158 + if (!progtbl[progcnt].service_id) /* this is the NIT pointer */
7160 + progtbl[progcnt].pmtpid = ((tbl[10 + i] << 8) | tbl[11 + i])
7164 + /* find the SDT to get the station names */
7165 + r = dvb_get_table(vbi->fd, 0x11, 0x42, tbl, sizeof(tbl));
7168 + if (!(tbl[5] & 1)) {
7169 + error("SDT not active (current_next_indicator == 0)");
7172 + if (tbl[6] != 0 || tbl[7] != 0) {
7173 + error("SDT has multiple sections");
7177 + error("SDT too short\n");
7181 + while (i < (unsigned)r - 1) {
7182 + k = (tbl[i] << 8) | tbl[i+1]; /* service ID */
7184 + for (j = 0; j < progcnt; j++)
7185 + if (progtbl[j].service_id == k) {
7186 + progp = &progtbl[j];
7190 + i = j + (((tbl[i+3] << 8) | tbl[i+4]) & 0x0fff);
7192 + error("SDT: service_id 0x%x not in PAT\n", k);
7197 + case 0x48: // service descriptor
7198 + k = j + 4 + tbl[j + 3];
7199 + progp->service_type = tbl[j+2];
7200 + ppname = tbl+j+4 ; // points to 1st byte of provider_name
7201 + pncode = *ppname ; // 1st byte of provider_name
7202 + pnlen = tbl[j+3]; // length of provider_name
7203 + psname = tbl+k+1 ; // points to 1st byte of service_name
7204 + sncode = *psname ; // 1st byte of service_name
7205 + snlen = tbl[k] ; // length of service_name
7206 + if (pncode >= 0x20) {
7207 + pncode = 0 ; // default character set Latin alphabet fig.A.1
7209 + ppname++ ; pnlen-- ;
7210 + // character code from table A.3 1st byte = ctrl-code
7212 + if (sncode >= 0x20) {
7213 + sncode = 0 ; // default character set Latin alphabet fig.A.1
7215 + psname++ ; snlen-- ;
7216 + // character code from table A.3 ; 1st byte = ctrl-code
7218 + snprintf(progp->service_provider_name,
7219 + sizeof(progp->service_provider_name), "%.*s", pnlen, ppname);
7220 + snprintf(progp->service_name,
7221 + sizeof(progp->service_name), "%.*s", snlen, psname); break;
7223 + j += 2 + tbl[j + 1]; // next descriptor
7226 + /* parse PMT's to find Teletext Services */
7227 + for (l = 0; l < progcnt; l++) {
7228 + progtbl[l].ttpid = 0x1fff;
7229 + if (progtbl[l].service_type != 0x01 || /* not digital TV */
7230 + progtbl[l].pmtpid < 0x15 || /* PMT PID sanity check */
7231 + progtbl[l].pmtpid >= 0x1fff)
7233 + r = dvb_get_table(vbi->fd, progtbl[l].pmtpid, 0x02, tbl,
7237 + if (!(tbl[5] & 1)) { error \
7238 + ("PMT pid 0x%x not active (current_next_indicator == 0)",
7239 + progtbl[l].pmtpid);
7242 + if (tbl[6] != 0 || tbl[7] != 0) {
7243 + error("PMT pid 0x%x has multiple sections",
7244 + progtbl[l].pmtpid);
7248 + error("PMT pid 0x%x too short\n", progtbl[l].pmtpid);
7251 + i = 12 + (((tbl[10] << 8) | tbl[11]) & 0x0fff);
7252 + /* skip program info section */
7253 + while (i <= (unsigned)r-6) {
7255 + i = j + (((tbl[i + 3] << 8) | tbl[i + 4]) & 0x0fff);
7256 + if (tbl[j - 5] != 0x06)
7257 + /* teletext streams have type 0x06 */
7259 + k = ((tbl[j - 4] << 8) | tbl[j - 3]) & 0x1fff;
7260 + /* elementary PID - save until we know if it's teletext PID */
7263 + case 0x56: /* EBU teletext descriptor */
7264 + progtbl[l].txtlang[0] = tbl[j + 2];
7265 + progtbl[l].txtlang[1] = tbl[j + 3];
7266 + progtbl[l].txtlang[2] = tbl[j + 4];
7267 + progtbl[l].txttype = tbl[j + 5] >> 3;
7268 + progtbl[l].txtmagazine = tbl[j + 5] & 7;
7269 + progtbl[l].txtpage = tbl[j + 6];
7270 + progtbl[l].ttpid = k;
7273 + j += 2 + tbl[j + 1];
7279 + ("sid:pmtpid:ttpid:type:provider:name:language:texttype:magazine:page\n\n");
7280 + for (i = 0; i < progcnt; i++) {
7281 + printf("%d:%d:%d:%d:%s:%s:lang=%.3s:type=%d:magazine=%1u:page=%3u\n",
7282 + progtbl[i].service_id, progtbl[i].pmtpid, progtbl[i].ttpid,
7283 + progtbl[i].service_type, progtbl[i].service_provider_name,
7284 + progtbl[i].service_name, progtbl[i].txtlang, progtbl[i].txttype,
7285 + progtbl[i].txtmagazine, progtbl[i].txtpage);
7289 + ofd = fopen(outfile,"w") ;
7290 + if (ofd == NULL) { error("cannot open outfile\n"); goto outerr ; }
7291 + for (i = 0; i < progcnt; i++) {
7292 + if (progtbl[i].ttpid == 0x1fff) continue ; // service without teletext
7293 + fprintf(ofd,"%d:%d:%s:%s:lang=%.3s\n",
7294 + progtbl[i].service_id, progtbl[i].ttpid, progtbl[i].service_provider_name,
7295 + progtbl[i].service_name, progtbl[i].txtlang);
7303 + j = strlen(channel);
7304 + for (i = 0; i < progcnt; i++)
7305 + if (!strncmp(progtbl[i].service_name, channel, j)
7306 + && progtbl[i].ttpid != 0x1fff) { progp = &progtbl[i];
7311 + if (channel && !progp) {
7312 + j = strlen(channel);
7313 + for (i = 0; i < progcnt; i++)
7314 + if (!strncasecmp(progtbl[i].service_name, channel, j)
7315 + && progtbl[i].ttpid != 0x1fff) { progp = &progtbl[i];
7321 + for (i = 0; i < progcnt; i++) {
7322 + if ((progtbl[i].service_id == sid) && (progtbl[i].ttpid != 0x1fff)) {
7323 + progp = &progtbl[i]; break ; }
7328 + for (i = 0; i < progcnt; i++)
7329 + if (progtbl[i].ttpid != 0x1fff) {
7330 + progp = &progtbl[i]; break ;
7334 + printf("\nUsing: Service ID = %d ; PMT PID = %d ; TXT PID = %d ;\n"
7335 + "Service type = %d ; Provider Name = %s ; Service name = %s ;\n"
7336 + "language = %.3s ; Text type = %d ; Text Magazine = %1u ; Text page = %3u\n",
7337 + progp->service_id, progp->pmtpid, progp->ttpid, progp->service_type,
7338 + progp->service_provider_name, progp->service_name, progp->txtlang,
7339 + progp->txttype, progp->txtmagazine, progp->txtpage);
7340 + vbi->ttpid = progp->ttpid;
7343 + rawbuf = malloc(rawbuf_size = 8192);
7349 + if ((vbi->fd = open(vbi_name, O_RDWR)) == -1) {
7350 + error("cannot open demux device %s", vbi_name);
7354 + memset(&filterpar, 0, sizeof(filterpar));
7355 + filterpar.pid = vbi->ttpid;
7356 + filterpar.input = DMX_IN_FRONTEND;
7357 + filterpar.output = DMX_OUT_TAP;
7358 + filterpar.pes_type = DMX_PES_OTHER;
7359 + filterpar.flags = DMX_IMMEDIATE_START;
7360 + if (ioctl(vbi->fd, DMX_SET_PES_FILTER, &filterpar) < 0) {
7361 + error("ioctl: DMX_SET_PES_FILTER %s (%u)", strerror(errno), errno);
7373 +struct vbi *open_null_vbi(struct cache *ca)
7375 + static int inited = 0;
7382 + vbi = malloc(sizeof(*vbi));
7385 + error("out of memory");
7389 + vbi->fd = open("/dev/null", O_RDONLY);
7390 + if (vbi->fd == -1)
7392 + error("cannot open null device");
7398 + vbi->ppage = vbi->rpage;
7399 + fdset_add_fd(fds, vbi->fd, vbi_handler, vbi);
7411 +void send_errmsg(struct vbi *vbi, char *errmsg, ...)
7414 + if (errmsg == NULL || *errmsg == '\0')
7416 + va_start(args, errmsg);
7417 + char *buff = NULL;
7418 + if (vasprintf(&buff, errmsg, args) < 0)
7423 + vbi_send(vbi, EV_ERR, 0, 0, 0, buff);
7425 diff -r af23d23c278b util/alevt/vbi.h
7426 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7427 +++ b/util/alevt/vbi.h Tue Dec 21 12:13:28 2010 +0100
7433 +#include "dllist.h"
7437 +#define PLL_ADJUST 4
7441 + struct vt_page page[1];
7442 + struct enhance enh[1];
7448 + struct cache *cache;
7449 + struct dl_head clients[1];
7451 + struct raw_page rpage[8]; // one for each magazin
7452 + struct raw_page *ppage; // points to page of previous pkt0
7454 + unsigned int ttpid;
7460 + struct dl_node node[1];
7461 + void (*handler)(void *data, struct vt_event *ev);
7465 +struct vbi *vbi_open(char *vbi_dev_name, struct cache *ca,
7466 + const char *channel, char *outfile, u_int16_t sid, int ttpid);
7467 +void vbi_close(struct vbi *vbi);
7468 +void vbi_reset(struct vbi *vbi);
7469 +int vbi_add_handler(struct vbi *vbi, void *handler, void *data);
7470 +void vbi_del_handler(struct vbi *vbi, void *handler, void *data);
7471 +struct vt_page *vbi_query_page(struct vbi *vbi, int pgno, int subno);
7473 +struct vbi *open_null_vbi(struct cache *ca);
7474 +void send_errmsg(struct vbi *vbi, char *errmsg, ...);
7476 diff -r af23d23c278b util/alevt/vt.h
7477 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7478 +++ b/util/alevt/vt.h Tue Dec 21 12:13:28 2010 +0100
7487 +#define BAD_CHAR 0xb8 // substitute for chars with bad parity
7492 + void *resource; /* struct xio_win *, struct vbi *, ... */
7493 + int i1, i2, i3, i4;
7498 +#define EV_KEY 2 // i1:KEY_xxx i2:shift-flag
7499 +#define EV_MOUSE 3 // i1:button i2:shift-flag i3:x i4:y
7500 +#define EV_SELECTION 4 // i1:len p1:data
7501 +#define EV_PAGE 5 // p1:vt_page i1:query-flag
7502 +#define EV_HEADER 6 // i1:pgno i2:subno i3:flags p1:data
7503 +#define EV_XPACKET 7 // i1:mag i2:pkt i3:errors p1:data
7504 +#define EV_RESET 8 // ./.
7505 +#define EV_TIMER 9 // ./.
7506 +#define EV_ERR 10 // p1: errmsg
7507 +#define KEY_F(i) (1000+i)
7508 +#define KEY_LEFT 2001
7509 +#define KEY_RIGHT 2002
7510 +#define KEY_UP 2003
7511 +#define KEY_DOWN 2004
7512 +#define KEY_PUP 2005
7513 +#define KEY_PDOWN 2006
7514 +#define KEY_DEL 2007
7515 +#define KEY_INS 2008
7519 + int pgno, subno; // the wanted page number
7520 + int lang; // language code
7521 + int flags; // misc flags (see PG_xxx below)
7522 + int errors; // number of single bit errors in page
7523 + u32 lines; // 1 bit for each line received
7524 + u8 data[25][40]; // page contents
7525 + int flof; // page has FastText links
7529 + } link[6]; // FastText links (FLOF)
7532 +#define PG_SUPPHEADER 0x01 // C7 row 0 is not to be displayed
7533 +#define PG_OUTOFSEQ 0x04 // C9 page out of numerical order
7534 +#define PG_NODISPLAY 0x08 // C10 rows 1-24 is not to be displayed
7535 +#define PG_MAGSERIAL 0x10 // C11 serial trans. (any pkt0 terminates page)
7536 +#define PG_ERASE 0x20 // C4 clear previously stored lines
7537 +#define PG_NEWSFLASH 0x40 // C5 box it and insert into normal video pict.
7538 +#define PG_SUBTITLE 0x80 // C6 box it and insert into normal video pict.
7539 +#define PG_ACTIVE 0x100 // currently fetching this page
7540 +#define ANY_SUB 0x3f7f // universal subpage number
7542 diff -r af23d23c278b util/alevt/vt900.out
7543 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7544 +++ b/util/alevt/vt900.out Tue Dec 21 12:13:28 2010 +0100
7546 +#ifndef HELP_HEADER
7547 +" \6AleVT Online Help System ",
7548 +" \22`p0`0 p `0pppp ",
7549 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7550 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7551 +" \22# #\42!\42# \42 \42! ",
7558 +"\24 #################################### ",
7560 +" \3\177\6Starting alevt . . . . . . 902 ",
7562 +" \3\177\6Copying/Warranty . . . . . 904 ",
7564 +" \3\177\6The Status Line . . . . . 905 ",
7566 +" \3\177\6Selecting Pages . . . . . 907 ",
7568 +" \3\177\6QuickClick Page . . . . . 915 ",
7570 +"\24 pppppppppppppppppppppppppppppppppppp ",
7571 +" (Click to select a page) ",
7573 +"\4\35\7 Next 901 \34",
7574 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7575 diff -r af23d23c278b util/alevt/vt901.out
7576 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7577 +++ b/util/alevt/vt901.out Tue Dec 21 12:13:28 2010 +0100
7579 +#ifndef HELP_HEADER
7580 +" \6AleVT Online Help System ",
7581 +" \22`p0`0 p `0pppp ",
7582 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7583 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7584 +" \22# #\42!\42# \42 \42! ",
7591 +"\24 #################################### ",
7593 +"\6 \3\177\6FastText Menu . . . . . . 909 ",
7595 +"\6 \3\177\6Keyboard Commands . . . . 910 ",
7597 +"\6 \3\177\6Starting alevt-cap . . . . 912 ",
7599 +"\6 \3\177\6Starting alevt-date . . . 914 ",
7601 +"\6 \3\177\6QuickClick Page . . . . . 915 ",
7603 +"\24 pppppppppppppppppppppppppppppppppppp ",
7604 +" (Click to select a page) ",
7606 +"\4\35\7Back 900 Index 900 Next 902 \34",
7607 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7608 diff -r af23d23c278b util/alevt/vt902.out
7609 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7610 +++ b/util/alevt/vt902.out Tue Dec 21 12:13:28 2010 +0100
7612 +#ifndef HELP_HEADER
7613 +" \6AleVT Online Help System ",
7614 +" \22`p0`0 p `0pppp ",
7615 +"\4\35\22\177 \177j5`p \177 j5 j5 \7 Version \34",
7616 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7617 +" \22# #\42!\42# \42 \42! ",
7622 +"\6\15Starting alevt: ",
7623 +"\6\15Starting alevt: ",
7624 +"\24 #################################### ",
7625 +"\6 $\7alevt\6[options] Default: ",
7627 +" -c\6<channel name> (none;dvb only) ",
7628 +" -ch -child\6<ppp.ss> (none) ",
7629 +" -cs -charset \6latin-1 ",
7630 +" \6<latin-1/2/koi8-r/ ",
7636 +"\24 pppppppppppppppppppppppppppppppppppp ",
7639 +"\4\35\7Back 901 Index 900 Next 903 \34",
7640 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7641 diff -r af23d23c278b util/alevt/vt903.out
7642 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7643 +++ b/util/alevt/vt903.out Tue Dec 21 12:13:28 2010 +0100
7645 +#ifndef HELP_HEADER
7646 +" \6AleVT Online Help System ",
7647 +" \22`p0`0 p `0pppp ",
7648 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7649 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7650 +" \22# #\42!\42# \42 \42! ",
7655 +"\6\15Starting alevt: ",
7656 +"\6\15Starting alevt: ",
7657 +"\24 #################################### ",
7658 +"\6 $\7alevt\6[options] Default: ",
7659 +" -o\6<outfile> (none;dvb only) ",
7660 +" -p -parent\6<ppp.ss> 900 ",
7661 +" -s -sid\6<sid> (none;dvb only) ",
7662 +" -t -ttpid\6<ttpid> (none;dvb only) ",
7663 +" -v -vbi\6<vbidev> /dev/vbi ",
7666 +" \6/dev/dvb/adapter0/demux0 ",
7669 +"\24 pppppppppppppppppppppppppppppppppppp ",
7672 +"\4\35\7Back 902 Index 900 Next 904 \34",
7673 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7674 diff -r af23d23c278b util/alevt/vt904.out
7675 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7676 +++ b/util/alevt/vt904.out Tue Dec 21 12:13:28 2010 +0100
7678 +#ifndef HELP_HEADER
7679 +" \6AleVT Online Help System ",
7680 +" \22`p0`0 p `0pppp ",
7681 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7682 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7683 +" \22# #\42!\42# \42 \42! ",
7690 +"\24 #################################### ",
7691 +"\6 2002-07 Edgar Toernig (froese@gmx.de) ",
7692 +"\6 All Rights Reserved. ",
7694 +"\6 This program is free software; you ",
7695 +"\6 can redistribute it and/or modify it ",
7696 +"\6 under the terms of the GNU General ",
7697 +"\6 Public License Version 2 as published ",
7698 +"\6 by the Free Software Foundation. ",
7700 +"\6 This program is distributed in the ",
7701 +"\6 hope that it will be useful, but ",
7702 +"\6\7without any warranty.\6See the GNU ",
7703 +"\6 General Public License for details. ",
7705 +"\4\35\7Back 903 Index 900 Next 905 \34",
7706 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7707 diff -r af23d23c278b util/alevt/vt905.out
7708 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7709 +++ b/util/alevt/vt905.out Tue Dec 21 12:13:28 2010 +0100
7711 +#ifndef HELP_HEADER
7712 +" \6AleVT Online Help System ",
7713 +" \22`p0`0 p `0pppp ",
7714 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7715 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7716 +" \22# #\42!\42# \42 \42! ",
7721 +"\6\15Status Line: ",
7722 +"\6\15Status Line: ",
7723 +"\24 #################################### ",
7724 +"\6 The top line of each window is the ",
7725 +"\6 status line. On the left it shows ",
7726 +"\6 the current page number (CPN) and ",
7727 +"\6 some flags. The rest of the line ",
7728 +"\6 is the running header sent by the ",
7731 +"\6 If the CPN is red, the program is ",
7732 +"\6 searching for that page. If it's ",
7733 +"\6 green, it's the PN of the currently ",
7734 +"\6 displayed page. ",
7735 +"\24 pppppppppppppppppppppppppppppppppppp ",
7738 +"\4\35\7Back 904 Index 900 Next 906 \34",
7739 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7740 diff -r af23d23c278b util/alevt/vt906.out
7741 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7742 +++ b/util/alevt/vt906.out Tue Dec 21 12:13:28 2010 +0100
7744 +#ifndef HELP_HEADER
7745 +" \6AleVT Online Help System ",
7746 +" \22`p0`0 p `0pppp ",
7747 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7748 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7749 +" \22# #\42!\42# \42 \42! ",
7754 +"\6\15Status Line: \14\5\30 ",
7755 +"\6\15Status Line: \14\5\30 ",
7756 +"\24 #################################### ",
7757 +"\6 An\2H\6behind the CPN indicates that ",
7758 +"\6 the page is on hold. This inhibits ",
7759 +"\6 subpage cycling and page updates. A ",
7760 +"\6 click on the CPN toggles the\2H\6flag.",
7762 +"\6 A\5*\6indicates that the page ",
7763 +"\6 contains concealed text. Clicking on ",
7764 +"\6 the\5*\6reveals that text. ",
7766 +"\6 A CPN in the form\2Sxx\6is shown if a ",
7767 +"\6 specific subpage is selected. ",
7768 +"\24 pppppppppppppppppppppppppppppppppppp ",
7771 +"\4\35\7Back 905 Index 900 Next 907 \34",
7772 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7773 diff -r af23d23c278b util/alevt/vt907.out
7774 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7775 +++ b/util/alevt/vt907.out Tue Dec 21 12:13:28 2010 +0100
7777 +#ifndef HELP_HEADER
7778 +" \6AleVT Online Help System ",
7779 +" \22`p0`0 p `0pppp ",
7780 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7781 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7782 +" \22# #\42!\42# \42 \42! ",
7787 +"\6\15Selecting Pages: ",
7788 +"\6\15Selecting Pages: ",
7789 +"\24 #################################### ",
7790 +"\6 To select a specific page, you may ",
7791 +"\6 either enter the page number with ",
7792 +"\6 the keyboard or click with the\7left ",
7793 +"\6 mouse button on a page number ",
7794 +"\6 somewhere on the screen. ",
7796 +"\6 Clicking with the\7middle\6button will ",
7797 +"\6 show the page in a child window. If ",
7798 +"\6 there is no child window, a new one ",
7799 +"\6 will be opened. ",
7801 +"\24 pppppppppppppppppppppppppppppppppppp ",
7804 +"\4\35\7Back 906 Index 900 Next 908 \34",
7805 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7806 diff -r af23d23c278b util/alevt/vt908.out
7807 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7808 +++ b/util/alevt/vt908.out Tue Dec 21 12:13:28 2010 +0100
7810 +#ifndef HELP_HEADER
7811 +" \6AleVT Online Help System ",
7812 +" \22`p0`0 p `0pppp ",
7813 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7814 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7815 +" \22# #\42!\42# \42 \42! ",
7820 +"\6\15Selecting Pages: ",
7821 +"\6\15Selecting Pages: ",
7822 +"\24 #################################### ",
7823 +"\6 AleVT also recognizes something like ",
7824 +"\3 3/7\6as a valid page number. Clicking ",
7825 +"\6 with the\7left\6button will cycle to ",
7826 +"\6 the next subpage of the current page. ",
7827 +"\6 The\7middle\6buttons cycles backwards. ",
7829 +"\6 For each window a history of ",
7830 +"\6 recently visited pages is kept. ",
7831 +"\6 Pressing the\7right\6mouse button will ",
7832 +"\6 take you back to the previous page. ",
7834 +"\24 pppppppppppppppppppppppppppppppppppp ",
7837 +"\4\35\7Back 907 Index 900 Next 909 \34",
7838 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7839 diff -r af23d23c278b util/alevt/vt909.out
7840 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7841 +++ b/util/alevt/vt909.out Tue Dec 21 12:13:28 2010 +0100
7843 +#ifndef HELP_HEADER
7844 +" \6AleVT Online Help System ",
7845 +" \22`p0`0 p `0pppp ",
7846 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7847 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7848 +" \22# #\42!\42# \42 \42! ",
7853 +"\6\15FastText Menu: ",
7854 +"\6\15FastText Menu: ",
7855 +"\24 #################################### ",
7856 +"\6 The last line of each window shows ",
7857 +"\6 the FastText Menu (only if one is ",
7858 +"\6 transmitted for that page). ",
7860 +"\6 It consists of up to four colored ",
7861 +"\6 labels. You may click on a label ",
7862 +"\6 or press one of the function keys ",
7863 +"\6 F1-F4 to go to the associated page. ",
7865 +"\6 For the 5th (white) key present on ",
7866 +"\6 some remote controls press F5. ",
7867 +"\24 pppppppppppppppppppppppppppppppppppp ",
7870 +"\4\35\7Back 908 Index 900 Next 910 \34",
7871 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7872 diff -r af23d23c278b util/alevt/vt910.out
7873 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7874 +++ b/util/alevt/vt910.out Tue Dec 21 12:13:28 2010 +0100
7876 +#ifndef HELP_HEADER
7877 +" \6AleVT Online Help System ",
7878 +" \22`p0`0 p `0pppp ",
7879 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
7880 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7881 +" \22# #\42!\42# \42 \42! ",
7886 +"\6\15Keyboard Commands: ",
7887 +"\6\15Keyboard Commands: ",
7888 +"\24 #################################### ",
7889 +" 0\6-\0079 \6Enter page number ",
7890 +" q\6or\7ESC \6Close window ",
7891 +" h \6Goto page 900 (help page) ",
7892 +" i \6Goto page 100 (index page) ",
7893 +" o \6Open a new window ",
7894 +" SPACE \6Hold page ",
7895 +" RIGHT \6Goto next page ",
7896 +" LEFT \6Goto previous page ",
7897 +" DOWN \6Goto next subpage ",
7898 +" UP \6Goto previous subpage ",
7899 +" BACKSPACE\6Previous page from history ",
7900 +"\24 pppppppppppppppppppppppppppppppppppp ",
7903 +"\4\35\7Back 909 Index 900 Next 911 \34",
7904 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7905 diff -r af23d23c278b util/alevt/vt911.out
7906 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7907 +++ b/util/alevt/vt911.out Tue Dec 21 12:13:28 2010 +0100
7909 +#ifndef HELP_HEADER
7910 +" \6AleVT Online Help System ",
7911 +" \22`p0`0 p `0pppp ",
7912 +"\4\35\22\177 \177j5`p \177 j5 j5 \7 Version \34",
7913 +"\4\35\22\177,\177j5\177.! +t>! j5 \007 1.7.0 \34",
7914 +" \22# #\42!\42# \42 \42! ",
7919 +"\6\15Keyboard Commands: ",
7920 +"\6\15Keyboard Commands: ",
7921 +"\24 #################################### ",
7922 +" s \6Save page to file ",
7923 +" c \6Clear page cache ",
7924 +" r \6Reveal concealed text ",
7925 +" F1\6-\7F5 \6FastText keys ",
7926 +" /\6and\7? \6Search forward/backward ",
7927 +" n\6and\7N \6Search next/previous ",
7928 +" f\6and\7F \6Fine tune the decoder ",
7929 +" e \6Error reduction on/off ",
7930 +" b \6Error bell on/off ",
7931 +"\6 Holding the\7shift\6key while pressing ",
7932 +"\6 one of the\7cursor\6keys allows ",
7933 +"\6 selecting the 'hex' pages (Ex.: 1f1). ",
7934 +"\24 pppppppppppppppppppppppppppppppppppp ",
7936 +"\4\35\7Back 910 Index 900 Next 912 \34",
7937 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7938 diff -r af23d23c278b util/alevt/vt912.out
7939 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7940 +++ b/util/alevt/vt912.out Tue Dec 21 12:13:28 2010 +0100
7942 +#ifndef HELP_HEADER
7943 +" \6AleVT Online Help System ",
7944 +" \22`p0`0 p `0pppp ",
7945 +"\4\35\22\177 \177j5`p \177 j5 j5 \7 Version \34",
7946 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7947 +" \22# #\42!\42# \42 \42! ",
7952 +"\6\15Starting alevt-cap: ",
7953 +"\6\15Starting alevt-cap: ",
7954 +"\24 #################################### ",
7955 +"\6 $\7alevt-cap\6[options] Default: ",
7957 +" -cs -charset \6latin-1 ",
7958 +" \6<latin-1/2/koi8-r/ ",
7960 +" -f -format \6ascii ",
7961 +" \6<fmt,options> ",
7962 +" -f help -format help ",
7964 +" -n -name \6<filename> ttext-%s.%e ",
7966 +"\24 pppppppppppppppppppppppppppppppppppp ",
7969 +"\4\35\7Back 911 Index 900 Next 913 \34",
7970 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
7971 diff -r af23d23c278b util/alevt/vt913.out
7972 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7973 +++ b/util/alevt/vt913.out Tue Dec 21 12:13:28 2010 +0100
7975 +#ifndef HELP_HEADER
7976 +" \6AleVT Online Help System ",
7977 +" \22`p0`0 p `0pppp ",
7978 +"\4\35\22\177 \177j5`p \177 j5 j5 \7 Version \34",
7979 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
7980 +" \22# #\42!\42# \42 \42! ",
7985 +"\6\15Starting alevt-cap: ",
7986 +"\6\15Starting alevt-cap: ",
7987 +"\24 #################################### ",
7988 +"\6 $\7alevt-cap\6[options] Default: ",
7990 +" -s -sid\6<sid> (none;dvb only) ",
7991 +" -t -ttpid\6<ttpid> (none;dvb only) ",
7992 +" -to -timeout\6<secs> (none) ",
7993 +" -v -vbi\6<vbidev> /dev/vbi ",
7996 +" \6/dev/dvb/adapter0/demux0 ",
7999 +"\24 pppppppppppppppppppppppppppppppppppp ",
8002 +"\4\35\7Back 912 Index 900 Next 914 \34",
8003 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
8004 diff -r af23d23c278b util/alevt/vt914.out
8005 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8006 +++ b/util/alevt/vt914.out Tue Dec 21 12:13:28 2010 +0100
8008 +#ifndef HELP_HEADER
8009 +" \6AleVT Online Help System ",
8010 +" \22`p0`0 p `0pppp ",
8011 +"\4\35\22\177 \177j5`p \177 j5 j5 \7 Version \34",
8012 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
8013 +" \22# #\42!\42# \42 \42! ",
8018 +"\6\15Starting alevt-date: ",
8019 +"\6\15Starting alevt-date: ",
8020 +"\24 #################################### ",
8021 +"\6 $\7alevt-date\6[options] Default: ",
8023 +" -d -delta\6<max_secs> 7200 (2 hours) ",
8024 +" -f -format\6<fmtstr> %c ",
8027 +" -to -timeout\6<seconds>(none) ",
8028 +" -v -vbi\6<vbidev> /dev/vbi ",
8031 +" \6/dev/dvb/adapter0/demux0 ",
8032 +"\24 pppppppppppppppppppppppppppppppppppp ",
8035 +"\4\35\7Back 913 Index 900 Next 915 \34",
8036 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
8037 diff -r af23d23c278b util/alevt/vt915.out
8038 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8039 +++ b/util/alevt/vt915.out Tue Dec 21 12:13:28 2010 +0100
8041 +#ifndef HELP_HEADER
8042 +" \6AleVT Online Help System ",
8043 +" \22`p0`0 p `0pppp ",
8044 +"\4\35\22\177 \177j5`p \177 j5 j5 \7Version \34",
8045 +"\4\35\22\177,\177j5\177.! +t>! j5 \7 1.7.0 \34",
8046 +" \22# #\42!\42# \42 \42! ",
8051 +"\6\15QuickClick: ",
8052 +"\6\15QuickClick: ",
8053 +"\24 #################################### ",
8054 +"\6 100 200 300 400 500 600 700 800 ",
8055 +"\6 101 201 301 401 501 601 701 801 ",
8056 +"\6 110 210 310 410 510 610 710 810 ",
8057 +"\6 120\006220 320 420 520 620 720 820 ",
8058 +"\6 130 230 330 430 530 630 730 830 ",
8059 +"\6 140\006240 340 440 540 640 740 840 ",
8060 +"\6 150 250 350 450 550 650 750 850 ",
8061 +"\6 160\006260 360 460 560 660 760 860 ",
8062 +"\6 170 270 370 470 570 670 770 870 ",
8063 +"\6 180\006280 380 480 580 680 780 880 ",
8064 +"\6 190 290 390 490 590 690 790 890 ",
8065 +"\24 pppppppppppppppppppppppppppppppppppp ",
8068 +"\4\35\7 Index 900 \34",
8069 +"\1Page 100 \2Page 200 \3Page 300 \6Page 400\34",
8070 diff -r af23d23c278b util/alevt/vtxt-iso8859-7.bdf
8071 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8072 +++ b/util/alevt/vtxt-iso8859-7.bdf Tue Dec 21 12:13:28 2010 +0100
8075 +FONT -alevt-teletext-medium-r-normal--16-1-75-75-c-90-fontspecific-1
8077 +FONTBOUNDINGBOX 9 16 0 -4
8087 +_XMBDFED_INFO "Edited with xmbdfed 4.5."
11771 +STARTCHAR U+00A0 NO-BREAK SPACE
11794 +STARTCHAR U+02BD MODIFIER LETTER REVERSED COMMA
11817 +STARTCHAR U+02BC MODIFIER LETTER APOSTROPHE
11840 +STARTCHAR U+00A3 POUND SIGN
11863 +STARTCHAR U+00A6 BROKEN BAR
11886 +STARTCHAR U+00A7 SECTION SIGN
11909 +STARTCHAR U+00A8 DIAERESIS
11932 +STARTCHAR U+00A9 COPYRIGHT SIGN
11955 +STARTCHAR U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
11978 +STARTCHAR U+00AC NOT SIGN
12001 +STARTCHAR U+00AD SOFT HYPHEN
12024 +STARTCHAR U+2015 HORIZONTAL BAR
12047 +STARTCHAR U+00B0 DEGREE SIGN
12070 +STARTCHAR U+00B1 PLUS-MINUS SIGN
12093 +STARTCHAR U+00B2 SUPERSCRIPT TWO
12116 +STARTCHAR U+00B3 SUPERSCRIPT THREE
12139 +STARTCHAR U+0384 GREEK TONOS
12162 +STARTCHAR U+0385 GREEK DIALYTIKA TONOS
12185 +STARTCHAR U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS
12208 +STARTCHAR U+00B7 MIDDLE DOT
12231 +STARTCHAR U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS
12254 +STARTCHAR U+0389 GREEK CAPITAL LETTER ETA WITH TONOS
12277 +STARTCHAR U+038A GREEK CAPITAL LETTER IOTA WITH TONOS
12300 +STARTCHAR U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
12323 +STARTCHAR U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS
12346 +STARTCHAR U+00BD VULGAR FRACTION ONE HALF
12369 +STARTCHAR U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS
12392 +STARTCHAR U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS
12415 +STARTCHAR U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
12438 +STARTCHAR U+0391 GREEK CAPITAL LETTER ALPHA
12461 +STARTCHAR U+0392 GREEK CAPITAL LETTER BETA
12484 +STARTCHAR U+0393 GREEK CAPITAL LETTER GAMMA
12507 +STARTCHAR U+0394 GREEK CAPITAL LETTER DELTA
12530 +STARTCHAR U+0395 GREEK CAPITAL LETTER EPSILON
12553 +STARTCHAR U+0396 GREEK CAPITAL LETTER ZETA
12576 +STARTCHAR U+0397 GREEK CAPITAL LETTER ETA
12599 +STARTCHAR U+0398 GREEK CAPITAL LETTER THETA
12622 +STARTCHAR U+0399 GREEK CAPITAL LETTER IOTA
12645 +STARTCHAR U+039A GREEK CAPITAL LETTER KAPPA
12668 +STARTCHAR U+039B GREEK CAPITAL LETTER LAMDA
12691 +STARTCHAR U+039C GREEK CAPITAL LETTER MU
12714 +STARTCHAR U+039D GREEK CAPITAL LETTER NU
12737 +STARTCHAR U+039E GREEK CAPITAL LETTER XI
12760 +STARTCHAR U+039F GREEK CAPITAL LETTER OMICRON
12783 +STARTCHAR U+03A0 GREEK CAPITAL LETTER PI
12806 +STARTCHAR U+03A1 GREEK CAPITAL LETTER RHO
12829 +STARTCHAR U+03A3 GREEK CAPITAL LETTER SIGMA
12852 +STARTCHAR U+03A4 GREEK CAPITAL LETTER TAU
12875 +STARTCHAR U+03A5 GREEK CAPITAL LETTER UPSILON
12898 +STARTCHAR U+03A6 GREEK CAPITAL LETTER PHI
12921 +STARTCHAR U+03A7 GREEK CAPITAL LETTER CHI
12944 +STARTCHAR U+03A8 GREEK CAPITAL LETTER PSI
12967 +STARTCHAR U+03A9 GREEK CAPITAL LETTER OMEGA
12990 +STARTCHAR U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
13013 +STARTCHAR U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
13036 +STARTCHAR U+03AC GREEK SMALL LETTER ALPHA WITH TONOS
13059 +STARTCHAR U+03AD GREEK SMALL LETTER EPSILON WITH TONOS
13082 +STARTCHAR U+03AE GREEK SMALL LETTER ETA WITH TONOS
13105 +STARTCHAR U+03AF GREEK SMALL LETTER IOTA WITH TONOS
13128 +STARTCHAR U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
13151 +STARTCHAR U+03B1 GREEK SMALL LETTER ALPHA
13174 +STARTCHAR U+03B2 GREEK SMALL LETTER BETA
13197 +STARTCHAR U+03B3 GREEK SMALL LETTER GAMMA
13220 +STARTCHAR U+03B4 GREEK SMALL LETTER DELTA
13243 +STARTCHAR U+03B5 GREEK SMALL LETTER EPSILON
13266 +STARTCHAR U+03B6 GREEK SMALL LETTER ZETA
13289 +STARTCHAR U+03B7 GREEK SMALL LETTER ETA
13312 +STARTCHAR U+03B8 GREEK SMALL LETTER THETA
13335 +STARTCHAR U+03B9 GREEK SMALL LETTER IOTA
13358 +STARTCHAR U+03BA GREEK SMALL LETTER KAPPA
13381 +STARTCHAR U+03BB GREEK SMALL LETTER LAMDA
13404 +STARTCHAR U+03BC GREEK SMALL LETTER MU
13427 +STARTCHAR U+03BD GREEK SMALL LETTER NU
13450 +STARTCHAR U+03BE GREEK SMALL LETTER XI
13473 +STARTCHAR U+03BF GREEK SMALL LETTER OMICRON
13496 +STARTCHAR U+03C0 GREEK SMALL LETTER PI
13519 +STARTCHAR U+03C1 GREEK SMALL LETTER RHO
13542 +STARTCHAR U+03C2 GREEK SMALL LETTER FINAL SIGMA
13565 +STARTCHAR U+03C3 GREEK SMALL LETTER SIGMA
13588 +STARTCHAR U+03C4 GREEK SMALL LETTER TAU
13611 +STARTCHAR U+03C5 GREEK SMALL LETTER UPSILON
13634 +STARTCHAR U+03C6 GREEK SMALL LETTER PHI
13657 +STARTCHAR U+03C7 GREEK SMALL LETTER CHI
13680 +STARTCHAR U+03C8 GREEK SMALL LETTER PSI
13703 +STARTCHAR U+03C9 GREEK SMALL LETTER OMEGA
13726 +STARTCHAR U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
13749 +STARTCHAR U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
13772 +STARTCHAR U+03CC GREEK SMALL LETTER OMICRON WITH TONOS
13795 +STARTCHAR U+03CD GREEK SMALL LETTER UPSILON WITH TONOS
13818 +STARTCHAR U+03CE GREEK SMALL LETTER OMEGA WITH TONOS
13842 diff -r af23d23c278b util/alevt/vtxt-koi8.bdf
13843 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
13844 +++ b/util/alevt/vtxt-koi8.bdf Tue Dec 21 12:13:28 2010 +0100
13847 +FONT -alevt-teletext-medium-r-normal--16-1-75-75-c-90-fontspecific-1
13849 +FONTBOUNDINGBOX 9 16 0 -4
13850 +STARTPROPERTIES 10
13859 +_XMBDFED_INFO "Edited with xmbdfed 3.0."
19752 diff -r af23d23c278b util/alevt/vtxt-latin-1.bdf
19753 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
19754 +++ b/util/alevt/vtxt-latin-1.bdf Tue Dec 21 12:13:28 2010 +0100
19757 +FONT -alevt-teletext-medium-r-normal--16-1-75-75-c-90-fontspecific-1
19759 +FONTBOUNDINGBOX 9 16 0 -4
19760 +STARTPROPERTIES 10
19769 +_XMBDFED_INFO "Edited with xmbdfed 2.4."
25662 diff -r af23d23c278b util/alevt/vtxt-latin-2.bdf
25663 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
25664 +++ b/util/alevt/vtxt-latin-2.bdf Tue Dec 21 12:13:28 2010 +0100
25667 +FONT -alevt-teletext-medium-r-normal--16-1-75-75-c-90-fontspecific-2
25669 +FONTBOUNDINGBOX 9 16 0 -4
25670 +STARTPROPERTIES 10
25679 +_XMBDFED_INFO "Edited with xmbdfed 3.3."
31572 diff -r af23d23c278b util/alevt/xio.c
31573 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
31574 +++ b/util/alevt/xio.c Tue Dec 21 12:13:28 2010 +0100
31576 +#include <stdio.h>
31577 +#include <unistd.h>
31578 +#include <stdlib.h>
31579 +#include <string.h>
31580 +#include <fcntl.h>
31581 +#include <signal.h>
31582 +#include <X11/Xlib.h>
31583 +#include <X11/Xutil.h>
31584 +#include <X11/Xatom.h>
31585 +#define XK_MISCELLANY
31587 +#include <X11/keysymdef.h>
31588 +#include <sys/time.h>
31591 +#include "dllist.h"
31593 +#include "fdset.h"
31595 +#include "icon.xbm"
31598 +#define WW (W*CW) /* pixel width of window */
31599 +#define WH (H*CH) /* pixel hegiht of window */
31600 +#define NO_SEL 999 /* sel_y1 value if no selection */
31601 +#define SEL_MIN_TIME 500 /* anything shorter is a click */
31603 +static struct dl_head dpys[1]; /* list of all displays */
31604 +static void xio_timer(void *data, int fd);
31605 +static void handle_event(struct xio *xio, int fd);
31608 +static int timer_init(int argc, char **argv)
31610 + int p[2], timer_pid, i;
31612 + if (pipe(p) == -1)
31615 + signal(SIGPIPE, SIG_DFL);
31616 + timer_pid = fork();
31617 + if (timer_pid == -1)
31619 + if (timer_pid > 0)
31621 + fdset_add_fd(fds, p[0], xio_timer, 0);
31627 + for (i = 0; i < 32; ++i)
31630 + memcpy(argv[0], "Timer", 6);
31635 + write(p[1], "*", 1);
31640 +static int local_init(int argc, char **argv)
31642 + static int inited = 0;
31647 + if (timer_init(argc, argv) == -1)
31657 +static int get_colors(struct xio *xio)
31662 + static short rgb[][3] =
31664 + { 0x0000,0x0000,0x0000 },
31665 + { 0xffff,0x0000,0x0000 },
31666 + { 0x0000,0xffff,0x0000 },
31667 + { 0xffff,0xffff,0x0000 },
31668 + { 0x0000,0x0000,0xffff },
31669 + { 0xffff,0x0000,0xffff },
31670 + { 0x0000,0xffff,0xffff },
31671 + { 0xffff,0xffff,0xffff },
31672 + { 0x7fff,0x7fff,0x7fff },
31673 + { 0x7fff,0x0000,0x0000 },
31674 + { 0x0000,0x7fff,0x0000 },
31675 + { 0x7fff,0x7fff,0x0000 },
31676 + { 0x0000,0x0000,0x7fff },
31677 + { 0x7fff,0x0000,0x7fff },
31678 + { 0x0000,0x7fff,0x7fff },
31679 + { 0x3fff,0x3fff,0x3fff },
31682 + for (i = 0; i < 16; ++i)
31684 + c.red = rgb[i][0];
31685 + c.green = rgb[i][1];
31686 + c.blue = rgb[i][2];
31687 + if (XAllocColor(xio->dpy, xio->cmap, &c) == 0)
31689 + xio->color[i] = c.pixel;
31695 +static int get_fonts(struct xio *xio)
31699 + unsigned char *font_bits;
31701 + case LATIN1: font_bits=font1_bits; break;
31702 + case LATIN2: font_bits=font2_bits; break;
31703 + case KOI8: font_bits=font3_bits; break;
31704 + case GREEK: font_bits=font4_bits; break;
31705 + default: font_bits=font1_bits; break;
31708 + xio->font[0] = XCreateBitmapFromData(xio->dpy, xio->root,
31709 + font_bits, font_width, font_height);
31710 + xio->font[1] = XCreatePixmap(xio->dpy, xio->root,
31711 + font_width, font_height*2, 1);
31712 + gc = XCreateGC(xio->dpy, xio->font[0], 0, 0);
31713 + for (i = 0; i < font_height; ++i)
31715 + XCopyArea(xio->dpy, xio->font[0], xio->font[1], gc, 0, i,
31716 + font_width, 1, 0, i*2);
31717 + XCopyArea(xio->dpy, xio->font[0], xio->font[1], gc, 0, i,
31718 + font_width, 1, 0, i*2+1);
31720 + XFreeGC(xio->dpy, gc);
31725 +static void xlib_conn_watch(Display *dpy, void *fds, int fd, int open_flag, void *data)
31728 + fdset_add_fd(fds, fd, XProcessInternalConnection, dpy);
31730 + fdset_del_fd(fds, fd);
31734 +struct xio * xio_open_dpy(char *dpy, int argc, char **argv)
31736 + XClassHint classhint[1];
31739 + if (local_init(argc, argv) == -1)
31742 + if (not(xio = malloc(sizeof(*xio))))
31745 + if (not(xio->dpy = XOpenDisplay(dpy)))
31748 + xio->fd = ConnectionNumber(xio->dpy);
31749 + xio->argc = argc;
31750 + xio->argv = argv;
31751 + dl_init(xio->windows);
31752 + xio->screen = DefaultScreen(xio->dpy);
31753 + xio->depth = DefaultDepth(xio->dpy, xio->screen);
31754 + xio->width = DisplayWidth(xio->dpy, xio->screen);
31755 + xio->height = DisplayHeight(xio->dpy, xio->screen);
31756 + xio->root = DefaultRootWindow(xio->dpy);
31757 + xio->cmap = DefaultColormap(xio->dpy, xio->screen);
31758 + xio->xa_del_win = XInternAtom(xio->dpy, "WM_DELETE_WINDOW", False);
31759 + xio->xa_targets = XInternAtom(xio->dpy, "TARGETS", False);
31760 + xio->xa_timestamp = XInternAtom(xio->dpy, "TIMESTAMP", False);
31761 + xio->xa_multiple = XInternAtom(xio->dpy, "MULTIPLE", False);
31762 + xio->xa_text = XInternAtom(xio->dpy, "TEXT", False);
31764 + if (get_colors(xio) == -1)
31767 + if (get_fonts(xio) == -1)
31770 + if (fdset_add_fd(fds, xio->fd, handle_event, xio) == -1)
31773 + XAddConnectionWatch(xio->dpy, PTR xlib_conn_watch, PTR fds);
31775 + xio->icon = XCreateBitmapFromData(xio->dpy, xio->root,
31776 + icon_bits, icon_width, icon_height);
31778 + xio->group_leader = XCreateSimpleWindow(xio->dpy, xio->root,
31779 + 0, 0, 1, 1, 0, 0, 0);
31780 + XSetCommand(xio->dpy, xio->group_leader, xio->argv, xio->argc);
31781 + classhint->res_name = "VTLeader";
31782 + classhint->res_class = "AleVT";
31783 + XSetClassHint(xio->dpy, xio->group_leader, classhint);
31785 + dl_insert_first(dpys, xio->node);
31789 + fdset_del_fd(fds, xio->fd);
31791 + XCloseDisplay(xio->dpy);
31799 +static void set_user_geometry(struct xio_win *xw, char *geom, XSizeHints *sh, int bwidth)
31801 + static int gravs[] = { NorthWestGravity, NorthEastGravity,
31802 + SouthWestGravity, SouthEastGravity };
31805 + f = XParseGeometry(geom, &sh->x, &sh->y, &sh->width, &sh->height);
31807 + if (f & WidthValue)
31808 + sh->width = sh->base_width + sh->width * sh->width_inc;
31809 + if (f & HeightValue)
31810 + sh->height = sh->base_height + sh->height * sh->height_inc;
31811 + if (f & XNegative)
31812 + g+=1, sh->x = xw->xio->width + sh->x - sh->width - bwidth;
31813 + if (f & YNegative)
31814 + g+=2, sh->y = xw->xio->height + sh->y - sh->height - bwidth;
31816 + sh->width = bound(sh->min_width, sh->width, sh->max_width);
31817 + sh->height = bound(sh->min_height, sh->height, sh->max_height);
31819 + if (f & (WidthValue | HeightValue))
31820 + sh->flags |= USSize;
31821 + if (f & (XValue | YValue))
31822 + sh->flags |= USPosition | PWinGravity;
31824 + sh->win_gravity = gravs[g];
31828 +struct xio_win * xio_open_win(struct xio *xio, char *geom)
31830 + struct xio_win *xw;
31831 + XSetWindowAttributes attr;
31833 + XSizeHints sizehint[1];
31834 + XClassHint classhint[1];
31835 + XWMHints wmhint[1];
31837 + if (not(xw = malloc(sizeof(*xw))))
31842 + sizehint->flags = PSize | PBaseSize | PMinSize | PMaxSize | PResizeInc;
31843 + sizehint->x = sizehint->y = 0;
31844 + sizehint->width_inc = CW;
31845 + sizehint->height_inc = CH;
31846 + sizehint->base_width = 0;
31847 + sizehint->base_height = 0;
31848 + sizehint->min_width = 11*CW;
31849 + sizehint->min_height = 1*CH;
31850 + sizehint->max_width = sizehint->width = WW + CW;
31851 + sizehint->max_height = sizehint->height = WH;
31852 + set_user_geometry(xw, geom, sizehint, 1);
31854 + attr.background_pixel = xio->color[0];
31855 + attr.event_mask = KeyPressMask |
31856 + ButtonPressMask|ButtonReleaseMask|Button1MotionMask |
31858 + xw->win = XCreateWindow(xio->dpy, xio->root,
31859 + sizehint->x, sizehint->y, sizehint->width, sizehint->height, 1,
31860 + CopyFromParent, CopyFromParent, CopyFromParent,
31861 + CWBackPixel|CWEventMask, &attr);
31863 + classhint->res_name = "VTPage";
31864 + classhint->res_class = "AleVT";
31866 + wmhint->flags = InputHint | StateHint | WindowGroupHint | IconPixmapHint;
31867 + wmhint->input = True;
31868 + wmhint->initial_state = NormalState; //IconicState;
31869 + wmhint->window_group = xio->group_leader;
31870 + wmhint->icon_pixmap = xio->icon;
31872 + XSetWMProperties(xio->dpy, xw->win, 0,0, 0,0, sizehint, wmhint, classhint);
31873 + XSetWMProtocols(xio->dpy, xw->win, &xio->xa_del_win, 1);
31875 + xw->title[0] = 0;
31876 + xio_title(xw, "AleVT"); // will be reset pretty soon
31878 + gcval.graphics_exposures = False;
31879 + xw->gc = XCreateGC(xio->dpy, xw->win, GCGraphicsExposures, &gcval);
31881 + xw->tstamp = CurrentTime;
31882 + xw->fg = xw->bg = -1; /* unknown colors */
31884 + xw->curs_x = xw->curs_y = 999; // no cursor
31886 + xw->sel_y1 = NO_SEL; /* no selection area */
31887 + xw->sel_start_t = 0; /* no selection-drag active */
31888 + xw->sel_set_t = 0; /* not selection owner */
31889 + xw->sel_pixmap = 0; /* no selection pixmap yet */
31891 + xio_clear_win(xw);
31892 + xw->blink_on = xw->reveal = 0;
31896 + XMapWindow(xio->dpy, xw->win);
31897 + dl_insert_first(xio->windows, xw->node);
31907 +void xio_close_win(struct xio_win *xw, int dpy_too)
31909 + struct xio *xio = xw->xio;
31911 + XDestroyWindow(xio->dpy, xw->win);
31912 + dl_remove(xw->node);
31915 + if (dpy_too && dl_empty(xio->windows))
31916 + xio_close_dpy(xio);
31920 +void xio_close_dpy(struct xio *xio)
31922 + while (not dl_empty(xio->windows))
31923 + xio_close_win((struct xio_win *)xio->windows->first, 0);
31925 + XDestroyWindow(xio->dpy, xio->group_leader);
31926 + XRemoveConnectionWatch(xio->dpy, PTR xlib_conn_watch, PTR fds);
31927 + fdset_del_fd(fds, xio->fd);
31928 + dl_remove(xio->node);
31933 +void xio_set_handler(struct xio_win *xw, void *handler, void *data)
31935 + xw->handler = handler;
31940 +void xio_title(struct xio_win *xw, char *title)
31942 + char buf[sizeof(xw->title) + 32];
31944 + if (strlen(title) >= sizeof(xw->title))
31945 + return; //TODO: trimm...
31946 + if (strcmp(xw->title, title) == 0)
31949 + strcpy(xw->title, title);
31950 + sprintf(buf, "AleVT " VERSION " %s", xw->title);
31951 + XStoreName(xw->xio->dpy, xw->win, buf);
31952 + XSetIconName(xw->xio->dpy, xw->win, xw->title);
31956 +void xio_clear_win(struct xio_win *xw)
31958 + memset(xw->ch, ' ', sizeof(xw->ch));
31959 + xw->dheight = xw->blink = xw->concealed = 0;
31960 + xw->hidden = xw->lhidden = 0;
31961 + xw->modified = ALL_LINES;
31965 +void xio_put_line(struct xio_win *xw, int y, u8 *data)
31967 + u8 *p = xw->ch + y*W;
31969 + lbits yb = 1 << y;
31970 + lbits x = xw->dheight;
31972 + if (y < 0 || y >= H)
31975 + if (memcmp(data, p, ep - p) == 0)
31978 + xw->modified |= yb;
31979 + xw->blink &= ~yb;
31980 + xw->dheight &= ~yb;
31981 + xw->concealed &= ~yb;
31984 + switch (*p++ = *data++)
31991 + xw->dheight |= yb;
31994 + xw->concealed |= yb;
31998 + if ((xw->dheight ^ x) & yb) // dheight has changed, recalc hidden
32000 + xw->hidden &= yb*2 - 1;
32001 + for (; yb & ALL_LINES/2; yb *= 2)
32002 + if (~xw->hidden & xw->dheight & yb)
32003 + xw->hidden |= yb*2;
32008 +void xio_put_str(struct xio_win *xw, int y, u8 *str)
32015 + memcpy(buf, str, l);
32016 + memset(buf + l, ' ', W - l);
32019 + memcpy(buf, str, W);
32020 + xio_put_line(xw, y, buf);
32024 +static void dirty(struct xio_win *xw, int y1, int y2) // mark [y1,y2[ dirty
32026 + if (y1 >= 0 && y1 < H && y1 < y2)
32030 + if (xw->hidden & (1 << y1))
32033 + xw->modified |= 1 << y1++;
32038 +int xio_get_line(struct xio_win *xw, int y, u8 *data)
32040 + if (y < 0 || y >= H)
32042 + if (xw->hidden & (1 << y))
32044 + memcpy(data, xw->ch + y*W, 40);
32049 +void xio_set_cursor(struct xio_win *xw, int x, int y)
32051 + if (xw->curs_y >= 0 && xw->curs_y < H)
32052 + dirty(xw, xw->curs_y, xw->curs_y + 1);
32053 + if (x >= 0 && x < W && y >= 0 && y < H)
32054 + dirty(xw, y, y + 1);
32062 +static inline void draw_char(struct xio_win *xw, Window win, int fg, int bg,
32063 + int c, int dbl, int x, int y, int ry)
32065 + struct xio *xio = xw->xio;
32067 + if (fg != xw->fg)
32068 + XSetForeground(xio->dpy, xw->gc, xio->color[xw->fg = fg]);
32069 + if (bg != xw->bg)
32070 + XSetBackground(xio->dpy, xw->gc, xio->color[xw->bg = bg]);
32074 + XCopyPlane(xio->dpy, xio->font[1], win, xw->gc,
32075 + c%32*CW, c/32*CH*2, CW, CH*2, x*CW, y*CH, 1);
32079 + XCopyPlane(xio->dpy, xio->font[0], win, xw->gc,
32080 + c%32*CW, c/32*CH, CW, CH, x*CW, y*CH, 1);
32081 + if (xw->dheight & (1<<ry))
32082 + XCopyPlane(xio->dpy, xio->font[0], win, xw->gc,
32083 + ' '%32*CW, ' '/32*CH, CW, CH, x*CW, y*CH+CH, 1);
32087 +static void draw_cursor(struct xio_win *xw, int x, int y, int dbl)
32089 + struct xio *xio = xw->xio;
32091 + if (xw->blink_on)
32092 + XSetForeground(xio->dpy, xw->gc, xio->color[xw->fg = xw->bg ^ 8]);
32093 + XDrawRectangle(xio->dpy, xw->win, xw->gc, x * CW, y * CH, CW-1,
32094 + (dbl ? 2*CH : CH)-1);
32098 +void xio_update_win(struct xio_win *xw)
32101 + lbits yb, redraw;
32104 + if (xw->modified == 0)
32107 + redraw = xw->modified; // all modified lines
32108 + redraw |= xw->lhidden; // all previously hidden lines
32109 + redraw &= ~xw->hidden;
32111 + xw->lhidden = xw->hidden;
32112 + xw->modified = 0;
32117 + for (yb = 1, y = 0; y < H; ++y, yb *= 2)
32120 + int fg = 7, bg = 0, _fg, _bg;
32121 + int dbl = 0, blk = 0, con = 0, gfx = 0, sep = 0, hld = 0;
32122 + int last_ch = ' ';
32124 + for (x = 0; x < W; ++x)
32126 + switch (c = *p++)
32128 + case 0x00 ... 0x07: /* alpha + foreground color */
32133 + case 0x08: /* flash */
32134 + blk = not xw->blink_on;
32136 + case 0x09: /* steady */
32139 + case 0x0a: /* end box */
32140 + case 0x0b: /* start box */
32142 + case 0x0c: /* normal height */
32145 + case 0x0d: /* double height */
32148 + case 0x10 ... 0x17: /* graphics + foreground color */
32153 + case 0x18: /* conceal display */
32154 + con = not xw->reveal;
32156 + case 0x19: /* contiguous graphics */
32159 + case 0x1a: /* separate graphics */
32162 + case 0x1c: /* black background */
32165 + case 0x1d: /* new background */
32168 + case 0x1e: /* hold graphics */
32171 + case 0x1f: /* release graphics */
32175 + case 0x0e: /* SO (reserved, double width) */
32176 + case 0x0f: /* SI (reserved, double size) */
32178 + case 0x1b: /* ESC (reserved) */
32188 + case 0x80 ... 0x9f: /* these aren't used */
32192 + default: /* mapped to selected font */
32196 + if (gfx && (c & 0xa0) == 0x20)
32199 + c += (c & 0x40) ? 32 : -32;
32206 + if (y >= xw->sel_y1 && y < xw->sel_y2 &&
32207 + x >= xw->sel_x1 && x < xw->sel_x2)
32212 + draw_char(xw, xw->win, _fg, _bg, c, dbl, x, y, y);
32214 + if (y == xw->curs_y && x == xw->curs_x)
32215 + draw_cursor(xw, xw->curs_x, xw->curs_y, dbl);
32217 + if (xw->sel_pixmap && (_bg & 8))
32218 + draw_char(xw, xw->sel_pixmap, con ? bg : fg, bg, c, dbl,
32219 + x - xw->sel_x1, y - xw->sel_y1, y);
32227 +static void for_all_windows(void (*func)(struct xio_win *xw), struct xio_win *except)
32229 + struct xio *xio, *vtn;
32230 + struct xio_win *xw, *vwn;
32232 + for (xio = PTR dpys->first; vtn = PTR xio->node->next; xio = vtn)
32233 + for (xw = PTR xio->windows->first; vwn = PTR xw->node->next; xw = vwn)
32234 + if (xw != except)
32239 +int xio_set_concealed(struct xio_win *xw, int on)
32242 + if (xw->reveal == on)
32246 + xw->modified |= xw->concealed;
32251 +static void sel_set(struct xio_win *xw, int x1, int y1, int x2, int y2)
32255 + x1 = bound(0, x1, W-1);
32256 + y1 = bound(0, y1, H-1);
32257 + x2 = bound(0, x2, W-1);
32258 + y2 = bound(0, y2, H-1);
32261 + t = x1, x1 = x2, x2 = t;
32263 + t = y1, y1 = y2, y2 = t;
32265 + dirty(xw, xw->sel_y1, xw->sel_y2);
32267 + if (xw->hidden & (1 << y1))
32269 + if (xw->hidden & (2 << y2))
32274 + xw->sel_x2 = x2 + 1;
32275 + xw->sel_y2 = y2 + 1;
32276 + dirty(xw, xw->sel_y1, xw->sel_y2);
32280 +static void sel_abort(struct xio_win *xw)
32282 + if (xw->sel_set_t)
32283 + XSetSelectionOwner(xw->xio->dpy, XA_PRIMARY, None, xw->sel_set_t);
32284 + if (xw->sel_y1 != NO_SEL)
32285 + dirty(xw, xw->sel_y1, xw->sel_y2);
32286 + xw->sel_y1 = NO_SEL;
32287 + xw->sel_set_t = 0;
32288 + xw->sel_start_t = 0;
32292 +static void sel_start(struct xio_win *xw, int x, int y, Time t)
32295 + xw->sel_start_x = x;
32296 + xw->sel_start_y = y;
32297 + xw->sel_start_t = t;
32301 +static void sel_move(struct xio_win *xw, int x, int y, Time t)
32303 + if (xw->sel_start_t == 0)
32305 + if (xw->sel_y1 == NO_SEL)
32306 + if (t - xw->sel_start_t < SEL_MIN_TIME)
32307 + if (x == xw->sel_start_x)
32308 + if (y == xw->sel_start_y)
32310 + sel_set(xw, xw->sel_start_x, xw->sel_start_y, x, y);
32314 +static int sel_end(struct xio_win *xw, int x, int y, Time t)
32316 + sel_move(xw, x, y, t);
32317 + xw->sel_start_t = 0;
32319 + if (xw->sel_y1 == NO_SEL)
32322 + for_all_windows(sel_abort, xw);
32323 + XSetSelectionOwner(xw->xio->dpy, XA_PRIMARY, xw->win, t);
32324 + if (XGetSelectionOwner(xw->xio->dpy, XA_PRIMARY) == xw->win)
32325 + xw->sel_set_t = t;
32332 +static int sel_convert2ascii(struct xio_win *xw, u8 *buf)
32335 + int x, y, nl = 0;
32337 + for (y = xw->sel_y1; y < xw->sel_y2; y++)
32339 + u8 *s = xw->ch + y * W;
32340 + int gfx = 0, con = 0;
32342 + if (~xw->hidden & (1 << y))
32344 + for (x = 0; x < xw->sel_x2; ++x)
32347 + switch (ch = *s++)
32349 + case 0x00 ... 0x07:
32352 + case 0x10 ... 0x17:
32353 + gfx = 1, con = 0;
32356 + con = not xw->reveal;
32358 + case 0xa0 ... 0xff:
32359 + case 0x20 ... 0x7f:
32361 + if (gfx && ch != ' ' && (ch & 0xa0) == 0x20)
32363 + else if (ch == 0x7f)
32369 + if (x >= xw->sel_x1)
32372 + *d++ = '\n', nl = 0;
32379 + *d = 0; // not necessary
32384 +static Pixmap sel_convert2pixmap(struct xio_win *xw)
32386 + struct xio *xio = xw->xio;
32389 + if (xw->sel_y1 == NO_SEL)
32392 + pm = XCreatePixmap(xio->dpy, xio->root, (xw->sel_x2 - xw->sel_x1) * CW,
32393 + (xw->sel_y2 - xw->sel_y1) * CH,
32395 + xw->sel_pixmap = pm;
32396 + dirty(xw, xw->sel_y1, xw->sel_y2);
32397 + xio_update_win(xw);
32398 + xw->sel_pixmap = 0;
32404 +static int sel_do_conv(struct xio_win *xw, Window w, Atom type, Atom prop)
32406 + struct xio *xio = xw->xio;
32408 + if (type == xio->xa_targets)
32412 + atoms[0] = XA_STRING;
32413 + atoms[1] = xio->xa_text;
32414 + atoms[2] = XA_PIXMAP;
32415 + atoms[3] = XA_COLORMAP;
32416 + atoms[4] = xio->xa_multiple;
32417 + atoms[5] = xio->xa_timestamp;
32418 + XChangeProperty(xio->dpy, w, prop, type,
32419 + 32, PropModeReplace, PTR atoms, NELEM(atoms));
32421 + else if (type == xio->xa_timestamp)
32423 + u32 t = xw->sel_set_t;
32425 + XChangeProperty(xio->dpy, w, prop, type, 32, PropModeReplace, PTR &t, 1);
32427 + else if (type == XA_COLORMAP)
32429 + u32 t = xio->cmap;
32431 + XChangeProperty(xio->dpy, w, prop, type, 32, PropModeReplace, PTR &t, 1);
32433 + else if (type == XA_STRING || type == xio->xa_text)
32435 + u8 buf[H * (W+1)];
32438 + len = sel_convert2ascii(xw, buf);
32440 + XChangeProperty(xio->dpy, w, prop, type, 8, PropModeReplace, buf, len);
32442 + else if (type == XA_PIXMAP || type == XA_DRAWABLE)
32446 + pm = sel_convert2pixmap(xw);
32448 + XChangeProperty(xio->dpy, w, prop, type, 32, PropModeReplace, PTR &pm, 1);
32450 + else if (type == xio->xa_multiple)
32452 + u32 *atoms, ty, fo, i;
32453 + unsigned long n, b;
32455 + if (prop != None)
32457 + if (Success == XGetWindowProperty(xio->dpy, w, prop, 0, 1024, 0,
32458 + AnyPropertyType, PTR &ty, PTR &fo, &n, &b, PTR &atoms))
32460 + if (fo == 32 && n%2 == 0)
32462 + for (i = 0; i < n; i += 2)
32463 + if (sel_do_conv(xw, w, atoms[i], atoms[i+1]) == None)
32466 + XChangeProperty(xio->dpy, w, prop, type, 32, PropModeReplace,
32478 +static void sel_send(struct xio_win *xw, XSelectionRequestEvent *req)
32480 + XSelectionEvent ev[1];
32482 + if (req->property == None)
32483 + req->property = req->target;
32485 + ev->type = SelectionNotify;
32486 + ev->requestor = req->requestor;
32487 + ev->selection = req->selection;
32488 + ev->target = req->target;
32489 + ev->property = sel_do_conv(xw, req->requestor, req->target, req->property);
32490 + ev->time = req->time;
32491 + XSendEvent(xw->xio->dpy, req->requestor, False, 0, PTR ev);
32495 +static void sel_retrieve(struct xio_win *xw, Window w, Atom prop, int del)
32499 + unsigned long n, b;
32500 + struct xio *xio = xw->xio;
32502 + if (prop == None)
32505 + if (Success == XGetWindowProperty(xio->dpy, w, prop, 0, 1024, del,
32506 + AnyPropertyType, PTR &ty, PTR &fo, &n, &b, PTR &data))
32508 + if (fo == 8 && n != 0)
32510 + struct vt_event vtev[1];
32512 + vtev->resource = xw;
32513 + vtev->type = EV_SELECTION;
32516 + xw->handler(xw->data, vtev);
32523 +void xio_cancel_selection(struct xio_win *xw)
32529 +void xio_query_selection(struct xio_win *xw)
32531 + struct xio *xio = xw->xio;
32533 + if (XGetSelectionOwner(xio->dpy, XA_PRIMARY) == None)
32534 + sel_retrieve(xw, xio->root, XA_CUT_BUFFER0, False);
32537 + XDeleteProperty(xio->dpy, xw->win, XA_STRING);
32538 + XConvertSelection(xio->dpy, XA_PRIMARY, XA_STRING,
32539 + XA_STRING, xw->win, xw->tstamp);
32544 +void xio_set_selection(struct xio_win *xw, int x1, int y1, int x2, int y2)
32546 + sel_start(xw, x1, y1, xw->tstamp - SEL_MIN_TIME);
32547 + sel_end(xw, x2, y2, xw->tstamp);
32551 +static void handle_event(struct xio *xio, int fd)
32553 + struct xio_win *xw;
32554 + struct vt_event vtev[1];
32557 + XNextEvent(xio->dpy, ev);
32559 + for (xw = PTR xio->windows->first; xw->node->next; xw = PTR xw->node->next)
32560 + if (xw->win == ev->xany.window)
32562 + if (xw->node->next == 0)
32565 + vtev->resource = xw;
32571 + int y1 = ev->xexpose.y / CH;
32572 + int y2 = (ev->xexpose.y + ev->xexpose.height + CH-1) / CH;
32574 + dirty(xw, y1, y2);
32577 + case ClientMessage:
32579 + vtev->type = EV_CLOSE;
32580 + if (ev->xclient.format == 32)
32581 + if ((Atom)ev->xclient.data.l[0] == xio->xa_del_win)
32582 + xw->handler(xw->data, vtev);
32587 + unsigned char ch;
32590 + xw->tstamp = ev->xkey.time;
32591 + vtev->type = EV_KEY;
32593 + vtev->i2 = (ev->xkey.state & ShiftMask) != 0;
32594 + if (XLookupString(&ev->xkey, &ch, 1, &k, 0))
32599 + case XK_Left: vtev->i1 = KEY_LEFT; break;
32600 + case XK_Right: vtev->i1 = KEY_RIGHT; break;
32601 + case XK_Up: vtev->i1 = KEY_UP; break;
32602 + case XK_Down: vtev->i1 = KEY_DOWN; break;
32603 + case XK_Prior: vtev->i1 = KEY_PUP; break;
32604 + case XK_Next: vtev->i1 = KEY_PDOWN; break;
32605 + case XK_Delete: vtev->i1 = KEY_DEL; break;
32606 + case XK_Insert: vtev->i1 = KEY_INS; break;
32607 + case XK_F1: vtev->i1 = KEY_F(1); break;
32608 + case XK_F2: vtev->i1 = KEY_F(2); break;
32609 + case XK_F3: vtev->i1 = KEY_F(3); break;
32610 + case XK_F4: vtev->i1 = KEY_F(4); break;
32611 + case XK_F5: vtev->i1 = KEY_F(5); break;
32612 + case XK_F6: vtev->i1 = KEY_F(6); break;
32613 + case XK_F7: vtev->i1 = KEY_F(7); break;
32614 + case XK_F8: vtev->i1 = KEY_F(8); break;
32615 + case XK_F9: vtev->i1 = KEY_F(9); break;
32616 + case XK_F10: vtev->i1 = KEY_F(10); break;
32617 + case XK_F11: vtev->i1 = KEY_F(11); break;
32618 + case XK_F12: vtev->i1 = KEY_F(12); break;
32621 + xw->handler(xw->data, vtev);
32624 + case ButtonPress:
32626 + xw->tstamp = ev->xkey.time;
32627 + ev->xbutton.x /= CW;
32628 + ev->xbutton.y /= CH;
32629 + if (ev->xbutton.button == Button1)
32630 + sel_start(xw, ev->xbutton.x, ev->xbutton.y, ev->xbutton.time);
32633 + case MotionNotify:
32635 + xw->tstamp = ev->xkey.time;
32636 + ev->xmotion.x /= CW;
32637 + ev->xmotion.y /= CH;
32638 + if (ev->xmotion.state & Button1Mask)
32639 + sel_move(xw, ev->xmotion.x, ev->xmotion.y, ev->xmotion.time);
32642 + case ButtonRelease:
32644 + xw->tstamp = ev->xkey.time;
32645 + ev->xbutton.x /= CW;
32646 + ev->xbutton.y /= CH;
32647 + if (ev->xbutton.button == Button1)
32648 + if (sel_end(xw, ev->xbutton.x, ev->xbutton.y, ev->xbutton.time))
32651 + vtev->type = EV_MOUSE;
32652 + vtev->i1 = ev->xbutton.button;
32653 + vtev->i2 = (ev->xbutton.state & ShiftMask) != 0;
32654 + vtev->i3 = ev->xbutton.x;
32655 + vtev->i4 = ev->xbutton.y;
32656 + if (vtev->i3 >= 0 && vtev->i3 < W && vtev->i4 >= 0 && vtev->i4 < H)
32657 + xw->handler(xw->data, vtev);
32660 + case SelectionClear:
32662 + // may be our own Owner=None due to sel_start
32663 + if (xw->sel_set_t && ev->xselectionclear.time >= xw->sel_set_t)
32665 + xw->sel_set_t = 0; // no need to reset owner
32670 + case SelectionRequest:
32672 + sel_send(xw, &ev->xselectionrequest);
32675 + case SelectionNotify:
32677 + sel_retrieve(xw, ev->xselection.requestor, ev->xselection.property, True);
32686 +static void switch_blink_state(struct xio_win *xw)
32688 + xw->blink_on = !xw->blink_on;
32689 + xw->modified |= xw->blink;
32690 + dirty(xw, xw->curs_y, xw->curs_y + 1);
32694 +static void send_timer_event(struct xio_win *xw)
32696 + struct vt_event vtev[1];
32697 + vtev->type = EV_TIMER;
32698 + xw->handler(xw->data, vtev);
32702 +static void xio_timer(void *data, int fd)
32705 + read(fd, buf, sizeof(buf));
32706 + for_all_windows(switch_blink_state, 0);
32707 + for_all_windows(send_timer_event, 0);
32711 +void xio_event_loop(void)
32713 + struct xio *xio, *vtn;
32716 + while (not dl_empty(dpys))
32720 + for_all_windows(xio_update_win, 0);
32722 + for (xio = PTR dpys->first; vtn = PTR xio->node->next; xio = vtn)
32723 + while (XPending(xio->dpy))
32725 + handle_event(xio, xio->fd);
32729 + fdset_select(fds, -1);
32732 diff -r af23d23c278b util/alevt/xio.h
32733 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
32734 +++ b/util/alevt/xio.h Tue Dec 21 12:13:28 2010 +0100
32739 +#include <X11/Xlib.h>
32741 +#include "dllist.h"
32743 +typedef u32 lbits;
32744 +#define ALL_LINES ((1ul << H) - 1)
32746 +/* one xio per display */
32749 + struct dl_node node[1];
32752 + Display *dpy; /* display connection */
32753 + int fd; /* the displays file descriptor */
32754 + Atom xa_del_win; /* WM_DELETE_WINDOW atom */
32755 + Atom xa_targets; /* TARGETS atom (selection) */
32756 + Atom xa_timestamp; /* TIMESTAMP atom (selection) */
32757 + Atom xa_text; /* TEXT atom (selection) */
32758 + Atom xa_multiple; /* MULTIPLE atom (selection) */
32759 + Window group_leader; /* unmapped window */
32760 + int screen; /* DefaultScreen */
32761 + int width, height; /* DisplayWidth/Height */
32762 + int depth; /* DefaultDepth */
32763 + Window root; /* DefaultRoot */
32765 + int color[16]; /* 8 normal, 8 dim intensity */
32766 + Pixmap font[2]; /* normal, dbl-height */
32767 + Pixmap icon; /* icon pixmap */
32768 + struct dl_head windows[1]; /* all windows on this display */
32771 +/* one vt_win per window */
32774 + struct dl_node node[1];
32775 + struct xio *xio; /* display */
32776 + Window win; /* the drawing window */
32777 + Time tstamp; /* timestamp of last user event */
32778 + GC gc; /* it's graphics context */
32779 + u8 ch[H*W]; /* the page contents */
32780 + lbits modified, hidden, lhidden; /* states for each line */
32781 + lbits dheight, blink, concealed; /* attributes for each line */
32782 + int fg, bg; /* current foreground/background */
32783 + int blink_on; /* blinking on */
32784 + int reveal; /* reveal concealed text */
32785 + void (*handler)(void *data, struct vt_event *ev); /* event-handler */
32786 + void *data; /* data for the event-handler */
32787 + int curs_x, curs_y; /* cursor position */
32788 + u8 title[32]; /* the user title */
32789 + // selection support
32790 + int sel_start_x, sel_start_y;
32791 + Time sel_start_t;
32792 + Time sel_set_t; /* time we got selection owner */
32793 + int sel_x1, sel_y1, sel_x2, sel_y2; /* selected area */
32794 + Pixmap sel_pixmap; /* for pixmap-selection requests */
32797 +struct xio *xio_open_dpy(char *dpy, int argc, char **argv);
32798 +struct xio_win *xio_open_win(struct xio *xio, char *geom);
32799 +void xio_close_win(struct xio_win *xw, int dpy_too);
32800 +void xio_close_dpy(struct xio *xio);
32801 +void xio_set_handler(struct xio_win *xw, void *handler, void *data);
32802 +void xio_clear_win(struct xio_win *xw);
32803 +void xio_put_line(struct xio_win *xw, int line, u8 *data);
32804 +void xio_put_str(struct xio_win *xw, int line, u8 *c_str);
32805 +int xio_get_line(struct xio_win *xw, int line, u8 *data);
32806 +int xio_set_concealed(struct xio_win *xw, int on);
32807 +void xio_update_win(struct xio_win *xw);
32808 +void xio_fd_handler(int fd, void *handler, void *data);
32809 +void xio_cancel_selection(struct xio_win *xw);
32810 +void xio_query_selection(struct xio_win *xw);
32811 +void xio_set_selection(struct xio_win *xw, int x1, int y1, int x2, int y2);
32812 +void xio_set_cursor(struct xio_win *xw, int x, int y);
32813 +void xio_event_loop(void);
32814 +void xio_title(struct xio_win *xw, char *title);
32816 diff -r af23d23c278b util/femon/femon.c
32817 --- a/util/femon/femon.c Sat Jun 20 16:47:55 2009 +0200
32818 +++ b/util/femon/femon.c Tue Dec 21 12:13:28 2010 +0100
32819 @@ -42,14 +42,21 @@
32820 static char *usage_str =
32821 "\nusage: femon [options]\n"
32822 " -H : human readable output\n"
32823 + " -A : Acoustical mode. A sound indicates the signal quality.\n"
32824 + " -r : If 'Acoustical mode' is active it tells the application\n"
32825 + " is called remotely via ssh. The sound is heard on the 'real'\n"
32826 + " machine but. The user has to be root.\n"
32827 " -a number : use given adapter (default 0)\n"
32828 " -f number : use given frontend (default 0)\n"
32829 " -c number : samples to take (default 0 = infinite)\n\n";
32831 +int sleep_time=1000000;
32832 +int acoustical_mode=0;
32835 static void usage(void)
32837 - fprintf(stderr, usage_str);
32838 + fprintf(stderr, "%s", usage_str);
32844 struct dvbfe_info fe_info;
32845 unsigned int samples = 0;
32846 + FILE *ttyFile=NULL;
32848 + // We dont write the "beep"-codes to stdout but to /dev/tty1.
32849 + // This is neccessary for Thin-Client-Systems or Streaming-Boxes
32850 + // where the computer does not have a monitor and femon is called via ssh.
32851 + if(acoustical_mode)
32855 + ttyFile=fopen("/dev/tty1","w");
32858 + fprintf(stderr, "Could not open /dev/tty1. No access rights?\n");
32869 if (dvbfe_get_info(fe, FE_STATUS_PARAMS, &fe_info, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0) != FE_STATUS_PARAMS) {
32870 @@ -94,12 +122,24 @@
32872 printf("FE_HAS_LOCK");
32874 + // create beep if acoustical_mode enabled
32875 + if(acoustical_mode)
32877 + int signal=(fe_info.signal_strength * 100) / 0xffff;
32878 + fprintf( ttyFile, "\033[10;%d]\a", 500+(signal*2));
32879 + // printf("Variable : %d\n", signal);
32886 + usleep(sleep_time);
32888 } while ((!count) || (count-samples));
32897 @@ -148,7 +188,7 @@
32898 int human_readable = 0;
32901 - while ((opt = getopt(argc, argv, "Ha:f:c:")) != -1) {
32902 + while ((opt = getopt(argc, argv, "rAHa:f:c:")) != -1) {
32906 @@ -166,6 +206,15 @@
32908 human_readable = 1;
32911 + // Acoustical mode: we have to reduce the delay between
32912 + // checks in order to hear nice sound
32914 + acoustical_mode=1;
32922 diff -r af23d23c278b util/gotox/Makefile
32923 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
32924 +++ b/util/gotox/Makefile Tue Dec 21 12:13:28 2010 +0100
32926 +# Makefile for linuxtv.org dvb-apps/util/gotox
32930 +inst_bin = $(binaries)
32932 +CPPFLAGS += -I../../lib
32933 +LDFLAGS += -L../../lib/libdvbapi
32934 +LDFLAGS += -L../../lib/libdvbsec
32935 +LDLIBS += -ldvbapi
32936 +LDLIBS += -ldvbsec
32942 +include ../../Make.rules
32943 diff -r af23d23c278b util/gotox/gotox.c
32944 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
32945 +++ b/util/gotox/gotox.c Tue Dec 21 12:13:28 2010 +0100
32948 + * Copyright (C) 2006 by Michel Verbraak <michel@verbraak.org>
32950 + * This program is free software; you can redistribute it and/or modify
32951 + * it under the terms of the GNU General Public License as published by
32952 + * the Free Software Foundation; either version 2 of the License, or
32953 + * (at your option) any later version.
32955 + * This program is distributed in the hope that it will be useful,
32956 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
32957 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32958 + * GNU General Public License for more details
32960 + * You should have received a copy of the GNU General Public License
32961 + * along with this program; if not, write to the
32962 + * Free Software Foundation, Inc.,
32963 + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
32967 +#ifdef HAVE_CONFIG_H
32968 +#include <config.h>
32971 +#include <stdio.h>
32972 +#include <stdlib.h>
32973 +#include <unistd.h>
32974 +#include <libdvbapi/dvbfe.h>
32975 +#include <libdvbsec/dvbsec_api.h>
32977 +static char *usage_str =
32978 + "\nusage: gotox [options] -d <angle>\n"
32979 + " Goto the specified angle. Positive value for East rotation\n"
32980 + " Negative value for West rotation on Northern Hemisphere.\n"
32981 + " -d degrees : Angle to turn to in degrees (default 0)\n"
32982 + " -a number : use given adapter (default 0)\n"
32983 + " -f number : use given frontend (default 0)\n"
32984 + " -t seconds : leave power on to rotor for at least specified seconds of time (default 30)\n\n";
32986 +int main(int argc, char *argv[])
32988 + struct dvbfe_handle *fe;
32989 + unsigned int adapter = 0, frontend = 0;
32990 + double angle = 0;
32992 + unsigned int sleepcount = 30;
32993 + static char *weststr = "west";
32994 + static char *eaststr = "east";
32996 + while ((opt = getopt(argc, argv, "ha:f:t:d:")) != -1) {
33002 + fprintf(stderr, "%s", usage_str);
33003 + return EXIT_SUCCESS;
33006 + adapter = strtoul(optarg, NULL, 0);
33010 + frontend = strtoul(optarg, NULL, 0);
33014 + sleepcount = strtoul(optarg, NULL, 0);
33018 + angle = strtod(optarg, NULL);
33023 + printf("Will try to rotate %s to %.2f degrees.\n", (angle < 0.0) ? weststr : eaststr, angle );
33025 + fe = dvbfe_open(adapter, frontend, 0);
33026 + if (fe == NULL) {
33027 + fprintf(stderr, "Could not open frontend %d on adapter %d.\n", frontend, adapter);
33031 + if (dvbfe_set_voltage(fe, DVBFE_SEC_VOLTAGE_OFF) != 0) {
33032 + fprintf(stderr, "Could not turn off power.\n");
33037 + printf("Power OFF.\n");
33041 + if (dvbfe_set_voltage(fe, DVBFE_SEC_VOLTAGE_18) != 0) {
33042 + fprintf(stderr, "Could not turn on power.\n");
33047 + printf("Power on to 18V.\n");
33051 + if (abs(angle) == 0.0) {
33053 + if (dvbsec_diseqc_goto_satpos_preset(fe, DISEQC_ADDRESS_POLAR_AZIMUTH_POSITIONER, 0) != 0) {
33054 + fprintf(stderr, "Could not goto 0.\n");
33058 + printf("Going to home base 0 degrees.\n");
33062 + if (dvbsec_diseqc_goto_rotator_bearing(fe, DISEQC_ADDRESS_POLAR_AZIMUTH_POSITIONER, angle) != 0) {
33063 + fprintf(stderr, "Could not rotate.\n");
33069 + while (sleepcount != 0) {
33070 + printf("%d: Rotating to %.2f.\r", sleepcount, angle);
33076 + printf("\nRotated.\n");
33078 + if (dvbfe_set_voltage(fe, DVBFE_SEC_VOLTAGE_OFF) != 0) {
33079 + fprintf(stderr, "Could not turn off power.\n");
33084 + printf("Power OFF.\n");
33090 + return EXIT_SUCCESS;
33092 diff -r af23d23c278b util/scan/dvb-c/at-Kabel-Braunau
33093 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33094 +++ b/util/scan/dvb-c/at-Kabel-Braunau Tue Dec 21 12:13:28 2010 +0100
33098 +C 386000000 6900000 NONE QAM64
33099 +C 394000000 6875000 NONE QAM64
33100 +C 402000000 6875000 NONE QAM64
33101 +C 410000000 6875000 NONE QAM64
33102 +C 418000000 6875000 NONE QAM64
33103 +C 426000000 6875000 NONE QAM64
33104 +C 434000000 6875000 NONE QAM64
33105 +C 458000000 6875000 NONE QAM64
33106 +C 466000000 6900000 NONE QAM64
33107 +C 474000000 6900000 NONE QAM64
33108 +C 482000000 6111000 NONE QAM64
33109 +C 490000000 6111000 NONE QAM64
33110 +C 498000000 6875000 NONE QAM64
33111 +C 506000000 6111000 NONE QAM64
33112 +C 514000000 6111000 NONE QAM64
33113 +C 522000000 6428000 NONE QAM128
33114 +C 530000000 6428000 NONE QAM128
33115 +C 546000000 6875000 NONE QAM64
33116 +C 554000000 6875000 NONE QAM64
33117 +C 562000000 6875000 NONE QAM64
33118 +C 570000000 6111000 NONE QAM64
33119 +C 578000000 6900000 NONE QAM256
33120 +C 586000000 6900000 NONE QAM256
33121 +C 594000000 6875000 NONE QAM64
33122 diff -r af23d23c278b util/scan/dvb-c/at-Kabelsignal
33123 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33124 +++ b/util/scan/dvb-c/at-Kabelsignal Tue Dec 21 12:13:28 2010 +0100
33128 +C 314000000 6900000 NONE QAM256
33129 +C 322000000 6900000 NONE QAM256
33130 +C 330000000 6900000 NONE QAM256
33131 +C 338000000 6900000 NONE QAM256
33132 +C 346000000 6900000 NONE QAM256
33133 +C 354000000 6900000 NONE QAM256
33134 +C 362000000 6900000 NONE QAM256
33135 +C 370000000 6900000 NONE QAM256
33136 +C 378000000 6900000 NONE QAM256
33137 +C 386000000 6900000 NONE QAM256
33138 +C 394000000 6900000 NONE QAM256
33139 +C 402000000 6900000 NONE QAM256
33140 +C 410000000 6900000 NONE QAM256
33141 +C 418000000 6900000 NONE QAM256
33142 +C 426000000 6900000 NONE QAM256
33143 +C 434000000 6900000 NONE QAM256
33144 +C 442000000 6900000 NONE QAM256
33145 +C 450000000 6900000 NONE QAM256
33146 +C 666000000 6900000 NONE QAM256
33147 +C 674000000 6900000 NONE QAM256
33148 +C 682000000 6900000 NONE QAM256
33149 +C 690000000 6900000 NONE QAM256
33150 +C 698000000 6900000 NONE QAM256
33151 +C 706000000 6900000 NONE QAM256
33152 +C 714000000 6900000 NONE QAM256
33153 +C 722000000 6900000 NONE QAM256
33154 +C 730000000 6900000 NONE QAM256
33155 +C 738000000 6900000 NONE QAM256
33156 +C 746000000 6900000 NONE QAM256
33157 +C 762000000 6900000 NONE QAM256
33158 +C 770000000 6900000 NONE QAM256
33159 +C 778000000 6900000 NONE QAM256
33160 +C 786000000 6900000 NONE QAM256
33161 +C 794000000 6900000 NONE QAM256
33162 +C 802000000 6900000 NONE QAM256
33163 +C 810000000 6900000 NONE QAM256
33164 diff -r af23d23c278b util/scan/dvb-c/at-KarrerNet
33165 --- a/util/scan/dvb-c/at-KarrerNet Sat Jun 20 16:47:55 2009 +0200
33166 +++ b/util/scan/dvb-c/at-KarrerNet Tue Dec 21 12:13:28 2010 +0100
33168 # Kabel St. Florian bei Linz/AT KarrerNet
33171 -C 418000000 6900000 NONE QAM64
33172 -C 426000000 6900000 NONE QAM64
33173 -C 434000000 6900000 NONE QAM64
33174 C 442000000 6900000 NONE QAM64
33175 -C 450000000 6900000 NONE QAM64
33176 C 458000000 6900000 NONE QAM64
33177 C 466000000 6900000 NONE QAM64
33178 C 474000000 6900000 NONE QAM64
33179 C 482000000 6900000 NONE QAM64
33180 +C 490000000 6900000 NONE QAM64
33181 +C 498000000 6900000 NONE QAM64
33182 +C 506000000 6900000 NONE QAM64
33183 +C 514000000 6900000 NONE QAM64
33184 C 522000000 6900000 NONE QAM64
33185 C 530000000 6900000 NONE QAM64
33186 C 538000000 6900000 NONE QAM64
33187 +C 546000000 6900000 NONE QAM64
33188 +C 554000000 6900000 NONE QAM64
33189 +C 562000000 6900000 NONE QAM64
33190 +C 570000000 6900000 NONE QAM64
33191 C 578000000 6900000 NONE QAM64
33192 -C 402000000 6900000 NONE QAM256
33193 +C 586000000 6900000 NONE QAM64
33194 +C 610000000 6900000 NONE QAM64
33195 +C 386000000 6900000 NONE QAM256
33196 +C 394000000 6900000 NONE QAM256
33197 C 410000000 6900000 NONE QAM256
33198 +C 434000000 6900000 NONE QAM256
33199 diff -r af23d23c278b util/scan/dvb-c/de-Primacom
33200 --- a/util/scan/dvb-c/de-Primacom Sat Jun 20 16:47:55 2009 +0200
33201 +++ b/util/scan/dvb-c/de-Primacom Tue Dec 21 12:13:28 2010 +0100
33205 C 121000000 6900000 NONE QAM64
33206 +C 129000000 6900000 NONE QAM256
33207 +C 137000000 6900000 NONE QAM256
33208 +C 145000000 6900000 NONE QAM256
33209 C 306000000 6900000 NONE QAM64
33210 C 314000000 6900000 NONE QAM64
33211 C 322000000 6900000 NONE QAM64
33213 C 378000000 6900000 NONE QAM256
33214 C 386000000 6900000 NONE QAM256
33215 C 394000000 6900000 NONE QAM256
33216 +C 402000000 6900000 NONE QAM256
33217 +C 410000000 6900000 NONE QAM256
33218 C 418000000 6900000 NONE QAM256
33219 C 434000000 6900000 NONE QAM64
33220 C 442000000 6900000 NONE QAM64
33221 diff -r af23d23c278b util/scan/dvb-c/de-Unitymedia
33222 --- a/util/scan/dvb-c/de-Unitymedia Sat Jun 20 16:47:55 2009 +0200
33223 +++ b/util/scan/dvb-c/de-Unitymedia Tue Dec 21 12:13:28 2010 +0100
33226 -# Created from http://www.unitymedia.de/service/tv/frequenzen.html
33227 -# and http://blob.unitymedia.de/Download/Unitymedia_Senderlineup_digital_2008-05-28.pdf
33228 +# Created from http://www.unitymedia.de/service/soforthilfe/frequenzen.html
33229 +# and http://www.unitymedia.de/images/UnityDigitalTV_Lineup_01-07-2009.pdf
33231 C 113000000 6900000 NONE QAM256
33232 C 121000000 6900000 NONE QAM256
33233 -C 338000000 6900000 NONE QAM256
33234 C 346000000 6900000 NONE QAM256
33235 C 354000000 6900000 NONE QAM64
33236 C 362000000 6900000 NONE QAM64
33237 C 370000000 6900000 NONE QAM64
33238 C 378000000 6900000 NONE QAM64
33239 C 386000000 6900000 NONE QAM64
33240 -C 394000000 6900000 NONE QAM256
33241 +C 394000000 6900000 NONE QAM64
33242 C 402000000 6900000 NONE QAM256
33243 C 410000000 6900000 NONE QAM256
33244 C 418000000 6900000 NONE QAM256
33245 C 426000000 6900000 NONE QAM256
33246 C 434000000 6900000 NONE QAM256
33247 -C 442000000 6900000 NONE QAM64
33248 -C 450000000 6900000 NONE QAM64
33249 +C 442000000 6900000 NONE QAM256
33250 +C 450000000 6900000 NONE QAM256
33251 C 458000000 6900000 NONE QAM256
33252 C 466000000 6900000 NONE QAM256
33253 -C 474000000 6900000 NONE QAM64
33254 C 522000000 6900000 NONE QAM256
33255 C 530000000 6900000 NONE QAM256
33256 C 538000000 6900000 NONE QAM256
33257 +C 546000000 6900000 NONE QAM256
33258 C 554000000 6900000 NONE QAM256
33259 C 562000000 6900000 NONE QAM256
33260 C 570000000 6900000 NONE QAM256
33261 -C 610000000 6900000 NONE QAM64
33262 C 650000000 6900000 NONE QAM256
33263 C 658000000 6900000 NONE QAM256
33264 C 666000000 6900000 NONE QAM256
33265 C 674000000 6900000 NONE QAM256
33266 +C 682000000 6900000 NONE QAM256
33267 +C 690000000 6900000 NONE QAM256
33268 +C 698000000 6900000 NONE QAM256
33269 diff -r af23d23c278b util/scan/dvb-c/de-komro-Rosenheim
33270 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33271 +++ b/util/scan/dvb-c/de-komro-Rosenheim Tue Dec 21 12:13:28 2010 +0100
33273 +# komro (Rosenheim)
33275 +C 113000000 6900000 NONE QAM64
33276 +C 121000000 6900000 NONE QAM64
33277 +C 338000000 6900000 NONE QAM256
33278 +C 394000000 6900000 NONE QAM256
33279 +C 450000000 6900000 NONE QAM64
33280 +C 458000000 6900000 NONE QAM64
33281 +C 466000000 6900000 NONE QAM64
33282 +C 522000000 6900000 NONE QAM256
33283 +C 530000000 6900000 NONE QAM256
33284 +C 602000000 6900000 NONE QAM256
33285 +C 610000000 6900000 NONE QAM256
33286 +C 626000000 6900000 NONE QAM256
33287 +C 642000000 6900000 NONE QAM256
33288 +C 650000000 6900000 NONE QAM256
33289 +C 658000000 6900000 NONE QAM64
33290 +C 666000000 6900000 NONE QAM64
33291 +C 682000000 6900000 NONE QAM64
33292 +C 690000000 6900000 NONE QAM256
33293 +C 698000000 6900000 NONE QAM256
33294 +C 706000000 6900000 NONE QAM256
33295 +C 714000000 6900000 NONE QAM256
33296 +C 722000000 6900000 NONE QAM256
33297 +C 730000000 6900000 NONE QAM64
33298 +C 738000000 6900000 NONE QAM64
33299 +C 746000000 6900000 NONE QAM64
33300 +C 754000000 6900000 NONE QAM64
33301 +C 762000000 6900000 NONE QAM256
33302 +C 778000000 6900000 NONE QAM64
33303 diff -r af23d23c278b util/scan/dvb-c/fi-Oulu
33304 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33305 +++ b/util/scan/dvb-c/fi-Oulu Tue Dec 21 12:13:28 2010 +0100
33307 +# DVB-C Channels in Oulu (Finland)
\r
33309 +# freq sr fec mod
\r
33310 +C 330000000 6875000 NONE QAM128 #mux1
\r
33311 +C 370000000 6875000 NONE QAM128 #mux2
\r
33312 +C 362000000 6875000 NONE QAM128 #mux3
\r
33313 +C 354000000 6875000 NONE QAM128 #mux4
\r
33314 +C 346000000 6875000 NONE QAM128 #mux5
\r
33315 +C 338000000 6875000 NONE QAM128 #mux6
\r
33316 +C 322000000 6875000 NONE QAM128 #mux7
\r
33317 +C 314000000 6875000 NONE QAM128 #mux8
\r
33318 +C 378000000 6875000 NONE QAM128 #mux9
\r
33319 +C 306000000 6875000 NONE QAM128 #mux10
\r
33320 +C 298000000 6875000 NONE QAM128 #mux11
\r
33321 +C 290000000 6875000 NONE QAM128 #mux12
\r
33322 +C 274000000 6875000 NONE QAM128 #mux13
\r
33323 +C 266000000 6875000 NONE QAM128 #mux14
\r
33324 +C 258000000 6875000 NONE QAM128 #mux15
\r
33325 +C 250000000 6875000 NONE QAM128 #mux16
\r
33326 diff -r af23d23c278b util/scan/dvb-c/fi-Turku
33327 --- a/util/scan/dvb-c/fi-Turku Sat Jun 20 16:47:55 2009 +0200
33328 +++ b/util/scan/dvb-c/fi-Turku Tue Dec 21 12:13:28 2010 +0100
33330 C 146000000 6900000 NONE QAM128
33331 C 154000000 6900000 NONE QAM128
33332 C 162000000 6900000 NONE QAM128
33333 +C 234000000 6900000 NONE QAM256
33334 +C 242000000 6900000 NONE QAM256
33335 +C 250000000 6900000 NONE QAM256
33336 +C 258000000 6900000 NONE QAM256
33337 +C 266000000 6900000 NONE QAM256
33338 +C 290000000 6900000 NONE QAM128
33339 +C 298000000 6900000 NONE QAM128
33340 C 322000000 6900000 NONE QAM128
33341 C 330000000 6900000 NONE QAM128
33342 C 338000000 6900000 NONE QAM128
33344 C 418000000 6900000 NONE QAM128
33345 C 426000000 6900000 NONE QAM128
33346 C 442000000 6900000 NONE QAM128
33347 -C 354000000 6900000 NONE QAM256
33348 diff -r af23d23c278b util/scan/dvb-c/hu-Digikabel
33349 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33350 +++ b/util/scan/dvb-c/hu-Digikabel Tue Dec 21 12:13:28 2010 +0100
33352 +# Digikabel, Hungary
33353 +# For the following cities:
33354 +# Budapest, Dorog, Hatvan, Kiskunhalas, Debrecen, Szekesfehervar, Pecs,
33355 +# Veszprem, Dunaujvaros, Miskolc, Gyongyos, Tatabanya, Varpalota, Nagykanizsa,
33356 +# Salgotarjan, Batonyterenye, Szolnok, Szentistvan, Nyiregyhaza, Gyor,
33357 +# Szazhalombatta, Bekescsaba, Bekes, Eger, Komlo, Oroszlany
33358 +# In some of the cities not all the frequencies are available.
33360 +C 354000000 6900000 NONE QAM256
33361 +C 362000000 6900000 NONE QAM256
33362 +C 370000000 6900000 NONE QAM256
33363 +C 378000000 6900000 NONE QAM256
33364 +C 386000000 6900000 NONE QAM256
33365 +C 394000000 6900000 NONE QAM256
33366 +C 402000000 6900000 NONE QAM256
33367 +C 410000000 6900000 NONE QAM256
33368 +C 762000000 6900000 NONE QAM256
33369 +C 770000000 6900000 NONE QAM256
33370 +C 778000000 6900000 NONE QAM256
33371 +C 786000000 6900000 NONE QAM256
33372 +C 794000000 6900000 NONE QAM256
33373 diff -r af23d23c278b util/scan/dvb-c/nl-REKAM-CAIW_Gouda
33374 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33375 +++ b/util/scan/dvb-c/nl-REKAM-CAIW_Gouda Tue Dec 21 12:13:28 2010 +0100
33377 +# REKAM / Caiway, Gouda, Netherlands
33379 +C 163000000 6875000 NONE QAM64
33380 +C 770000000 6900000 NONE QAM64
33381 diff -r af23d23c278b util/scan/dvb-c/se-comhem
33382 --- a/util/scan/dvb-c/se-comhem Sat Jun 20 16:47:55 2009 +0200
33383 +++ b/util/scan/dvb-c/se-comhem Tue Dec 21 12:13:28 2010 +0100
33387 +C 289500000 6875000 NONE QAM64
33388 +C 298000000 6875000 NONE QAM64
33389 +C 306000000 6875000 NONE QAM64
33390 +C 314000000 6875000 NONE QAM64
33391 +C 322000000 6875000 NONE QAM64
33392 +C 338000000 6875000 NONE QAM64
33393 +C 346000000 6875000 NONE QAM64
33394 +C 354000000 6875000 NONE QAM64
33395 C 362000000 6875000 NONE QAM64
33396 +C 370000000 6875000 NONE QAM64
33397 +C 378000000 6875000 NONE QAM64
33398 +C 386000000 6875000 NONE QAM64
33399 +C 394000000 6875000 NONE QAM64
33400 +C 402000000 6875000 NONE QAM64
33401 +C 418000000 6875000 NONE QAM64
33402 +C 434000000 6875000 NONE QAM64
33403 +C 442000000 6875000 NONE QAM64
33404 +C 450000000 6875000 NONE QAM64
33405 +C 458000000 6875000 NONE QAM64
33406 +C 714000000 6875000 NONE QAM64
33407 +C 722000000 6875000 NONE QAM64
33408 +C 738000000 6875000 NONE QAM64
33409 +C 786000000 6875000 NONE QAM64
33410 diff -r af23d23c278b util/scan/dvb-s/Agila2_C-146.0E
33411 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33412 +++ b/util/scan/dvb-s/Agila2_C-146.0E Tue Dec 21 12:13:28 2010 +0100
33414 +# Agila 2 @ 146.0E C-BAND
33415 +# Generated by Pietro Casoar
33418 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33421 +# Viva Prime Channel
33422 +S 3725000 H 2345000 3/4
33425 +S 3774000 V 3300000 3/4
33427 +# Da Ai TV indonesia
33428 +S 3791000 H 3100000 3/4
33430 +# Trinity Broadcasting Multiplex
33431 +S 3791000 V 10091000 5/6
33434 +S 3796000 H 3360000 3/4
33436 +# White Springs TV
33437 +S 3846000 H 6110000 3/4
33440 +S 3854000 H 2603000 5/6
33443 +S 3873000 V 2532000 3/4
33446 +S 3875000 H 3000000 3/4
33449 +S 3880000 H 2000000 3/4
33451 +# Viva Entertainment Multiplex
33452 +S 3887000 H 6716000 3/4
33455 +S 3896000 H 3000000 3/4
33457 +# CTN Cambodia Multiplex
33458 +S 3979000 V 9628000 3/4
33461 +S 3990000 V 13330000 3/4
33463 +# Familyland TV Network
33464 +S 4164000 V 3735000 7/8
33467 +S 4171000 V 3213000 3/4
33470 +S 4183000 V 2170000 3/4
33473 +S 4188000 V 2170000 3/4
33474 diff -r af23d23c278b util/scan/dvb-s/Apstar6_C-134.0E
33475 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33476 +++ b/util/scan/dvb-s/Apstar6_C-134.0E Tue Dec 21 12:13:28 2010 +0100
33478 +# Apstar 6 @ 134.0E C-BAND
33479 +# Generated by Pietro Casoar
33482 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33485 +# New Entertainment
33486 +S 3766000 H 4285000 3/4
33489 +S 3840000 H 27500000 3/4
33492 +S 3905000 H 3250000 3/4
33493 diff -r af23d23c278b util/scan/dvb-s/AsiaSat2_C-100.5E
33494 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33495 +++ b/util/scan/dvb-s/AsiaSat2_C-100.5E Tue Dec 21 12:13:28 2010 +0100
33497 +# AsiaSat 2 100.5E C-BAND
33498 +# Generated by Pietro Casoar
33501 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33504 +# Iris Sat Multiplex
33505 +S 3660000 V 27500000 3/4
33508 +S 3706000 H 4167000 5/6
33510 +# APTN Global Video Wire (MPEG-4 S/2)
33511 +S 3732000 H 8889000 2/3
33514 +S 3767000 V 6527000 1/2
33517 +S 3778000 V 3333000 3/4
33519 +# RTB International Brunei
33520 +S 3786000 H 6000000 7/8
33523 +S 3790000 V 2444000 3/4
33525 +# FTV HD (MPEG-4 S/2)
33526 +S 3794000 H 4640000 3/4
33528 +# Arabsat ASBU Bouquet Multiplex
33529 +S 3820000 V 27500000 3/4
33531 +# Star TV Multiplex (MPEG-4 S/2)
33532 +S 3840000 H 30000000 3/4
33534 +# E Network Multiplex
33535 +S 3880000 H 27500000 3/4
33537 +# SatLink Multiplex
33538 +S 3960000 H 27500000 3/4
33540 +# Star TV Multiplex
33541 +S 3980000 V 28100000 3/4
33543 +# SatLink European Bouquet (MPEG-2 & MPEG-4 S2)
33544 +S 4000000 H 28125000 3/4
33546 +# Macau Satellite TV Multiplex
33547 +S 4148000 V 11852000 3/4
33548 diff -r af23d23c278b util/scan/dvb-s/AsiaSat3S_C-105.5E
33549 --- a/util/scan/dvb-s/AsiaSat3S_C-105.5E Sat Jun 20 16:47:55 2009 +0200
33550 +++ b/util/scan/dvb-s/AsiaSat3S_C-105.5E Tue Dec 21 12:13:28 2010 +0100
33551 @@ -1,122 +1,102 @@
33552 # AsiaSat 3S 105.5E C-BAND
33553 -# Generated by Xingbo Wang
33555 +# Generated by Pietro Casoar
33559 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33562 -# [encrypted] ZEE English, ZEE TV International, ZEE Movies, MX, ZEE TV SE Asia, ZEE TV Asia, Trendz
33563 -S 3700000 V 27500000 3/4
33564 +# China Entertainment TV & Maharishi Veda Vision
33565 +S 3680000 H 26670000 3/4
33567 +# MediaCorp Channel News Asia
33568 +S 3706000 H 6000000 3/4
33571 S 3725000 V 4450000 3/4
33574 -S 3743000 V 3300000 3/4
33576 +S 3729000 H 13650000 3/4
33579 -S 3750000 V 2820000 3/4
33581 +S 3733000 V 6500000 3/4
33584 -S 3755150 V 4417900 7/8
33586 +S 3739000 V 2815000 3/4
33588 -# [encrypted] STAR Plus India, STAR Movies India, STAR News India, National Geographic India, STAR Gold, STAR Movies (Middle East)
33591 +S 3746000 V 2625000 3/4
33594 +S 3750000 V 2821000 3/4
33597 +S 3755000 V 4418000 7/8
33599 +# Globecast multiplex
33600 +S 3760000 H 26000000 7/8
33602 +# Star TV Multiplex
33603 S 3780000 V 28100000 3/4
33605 -# Chinese Provincial TV: Guangxi, Shanxi, Anhui, Jiangsu, Heilongjiang
33606 -S 3806000 V 4420000 3/4
33607 -S 3813000 V 4420000 3/4
33608 -S 3820000 V 4420000 3/4
33609 -S 3827000 V 4420000 3/4
33610 -S 3834000 V 4420000 3/4
33611 +# Airwaves Media Multiplex
33612 +S 3786000 H 5700000 3/4
33614 -# [encrypted] ESPN Taiwan, STAR Sports Taiwan, ESPN Asia, STAR Sports South East Asia, STAR Sports India, ESPN India, ESPN Philippines
33615 +# Zee Network Multiplex
33616 +S 3820000 V 27500000 3/4
33618 +# Star TV Multiplex
33619 +S 3840000 H 26850000 7/8
33621 +# Star TV Multiplex
33622 S 3860000 V 27500000 3/4
33625 -S 3886000 V 4800000 3/4
33626 +# B4U INDIA - MPEG-4 S/2 Multiplex
33627 +S 3880000 H 27500000 3/4
33630 -S 3895000 V 6813000 3/4
33631 +# Star TV Multiplex
33632 +S 3940000 V 28100000 3/4
33634 -# CCTV-1(comprehensive), China National Radio Channel 1
33635 -S 3904000 V 4420000 7/8
33636 +# Tuner International Multiplex
33637 +S 3960000 H 28100000 3/4
33639 -# Jilin Provincial TV
33640 -S 3914500 V 4420000 3/4
33642 -# [encrypted] A1, History, STAR Movies SEA/China, STAR World India, STAR Plus Pakistan, Channel[V] India, STAR Chinese Movies, CNBC India, STAR One, STAR Vijay
33643 +# Star TV Multiplex
33644 S 3980000 V 28100000 3/4
33646 -# Sahara One, Sahara Samay National, Sahara Samay Mumbai, Sahara Samay Uttar Pradesh, Sahara Samay Bihar, Sahara Samay Madhya Pradesh
33647 +# Star TV Multiplex
33648 +S 4000000 H 26850000 7/8
33650 +# Sahara Samay Multiplex
33651 S 4020000 V 27250000 3/4
33654 -S 4046000 V 5950000 3/4
33655 +# VOA Voice Of America Multiplex
33656 +S 4040000 H 20400000 1/2
33658 -# PTV-1, PTV World, PTV Channel 3, AVT Khyber
33659 +# Globecast Multiplex
33660 +S 4071000 H 14240000 3/4
33663 S 4091000 V 13333000 3/4
33666 -S 4106000 V 3333300 3/4
33668 +S 4095000 H 5554000 3/4
33671 -S 4115750 V 3333000 3/4
33673 +S 4102000 V 2894000 3/4
33675 -# [encrypted] ZEE Biz, ZEE News, ZEE Cinema, ZEE Music, Alpha TV Punjabi, Alpha TV Gujarati, Alpha TV Bangla, Alpha TV Marathi, Smile TV
33676 +# PTV Global UK & Europe
33677 +S 4106000 V 2894000 3/4
33679 +# Galaxy TVB Multiplex
33680 +S 4111000 H 13650000 3/4
33683 +S 4114000 V 7000000 3/4
33685 +# Eye TV Multiplex
33686 +S 4129000 H 13600000 3/4
33688 +# Zee Network Multiplex
33689 S 4140000 V 27500000 3/4
33691 -# Chinese Provincial TV: Henan, Fujian, Jiangxi, Liaoning
33692 -S 4166000 V 4420000 3/4
33693 -S 4180000 V 4420000 3/4
33694 -S 4187000 V 4420000 3/4
33695 -S 4194000 V 4420000 3/4
33698 -S 3680000 H 26670000 3/4
33700 -# Channel NewsAsia
33701 -S 3706000 H 6000000 3/4
33704 -S 3715500 H 7000000 3/4
33707 -S 3729000 H 13650000 3/4
33709 -# Network of the World, Bloomberg TV Asia, Indus Vision, Indus Music, Muslim TV Ahmadiyya, Living Asia Channel
33710 -# [encrypted] Filmazia
33711 -S 3760000 H 26000000 7/8
33713 -# [encrypted] Fox News, Sky News, STAR Movies Int'l Taiwan, National Geographic Taiwan, STAR Chinese Channel, STAR Movies mandarin, Channel[V] Taiwan
33714 -S 3840000 H 26850000 7/8
33716 -# STAR Sports Asia
33717 -# [encrypted] ESPN China, STAR Sports Hong Kong, ESPN Hong Kong
33718 -S 3920000 H 26750000 7/8
33720 -# [encrypted] CNN International Asia, CNN Newsource, Cartoon Network Asia, Cartoon Network Taiwan, Cartoon Network Philippines, Cartoon Network Australia/New Zealand, TCM Australia, Boomerang
33721 -S 3960000 H 27500000 3/4
33723 -# [encrypted] Phoenix Movies, star World Asia, Star Movies Int'l, Channel[V] International, National Geographic Regional
33724 -# Phoenix Chinese Channel, Phoenix Info News Channel, Xiong Kong Int'l, Xing Kong Regional, Channel[V](Greater China)
33725 -S 4000000 H 26850000 7/8
33727 -# Chinese Provincial TV: Hubei, Sichuan
33728 -S 4034600 H 4420000 3/4
33729 -S 4051000 H 4420000 3/4
33731 -# Chinese Provincial TV: Qinghai, Hunan
33732 -S 4067000 H 4420000 3/4
33733 -S 4082000 H 4420000 3/4
33736 -S 4094000 H 5555000 3/4
33738 -# MATV, Horizon Channel
33739 -# [encrypted] Tian Ying Movies Channel, TVB Xing He Channel
33740 -S 4111000 H 13650000 3/4
33742 -# CCTV Channel 4 (International), Channel 9 (English language), CCTV E&F
33743 -S 4129000 H 13240000 3/4
33744 +# Geo TV Network Multiplex
33745 +S 4180000 V 26666000 3/4
33746 diff -r af23d23c278b util/scan/dvb-s/Asiasat4_C-122.2E
33747 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33748 +++ b/util/scan/dvb-s/Asiasat4_C-122.2E Tue Dec 21 12:13:28 2010 +0100
33750 +# Asiasat 4 @ 122.2E C-BAND
33751 +# Generated by Pietro Casoar
33754 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33757 +# SITI Digital Network Multiplex
33758 +S 3760000 H 27500000 3/4
33760 +# SITI Digital Network Multiplex
33761 +S 3820000 V 27500000 3/4
33763 +# Henan Radio Multiplex
33764 +S 3856000 H 2170000 3/4
33766 +# SITI Digital Network Multiplex
33767 +S 3880000 H 27500000 3/4
33769 +# SITI Digital network Multiplex
33770 +S 3920000 H 27500000 3/4
33772 +# SITI Digital network Multiplex
33773 +S 3960000 H 27500000 3/4
33775 +# SITI Digital network Multiplex
33776 +S 4180000 V 27500000 3/4
33777 diff -r af23d23c278b util/scan/dvb-s/Astra-23.5E
33778 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33779 +++ b/util/scan/dvb-s/Astra-23.5E Tue Dec 21 12:13:28 2010 +0100
33783 +S 10758000 V 22000000 7/8
33784 +S 10788000 V 22000000 5/6
33785 +S 10802000 H 22000000 5/6
33786 +S 10842000 V 13333000 5/6
33787 +S 10862000 H 22000000 5/6
33789 +# S2 10891250 H 22000000 3/4 AUTO 8PSK
33790 +S 11475000 V 27500000 3/4
33791 +S 11515000 H 27500000 3/4
33792 +S2 11515000 V 28500000 9/10 AUTO QPSK
33793 +S2 11555000 H 28500000 9/10 AUTO QPSK
33794 +S2 11555000 V 28500000 9/10 AUTO QPSK
33795 +S2 11592000 V 28500000 9/10 AUTO QPSK
33796 +S2 11595000 H 28500000 9/10 AUTO QPSK
33797 +S2 11635000 H 28500000 9/10 AUTO QPSK
33798 +S2 11635000 V 28500000 9/10 AUTO QPSK
33799 +S 11675000 H 27500000 3/4
33800 +S2 11675000 V 28500000 9/10 AUTO QPSK
33801 +S2 11719000 H 27500000 9/10 AUTO QPSK
33802 +S 11739000 V 27500000 3/4
33804 +# S2 11758000 H 27500000 5/6 AUTO 8PSK
33805 +S2 11778000 V 27500000 9/10 AUTO QPSK
33806 +S 11798000 H 27500000 3/4
33807 +S2 11817000 V 27500000 9/10 AUTO QPSK
33808 +S 11836000 H 29900000 3/4
33809 +S2 11856000 V 27500000 5/6 AUTO QPSK
33810 +S 11875000 H 27500000 3/4
33811 +S 11914000 H 27500000 3/4
33813 +# S2 11954000 H 27500000 3/4 AUTO 8PSK
33814 +S 11992000 H 27500000 3/4
33815 +S 12012000 V 27500000 3/4
33816 +S2 12032000 H 27500000 9/10 AUTO QPSK
33817 +S 12070000 H 27500000 3/4
33818 +S2 12109000 H 27500000 9/10 AUTO QPSK
33820 +# S2 12148000 H 27500000 3/4 AUTO 8PSK
33821 +S 12168000 V 27500000 3/4
33823 +# S2 12226000 H 27500000 3/5 AUTO 8PSK
33825 +# S2 12304000 H 27500000 5/6 AUTO 8PSK
33827 +# S2 12344000 H 28200000 5/6 AUTO 8PSK
33829 +# S2 12382000 H 27500000 3/4 AUTO 8PSK
33830 +S 12525000 H 27500000 3/4
33831 +S 12525000 V 27500000 3/4
33832 +S 12565000 H 27500000 2/3
33833 +S 12565000 V 27500000 3/4
33834 +S2 12605000 H 28500000 9/10 AUTO QPSK
33835 +S2 12605000 V 28500000 9/10 AUTO QPSK
33836 +S 12630000 V 6000000 3/4
33837 +S 12631000 H 6666000 7/8
33838 +S 12636000 V 2277000 5/6
33839 +S 12641000 H 2220000 7/8
33840 +S 12644000 H 2170000 3/4
33841 +S 12649000 H 5600000 5/6
33842 +S 12661000 H 2170000 5/6
33843 +S 12685000 V 27500000 3/4
33844 +S 12696000 H 3255000 1/2
33845 +S 12711000 H 6111000 AUTO
33846 +S 12725000 V 27500000 3/4
33847 diff -r af23d23c278b util/scan/dvb-s/Atlantic-Bird-3-5.0W
33848 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33849 +++ b/util/scan/dvb-s/Atlantic-Bird-3-5.0W Tue Dec 21 12:13:28 2010 +0100
33851 +# Atlantic Bird 3 @ 5.0W
33853 +S 11096000 V 29950000 7/8
33854 +S 11591000 V 20000000 2/3
33855 diff -r af23d23c278b util/scan/dvb-s/Chinastar1_C-87.5E
33856 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33857 +++ b/util/scan/dvb-s/Chinastar1_C-87.5E Tue Dec 21 12:13:28 2010 +0100
33859 +# ChinaStar 1 @ 87.5E C-BAND
33860 +# Generated by Pietro Casoar
33863 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33867 +S 3734000 H 5925000 3/4
33870 +S 4076000 H 2532000 3/4
33873 +S 4081000 H 4687000 3/4
33874 diff -r af23d23c278b util/scan/dvb-s/Insat2E_C-83.0E
33875 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33876 +++ b/util/scan/dvb-s/Insat2E_C-83.0E Tue Dec 21 12:13:28 2010 +0100
33878 +# Insat 2E @ 83.0E C-BAND
33879 +# Generated by Pietro Casoar
33882 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33886 +S 3521000 V 8640000 3/4
33889 +S 3537000 V 10800000 3/4
33892 +S 3550000 V 3255000 3/4
33895 +S 3559000 V 3366000 3/4
33898 +S 3581000 V 3255000 3/4
33901 +S 3593000 V 8680000 3/4
33903 +# Tata Communications Multiplex
33904 +S 3593000 V 9629000 3/4
33906 +# Asianet Multiplex
33907 +S 3643000 V 19531000 3/4
33909 +# Amrita TV Middle East
33910 +S 3678000 V 5926000 3/4
33913 +S 3689000 V 2893000 3/4
33915 +# Tata Communications Multiplex
33916 +S 3696000 V 6111000 3/4
33919 +S 3760000 V 6500000 3/4
33921 +# Raj TV Network Multiplex
33922 +S 3774000 V 13021000 3/4
33925 +S 3794000 V 3500000 3/5
33927 +# PTC Multiplex (MPEG-4 S/2)
33928 +S 3815000 V 6000000 3/4
33930 +# Tata Communications Multiplex
33931 +S 3845000 V 26043000 3/4
33934 +S 3914000 V 3000000 3/4
33937 +S 3919000 V 3000000 3/4
33939 +# Manorama News International
33940 +S 3923000 V 3000000 3/4
33942 +# Tata Communications Multiplex
33943 +S 3934000 V 13021000 3/4
33945 +# Raj Musix kanada
33946 +S 3961000 V 6656000 3/4
33949 +S 3974000 V 13333000 3/4
33951 +# Asianet Multiplex
33952 +S 4010000 V 19531000 3/4
33954 +# Tata Communications Multiplex
33955 +S 4031000 V 7440000 7/8
33958 +S 4042000 V 7420000 7/8
33960 +# Tata Communications Multiplex
33961 +S 4050000 V 5084000 7/8
33964 +S 4070000 V 5000000 3/4
33966 +# Indiasign Mulitplex
33967 +S 4091000 V 9230000 7/8
33969 +# News Live (MPEG-4 S/2)
33970 +S 4100000 V 4700000 3/4
33971 diff -r af23d23c278b util/scan/dvb-s/Insat3A_C-93.5E
33972 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33973 +++ b/util/scan/dvb-s/Insat3A_C-93.5E Tue Dec 21 12:13:28 2010 +0100
33975 +# Insat 3A @ 93.5E C-BAND
33976 +# Generated by Pietro Casoar
33979 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
33983 +S 3732000 V 6250000 3/4
33986 +S 3740000 V 6250000 3/4
33989 +S 3750000 V 6250000 3/4
33992 +S 3759000 V 6250000 3/4
33995 +S 3772000 V 6250000 3/4
33998 +S 3782000 V 6250000 3/4
34001 +S 3791000 V 8600000 3/4
34004 +S 3812000 V 6250000 3/4
34007 +S 3820000 V 6250000 3/4
34010 +S 3831000 V 8600000 3/4
34012 +# DD Himachal Pradesh
34013 +S 3932000 V 6250000 3/4
34016 +S 3940000 V 6250000 3/4
34019 +S 3950000 V 6250000 3/4
34021 +# DD Uttar Pradesh
34022 +S 3958000 V 6250000 3/4
34025 +S 4092000 V 6250000 3/4
34028 +S 4101000 V 6250000 3/4
34031 +S 4109000 V 4250000 3/4
34034 +S 4132000 V 4000000 3/4
34036 +# RTA Afghanistan Nangarhar
34037 +S 4136000 V 2000000 3/4
34039 +# Ariana TV Network Multiplex
34040 +S 4141000 V 5150000 3/4
34041 diff -r af23d23c278b util/scan/dvb-s/Insat4A_C-83.0E
34042 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34043 +++ b/util/scan/dvb-s/Insat4A_C-83.0E Tue Dec 21 12:13:28 2010 +0100
34045 +# Insat 4A @ 83.0E C-BAND
34046 +# Generated by Pietro Casoar
34049 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34053 +S 3725000 H 26665000 3/4
34055 +# Indiasign multiplex
34056 +S 3756000 H 13333000 3/4
34058 +# Star TV Multiplex
34059 +S 3777000 H 10900000 3/4
34061 +# Essel Shyam Multiplex
34062 +S 3805000 H 28500000 7/8
34064 +# Tarang TV Multiplex (MPEG-4 S/2)
34065 +S 3841000 H 6920000 3/4
34068 +S 3853000 H 3265000 3/4
34071 +S 3857000 H 3462000 3/4
34074 +S 3874000 H 3403000 3/4
34077 +S 3892000 H 3300000 3/4
34079 +# Essel Shayam Multiplex
34080 +S 3898000 H 6800000 3/4
34082 +# Channel 10 India
34083 +S 3910000 H 3600000 7/8
34086 +S 3923000 H 13000000 3/4
34089 +S 3949000 H 3225000 3/4
34092 +S 3958000 H 9500000 7/8
34094 +# Zee News Uttar Pradesh
34095 +S 3976000 H 3200000 3/4
34097 +# ETV Network Multiplex
34098 +S 4004000 H 22220000 5/6
34101 +S 4040000 H 7500000 7/8
34103 +# Lamhas Multiplex
34104 +S 4054000 H 13230000 3/4
34106 +# Network 18 Multiplex
34107 +S 4072000 H 6500000 3/4
34110 +S 4078000 H 3250000 3/4
34113 +S 4087000 H 3300000 3/4
34116 +S 4091000 H 3000000 3/4
34119 +S 4100000 H 4750000 3/4
34122 +S 4115000 H 5555000 3/4
34125 +S 4134000 H 10600000 3/4
34127 +# Zee Network Multiplex
34128 +S 4151000 H 6500000 3/4
34130 +# Zee Network Multiplex
34131 +S 4161000 H 6500000 3/4
34134 +S 4170000 H 6500000 3/4
34137 +S 4180000 H 3233000 3/4
34138 diff -r af23d23c278b util/scan/dvb-s/Insat4B_C-93.5E
34139 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34140 +++ b/util/scan/dvb-s/Insat4B_C-93.5E Tue Dec 21 12:13:28 2010 +0100
34142 +# Insat 4B @ 93.5E C-BAND
34143 +# Generated by Pietro Casoar
34146 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34149 +# Doordarshan Multiplex
34150 +S 3725000 H 27500000 3/4
34153 +S 3750000 H 4250000 3/4
34156 +S 3762000 H 4250000 3/4
34159 +S 3768000 H 4250000 3/4
34162 +S 3774000 H 4250000 3/4
34165 +S 3802000 H 4250000 3/4
34168 +S 3808000 H 4250000 3/4
34171 +S 3822000 H 4250000 3/4
34174 +S 3832000 H 6250000 3/4
34177 +S 3841000 H 6250000 3/4
34180 +S 3885000 H 28000000 3/4
34182 +# Doordarshan Multiplex
34183 +S 3925000 H 27500000 3/4
34186 +S 3950000 H 4440000 3/4
34188 +# Tata Communications Multiplex
34189 +S 4005000 H 25422000 7/8
34192 +S 4045000 H 28000000 3/4
34193 diff -r af23d23c278b util/scan/dvb-s/Intelsat8_C-166.0E
34194 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34195 +++ b/util/scan/dvb-s/Intelsat8_C-166.0E Tue Dec 21 12:13:28 2010 +0100
34197 +# Intelsat 8 @ 166.0E C-BAND
34198 +# Generated by Pietro Casoar
34201 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34204 +# Viacom Multiplex
34205 +S 3740000 H 27500000 2/3
34207 +# South Korean Multiplex
34208 +S 3790000 V 6510000 3/4
34211 +S 3815000 V 4400000 3/4
34213 +# Australian network Multiplex
34214 +S 3829000 H 13238000 3/4
34217 +S 3833000 V 17500000 3/4
34220 +S 3900000 H 27500000 3/4
34222 +# Intelsat multiplex
34223 +S 3940000 H 27690000 7/8
34225 +# China Radio multiplex
34226 +S 3959000 V 3428000 3/4
34228 +# NHK World network Multiplex
34229 +S 4060000 H 16180000 1/2
34231 +# Philippines Network TV Multiplex
34232 +S 4122000 V 5554000 3/4
34235 +S 4130000 V 5800000 3/4
34236 diff -r af23d23c278b util/scan/dvb-s/JCSat3A_C-128.0E
34237 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34238 +++ b/util/scan/dvb-s/JCSat3A_C-128.0E Tue Dec 21 12:13:28 2010 +0100
34240 +# JCSAT 3A @ 128.0E C-BAND
34241 +# Generated by Pietro Casoar
34244 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34248 +S 3960000 V 30000000 5/6
34251 +S 4000000 V 30000000 5/6
34254 +S 4055000 V 3332000 3/4
34257 +S 4120000 V 30000000 5/6
34258 diff -r af23d23c278b util/scan/dvb-s/Measat3_C-91.5E
34259 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34260 +++ b/util/scan/dvb-s/Measat3_C-91.5E Tue Dec 21 12:13:28 2010 +0100
34262 +# Measat 3 @ 91.5E C-BAND
34263 +# Generated by Pietro Casoar
34266 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34270 +S 3629000 V 2200000 3/4
34272 +# Aora TV Mulitplex
34273 +S 3644000 H 22320000 3/4
34275 +# Solar Entertainment
34276 +S 3645000 V 19510000 3/4
34278 +# National Geographic music
34279 +S 3718000 V 1700000 7/8
34281 +# DZRH TV Multiplex
34282 +S 3721000 V 2170000 3/4
34284 +# Ascent Media (MPEG-4 S/2)
34285 +S 3751000 V 13330000 2/3
34287 +# Globecast Multiplex (MPEG-4 S/2)
34288 +S 3769000 V 14000000 3/4
34291 +S 3796000 V 7030000 3/4
34293 +# Sky International
34294 +S 3814000 V 6666000 3/4
34296 +# Un-named Mulitplex
34297 +S 3865000 V 3835000 3/4
34300 +S 3877000 V 12525000 7/8
34302 +# RTM Sarawak Feeds
34303 +S 3887000 V 3984000 3/4
34305 +# Globecast Multiplex
34306 +S 3920000 V 28000000 7/8
34309 +S 4113000 V 2960000 3/4
34312 +S 4117000 V 2963000 3/4
34314 +# All Sports Network (MPEG-4 S/2)
34315 +S 4134000 V 7200000 3/4
34316 diff -r af23d23c278b util/scan/dvb-s/PalapaC2_C-113.0E
34317 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34318 +++ b/util/scan/dvb-s/PalapaC2_C-113.0E Tue Dec 21 12:13:28 2010 +0100
34320 +# Palapa C2 @ 113.0E C-BAND
34321 +# Generated by Pietro Casoar
34324 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34328 +S 3745000 H 3125000 3/4
34331 +S 3758000 H 4470000 3/4
34334 +S 3765000 H 5555000 3/4
34337 +S 3774000 H 6520000 3/4
34339 +# KBS World Indonesia
34340 +S 3836000 V 2097000 3/4
34343 +S 3926000 H 4208000 3/4
34345 +# TV One Indonesia
34346 +S 4054000 H 5632000 3/4
34349 +S 4055000 V 6510000 3/4
34352 +S 4074000 V 6500000 3/4
34354 +# Satelindo Multiplex
34355 +S 4080000 H 28125000 3/4
34358 +S 4184000 V 6700000 3/4
34359 diff -r af23d23c278b util/scan/dvb-s/ST1_C-80.0E
34360 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34361 +++ b/util/scan/dvb-s/ST1_C-80.0E Tue Dec 21 12:13:28 2010 +0100
34363 +# ST1 @ 88.0E C-BAND
34364 +# Generated by Pietro Casoar
34367 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34371 +S 3469000 V 30000000 3/4
34374 +S 3521000 H 8332000 5/6
34376 +# Videoland Multiplex
34377 +S 3550000 V 30000000 3/4
34380 +S 3595000 H 30000000 3/4
34382 +# Videoland multiplex
34383 +S 3632000 V 30000000 3/4
34386 +S 3671000 H 9256000 3/4
34388 +# NTD TV Asia-Pacific
34389 +S 3689000 H 3000000 3/4
34390 diff -r af23d23c278b util/scan/dvb-s/Telkom1_C-108.0E
34391 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34392 +++ b/util/scan/dvb-s/Telkom1_C-108.0E Tue Dec 21 12:13:28 2010 +0100
34394 +# Telkom 1 @ 108.0E C-BAND
34395 +# Generated by Pietro Casoar
34398 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34401 +# Telkom Vision Multiplex
34402 +S 3580000 H 28000000 3/4
34404 +# Telkom Vision Multiplex
34405 +S 3620000 H 28000000 3/4
34407 +# Telkom Vision Multiplex
34408 +S 3640000 V 28000000 3/4
34411 +S 3776000 H 4285000 3/4
34414 +S 3785000 H 4000000 3/4
34417 +S 3793000 H 3000000 3/4
34420 +S 3797000 H 3900000 3/4
34423 +S 3807000 H 4000000 3/4
34426 +S 3990000 H 6000000 3/4
34429 +S 4015000 H 6000000 3/4
34432 +S 4025000 H 3000000 3/4
34435 +S 4084000 H 6000000 3/4
34438 +S 4092000 H 3570000 3/4
34441 +S 4097000 H 3125000 3/4
34442 diff -r af23d23c278b util/scan/dvb-s/Telstar10_C-76.5E
34443 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34444 +++ b/util/scan/dvb-s/Telstar10_C-76.5E Tue Dec 21 12:13:28 2010 +0100
34446 +# Telstar 10 @ 76.5E C-BAND
34447 +# Generated by Pietro Casoar
34450 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34453 +# Racing International
34454 +S 3646000 H 5064000 3/4
34457 +S 3655000 H 3214000 3/4
34459 +# Globe Cast Asia multiplex
34460 +S 3680000 H 27500000 3/4
34462 +# UBI World TV Multiplex
34463 +S 3760000 H 28066000 2/3
34465 +# UBI World TV Multiplex
34466 +S 3780000 V 28066000 2/3
34469 +S 3787000 H 4600000 2/3
34472 +S 3793000 H 4340000 3/4
34474 +# RRSat Global Network Multiplex
34475 +S 3840000 H 27500000 3/4
34478 +S 4003000 H 4080000 3/4
34481 +S 4009000 H 4300000 3/4
34484 +S 4030000 V 6312000 1/2
34487 +S 4034000 H 4300000 3/4
34490 +S 4049000 H 3600000 3/4
34493 +S 4056000 H 3214000 3/4
34495 +# BBC World Service Multiplex
34496 +S 4073000 H 13020000 1/2
34499 +S 4105000 H 3125000 3/4
34502 +S 4137000 H 2893000 3/4
34505 +S 4146000 H 3600000 3/4
34507 +# Bangladesh Multiplex
34508 +S 4173000 H 7400000 3/4
34509 diff -r af23d23c278b util/scan/dvb-s/Telstar18_C-138.0E
34510 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34511 +++ b/util/scan/dvb-s/Telstar18_C-138.0E Tue Dec 21 12:13:28 2010 +0100
34513 +# Telstar 18 @ 138.0E C-BAND
34514 +# Generated by Pietro Casoar
34517 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34520 +# I-Sky-Net Multiplex
34521 +S 3599000 V 30000000 3/4
34523 +# I-Sky-Net Multiplex
34524 +S 3660000 V 30000000 3/4
34527 +S 3704000 V 3034000 3/4
34529 +# BBC World Service Multiplex
34530 +S 4124000 V 3255000 1/2
34531 diff -r af23d23c278b util/scan/dvb-s/Thaicom1A_C-120.0E
34532 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34533 +++ b/util/scan/dvb-s/Thaicom1A_C-120.0E Tue Dec 21 12:13:28 2010 +0100
34535 +# Thaicom 1A @ 120.0E C-BAND
34536 +# Generated by Pietro Casoar
34539 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34543 +S 3725000 V 3255000 3/4
34546 +S 3745000 V 2850000 5/6
34548 +# CTN Cambodia Multiplex
34549 +S 3854000 V 9628000 3/4
34552 +S 3881000 V 2000000 3/4
34555 +S 3916000 V 3359000 3/4
34557 +# Radio Thailand Multiplex
34558 +S 4135000 V 1808000 3/4
34559 diff -r af23d23c278b util/scan/dvb-s/Thaicom2_C-78.5E
34560 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34561 +++ b/util/scan/dvb-s/Thaicom2_C-78.5E Tue Dec 21 12:13:28 2010 +0100
34563 +# Thaicom 2 @ 78.5E C-BAND
34564 +# Generated by Pietro Casoar
34567 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34571 +S 3764000 H 5900000 3/4
34574 +S 3803000 H 1445000 7/8
34577 +S 3888000 H 15625000 3/4
34579 +# Royal Thai Army TV 5
34580 +S 3905000 H 6250000 3/4
34582 +# Thai TV Color Channel 3
34583 +S 3967000 H 4551000 3/4
34586 +S 4003000 H 1085000 3/4
34588 +# Ten TV & Rich Channel
34589 +S 4016000 H 2305000 7/8
34592 +S 4106000 H 4688000 3/4
34595 +S 4145000 H 4815000 3/4
34596 diff -r af23d23c278b util/scan/dvb-s/Thaicom5_C-78.5E
34597 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34598 +++ b/util/scan/dvb-s/Thaicom5_C-78.5E Tue Dec 21 12:13:28 2010 +0100
34600 +# Thaicom 5 @ 78.5E C-BAND
34601 +# Generated by Pietro Casoar
34604 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34607 +# ETC India Multiplex
34608 +S 3421000 V 6667000 3/4
34610 +# Europe Media Port Multiplex
34611 +S 3431000 H 13333000 3/4
34613 +# Nepal TV Multiplex
34614 +S 3432000 V 6667000 3/4
34617 +S 3448000 V 2222000 3/4
34619 +# RRSat Global Network (MPEG-4 S/2)
34620 +S 3450000 H 13333000 3/4
34623 +S 3454000 V 3333000 3/4
34626 +S 3460000 V 1538000 3/4
34629 +S 3489000 V 3333000 3/4
34632 +S 3502000 V 4444000 2/3
34634 +# Korean Central TV
34635 +S 3504000 H 3367000 2/3
34637 +# Gang Cartoon Channel
34638 +S 3505000 V 1852000 3/4
34640 +# Lao Star Channel
34641 +S 3521000 V 2917000 3/4
34643 +# Thaicom Multiplex
34644 +S 3545000 V 30000000 5/6
34646 +# RRSat Global Network
34647 +S 3551000 H 13333000 3/4
34650 +S 3562000 H 4444000 1/2
34653 +S 3574000 H 7492000 2/3
34655 +# Thaicom Multiplex
34656 +S 3585000 V 26667000 3/4
34658 +# Thaicom Multiplex
34659 +S 3600000 H 26667000 3/4
34662 +S 3617000 V 12500000 3/4
34664 +# RRSat Global Network Multiplex
34665 +S 3640000 H 28066000 3/4
34668 +S 3664000 H 3704000 3/4
34669 diff -r af23d23c278b util/scan/dvb-s/Vinasat1_C-132.0E
34670 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34671 +++ b/util/scan/dvb-s/Vinasat1_C-132.0E Tue Dec 21 12:13:28 2010 +0100
34673 +# VINASAT 1 @ 132.0E C-BAND
34674 +# Generated by Pietro Casoar
34677 +# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
34680 +# VTV Multiplex (VTV 1, VTV 2, VTV 3, VTV 4, VTV6)
34681 +S 3413000 V 9766000 3/4
34683 +# VOV TV (Voice of VietNam)
34684 +S 3529000 V 2500000 2/3
34685 diff -r af23d23c278b util/scan/dvb-t/au-Adelaide
34686 --- a/util/scan/dvb-t/au-Adelaide Sat Jun 20 16:47:55 2009 +0200
34687 +++ b/util/scan/dvb-t/au-Adelaide Tue Dec 21 12:13:28 2010 +0100
34689 T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34691 T 564500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34692 +# 3D Trial Australia
34693 +T 536625000 7MHz 3/4 NONE QAM16 8k 1/8 NONE
34694 diff -r af23d23c278b util/scan/dvb-t/au-AdelaideFoothills
34695 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34696 +++ b/util/scan/dvb-t/au-AdelaideFoothills Tue Dec 21 12:13:28 2010 +0100
34698 +# Australia / Adelaide / Grenfell Street
34699 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34701 +T 781625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34703 +T 711500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34705 +T 795500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34707 +T 732500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34709 +T 760500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34710 diff -r af23d23c278b util/scan/dvb-t/au-Ballarat
34711 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34712 +++ b/util/scan/dvb-t/au-Ballarat Tue Dec 21 12:13:28 2010 +0100
34714 +# Australia / Ballarat
34715 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34717 +T 620625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34719 +T 655500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34721 +T 592625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34723 +T 613500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34725 +T 634625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34726 diff -r af23d23c278b util/scan/dvb-t/au-Bendigo
34727 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34728 +++ b/util/scan/dvb-t/au-Bendigo Tue Dec 21 12:13:28 2010 +0100
34730 +# Australia / Bendigo (Mt Alexandria transmitters)
34731 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34733 +T 669500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34734 +T 620500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34735 +T 572500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34738 +T 690500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34739 +T 655500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34740 +T 555250000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34743 +T 576250000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34744 +T 592500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34747 +T 618250000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34750 +T 529500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34751 +T 634500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34752 +T 534250000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34755 +T 676500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34757 +T 571500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34759 +T 536625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34760 +T 585625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34761 +T 564500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34762 +T 543500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34763 +T 536500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34764 +T 529500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34765 +T 205500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34766 +T 564500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34767 +T 536625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34768 +T 690500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34769 +T 711500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34770 +T 550500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34771 diff -r af23d23c278b util/scan/dvb-t/au-Brisbane
34772 --- a/util/scan/dvb-t/au-Brisbane Sat Jun 20 16:47:55 2009 +0200
34773 +++ b/util/scan/dvb-t/au-Brisbane Tue Dec 21 12:13:28 2010 +0100
34775 T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34777 T 585625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34779 +T 599500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34780 diff -r af23d23c278b util/scan/dvb-t/au-Devonport
34781 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34782 +++ b/util/scan/dvb-t/au-Devonport Tue Dec 21 12:13:28 2010 +0100
34784 +# Australia / Tasmania / Devonport
34785 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34787 +# Brett S Hallett October 2009 , may not be complete !!
34790 +T 730250000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34792 +T 648500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34794 +T 709250000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34796 +T 606500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34798 +T 613498000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34800 +T 627498000 7MHz 3/4 NONE QAM64 8k 1/8 NONE
34802 +T 585498000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34803 diff -r af23d23c278b util/scan/dvb-t/au-FraserCoast-Bundaberg
34804 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34805 +++ b/util/scan/dvb-t/au-FraserCoast-Bundaberg Tue Dec 21 12:13:28 2010 +0100
34807 +# Australia / QLD / Fraser Coast - Bundaberg / Mt Goonaneman
34808 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34810 +T 205625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34812 +T 529500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34814 +T 184625000 7MHz 2/3 NONE QAM64 8k 1/16 NONE
34815 +# WIN Wide Bay VHF10
34816 +T 212500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34817 +# Southern Cross Ten VHF9
34818 +T 198525000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34819 diff -r af23d23c278b util/scan/dvb-t/au-Goulburn-Rocky_Hill
34820 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34821 +++ b/util/scan/dvb-t/au-Goulburn-Rocky_Hill Tue Dec 21 12:13:28 2010 +0100
34823 +# Australia / Goulburn / Rocky Hill
34825 +# Scanned 17/10/2009 - Alex Ferrara (alex@receptiveit.com.au)
34827 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34828 +# ABC - netid (4112) tid (547) offset (+125Khz)
34829 +T 725625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34831 +# SBS - netid (12802) tid (848) offset (+125Khz)
34832 +T 746625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34834 +# WIN - netid (12915) tid (12922) offset (+125Khz)
34835 +T 767625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34837 +# Prime - netid (12929) tid (2462) offset (+125Khz)
34838 +T 788625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34840 +# TEN - netid (12812) tid (2055) offset (0Khz)
34841 +T 809500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34842 diff -r af23d23c278b util/scan/dvb-t/au-Hervey_Bay-Ghost_Hill
34843 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34844 +++ b/util/scan/dvb-t/au-Hervey_Bay-Ghost_Hill Tue Dec 21 12:13:28 2010 +0100
34846 +# Australia / Hervey Bay / Ghost Hill
34848 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34851 +T 725500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34853 +T 746500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34855 +T 767625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34857 +T 809500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34859 +T 529500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34861 +T 704500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34862 diff -r af23d23c278b util/scan/dvb-t/au-SunshineCoast
34863 --- a/util/scan/dvb-t/au-SunshineCoast Sat Jun 20 16:47:55 2009 +0200
34864 +++ b/util/scan/dvb-t/au-SunshineCoast Tue Dec 21 12:13:28 2010 +0100
34867 T 585625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34869 -T 662625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
34870 +T 662625000 7MHz 3/4 NONE QAM64 8k 1/8 NONE
34872 T 767625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34874 diff -r af23d23c278b util/scan/dvb-t/au-Sutherland
34875 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34876 +++ b/util/scan/dvb-t/au-Sutherland Tue Dec 21 12:13:28 2010 +0100
34878 +# Australia / Sutherland
34880 +# Australia modulation params:
34881 +# - http://www.dba.org.au/index.asp?sectionID=120
34883 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34885 +# North (Broadcast Site Escarpment Road BROKERS NOSE)
34886 +# - http://www.dba.org.au/index.asp?query=true§ionID=22&recLocation=Wollongong+%2D+North
34888 +#Channel 7 stations
34889 +T 177500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34891 +# T 191500000 7MHz AUTO AUTO AUTO AUTO AUTO AUTO
34892 +#One and Channel 10
34893 +T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34895 +T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34897 +T 571500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
34898 diff -r af23d23c278b util/scan/dvb-t/be-All
34899 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34900 +++ b/util/scan/dvb-t/be-All Tue Dec 21 12:13:28 2010 +0100
34902 +# Belgium, whole country
34903 +# Created from http://nl.wikipedia.org/wiki/DVB-T-frequenties
34904 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34905 +T 482000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
34906 +T 506000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
34907 +T 666000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
34908 +T 754000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
34909 +T 834000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
34910 diff -r af23d23c278b util/scan/dvb-t/be-Brussels
34911 --- a/util/scan/dvb-t/be-Brussels Sat Jun 20 16:47:55 2009 +0200
34912 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
34914 -# Brussels - Belgium (Transmitters of the RTBF and the VRT)
34915 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34916 -T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # RTBF
34917 -T 746000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # BE-TV
34918 -T 482000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # VRT
34919 diff -r af23d23c278b util/scan/dvb-t/be-Libramont
34920 --- a/util/scan/dvb-t/be-Libramont Sat Jun 20 16:47:55 2009 +0200
34921 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
34923 -# Libramont - Belgique
34924 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34925 -# Canal 7 191.5 MHz M6
34926 -# Canal 24 498.0 MHz RTL-TVI Club-RTL Plug-TV RTL 4,5,7
34927 -# Canal 27 522.0 MHz RTL Lux, den 2ten RTL
34928 -# Canal 56 834.0 MHz RTBF 1,2,3 + radio
34929 -T 191500000 7MHz 1/2 NONE QAM64 8k 1/8 NONE
34930 -T 498000000 8MHz 1/2 NONE QAM64 8k 1/16 NONE
34931 -T 522000000 8MHz 1/2 NONE QAM64 8k 1/16 NONE
34932 -T 834000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
34933 diff -r af23d23c278b util/scan/dvb-t/be-Schoten
34934 --- a/util/scan/dvb-t/be-Schoten Sat Jun 20 16:47:55 2009 +0200
34935 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
34937 -# Schoten-Antwerpen - Belgie
34938 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34939 -T 778000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
34940 diff -r af23d23c278b util/scan/dvb-t/be-St_Pieters_Leeuw
34941 --- a/util/scan/dvb-t/be-St_Pieters_Leeuw Sat Jun 20 16:47:55 2009 +0200
34942 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
34944 -# St.-Pieters-Leeuw - Belgie
34945 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34946 -T 482000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
34947 diff -r af23d23c278b util/scan/dvb-t/be-Tournai
34948 --- a/util/scan/dvb-t/be-Tournai Sat Jun 20 16:47:55 2009 +0200
34949 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
34951 -# Tournai - Belgique
34952 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34953 -T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
34954 diff -r af23d23c278b util/scan/dvb-t/ch-All
34955 --- a/util/scan/dvb-t/ch-All Sat Jun 20 16:47:55 2009 +0200
34956 +++ b/util/scan/dvb-t/ch-All Tue Dec 21 12:13:28 2010 +0100
34958 T 682000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
34959 T 690000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
34960 T 698000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
34961 +T 706000000 8MHz 1/2 NONE QAM16 8k 1/4 NONE
34962 T 714000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
34963 T 722000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
34964 T 722000000 8MHz 5/6 NONE QAM16 8k 1/8 NONE
34965 diff -r af23d23c278b util/scan/dvb-t/ch-Geneva
34966 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34967 +++ b/util/scan/dvb-t/ch-Geneva Tue Dec 21 12:13:28 2010 +0100
34969 +# Switzerland, whole country
34970 +# Created from http://www.broadcast.ch/portal.aspx?pid=705
34971 +# and http://www.broadcast.ch/data_program_dvbt.aspx
34972 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34973 +# freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34974 +T 570166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
34975 +T 578000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
34976 +T 658166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34977 +T 666166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
34978 +T 682166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34979 +T 706000000 8MHz 1/2 NONE QAM16 8k 1/4 NONE
34980 +T 746166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34981 +T 770166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34982 +T 794166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34983 +T 818166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34984 +T 850166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
34985 diff -r af23d23c278b util/scan/dvb-t/cz-All
34986 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34987 +++ b/util/scan/dvb-t/cz-All Tue Dec 21 12:13:28 2010 +0100
34989 +# Czech Republic, whole country
34990 +# Created from http://www.digizone.cz/texty/mapy-pokryti-multiplex-1-ceska-televize/
34991 +# and http://www.digizone.cz/texty/mapy-pokryti-multiplex-2-radiokomunikace/
34992 +# and http://www.digizone.cz/texty/mapy-pokryti-multiplex-3-czech-digital-group/
34993 +# and http://www.digizone.cz/texty/mapy-pokryti-multiplex-4-telefonica-o2/
34994 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
34995 +T 482000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
34996 +T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
34997 +T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
34998 +T 546000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
34999 +T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35000 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35001 +T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35002 +T 586000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35003 +T 594000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35004 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35005 +T 618000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35006 +T 626000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35007 +T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35008 +T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35009 +T 650000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35010 +T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35011 +T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35012 +T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35013 +T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35014 +T 698000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35015 +T 706000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35016 +T 714000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35017 +T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35018 +T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35019 +T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35020 +T 746000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35021 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35022 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35023 +T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35024 +T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35025 +T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35026 +T 810000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35027 +T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35028 +T 826000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35029 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35030 diff -r af23d23c278b util/scan/dvb-t/cz-Brno
35031 --- a/util/scan/dvb-t/cz-Brno Sat Jun 20 16:47:55 2009 +0200
35032 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35034 -# DVB-T Brno (Brno, Czech Republic)
35035 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35036 -# MUX 1 Ceska televize
35037 -T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35038 -# MUX 2 Ceske radiokomunikace
35039 -T 626000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35040 -# MUX 3 Czech Digital Group
35041 -T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35042 -# MUX 4 Telefonica O2
35043 -T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35044 diff -r af23d23c278b util/scan/dvb-t/cz-Domazlice
35045 --- a/util/scan/dvb-t/cz-Domazlice Sat Jun 20 16:47:55 2009 +0200
35046 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35048 -# DVB-T Domažlice (Domažlice, Czech Republic)
35049 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35050 -T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35051 diff -r af23d23c278b util/scan/dvb-t/cz-Klet
35052 --- a/util/scan/dvb-t/cz-Klet Sat Jun 20 16:47:55 2009 +0200
35053 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35055 -# DVB-T Ceske Budejovice (Klet, Czech Republic)
35056 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35057 -# CRa - Ceske radiokomunikace, TX Klet
35058 -T 698000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35059 diff -r af23d23c278b util/scan/dvb-t/cz-Ostrava
35060 --- a/util/scan/dvb-t/cz-Ostrava Sat Jun 20 16:47:55 2009 +0200
35061 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35063 -# DVB-T Ostrava (Ostrava, Czech Republic)
35064 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35065 -T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35066 diff -r af23d23c278b util/scan/dvb-t/cz-Plzen
35067 --- a/util/scan/dvb-t/cz-Plzen Sat Jun 20 16:47:55 2009 +0200
35068 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35070 -# DVB-T Plzen (Pilsen, Czech Republic)
35071 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35072 -# MUX 1 Ceska televize
35073 -T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35074 -# MUX 2 Ceske Radiokomunikace
35075 -T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35076 -# MUX 3 Czech Digital Group
35077 -T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35078 diff -r af23d23c278b util/scan/dvb-t/cz-Praha
35079 --- a/util/scan/dvb-t/cz-Praha Sat Jun 20 16:47:55 2009 +0200
35080 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35082 -# DVB-T Praha (Prague, Czech Republic)
35083 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35084 -T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35085 -T 674000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35086 -T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35087 -T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35088 -T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
35089 diff -r af23d23c278b util/scan/dvb-t/de-Baden-Wuerttemberg
35090 --- a/util/scan/dvb-t/de-Baden-Wuerttemberg Sat Jun 20 16:47:55 2009 +0200
35091 +++ b/util/scan/dvb-t/de-Baden-Wuerttemberg Tue Dec 21 12:13:28 2010 +0100
35093 # DVB-T Baden-Württemberg
35094 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35095 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35096 -T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35097 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35098 +T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH21: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35099 +T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35100 +T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35101 T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH26: Das Erste, arte, Phoenix, EinsPlus
35102 -T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH27: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35103 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35104 -T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: SWR-BW, BR, hr, WDR
35105 -T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: SWR-BW, BR, hr, WDR
35106 -T 634000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH41: SWR-BW, BR, hr, WDR
35107 +T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35108 +T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: SWR-BW, Bayerisches Fernsehen, hr, WDR
35109 +T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: SWR-BW, Bayerisches Fernsehen, hr, WDR
35110 +T 634000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH41: SWR-BW, Bayerisches Fernsehen, hr, WDR
35111 T 650000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH43: Das Erste, arte, Phoenix, EinsPlus
35112 -T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: SWR-BW, BR, hr, WDR
35113 -T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH50: Das Erste, arte, Phoenix, EinsPlus
35114 - # CH50: SWR-BW, BR, hr, WDR
35115 +T 666000000 8MHz 3/4 NONE QAM16 8k 1/8 NONE # CH45: RTL, RTL 2, Super RTL, VOX, RTL Crime, Passion [Sendenorm: MPEG-4]
35116 +T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: SWR-BW, Bayerisches Fernsehen, hr, WDR
35117 +T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH50: SWR-BW, Bayerisches Fernsehen, hr, WDR
35118 T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH52: Das Erste, arte, Phoenix, EinsPlus
35119 -T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: Das Erste, arte, Phoenix, EinsPlus
35120 - # CH53: SWR-BW, BR, hr, WDR
35121 T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH54: Das Erste, arte, Phoenix, EinsPlus
35122 +T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH59: Das Erste, arte, Phoenix, EinsPlus
35123 T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Das Erste, arte, Phoenix, EinsPlus
35124 diff -r af23d23c278b util/scan/dvb-t/de-Bayern
35125 --- a/util/scan/dvb-t/de-Bayern Sat Jun 20 16:47:55 2009 +0200
35126 +++ b/util/scan/dvb-t/de-Bayern Tue Dec 21 12:13:28 2010 +0100
35129 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35130 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35131 -T 184500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE # CH06: Das Erste, arte, Phoenix, EinsPlus
35132 T 191500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE # CH07: Das Erste, arte, Phoenix, EinsPlus
35133 T 212500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE # CH10: Das Erste, arte, Phoenix, EinsPlus
35134 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35135 -T 506000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH25: BR, BRalpha, SWR, Das Erste
35136 - # CH25: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35137 -T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH27: BR, BRalpha, SWR, Das Erste
35138 -T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: BR, BRalpha, SWR, Das Erste
35139 - # CH28: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35140 +T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35141 +T 506000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH25: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35142 + # CH25: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35143 +T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH27: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35144 +T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35145 + # CH28: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35146 T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH29: Das Erste, arte, Phoenix, EinsPlus
35147 T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: Das Erste, arte, Phoenix, EinsPlus
35148 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35149 -T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH34: RTL, RTL II, Super RTL, VOX
35150 - # CH34: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35151 -T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35152 +T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35153 +T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH34: RTL, RTL 2, Super RTL, VOX
35154 + # CH34: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35155 +T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35156 T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: Das Erste, arte, Phoenix, EinsPlus
35157 -T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: BR, BRalpha, hr, mdr
35158 +T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35159 +T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: Bayerisches Fernsehen, BR-alpha, MDR, hr
35160 # CH40: Das Erste, arte, Phoenix, EinsPlus
35161 -T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35162 -T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35163 -T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: BR, BRalpha, hr, mdr
35164 +T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35165 +T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35166 +T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: Bayerisches Fernsehen, BR-alpha, MDR, hr
35167 # CH45: Das Erste, arte, Phoenix, EinsPlus
35168 -T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: BR, BRalpha, SWR, Das Erste
35169 - # CH46: BR, BRalpha, hr, mdr
35170 -T 682000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH47: BR, BRalpha, hr, mdr
35171 +T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: Bayerisches Fernsehen, BR-alpha, MDR, hr
35172 + # CH46: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35173 +T 682000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH47: Bayerisches Fernsehen, BR-alpha, MDR, hr
35174 # CH47: Das Erste, arte, Phoenix, EinsPlus
35175 -T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH48: Pro7, Sat.1, Kabel1, N24
35176 -T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH52: Pro7, Sat.1, Kabel1, N24
35177 -T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: BR, BRalpha, SWR, Das Erste
35178 - # CH53: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35179 -T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH54: http://www.digitalfernsehen.de/news/news_769785.html
35180 +T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH48: Sat.1, ProSieben, Kabel1, N24
35181 +T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: Das Erste, arte, Phoenix, EinsPlus
35182 +T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH52: ProSieben, Sat.1, Kabel1, N24
35183 +T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35184 + # CH53: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35185 +T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH54: Das Erste, arte, Phoenix, EinsPlus
35186 T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH55: Das Erste, arte, Phoenix, EinsPlus
35187 -T 754000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH56: BR, BRalpha, SWR, Das Erste
35188 -T 770000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH58: Das Erste, arte, Phoenix, EinsPlus
35189 -T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Tele 5, Eurosport, MonA, Franken Fernsehen
35190 -T 834000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH66: RTL, RTL II, Super RTL, VOX
35191 - # CH66: Tele 5, Eurosport, HSE 24, münchen.tv
35192 +T 754000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH56: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
35193 +T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Tele 5, Channel21/ Euronews, Bibel TV, HSE 24, Franken Fernsehen
35194 +T 834000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH66: RTL, RTL 2, Super RTL, VOX
35195 + # CH66: Tele 5, Channel21/ Euronews, Bibel TV, HSE 24, münchen.tv
35196 diff -r af23d23c278b util/scan/dvb-t/de-Berlin
35197 --- a/util/scan/dvb-t/de-Berlin Sat Jun 20 16:47:55 2009 +0200
35198 +++ b/util/scan/dvb-t/de-Berlin Tue Dec 21 12:13:28 2010 +0100
35201 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35202 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35203 -T 177500000 7MHz 3/4 NONE QAM16 8k 1/8 NONE # CH05: HSE 24/MONA, FAB, WDR, SWR
35204 +T 177500000 7MHz 3/4 NONE QAM16 8k 1/8 NONE # CH05: Tele 5, HSE 24, WDR, SWR (BW / RP)
35205 T 191500000 7MHz 2/3 NONE QAM16 8k 1/8 NONE # CH07: MDR, NDR, arte
35206 -T 506000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH25: RTL, RTL II, Super RTL, VOX
35207 +T 506000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH25: RTL, RTL 2, Super RTL, VOX
35208 T 522000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH27: Das Erste, RBB, Phoenix, EinsExtra
35209 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35210 -T 658000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH44: Pro7, Sat.1, Kabel1, N24
35211 -T 754000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH56: Eurosport, TV.B, DSF, Neun live
35212 -T 778000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH59: n-tv, EuroNews, + 26 Radioprogramme
35213 +T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35214 +T 618000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH39: Das Vierte, Bibel.TV, QVC, Bayerisches Fernsehen
35215 +T 658000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH44: ProSieben, Sat.1, Kabel1, N24
35216 +T 754000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH56: Eurosport, TV.B, Sport1, 9Live
35217 +T 778000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH59: n-tv, EuroNews / Channel 21 Shop, PLACE2BE + 8 Radioprogramme
35218 diff -r af23d23c278b util/scan/dvb-t/de-Brandenburg
35219 --- a/util/scan/dvb-t/de-Brandenburg Sat Jun 20 16:47:55 2009 +0200
35220 +++ b/util/scan/dvb-t/de-Brandenburg Tue Dec 21 12:13:28 2010 +0100
35222 # DVB-T Brandenburg
35223 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35224 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35225 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35226 -T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35227 +T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35228 +T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35229 T 730000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE # CH53: Das Erste, RBB, Phoenix, EinsExtra
35230 T 762000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH57: MDR, NDR, arte
35231 diff -r af23d23c278b util/scan/dvb-t/de-Bremen
35232 --- a/util/scan/dvb-t/de-Bremen Sat Jun 20 16:47:55 2009 +0200
35233 +++ b/util/scan/dvb-t/de-Bremen Tue Dec 21 12:13:28 2010 +0100
35235 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35236 T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: Das Erste (RB), RB TV (NDR NDS), arte, Phoenix
35237 T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH29: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35238 -T 562000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH32: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35239 -T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: RTL, RTL II, Super RTL, VOX
35240 -T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: Tele 5, Neun live, Eurosport, MONA/DMAX
35241 -T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: Pro7, Sat.1, Kabel1, N24
35242 +T 562000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH32: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35243 +T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: RTL, RTL 2, Super RTL, VOX
35244 +T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: Tele 5, 9Live, Eurosport, MONA / Channel 21
35245 +T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: ProSieben, Sat.1, Kabel1, N24
35246 diff -r af23d23c278b util/scan/dvb-t/de-Hamburg
35247 --- a/util/scan/dvb-t/de-Hamburg Sat Jun 20 16:47:55 2009 +0200
35248 +++ b/util/scan/dvb-t/de-Hamburg Tue Dec 21 12:13:28 2010 +0100
35251 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35252 +# CH36 entry from http://www.dvb-t-nord.de/programme/index.html
35253 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35254 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35255 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35256 -T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR/NDR HH
35257 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: Pro7, Sat.1, Kabel1, N24
35258 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH30: Pro7, Sat.1, Kabel1, N24
35259 +T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35260 +T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH
35261 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ProSieben, Sat.1, Kabel1, N24
35262 T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: Das Erste, arte, Phoenix, EinsExtra
35263 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH33: Das Erste, arte, Phoenix, EinsExtra
35264 -T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: RTL, RTL II, Super RTL, VOX
35265 -T 626000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH40: RTL, RTL II, Super RTL, VOX
35266 -T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: Neun live, HH1, BibelTV, Eurosport
35267 -T 674000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH46: Neun live, HH1, BibelTV, Eurosport
35268 -T 738000000 8MHz 1/2 NONE QAM64 8k 1/8 NONE # CH54: NDR HH, WDR/NDR NDS, MDR/NDR MVP, BR/NDR SH
35269 -T 738000000 8MHz 3/4 NONE QAM16 8k 1/8 NONE # CH54: NDR HH, WDR/NDR NDS, MDR/NDR MVP, BR/NDR SH
35270 +T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: TELE 5, QVC, DAS VIERTE, Channel 21 / Euronews
35271 +T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: RTL, RTL 2, Super RTL, VOX
35272 +T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: 9Live, HH1, Bibel.TV, Eurosport
35273 +T 738000000 8MHz 1/2 NONE QAM64 8k 1/8 NONE # CH54: NDR HH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR SH
35274 diff -r af23d23c278b util/scan/dvb-t/de-Hessen
35275 --- a/util/scan/dvb-t/de-Hessen Sat Jun 20 16:47:55 2009 +0200
35276 +++ b/util/scan/dvb-t/de-Hessen Tue Dec 21 12:13:28 2010 +0100
35279 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35280 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35281 -T 198500000 7MHz 2/3 NONE QAM16 8k 1/4 NONE # CH08: Phoenix, BR, SWR-RP
35282 -T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH21: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35283 -T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35284 -T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH24: Phoenix, BR, SWR-RP, WDR
35285 -T 506000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH25: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35286 +T 198500000 7MHz 2/3 NONE QAM16 8k 1/4 NONE # CH08: Phoenix, Bayerisches Fernsehen, SWR-RP
35287 +T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH21: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35288 +T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35289 +T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH24: Phoenix, Bayerisches Fernsehen, SWR-RP, WDR
35290 +T 506000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH25: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35291 T 562000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH32: Das Erste, hr, EinsExtra/arte
35292 -T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH34: RTL, RTL II, Super RTL, VOX
35293 +T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH34: RTL, RTL 2, Super RTL, VOX
35294 T 602000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH37: Das Erste, hr, EinsExtra/arte
35295 -T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: Phoenix, BR, SWR-RP, mdr
35296 -T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35297 +T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: Phoenix, Bayerisches Fernsehen, SWR-RP, MDR
35298 +T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35299 T 650000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH43: Das Erste, hr, EinsExtra/arte
35300 -T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH52: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35301 -T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: BR, hr, SWR-BW, WDR
35302 -T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH54: Pro7, Sat.1, Kabel1, N24
35303 -T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH55: Phoenix, NDR, mdr, WDR
35304 -T 818000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH64: Tele5, Eurosport, rheinmaintv
35305 +T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH52: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35306 +T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: Bayerisches Fernsehen, hr, SWR-BW, WDR
35307 +T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH54: ProSieben, Sat.1, Kabel1, N24
35308 +T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH55: Phoenix, NDR, MDR, WDR
35309 +T 818000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH64: Tele5, Eurosport, rheinmaintv, Bibel.TV
35310 diff -r af23d23c278b util/scan/dvb-t/de-Mecklenburg-Vorpommern
35311 --- a/util/scan/dvb-t/de-Mecklenburg-Vorpommern Sat Jun 20 16:47:55 2009 +0200
35312 +++ b/util/scan/dvb-t/de-Mecklenburg-Vorpommern Tue Dec 21 12:13:28 2010 +0100
35314 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35315 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35316 T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: Das Erste, NDR MVP, RBB, MDR/NDR SH
35317 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35318 +T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35319 T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH26: Das Erste, NDR MVP, RBB, MDR/NDR SH
35320 T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH29: Das Erste, NDR MVP, RBB, MDR/NDR SH
35321 T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: Das Erste, NDR MVP, RBB, MDR/NDR SH
35322 -T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35323 -T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35324 -T 714000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH51: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35325 -T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH54: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35326 +T 602000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH37: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35327 +T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35328 +T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35329 +T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35330 diff -r af23d23c278b util/scan/dvb-t/de-Niedersachsen
35331 --- a/util/scan/dvb-t/de-Niedersachsen Sat Jun 20 16:47:55 2009 +0200
35332 +++ b/util/scan/dvb-t/de-Niedersachsen Tue Dec 21 12:13:28 2010 +0100
35334 T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: Das Erste (RB), RB TV (NDR NDS), arte, Phoenix
35335 # CH22: Das Erste, arte, Phoenix, EinsExtra
35336 # CH22: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35337 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35338 -T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH24: RTL, RTL II, Super RTL, VOX
35339 - # CH24: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35340 -T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH27: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35341 -T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: Tele 5, NICK/Comedy Central, Eurosport, MONA/DMAX
35342 +T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35343 +T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH24: RTL, RTL 2, Super RTL, VOX
35344 +T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH26: Das Erste, arte, Phoenix, EinsExtra
35345 +T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH27: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35346 +T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: Tele 5, NICK / Comedy Central, Eurosport, MONA / Channel 21
35347 T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH29: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35348 -T 562000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH32: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35349 +T 554000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35350 +T 562000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH32: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35351 T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: Das Erste, arte, Phoenix, EinsExtra
35352 -T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35353 +T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35354 T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35355 T 602000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH37: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35356 -T 610000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH38: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35357 +T 610000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH38: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35358 T 634000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH41: Das Erste, arte, Phoenix, EinsExtra
35359 -T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: RTL, RTL II, Super RTL, VOX
35360 - # CH42: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35361 +T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: RTL, RTL 2, Super RTL, VOX
35362 + # CH42: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35363 T 650000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH43: Das Erste, arte, Phoenix, EinsExtra
35364 # CH43: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35365 -T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: Pro7, Sat.1, Kabel1, N24
35366 -T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: Tele 5, Neun live, Eurosport, MONA/DMAX
35367 +T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: ProSieben, Sat.1, Kabel1, N24
35368 +T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: Tele 5, 9Live, Eurosport, MONA / Channel 21
35369 T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35370 T 682000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH47: Das Erste, arte, Phoenix, EinsExtra
35371 T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH48: Das Erste, arte, Phoenix, EinsExtra
35372 -T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: Pro7, Sat.1, Kabel1, N24
35373 +T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: ProSieben, Sat.1, Kabel1, N24
35374 T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH50: Das Erste, arte, Phoenix, EinsExtra
35375 -T 714000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH51: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35376 T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH55: Das Erste, arte, Phoenix, EinsExtra
35377 T 754000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH56: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35378 T 770000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH58: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
35379 T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH59: Das Erste, arte, Phoenix, EinsExtra
35380 - # CH59: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35381 -T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Tele 5, Comedy Central, Eurosport, MONA/DMAX
35382 - # CH60: Tele 5, NICK/Comedy Central, Eurosport, MONA/DMAX
35383 + # CH59: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35384 +T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Tele 5, NICK / Comedy Central, Eurosport, MONA / Channel 21
35385 T 826000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH65: Das Erste, arte, Phoenix, EinsExtra
35386 diff -r af23d23c278b util/scan/dvb-t/de-Nordrhein-Westfalen
35387 --- a/util/scan/dvb-t/de-Nordrhein-Westfalen Sat Jun 20 16:47:55 2009 +0200
35388 +++ b/util/scan/dvb-t/de-Nordrhein-Westfalen Tue Dec 21 12:13:28 2010 +0100
35390 T 482000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH22: WDR-Wuppertal, NDR/WDR-Düsseldorf, MDR, SWR
35391 T 506000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH25: WDR-Dortmund, NDR/WDR-Essen, MDR, SWR
35392 T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH26: Das Erste, arte, Phoenix, EinsFestival
35393 - # CH26: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35394 + # CH26: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35395 T 522000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE # CH27: WDR-Siegen, NDR, MDR, SWR
35396 -T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH29: RTL, RTL II, Super RTL, VOX
35397 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35398 +T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH29: RTL, RTL 2, Super RTL, VOX
35399 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35400 T 554000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE # CH31: WDR-Bielefeld, NDR/WDR-Siegen, MDR, SWR
35401 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35402 -T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35403 +T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35404 +T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35405 T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: CNN, Eurosport, Tele5, VIVA
35406 T 602000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE # CH37: WDR-Aachen, NDR/WDR-Köln, MDR, SWR
35407 T 666000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE # CH45: WDR-Münster, NDR/WDR-Dortmund, MDR, SWR
35409 T 698000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE # CH49: WDR-Köln, MDR/WDR-Bonn, NDR/WDR-Aachen, SWR
35410 T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH50: Das Erste, arte, Phoenix, EinsFestival
35411 T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH52: CNN, Eurosport, Tele5, VIVA
35412 -T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: Pro7, Sat.1, Kabel1, N24
35413 -T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH55: Pro7, Sat.1, Kabel1, N24
35414 +T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: ProSieben, Sat.1, Kabel1, N24
35415 +T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH55: ProSieben, Sat.1, Kabel1, N24
35416 T 762000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH57: WDR-Essen, NDR/WDR-Dortmund, MDR, SWR
35417 -T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH59: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35418 +T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH59: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35419 T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Das Erste, arte, Phoenix, EinsFestival
35420 diff -r af23d23c278b util/scan/dvb-t/de-Rheinland-Pfalz
35421 --- a/util/scan/dvb-t/de-Rheinland-Pfalz Sat Jun 20 16:47:55 2009 +0200
35422 +++ b/util/scan/dvb-t/de-Rheinland-Pfalz Tue Dec 21 12:13:28 2010 +0100
35424 # DVB-T Rheinland-Pfalz
35425 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35426 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35427 -T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35428 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35429 -T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: SWR-RP, BR, hr, WDR
35430 -T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: SWR-RP, BR, hr, WDR
35431 +T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35432 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35433 +T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: SWR-RP, Bayerisches Fernsehen, hr, WDR
35434 +T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: SWR-RP, Bayerisches Fernsehen, hr, WDR
35435 T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH46: Das Erste, arte, Phoenix, EinsPlus
35436 -T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH48: SWR-RP, BR, hr, WDR
35437 +T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH48: SWR-RP, Bayerisches Fernsehen, hr, WDR
35438 T 754000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH56: Das Erste, arte, Phoenix, EinsPlus
35439 T 762000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH57: Das Erste, arte, Phoenix, EinsPlus
35440 T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Das Erste, arte, Phoenix, EinsPlus
35441 diff -r af23d23c278b util/scan/dvb-t/de-Saarland
35442 --- a/util/scan/dvb-t/de-Saarland Sat Jun 20 16:47:55 2009 +0200
35443 +++ b/util/scan/dvb-t/de-Saarland Tue Dec 21 12:13:28 2010 +0100
35446 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35447 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35448 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35449 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35450 T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH42: Das Erste, SR Fernsehen, arte, Phoenix
35451 -T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: SWR-RP, BR, hr, WDR
35452 -T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: SaarTV, Tele 5, QVC, BibelTV
35453 +T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH44: SWR-RP, Bayerisches Fernsehen, hr, WDR
35454 +T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH49: Tele 5, QVC, Bibel.TV, freie Kapazität
35455 diff -r af23d23c278b util/scan/dvb-t/de-Sachsen
35456 --- a/util/scan/dvb-t/de-Sachsen Sat Jun 20 16:47:55 2009 +0200
35457 +++ b/util/scan/dvb-t/de-Sachsen Tue Dec 21 12:13:28 2010 +0100
35460 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35461 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35462 -T 205500000 7MHz 2/3 NONE QAM64 8k 1/16 NONE # CH09: MDR-SN, rbb, BR, WDR
35463 -T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35464 +T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35465 T 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH24: Das Erste, arte, Phoenix, EinsFestival
35466 T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH25: Das Erste, arte, Phoenix, EinsFestival
35467 -T 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH27: MDR-SN, rbb, BR, WDR
35468 -T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH29: MDR-SN, rbb, BR, WDR
35469 -T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH32: MDR-SN, rbb, BR, WDR
35470 -T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35471 +T 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH27: MDR-SN, rbb, Bayerisches Fernsehen, WDR
35472 +T 530000000 8MHz 3/4 NONE QAM16 8k 1/8 NONE # CH28: RTL, RTL 2, Super RTL, VOX, RTL Crime, Passion [Sendenorm: MPEG
35473 +T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH29: MDR-SN, rbb, Bayerisches Fernsehen, WDR
35474 +T 554000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # CH31: LF Leipzg.Ferns., InfoTVLeipzig, BBCWorld, Bibel.TV, RadioLeipzig, RadioHoreb
35475 +T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH32: MDR-SN, rbb, Bayerisches Fernsehen, WDR
35476 +T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH36: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35477 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH37: MDR-SN, rbb, Bayerisches Fernsehen, WDR
35478 T 618000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH39: Das Erste, arte, Phoenix, EinsFestival
35479 diff -r af23d23c278b util/scan/dvb-t/de-Sachsen-Anhalt
35480 --- a/util/scan/dvb-t/de-Sachsen-Anhalt Sat Jun 20 16:47:55 2009 +0200
35481 +++ b/util/scan/dvb-t/de-Sachsen-Anhalt Tue Dec 21 12:13:28 2010 +0100
35483 # DVB-T Sachsen-Anhalt
35484 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35485 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35486 -T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35487 +T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35488 T 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH24: Das Erste, arte, Phoenix, EinsFestival
35489 +T 530000000 8MHz 3/4 NONE QAM16 8k 1/8 NONE # CH28: RTL, RTL 2, Super RTL, VOX, RTL Crime, Passion [Sendenorm: MPEG-4]
35490 T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH29: Das Erste, arte, Phoenix, EinsFestival
35491 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35492 -T 554000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH31: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35493 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35494 +T 554000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35495 T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH34: MDR-ST, rbb, NDR, WDR
35496 -T 586000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH35: MDR-ST, rbb, NDR, WDR
35497 T 610000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH38: MDR-ST, rbb, NDR, WDR
35498 T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH41: Das Erste, arte, Phoenix, EinsFestival
35499 diff -r af23d23c278b util/scan/dvb-t/de-Schleswig-Holstein
35500 --- a/util/scan/dvb-t/de-Schleswig-Holstein Sat Jun 20 16:47:55 2009 +0200
35501 +++ b/util/scan/dvb-t/de-Schleswig-Holstein Tue Dec 21 12:13:28 2010 +0100
35503 # DVB-T Schleswig-Holstein
35504 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35505 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35506 -T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH21: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35507 -T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35508 -T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH26: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR/NDR HH
35509 -T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR/NDR HH
35510 -T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: Pro7, Sat.1, Kabel1, N24
35511 -T 554000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH31: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35512 +T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH21: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35513 +T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35514 +T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH24: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH
35515 +T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH26: Das Erste, arte, Phoenix, EinsExtra
35516 +T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH28: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH
35517 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: ProSieben, Sat.1, Kabel1, N24
35518 +T 554000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35519 T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: Das Erste, arte, Phoenix, EinsExtra
35520 -T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: Pro7, Sat.1, Kabel1, N24
35521 -T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR/NDR HH
35522 -T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: RTL, RTL II, Super RTL, VOX
35523 -T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: RTL, RTL II, Super RTL, VOX
35524 +T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH35: ProSieben, Sat.1, Kabel1, N24
35525 +T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH39: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH
35526 +T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: RTL, RTL 2, Super RTL, VOX
35527 +T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH45: RTL, RTL 2, Super RTL, VOX
35528 T 682000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH47: Das Erste, arte, Phoenix, EinsExtra
35529 -T 762000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH57: Neun live, Tele 5, Eurosport, MONA/DMAX
35530 -T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH59: Neun live, Tele 5, Eurosport, MONA/DMAX
35531 -T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH60: Das Erste, arte, Phoenix, EinsExtra
35532 +T 762000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH57: 9Live, Tele 5, Eurosport, Bibel.TV
35533 +T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH59: 9Live, Tele 5, Eurosport, Bibel.TV
35534 diff -r af23d23c278b util/scan/dvb-t/de-Thueringen
35535 --- a/util/scan/dvb-t/de-Thueringen Sat Jun 20 16:47:55 2009 +0200
35536 +++ b/util/scan/dvb-t/de-Thueringen Tue Dec 21 12:13:28 2010 +0100
35538 # Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
35539 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35540 T 474000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH21: Das Erste, arte, Phoenix, EinsFestival
35541 -T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35542 +T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35543 T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH25: Das Erste, arte, Phoenix, EinsFestival
35544 -T 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH27: MDR-TH, rbb, hr, BR
35545 -T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH48: MDR-TH, rbb, hr, BR
35546 -T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH50: ZDF, 3sat, KiKa / ZDFdokukanal, ZDFinfokanal
35547 +T 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH27: MDR-TH, rbb, hr, Bayerisches Fernsehen
35548 +T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH48: MDR-TH, rbb, hr, Bayerisches Fernsehen
35549 +T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH50: ZDF, 3sat, KiKa / ZDFneo, ZDFinfokanal
35550 T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH53: Das Erste, arte, Phoenix, EinsFestival
35551 diff -r af23d23c278b util/scan/dvb-t/dk-All
35552 --- a/util/scan/dvb-t/dk-All Sat Jun 20 16:47:55 2009 +0200
35553 +++ b/util/scan/dvb-t/dk-All Tue Dec 21 12:13:28 2010 +0100
35555 # Created from http://www.digi-tv.dk/Indhold_og_tilbud/frekvenser.asp
35556 # and http://www.digi-tv.dk/Sendenettets_opbygning/
35557 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35558 -T 482000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35559 T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35560 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35561 T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35562 +T 546000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35563 T 554000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35564 +T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35565 T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35566 +T 626000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35567 +T 642000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35568 T 658000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35569 -T 682000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35570 -T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35571 +T 698000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35572 +T 706000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35573 T 714000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35574 +T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35575 T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35576 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35577 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35578 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35579 T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35580 -T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35581 -T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35582 diff -r af23d23c278b util/scan/dvb-t/es-Albacete
35583 --- a/util/scan/dvb-t/es-Albacete Sat Jun 20 16:47:55 2009 +0200
35584 +++ b/util/scan/dvb-t/es-Albacete Tue Dec 21 12:13:28 2010 +0100
35587 +# Spain, Albacete - Update 2010/08/12 (Freud)
35588 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35589 -T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 59: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
35590 -T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 63: CLMTV
35591 -T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
35592 -T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
35593 -T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
35594 -T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
35595 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 37: La Regional, TCM, CRN
35596 +T 674000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 46: Sogecuatro, laSexta2, laSexta3 (Todos pendientes de asignar)
35597 +T 682000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 47: CNC, Vision6, ABTeVe, Punto Radio
35598 +T 706000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 50: Boing, La 10, MTV, Punto Radio
35599 +T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 53: Nitro, Marca TV, Veo13
35600 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 56: TVE HD, Teledeporte, Pruebas TVE, RNE 1, RNE CLÁSICA, RNE 3
35601 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 59: La 1, La 2, 24H, Clan, RNE1, RNE Clásica, RNE 3
35602 +T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 63: CMT, CMT2, RCM
35603 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 66: Veo7, Tienda en Veo, Intereconomía, AXN, Teledeporte, Radio Intereconomía, Radio Marca, esRadio, Vaughan Radio
35604 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, Canal+ Dos, Canal Club, LaSexta, SER, 40 Principales, Cadena Dial
35605 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 68: Telecinco, La Siete, FDF, CincoShop, Disney Channel, Punto Radio
35606 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 69: Antena 3, Neox, Nova, Gol Televisión, Onda Cero, Europa FM, Onda Melodía
35607 diff -r af23d23c278b util/scan/dvb-t/es-Alfabia
35608 --- a/util/scan/dvb-t/es-Alfabia Sat Jun 20 16:47:55 2009 +0200
35609 +++ b/util/scan/dvb-t/es-Alfabia Tue Dec 21 12:13:28 2010 +0100
35611 # DVB-T Alfabia, Mallorca, Balearic Islands, Spain.
35612 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35613 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TV3 Cat, 3/24, 33, Super3/300
35614 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TV Mallorca, Canal 4
35615 +T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Popular TV, TEVEi
35616 T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.63: 24h, 50 aniv., ClanTV, La 2, TVE1; RNE 1, RNE 3, RNE C; Digitext, EPG, Lanzadera.
35617 T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.65: IB3, Aprenda Ingles TV
35618 T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.66: NetTV, Teledeporte, VeoTV1, VeoTV2.
35619 diff -r af23d23c278b util/scan/dvb-t/es-BaixoMinho
35620 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35621 +++ b/util/scan/dvb-t/es-BaixoMinho Tue Dec 21 12:13:28 2010 +0100
35623 +# file automatically generated by w_scan
35624 +# (http://wirbel.htpc-forum.de/w_scan/index2.html)
35625 +#! <w_scan> 20090528 1 0 OFDM ES </w_scan>
35626 +#------------------------------------------------------------------------------
35627 +# location and provider: Baixo Minho, Pontevedra (Spain)
35628 +# date (yyyy-mm-dd) : 2009-07-11
35629 +# provided by (opt) : neonmann@gmail.com
35631 +# T[2] <freq> <bw> <fec_hi> <fec_lo> <mod> <tm> <guard> <hi> [# comment]
35632 +#------------------------------------------------------------------------------
35633 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # SFN
35634 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35635 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # SFN
35636 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35637 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # RAR Pontevedra
35638 +T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # RGE GALICIA
35639 diff -r af23d23c278b util/scan/dvb-t/es-Collserola
35640 --- a/util/scan/dvb-t/es-Collserola Sat Jun 20 16:47:55 2009 +0200
35641 +++ b/util/scan/dvb-t/es-Collserola Tue Dec 21 12:13:28 2010 +0100
35643 # DVB-T Collserola (Barcelona)
35644 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35645 -T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c26: BTV
35646 -T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c33: CityTV
35647 -T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c61: TV3, K3/33, 3/24, 300
35648 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c26: BTV, TV Badalona, TV L'Hospitalet, TV del Besòs, COM Ràdio, Ràdio Ciutat Badalona, Ràdio L'Hospitalet
35649 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c33: 8TV, Barça TV, EDC3, 105TV, RAC 1, RAC 105
35650 +T 650000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c43: TV3HD, 3/24, Canal 9, IB3, Catalunya Música, iCat FM
35651 +T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c48: Urbe TV, Canal Català, 25 TV, Localia, Ona FM, Onda Rambla, Sensació Ràdio
35652 +T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c61: TV3, 33, 3/24, K3/300, Catalunya Ràdio, Catalunya Informació
35653 T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c64: TVE1, TVE2, TVE 24H, Clan/TVE 50 Años, RNE1, RNEC, RNE3
35654 -T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c66: Veo TV, Veo2, Net TV, Teledeporte
35655 -T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c67: Cuatro, CNN+, 40 Latino, La Sexta1
35656 -T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c68: Telecino, T5 Sport, T5 Estrellas, Fly Music
35657 -T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c69: Antena 3, Antena.Neox, Antena.Nova, La Sexta2
35658 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c66: Veo7, Sony TV en Veo, Tienda en Veo, Intereconomía, Teledeporte, Radio Intereconomía, Radio Marca
35659 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c67: Cuatro, CNN+, 40 Latino, La Sexta, Ser, 40 Principales, Cadena Dial
35660 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c68: Telecino, La Siete, FDF, CincoShop, Disney Channel, Punto Radio
35661 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c69: Antena 3, Antena.Neox, Antena.Nova, Hogar 10, Onda Cero, Europa FM, Onda Melodía
35662 diff -r af23d23c278b util/scan/dvb-t/es-Granada
35663 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35664 +++ b/util/scan/dvb-t/es-Granada Tue Dec 21 12:13:28 2010 +0100
35667 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35668 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35669 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35670 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35671 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35672 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35673 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35674 diff -r af23d23c278b util/scan/dvb-t/es-Las_Palmas
35675 --- a/util/scan/dvb-t/es-Las_Palmas Sat Jun 20 16:47:55 2009 +0200
35676 +++ b/util/scan/dvb-t/es-Las_Palmas Tue Dec 21 12:13:28 2010 +0100
35678 -# Funciona correctamente en Las Palmas de Gran Canaria (24-4-2007)
35679 +# Funciona correctamente en Las Palmas de Gran Canaria (25-09-2010)
35681 +# Revisada y corregida por el Grupo de Usuarios de Linux de Canarias
35682 +# http://www.gulic.org
35684 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35685 +T 530000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 28: TVE HD, Teledeporte, RNE Clásica, RNE 3
35686 +T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 32: Boing, Telecinco HD, La 10, MTV, Punto Radio
35687 +T 586000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 35: Sogecuatro, LaSexta2, LaSexta3
35688 +T 610000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 38: Nitro, Antena 3 HD, Marca TV, Veo13
35689 +T 658000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 44: Canal 7 Gran Canaria, TIC Canal 8, Canal 4, RTI
35690 +T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 52: Localia, Nueve TV, Nueve Radio
35691 T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 60: TVE1, TVE2, 24H TVE, Clan/TVE, RNE, RNEC, RNE3, Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat
35692 -T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 65: TV C, TV C2
35693 -T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 66: Net TV, Teledeporte, Veo TV1, SETenVeo, Radio Intereconomía Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat
35694 -T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 67: CNN+, Cuatro, La Sexta 1, 40 Latino TV, EPG Soge V2 5
35695 -T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 68: Fly Music, Punto Radio, Tele 5, Tele 5 Estrellas, Tele 5 Sport
35696 -T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena.Neox, Antena.Nova, Telehit, Onda Cero, Europa FM, Onda Melodia, A3Lanzadera, A3Portal, EPGA3, A3Ticker
35697 +T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 65: TV C, TV C2, Antena 3 Canarias, Popular TV, Canarias Radio, Cope, Cadena 100, Radio ECCA, Lanzadera, Ticker, Piloto TDT
35698 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 66: Veo7, Tienda en Veo, AXN, Intereconomia, Teledeporte, Radio Intereconomia, Radio Marca, esRadio, Vaughan Radio, Canal Ingeniería, GUIDE Plus +, C66Gancho, C66Lanzadera, C66EPG, EpgNet
35699 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, Canal+ Dos, Canal Club, laSexta, SER, 40 Principales, Cadena Dial, Lanzadera, EPG TDT, Ticker, Lanzadera, Noticias, EPG
35700 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 68: Telecinco, La Siete, FDF, CincoShop, Disney Channel, T5Lanzadera, T5Digitext, Noticias, Tiempo, Bolsa, Tráfico
35701 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 69: Antena 3, Neox, Nova, Gol Televisión, Onda Cero, Europa FM, Onda Melodía, tvtv DIGITAL, A3Lanzadera, A3Portal, A3EPG, A3Ticker, T-seniority, Gol Bar
35702 diff -r af23d23c278b util/scan/dvb-t/es-Pamplona
35703 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35704 +++ b/util/scan/dvb-t/es-Pamplona Tue Dec 21 12:13:28 2010 +0100
35707 +# T freq bw fec_hi fec_lo mod transm-mode guard-interval hierarchy
35708 +T 610000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35709 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35710 +T 802000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35711 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35712 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35713 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35714 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
35715 diff -r af23d23c278b util/scan/dvb-t/es-SC_Tenerife
35716 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35717 +++ b/util/scan/dvb-t/es-SC_Tenerife Tue Dec 21 12:13:28 2010 +0100
35719 +# Funciona correctamente en Santa Cruz de Tenerife (25-09-2010)
35721 +# Revisada y corregida por el Grupo de Usuarios de Linux de Canarias
35722 +# http://www.gulic.org
35724 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35725 +T 490000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C23
35726 +T 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C24
35727 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C26
35728 +T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C29
35729 +T 666000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C45
35730 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C56
35731 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C59
35732 +T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C60
35733 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C66
35734 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C67
35735 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C68
35736 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C69
35737 diff -r af23d23c278b util/scan/dvb-t/es-Sevilla
35738 --- a/util/scan/dvb-t/es-Sevilla Sat Jun 20 16:47:55 2009 +0200
35739 +++ b/util/scan/dvb-t/es-Sevilla Tue Dec 21 12:13:28 2010 +0100
35741 -# DVB-T Sevilla (Andalucia) by x2 15 Agosto 2006
35742 +# DVB-T Sevilla (Spain) by x2 15-agos-2010, modificado 15-ago-2010
35743 +# thanks to http://www.tdt1.com
35744 +# thanks to http://wirbel.htpc-forum.de/w_scan/index2.html
35745 # T freq bw fec_hi fec_lo mod transm-mode guard-interval hierarchy
35746 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C33
35747 +T 594000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C36
35748 +T 610000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C38
35749 +T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C41
35750 +T 658000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C44
35751 +T 666000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C45
35752 +T 698000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C49
35753 +T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C52
35754 +T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C54
35755 +T 746000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C55
35756 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C56
35757 T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C57
35758 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C59
35759 T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C61
35760 +T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C63
35761 T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C66
35762 T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C67
35763 T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C68
35764 diff -r af23d23c278b util/scan/dvb-t/es-Vitoria-Gasteiz
35765 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35766 +++ b/util/scan/dvb-t/es-Vitoria-Gasteiz Tue Dec 21 12:13:28 2010 +0100
35768 +# Channel names in use at 2009/07/12, in Channel 66 [fffe] is a scrambled channel.
35769 +# In the generated *channels.conf file could be necesary to change Intereconomía, Radio Intereconomía, ONDA MELODÍA to Intereconomia, Radio Intereconomia, ONDA MELODIA for Totem to work well.
35770 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 58: ETB1, ETB2, ETB3, ETBSAT, Euskadi Irratia, Gaztea, EiTB Irratia, Radio Euskadi, Radio Vitoria
35771 +T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 63: La 1, La 2, 24h, Clan, RNE1, RNEC, RNE3
35772 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 66: Teledeporte, Canal Ingenieria, VEO7, SONY TV en VEO, Tienda en VEO, GUIDE PLUS+, Intereconomía, Radio Intereconomía, [fffe], RADIO MARCA
35773 +T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 67: laSexta, CUATRO, CNN+, 40 LATINO, CANAL CLUB, SER, 40 PRINCIPALES, CADENA DIAL
35774 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 68: Telecinco, FDF, LaSiete, Disney Channel, Cincoshop
35775 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 69: ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, ONDA CERO, EUROPA FM, ONDA MELODÍA, HOGAR 10
35776 diff -r af23d23c278b util/scan/dvb-t/fi-Smedsbole
35777 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35778 +++ b/util/scan/dvb-t/fi-Smedsbole Tue Dec 21 12:13:28 2010 +0100
35780 +#------------------------------------------------------------------------------
35781 +# file automatically generated by w_scan
35782 +# (http://wirbel.htpc-forum.de/w_scan/index2.html)
35783 +#! <w_scan> 20090808 2 0 OFDM FI </w_scan>
35784 +#------------------------------------------------------------------------------
35785 +# location and provider: Åland Smedsböle/Sund
35786 +# date (yyyy-mm-dd) : 2009-12-23
35787 +# provided by (opt) : k.hampf@gmail.com
35789 +# T[2] <freq> <bw> <fec_hi> <fec_lo> <mod> <tm> <guard> <hi> [# comment]
35790 +#------------------------------------------------------------------------------
35791 +T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Åland Network
35792 +T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Åland Network
35793 diff -r af23d23c278b util/scan/dvb-t/fr-Boulogne
35794 --- a/util/scan/dvb-t/fr-Boulogne Sat Jun 20 16:47:55 2009 +0200
35795 +++ b/util/scan/dvb-t/fr-Boulogne Tue Dec 21 12:13:28 2010 +0100
35797 # Boulogne - France (DVB-T transmitter of Boulogne ( MontLambert ) )
35798 # Boulogne - France (signal DVB-T transmis depuis l'émetteur de MontLambert )
35800 -# ATTENTION ! Ce fichier a ete construit automatiquement a partir
35801 -# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
35802 -# en Avril 2006. Si vous constatez des problemes et voulez apporter des
35803 +# Si vous constatez des problemes et voulez apporter des
35804 # modifications au fichier, envoyez le fichier modifie a
35805 -# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
35806 -# ou a l'auteur du fichier :
35807 -# Nicolas Estre <n_estre@yahoo.fr>
35808 +# l'adresse linux-media@vger.kernel.org (depot des fichiers d'init dvb)
35810 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35811 #### Boulogne - MontLambert ####
35812 +# (Boulogne sur mer)
35814 +T 530000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35816 T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35818 -T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35820 -T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35821 +T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35823 -T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35824 +T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35826 T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35828 diff -r af23d23c278b util/scan/dvb-t/fr-Brest
35829 --- a/util/scan/dvb-t/fr-Brest Sat Jun 20 16:47:55 2009 +0200
35830 +++ b/util/scan/dvb-t/fr-Brest Tue Dec 21 12:13:28 2010 +0100
35832 # Emetteur du Roch Tredudon
35833 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35834 T 546000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35835 -T 482000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35836 -T 506000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35837 -T 490000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35838 -T 530000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35839 -T 514000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35840 +T 578000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35841 +T 586000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35842 +T 618000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35843 +T 650000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35844 +T 770000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
35845 diff -r af23d23c278b util/scan/dvb-t/fr-Chambery
35846 --- a/util/scan/dvb-t/fr-Chambery Sat Jun 20 16:47:55 2009 +0200
35847 +++ b/util/scan/dvb-t/fr-Chambery Tue Dec 21 12:13:28 2010 +0100
35849 -# Chambéry - France (DVB-T transmitter of Chambéry ( Nondéfini ) )
35850 -# Chambéry - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
35851 +# Chambery - France (DVB-T transmitter of Chambery )
35852 +# Chambery - France (signal DVB-T transmis depuis l'emetteur de Chambery )
35854 -# ATTENTION ! Ce fichier a ete construit automatiquement a partir
35855 -# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
35856 -# en Avril 2006. Si vous constatez des problemes et voulez apporter des
35857 +# Ce fichier a ete ecrit par Yann Soubeyrand (04/2010)
35858 +# Si vous constatez des problemes et voulez apporter des
35859 # modifications au fichier, envoyez le fichier modifie a
35860 # l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
35861 -# ou a l'auteur du fichier :
35862 +# ou au mainteneur du fichier :
35863 # Nicolas Estre <n_estre@yahoo.fr>
35865 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35866 -#### Chambéry - Nondéfini ####
35868 -#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
35870 -#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
35872 -#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
35874 -#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
35876 -#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
35878 -#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
35879 -##############################################################
35880 -# en Avril 2006, l'emetteur pour Chambéry n'etait pas defini
35881 -# Vous devez donc modifier les frequences manuellement.
35882 -# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
35883 -##############################################################
35884 +#### Chambery - Defini par Alex le 23/05/2008 pour l'emetteur des monts
35886 +T 802167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35888 +T 690167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35890 +T 714167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35892 +T 738167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35894 +T 778167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35896 +T 682167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35897 diff -r af23d23c278b util/scan/dvb-t/fr-Laval
35898 --- a/util/scan/dvb-t/fr-Laval Sat Jun 20 16:47:55 2009 +0200
35899 +++ b/util/scan/dvb-t/fr-Laval Tue Dec 21 12:13:28 2010 +0100
35900 @@ -12,14 +12,14 @@
35901 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35902 #### Laval - MontRochard ####
35904 -T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35905 +T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35907 -T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35908 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35910 -T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35911 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35913 -T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35914 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35916 -T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35917 +T 650000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35919 -T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
35920 +T 786000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35921 diff -r af23d23c278b util/scan/dvb-t/fr-Lille
35922 --- a/util/scan/dvb-t/fr-Lille Sat Jun 20 16:47:55 2009 +0200
35923 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35925 -# Lille - France (DVB-T transmitter of Lille ( Nondéfini ) )
35926 -# Lille - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
35928 -# ATTENTION ! Ce fichier a ete construit automatiquement a partir
35929 -# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
35930 -# en Avril 2006. Si vous constatez des problemes et voulez apporter des
35931 -# modifications au fichier, envoyez le fichier modifie a
35932 -# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
35933 -# ou a l'auteur du fichier :
35934 -# Nicolas Estre <n_estre@yahoo.fr>
35936 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35937 -#### Lille - Nondéfini ####
35939 -#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
35941 -#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
35943 -#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
35945 -#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
35947 -#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
35949 -#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
35950 -##############################################################
35951 -# en Avril 2006, l'emetteur pour Lille n'etait pas defini
35952 -# Vous devez donc modifier les frequences manuellement.
35953 -# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
35954 -##############################################################
35955 diff -r af23d23c278b util/scan/dvb-t/fr-Lille-Bouvigny
35956 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35957 +++ b/util/scan/dvb-t/fr-Lille-Bouvigny Tue Dec 21 12:13:28 2010 +0100
35959 +# Lille - France (DVB-T transmitter of Lille ( Bouvigny ) )
35960 +# Lille - France (signal DVB-T transmis depuis l'emetteur de Bouvigny )
35962 +# Fichier construit par Romain Bajeux (05/2010)
35963 +# Si vous constatez des problemes et voulez apporter des
35964 +# modifications au fichier, envoyez le fichier modifie a
35965 +# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
35966 +# ou au mainteneur du fichier :
35967 +# Nicolas Estre <n_estre@yahoo.fr>
35969 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35970 +#### Lille - Bouvigny ####
35972 +T 490167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35974 +T 690167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35976 +T 514167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35978 +T 546167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35980 +T 554167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35982 +T 586167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35984 +T 754167000 8MHz AUTO NONE QAM64 8k AUTO NONE
35985 diff -r af23d23c278b util/scan/dvb-t/fr-LilleT2
35986 --- a/util/scan/dvb-t/fr-LilleT2 Sat Jun 20 16:47:55 2009 +0200
35987 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
35989 -# Lille - France (DVB-T transmitter of Lambersart)
35990 -#offset of 167000 for Cinergy T2. Other type of card users need to replace 167 by 000
35991 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
35993 -T 538167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35995 -T 546167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35997 -T 562167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
35999 -T 586167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36001 -T 594167000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36002 diff -r af23d23c278b util/scan/dvb-t/fr-Montbeliard
36003 --- a/util/scan/dvb-t/fr-Montbeliard Sat Jun 20 16:47:55 2009 +0200
36004 +++ b/util/scan/dvb-t/fr-Montbeliard Tue Dec 21 12:13:28 2010 +0100
36006 -# Montbéliard - France (DVB-T transmitter of Montbéliard "Fort Lachaux" )
36007 -# Montbéliard - France (signal DVB-T transmis depuis l'émetteur de Fort Lachaux )
36008 +# Montbéliard - France (DVB-T transmitter of Montbéliard "Fort Lachaux", since 16 nov. 2010)
36009 +# Montbéliard - France (signal DVB-T transmis depuis l'émetteur de Fort Lachaux, à compter du 16/11/2010)
36011 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36012 -# multiplex R1 (GR1), canal 29V + offset 167000 : FRANCE 2 SD , FRANCE 5 , ARTE SD , La Chaîne Parlementaire/Public Sénat , FRANCE 3 , FRANCE 3 Franche-Comté
36013 +# multiplex R4 (MULTI4), canal 58V + offset 167000 : ARTE HD , PARIS PREMIERE, M6 SD , W9 et NT1
36014 +T 490167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36015 +# multiplex R6 (SMR6), canal 26V + offset 167000 : TF1 SD , NRJ 12 , EUROSPORT, LCI, TMC et TF6
36016 +T 514167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36017 +# multiplex R5 (MR5), canal 29 : TF1 HD , France 2 HD et M6HD
36018 T 538167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36019 -# multiplex R3 (CNH), canal 43V + offset 167000 : CANAL+ , CANAL+HD , CANAL+ CINEMA , CANAL+ SPORT , PLANETE , CANAL J et TPS STAR
36020 -T 650167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36021 -# multiplex R2 (NTN), canal 55V + offset 167000 : DIRECT 8 , BFM TV , I>TELE , FRANCE 4 , VIRGIN 17 , GULLI et France 4
36022 -T 746167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36023 -# multiplex R6 (SMR6), canal 32V + offset 167000 : TF1 SD , NRJ 12 , TMC , EUROSPORT , LCI et TF6
36024 -T 562167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36025 -# Télévision Suisse, canal 56V + offset 000000 : TSR1 , TSR2 , TSI1 et SF 1
36026 +# multiplex R2 (NTN), canal 55V + offset 167000 : Direct 8 , BFM TV , i>TELE , DirectStar , Gulli et France 4
36027 +T 658167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36028 +# multiplex R3 (CNH), canal 54V + offset 167000 : CANAL+ , CANAL+ CINEMA , CANAL+ SPORT , PLANETE et TPS STAR
36029 +T 738167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36030 +# Télévision Suisse, canal 56V + offset 000000 : SF1, TSR1 , TSR2 et RSI LA 1
36031 T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36032 -# multiplex R4 (MULTI4), canal 58V + offset 167000 : ARTE HD , PARIS PREMIERE, M6 SD , W9 , NT1
36033 -T 770167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36034 -# multiplex R5 (???), canal ??? : TF1 HD , FRANCE 2 HD, M6 HD
36035 -# canal d'émission pas encore défini (février 2009)
36036 +# multiplex R1 (GR1), canal 60V + offset 167000 : France 2 SD , France 5 , France Ô , LCP et France 3
36037 +T 786167000 8MHz AUTO NONE QAM64 8k AUTO NONE
36038 diff -r af23d23c278b util/scan/dvb-t/fr-Nantes
36039 --- a/util/scan/dvb-t/fr-Nantes Sat Jun 20 16:47:55 2009 +0200
36040 +++ b/util/scan/dvb-t/fr-Nantes Tue Dec 21 12:13:28 2010 +0100
36043 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36044 -T 498000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36045 -T 506000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36046 -T 522000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36047 -T 530000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36048 -T 658000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36049 -T 802000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36050 +T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36051 +T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36052 +T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36053 +T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36054 +T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36055 +T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36056 +T 754000000 8MHz AUTO NONE QAM16 8k AUTO NONE
36057 diff -r af23d23c278b util/scan/dvb-t/fr-Poitiers
36058 --- a/util/scan/dvb-t/fr-Poitiers Sat Jun 20 16:47:55 2009 +0200
36059 +++ b/util/scan/dvb-t/fr-Poitiers Tue Dec 21 12:13:28 2010 +0100
36060 @@ -12,14 +12,12 @@
36061 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36062 #### Poitiers - Agglomération ####
36064 -T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36065 +T 506000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36067 -T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36068 +T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36070 -T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36071 +T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36073 -T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36075 +T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36077 T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36079 -T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36080 diff -r af23d23c278b util/scan/dvb-t/fr-Reims
36081 --- a/util/scan/dvb-t/fr-Reims Sat Jun 20 16:47:55 2009 +0200
36082 +++ b/util/scan/dvb-t/fr-Reims Tue Dec 21 12:13:28 2010 +0100
36084 # Reims - France (DVB-T transmitter of Reims ( Hautvillers ) )
36085 # Reims - France (signal DVB-T transmis depuis l'émetteur de Hautvillers )
36087 -# ATTENTION ! Ce fichier a ete construit automatiquement a partir
36088 -# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
36089 -# en Avril 2006. Si vous constatez des problemes et voulez apporter des
36090 +# Si vous constatez des problemes et voulez apporter des
36091 # modifications au fichier, envoyez le fichier modifie a
36092 # l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
36093 -# ou a l'auteur du fichier :
36094 -# Nicolas Estre <n_estre@yahoo.fr>
36096 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36097 #### Reims - Hautvillers ####
36099 -T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36100 +T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36102 -T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36103 +T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36105 -T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36106 +T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36108 -T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36109 +T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36111 -T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36112 +T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36114 -T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36115 +T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36116 diff -r af23d23c278b util/scan/dvb-t/fr-Rochefort-sur-mer
36117 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36118 +++ b/util/scan/dvb-t/fr-Rochefort-sur-mer Tue Dec 21 12:13:28 2010 +0100
36120 +# TNT à Rochefort (17)
36121 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36123 +#multiplex 6 ( TF1 LCI Eurosport TF6 NRJ12 TMC )
36124 +T 498166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36126 +#multiplex 4 ( M6 W9 NT1 Paris Première ARTE HD )
36127 +T 738166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36129 +#multiplex 1 ( France 2 France 3 France 5 ARTE LCP Chaîne locale ou France Ô )
36130 +T 602166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36132 +#multiplex 2 ( Direct 8 France 4 BFM TV Virgin 17 Gulli i>Télé )
36133 +T 778167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36134 diff -r af23d23c278b util/scan/dvb-t/fr-Tours
36135 --- a/util/scan/dvb-t/fr-Tours Sat Jun 20 16:47:55 2009 +0200
36136 +++ b/util/scan/dvb-t/fr-Tours Tue Dec 21 12:13:28 2010 +0100
36138 -# Tours - France (DVB-T transmitter of Tours ( Chissay ) )
36139 -# Tours - France (signal DVB-T transmis depuis l'émetteur de Chissay )
36141 -# ATTENTION ! Ce fichier a ete construit automatiquement a partir
36142 -# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
36143 -# en Avril 2006. Si vous constatez des problemes et voulez apporter des
36144 -# modifications au fichier, envoyez le fichier modifie a
36145 -# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
36146 -# ou a l'auteur du fichier :
36147 -# Nicolas Estre <n_estre@yahoo.fr>
36148 +# Tours (Chissay) - France
36149 +# Initial DVB-T tuning as of 19 october 2010
36151 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36152 -#### Tours - Chissay ####
36154 -T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36156 -T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36158 -T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36160 -T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36162 -T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36164 -T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
36165 +T 498000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
36166 +T 578000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
36167 +T 602000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
36168 +T 610000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
36169 +T 690000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
36170 +T 714000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
36172 diff -r af23d23c278b util/scan/dvb-t/gr-Athens
36173 --- a/util/scan/dvb-t/gr-Athens Sat Jun 20 16:47:55 2009 +0200
36174 +++ b/util/scan/dvb-t/gr-Athens Tue Dec 21 12:13:28 2010 +0100
36176 # Initial scan config for Digital DVB-T (Ert) in Athens Greece
36177 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36178 +T 674000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE # Digea DVB-T
36179 +T 682000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE # Digea DVB-T
36180 T 690000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36181 diff -r af23d23c278b util/scan/dvb-t/hr-All
36182 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36183 +++ b/util/scan/dvb-t/hr-All Tue Dec 21 12:13:28 2010 +0100
36185 +# Croatia, whole country
36186 +# Created from http://www.oiv.hr/broadcasting/tables/dtv_hr.aspx
36187 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36188 +T 474000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D1 MUXD
36189 +T 490000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D2 MUXA
36190 +T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D4 MUXA
36191 +T 530000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D5 MUXA, D9 MUXD
36192 +T 538000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D5 MUXD
36193 +T 546000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D6 MUXA
36194 +T 554000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D7 MUXD
36195 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # D1 MUXC
36196 +T 570000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D8 MUXA
36197 +T 578000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D8 MUXD
36198 +T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # D5 MUXC
36199 +T 594000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D3 MUXD
36200 +T 610000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D1 MUXA
36201 +T 618000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D2 MUXB
36202 +T 642000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D4 MUXD
36203 +T 658000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D1 MUXB, D3 MUXA
36204 +T 666000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # SLO MUXA
36205 +T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # D8 MUXC
36206 +T 674000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D8 MUXD
36207 +T 690000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D3 MUXB, D4 MUXB
36208 +T 714000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D7 MUXA, D9 MUXA
36209 +T 730000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D5 MUXB, D8 MUXB
36210 +T 738000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D6 MUXB
36211 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # D4 MUXC
36212 +T 762000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # Tusti Vrh MUXD
36213 +T 770000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D2 MUXD
36214 +T 778000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE # D7 MUXB, D9 MUXB
36215 diff -r af23d23c278b util/scan/dvb-t/hr-Zagreb
36216 --- a/util/scan/dvb-t/hr-Zagreb Sat Jun 20 16:47:55 2009 +0200
36217 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
36220 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36221 -T 522000000 8MHz 3/4 NONE AUTO 8k 1/32 NONE # CH27:
36222 diff -r af23d23c278b util/scan/dvb-t/hu-Budapest
36223 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36224 +++ b/util/scan/dvb-t/hu-Budapest Tue Dec 21 12:13:28 2010 +0100
36226 +# Hungary / Budapest
36227 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36228 +# A1.multiplex UHF-55:
36229 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36230 +T 746000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36231 +# C.multiplex UHF-62:
36232 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36233 +T 802000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36234 diff -r af23d23c278b util/scan/dvb-t/hu-Debrecen
36235 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36236 +++ b/util/scan/dvb-t/hu-Debrecen Tue Dec 21 12:13:28 2010 +0100
36238 +# Hungary / Debrecen
36239 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36240 +# A1.multiplex UHF-46:
36241 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36242 +T 714000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36243 +# C.multiplex UHF-62:
36244 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36245 +T 802000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36246 diff -r af23d23c278b util/scan/dvb-t/hu-Gyor
36247 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36248 +++ b/util/scan/dvb-t/hu-Gyor Tue Dec 21 12:13:28 2010 +0100
36251 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36252 +# A1.multiplex UHF-42:
36253 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36254 +T 642000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36255 +# C.multiplex UHF-61:
36256 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36257 +T 794000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36258 diff -r af23d23c278b util/scan/dvb-t/hu-Kabhegy
36259 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36260 +++ b/util/scan/dvb-t/hu-Kabhegy Tue Dec 21 12:13:28 2010 +0100
36262 +# Hungary / Kabhegy
36263 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36264 +# C.multiplex UHF-61:
36265 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36266 +T 794000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36267 +# A2.multiplex UHF-64:
36268 +# MTV-1 HD Sopron, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36269 +T 818000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36270 diff -r af23d23c278b util/scan/dvb-t/hu-Kekes
36271 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36272 +++ b/util/scan/dvb-t/hu-Kekes Tue Dec 21 12:13:28 2010 +0100
36275 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36276 +# A1.multiplex UHF-44:
36277 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36278 +T 658000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36279 +# C.multiplex UHF-69:
36280 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36281 +T 858000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36282 diff -r af23d23c278b util/scan/dvb-t/hu-Kiskoros
36283 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36284 +++ b/util/scan/dvb-t/hu-Kiskoros Tue Dec 21 12:13:28 2010 +0100
36286 +# Hungary / Kiskoros
36287 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36288 +# A1.multiplex UHF-45:
36289 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36290 +T 666000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36291 +# C.multiplex UHF-68:
36292 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36293 +T 850000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36294 diff -r af23d23c278b util/scan/dvb-t/hu-Nagykanizsa-Ujudvar
36295 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36296 +++ b/util/scan/dvb-t/hu-Nagykanizsa-Ujudvar Tue Dec 21 12:13:28 2010 +0100
36298 +# Hungary / Nagykanizsa / Ujudvar
36299 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36300 +# A1.multiplex UHF-24:
36301 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36302 +T 498000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36303 +# C.multiplex UHF-65:
36304 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36305 +T 826000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36306 diff -r af23d23c278b util/scan/dvb-t/hu-Pecs
36307 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36308 +++ b/util/scan/dvb-t/hu-Pecs Tue Dec 21 12:13:28 2010 +0100
36311 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36312 +# A1.multiplex UHF-52:
36313 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36314 +T 722000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36315 +# C.multiplex UHF-67:
36316 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36317 +T 842000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36318 diff -r af23d23c278b util/scan/dvb-t/hu-Szeged
36319 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36320 +++ b/util/scan/dvb-t/hu-Szeged Tue Dec 21 12:13:28 2010 +0100
36322 +# Hungary / Szeged
36323 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36324 +# A1.multiplex UHF-60:
36325 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36326 +T 786000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36327 +# C.multiplex UHF-65:
36328 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36329 +T 826000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36330 diff -r af23d23c278b util/scan/dvb-t/hu-Szentes
36331 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36332 +++ b/util/scan/dvb-t/hu-Szentes Tue Dec 21 12:13:28 2010 +0100
36334 +# Hungary / Szentes
36335 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36336 +# A3.multiplex UHF-60:
36337 +# MTV-1 HD Szeged, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36338 +T 786000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36339 +# C.multiplex UHF-65:
36340 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36341 +T 826000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36342 diff -r af23d23c278b util/scan/dvb-t/hu-Tokaj
36343 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36344 +++ b/util/scan/dvb-t/hu-Tokaj Tue Dec 21 12:13:28 2010 +0100
36347 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36348 +# A1.multiplex UHF-68:
36349 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36350 +T 850000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36351 +# C.multiplex UHF-63:
36352 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36353 +T 810000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36354 diff -r af23d23c278b util/scan/dvb-t/hu-Uzd
36355 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36356 +++ b/util/scan/dvb-t/hu-Uzd Tue Dec 21 12:13:28 2010 +0100
36359 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36360 +# A1.multiplex UHF-52:
36361 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36362 +T 722000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36363 +# C.multiplex UHF-67:
36364 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36365 +T 842000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36366 diff -r af23d23c278b util/scan/dvb-t/hu-Vasvar-Hegyhatsal
36367 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36368 +++ b/util/scan/dvb-t/hu-Vasvar-Hegyhatsal Tue Dec 21 12:13:28 2010 +0100
36370 +# Hungary / Vasvar / Hegyhatsal
36371 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36372 +# A1.multiplex UHF-58:
36373 +# MTV-1 HD Budapest, MTV-2 HD, ATV (Hungary), Hir TV, MR-1 Kossuth R, MR-2 Petofi R, MR-3 Bartok R, Katolikus R
36374 +T 770000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36375 +# C.multiplex UHF-68:
36376 +# Duna TV HD, Duna-II. Autonomia, RTL Klub, TV-2 (Hungary), Euronews
36377 +T 850000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
36378 diff -r af23d23c278b util/scan/dvb-t/il-All
36379 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36380 +++ b/util/scan/dvb-t/il-All Tue Dec 21 12:13:28 2010 +0100
36382 +# Israel, Israel Broadcasting Authority's transmitters
36383 +# Generated from list in http://www.iba.org.il/reception/
36384 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36385 +T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
36386 +T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
36387 diff -r af23d23c278b util/scan/dvb-t/ir-Tehran
36388 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36389 +++ b/util/scan/dvb-t/ir-Tehran Tue Dec 21 12:13:28 2010 +0100
36392 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36393 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # IRIB-TV1/2/3/4/5, IRINN, AMOUZESH, QURAN-TV
36394 +T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # PRESS TV, AL-ALAM, AL-KOUSAR, JAAMEJAM 1, IRIB MOSTANAD, IRIB OSTANI
36395 diff -r af23d23c278b util/scan/dvb-t/is-Reykjavik
36396 --- a/util/scan/dvb-t/is-Reykjavik Sat Jun 20 16:47:55 2009 +0200
36397 +++ b/util/scan/dvb-t/is-Reykjavik Tue Dec 21 12:13:28 2010 +0100
36399 -# Initial scan config for Digital Ísland in Iceland
36400 -# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36401 -T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36402 -T 690000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36403 -T 698000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36404 -T 706000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36405 -T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36406 -T 738000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36407 -T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36408 -T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36409 -T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36410 -T 794000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36411 -T 818000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36412 +#------------------------------------------------------------------------------
36413 +# file automatically generated by w_scan
36414 +# (http://wirbel.htpc-forum.de/w_scan/index2.html)
36415 +#! <w_scan> 20100316 1 0 OFDM IS </w_scan>
36416 +#------------------------------------------------------------------------------
36417 +# location and provider: <add description here>
36418 +# date (yyyy-mm-dd) : 2010-10-22
36419 +# provided by (opt) : <your name or email here>
36421 +# T[2] <freq> <bw> <fec_hi> <fec_lo> <mod> <tm> <guard> <hi> [# comment]
36422 +#------------------------------------------------------------------------------
36423 +T 522000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE
36424 +T 530000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # Vodafone
36425 +T 538000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE
36426 +T 674000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36427 +T 770000000 8MHz 1/2 NONE QAM64 2k 1/32 NONE # Vodafone
36428 +T 690000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36429 +T 722000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36430 +T 738000000 8MHz 1/2 NONE QPSK 2k 1/32 NONE # Vodafone
36431 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36432 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36433 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36434 +T 818000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36435 +T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36436 +T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36437 +T 698000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36438 +T 706000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36439 +T 794000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36440 +T 802000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Vodafone
36441 diff -r af23d23c278b util/scan/dvb-t/it-Milano
36442 --- a/util/scan/dvb-t/it-Milano Sat Jun 20 16:47:55 2009 +0200
36443 +++ b/util/scan/dvb-t/it-Milano Tue Dec 21 12:13:28 2010 +0100
36445 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36447 -T 818000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36448 +T 800000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36449 +T 490000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36451 T 482000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36453 T 842000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36455 T 618000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36457 +T 538000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36459 -T 506000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36460 +T 802000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36462 T 706000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36464 T 538000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36466 +T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36468 +T 184500000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36470 +T 191500000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36471 +# MUX VIDEO STAR NOVARA
36472 +T 219500000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36474 +T 474000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36475 +# MUX TELE 7 LAGHI
36476 +T 495250000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36477 +# MUX VIDEO BERGAMO
36478 +T 594000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36480 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36482 +T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36484 +T 735250000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36486 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36487 +# TELE COLOR PRIMARETE
36488 +T 783250000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36489 +T 786000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36491 +T 807250000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36492 +T 810000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36494 +T 847250000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36495 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36496 diff -r af23d23c278b util/scan/dvb-t/it-Montevergine
36497 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36498 +++ b/util/scan/dvb-t/it-Montevergine Tue Dec 21 12:13:28 2010 +0100
36500 +# DVB-T Montevergine (Avellino) 83100
36501 +# 12/12/2009 by Antonio Galasso anto1714@libero.it
36502 +# (ricordati di mettere il lettore in posizione stop orima di iniziare la scansione dei canali)
36503 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36505 +T 177500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
36506 +T 482000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36507 +T 498000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36508 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36509 +T 522000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36510 +T 530000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36511 +T 546000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36512 +T 554000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36513 +T 594000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36514 +T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36515 +T 682000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36516 +T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36517 +T 698000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36518 diff -r af23d23c278b util/scan/dvb-t/lt-All
36519 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36520 +++ b/util/scan/dvb-t/lt-All Tue Dec 21 12:13:28 2010 +0100
36522 +# Lithuania, whole country
36523 +# Created from http://www.skaitmenine.lt/lt/skaitmenine_tv_lietuvoje/antzemine_dvb_t.html
36524 +# Created by baruse@gmail.com
36527 +T 482000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 22
36528 +T 514000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 26
36529 +T 618000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 39
36530 +T 658000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 44
36531 +T 682000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 47
36532 +T 762000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 57
36533 +T 770000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 58
36534 +T 786000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 60
36535 +T 794000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 61
36538 +T 570000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 33
36539 +T 610000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 38
36540 +T 690000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 48
36541 +T 738000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 54
36542 +T 802000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 62
36543 +T 810000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 63
36544 +T 818000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 64
36546 +# TEO LT I tinklas
36547 +T 594000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 36
36548 +T 706000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 50
36549 +T 778000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 59
36550 +T 826000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 65
36552 +# TEO LT II tinklas
36553 +T 474000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 21
36554 +T 546000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 30
36555 +T 730000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 53
36556 +#T 786000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 60
36559 +T 602000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 37
36560 +#T 730000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 53
36561 diff -r af23d23c278b util/scan/dvb-t/ro-Bucharest
36562 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36563 +++ b/util/scan/dvb-t/ro-Bucharest Tue Dec 21 12:13:28 2010 +0100
36565 +# Romania / Bucharest
36566 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36567 +T 546000000 8MHz 2/3 NONE QAM16 8k 1/16 NONE
36568 +T 738000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # SRTV
36569 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # SNR DVB-T
36570 diff -r af23d23c278b util/scan/dvb-t/se-Horby_Sallerup
36571 --- a/util/scan/dvb-t/se-Horby_Sallerup Sat Jun 20 16:47:55 2009 +0200
36572 +++ b/util/scan/dvb-t/se-Horby_Sallerup Tue Dec 21 12:13:28 2010 +0100
36574 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36575 T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36576 T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36577 +T 570000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36578 T 634000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36579 +T 650000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36580 T 818000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36581 T 794000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
36582 diff -r af23d23c278b util/scan/dvb-t/se-Ornskoldsvik_As
36583 --- a/util/scan/dvb-t/se-Ornskoldsvik_As Sat Jun 20 16:47:55 2009 +0200
36584 +++ b/util/scan/dvb-t/se-Ornskoldsvik_As Tue Dec 21 12:13:28 2010 +0100
36586 T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36587 T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36588 T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36589 +T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36590 diff -r af23d23c278b util/scan/dvb-t/se-Skelleftea
36591 --- a/util/scan/dvb-t/se-Skelleftea Sat Jun 20 16:47:55 2009 +0200
36592 +++ b/util/scan/dvb-t/se-Skelleftea Tue Dec 21 12:13:28 2010 +0100
36594 T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36595 T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36596 T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36597 +T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36598 diff -r af23d23c278b util/scan/dvb-t/si-Ljubljana
36599 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36600 +++ b/util/scan/dvb-t/si-Ljubljana Tue Dec 21 12:13:28 2010 +0100
36602 +# Slovenia / Ljubljana
36604 +#------------------------------------------
36605 +T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36606 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36607 diff -r af23d23c278b util/scan/dvb-t/sk-BanskaBystrica
36608 --- a/util/scan/dvb-t/sk-BanskaBystrica Sat Jun 20 16:47:55 2009 +0200
36609 +++ b/util/scan/dvb-t/sk-BanskaBystrica Tue Dec 21 12:13:28 2010 +0100
36611 # DVB-T Banska Bystrica (Banska Bystrica, Slovak Republic)
36612 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36614 -T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36615 +# 1.st multiplex - on channel 65
36616 +T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36618 +# 2.st multiplex (commercial) - on channel 51
36619 +T 714000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36621 +# 3.st multiplex (public) - on channel 33
36622 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36623 diff -r af23d23c278b util/scan/dvb-t/sk-Bardejov
36624 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36625 +++ b/util/scan/dvb-t/sk-Bardejov Tue Dec 21 12:13:28 2010 +0100
36627 +# DVB-T Bardejov (Bardejov, Slovak Republic)
36628 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36630 +# 1.st multiplex - on channel 62
36631 +T 802000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36633 +# 2.st multiplex (commercial) - on channel 40
36634 +T 626000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36636 +# 3.st multiplex (public) - on channel 54
36637 +T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36638 diff -r af23d23c278b util/scan/dvb-t/sk-Bratislava
36639 --- a/util/scan/dvb-t/sk-Bratislava Sat Jun 20 16:47:55 2009 +0200
36640 +++ b/util/scan/dvb-t/sk-Bratislava Tue Dec 21 12:13:28 2010 +0100
36642 # DVB-T Bratislava (Bratislava, Slovak Republic)
36643 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36645 -T 834000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36646 +# 1.st multiplex - on channel 66
36647 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36649 +# 2.st multiplex (commercial) - on channel 56
36650 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36652 +# 3.st multiplex (public) - on channel 27
36653 +T 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36654 diff -r af23d23c278b util/scan/dvb-t/sk-Kosice
36655 --- a/util/scan/dvb-t/sk-Kosice Sat Jun 20 16:47:55 2009 +0200
36656 +++ b/util/scan/dvb-t/sk-Kosice Tue Dec 21 12:13:28 2010 +0100
36658 # DVB-T Kosice (Kosice, Slovak Republic)
36659 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36661 -T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
36662 +# 1.st multiplex - on channel 64
36663 +T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36665 +# 2.st multiplex (commercial) - on channel 59
36666 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36668 +# 3.st multiplex (public) - on channel 25
36669 +T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36670 diff -r af23d23c278b util/scan/dvb-t/sk-Michalovce
36671 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36672 +++ b/util/scan/dvb-t/sk-Michalovce Tue Dec 21 12:13:28 2010 +0100
36674 +# DVB-T Michalovce (Michalovce, Slovak Republic)
36675 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36677 +# 1.st multiplex - on channel 64
36678 +T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36680 +# 2.st multiplex (commercial) - on channel 59
36681 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36683 +# 3.st multiplex (public) - on channel 25
36684 +T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36685 diff -r af23d23c278b util/scan/dvb-t/sk-Namestovo
36686 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36687 +++ b/util/scan/dvb-t/sk-Namestovo Tue Dec 21 12:13:28 2010 +0100
36689 +# DVB-T Namestovo (Namestovo, Slovak Republic)
36690 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36692 +# 1.st multiplex - on channel 68
36693 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36695 +# 2.st multiplex (commercial) - on channel 59
36696 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36698 +# 3.st multiplex (public) - on channel 26
36699 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36700 diff -r af23d23c278b util/scan/dvb-t/sk-Poprad
36701 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36702 +++ b/util/scan/dvb-t/sk-Poprad Tue Dec 21 12:13:28 2010 +0100
36704 +# DVB-T Poprad (Poprad, Slovak Republic)
36705 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36707 +# 1.st multiplex - on channel 66
36708 +T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36710 +# 2.st multiplex (commercial) - on channel 55
36711 +T 746000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36713 +# 3.st multiplex (public) - on channel 24
36714 +T 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36715 diff -r af23d23c278b util/scan/dvb-t/sk-RimavskaSobota
36716 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36717 +++ b/util/scan/dvb-t/sk-RimavskaSobota Tue Dec 21 12:13:28 2010 +0100
36719 +# DVB-T Rimavska Sobota (Rimavska Sobota, Slovak Republic)
36720 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36722 +# 1.st multiplex - on channel 61
36723 +T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36725 +# 2.st multiplex (commercial) - on channel 27
36726 +T 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36728 +# 3.st multiplex (public) - on channel 54
36729 +T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36730 diff -r af23d23c278b util/scan/dvb-t/sk-Trencin
36731 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36732 +++ b/util/scan/dvb-t/sk-Trencin Tue Dec 21 12:13:28 2010 +0100
36734 +# DVB-T Trencin (Trencin, Slovak Republic)
36735 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36737 +# 1.st multiplex - on channel 69
36738 +T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36740 +# 2.st multiplex (commercial) - on channel 52/56
36741 +T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36742 +T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36744 +# 3.st multiplex (public) - on channel 57
36745 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36746 diff -r af23d23c278b util/scan/dvb-t/sk-VelkyKrtis
36747 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36748 +++ b/util/scan/dvb-t/sk-VelkyKrtis Tue Dec 21 12:13:28 2010 +0100
36750 +# DVB-T Velky Krtis (Velky Krtis, Slovak Republic)
36751 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36753 +# 1.st multiplex - on channel 65
36754 +T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36756 +# 2.st multiplex (commercial) - on channel 60
36757 +T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36759 +# 3.st multiplex (public) - on channel 33
36760 +T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36761 diff -r af23d23c278b util/scan/dvb-t/sk-Zilina
36762 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36763 +++ b/util/scan/dvb-t/sk-Zilina Tue Dec 21 12:13:28 2010 +0100
36765 +# DVB-T Zilina (Zilina, Slovak Republic)
36766 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36768 +# 1.st multiplex - on channel 68
36769 +T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36771 +# 2.st multiplex (commercial) - on channel 52
36772 +T 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36774 +# 3.st multiplex (public) - on channel 32
36775 +T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
36776 diff -r af23d23c278b util/scan/dvb-t/uk-Aberdare
36777 --- a/util/scan/dvb-t/uk-Aberdare Sat Jun 20 16:47:55 2009 +0200
36778 +++ b/util/scan/dvb-t/uk-Aberdare Tue Dec 21 12:13:28 2010 +0100
36780 # Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
36781 # and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
36782 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36783 -T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36784 -T 562167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36785 -T 489833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36786 -T 513833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36787 -T 538167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36788 -T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36790 +T 474167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36791 +T 482167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36792 +T 497833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36793 +T 506167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36794 +T 521833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36795 +T 530167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36798 +#C21+ C22+ C24- C25+ C27- C28+
36800 diff -r af23d23c278b util/scan/dvb-t/uk-Redruth
36801 --- a/util/scan/dvb-t/uk-Redruth Sat Jun 20 16:47:55 2009 +0200
36802 +++ b/util/scan/dvb-t/uk-Redruth Tue Dec 21 12:13:28 2010 +0100
36804 # Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
36805 # and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
36806 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36807 -T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36808 -T 642167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36809 -T 666167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36810 -T 697833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36811 +T 474167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36812 +T 497833000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36813 +T 506167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36814 +T 521833000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36815 +T 634167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36816 T 650167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36817 -T 705833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36818 +T 658167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36819 +T 690000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36820 +T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36821 diff -r af23d23c278b util/scan/dvb-t/uk-StocklandHill
36822 --- a/util/scan/dvb-t/uk-StocklandHill Sat Jun 20 16:47:55 2009 +0200
36823 +++ b/util/scan/dvb-t/uk-StocklandHill Tue Dec 21 12:13:28 2010 +0100
36825 # UK, Stockland Hill
36826 -# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
36827 -# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
36828 +# http://www.ukfree.tv/txdetail.php?a=ST222014
36829 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36830 -T 481833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36831 -T 529833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36832 -T 505833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36833 -T 561833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36834 -T 546167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36835 -T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36836 +T 514167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # PSB1
36837 +T 490167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # PSB2
36838 +#T 538167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # PSB3 (DVB-T2)
36839 +T 505833000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # COM4
36840 +T 481833000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # COM5
36841 +T 529833000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # COM6
36842 diff -r af23d23c278b util/scan/dvb-t/uk-Storeton
36843 --- a/util/scan/dvb-t/uk-Storeton Sat Jun 20 16:47:55 2009 +0200
36844 +++ b/util/scan/dvb-t/uk-Storeton Tue Dec 21 12:13:28 2010 +0100
36846 # Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
36847 # and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
36848 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36849 -T 546167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36850 -T 578167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36851 -T 490167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36852 -T 514167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36853 -T 538167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36854 -T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36855 +T 490000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36856 +T 506000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36857 +T 514000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36858 +T 530000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36859 +T 538000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36860 +T 546000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36861 +T 730000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36862 +T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36863 +T 786000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36864 diff -r af23d23c278b util/scan/dvb-t/uk-WinterHill
36865 --- a/util/scan/dvb-t/uk-WinterHill Sat Jun 20 16:47:55 2009 +0200
36866 +++ b/util/scan/dvb-t/uk-WinterHill Tue Dec 21 12:13:28 2010 +0100
36869 -# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
36870 -# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
36871 +# Populated by J. Hornsby from a scan of active multiplexes
36872 +# UK, Winter Hill B Ceased broadcasting on 02 December 2009
36873 # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36874 -T 754167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36875 -T 834167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36876 -T 850167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
36877 -T 842167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36878 -T 786167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36879 -T 810167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36880 -# UK, Winter Hill B
36881 -T 650000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36882 -T 626000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
36883 +T 746000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36884 +T 770000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36885 +T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36886 +T 794000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36887 +T 801833000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
36888 diff -r af23d23c278b util/scan/dvb-t/vn-Thaibinh
36889 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36890 +++ b/util/scan/dvb-t/vn-Thaibinh Tue Dec 21 12:13:28 2010 +0100
36892 +# Thaibinh - Vietnam - DVB-T by VTC
36893 +# contributed by Pham Thanh Nam <phamthanhnam.ptn@gmail.com>
36894 +# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
36895 +T 626000000 8MHz 3/4 NONE QAM64 2k 1/32 NONE
36896 +T 634000000 8MHz 3/4 NONE QAM64 2k 1/32 NONE
36897 diff -r af23d23c278b util/scan/scan.c
36898 --- a/util/scan/scan.c Sat Jun 20 16:47:55 2009 +0200
36899 +++ b/util/scan/scan.c Tue Dec 21 12:13:28 2010 +0100
36900 @@ -236,6 +236,17 @@
36902 static void copy_transponder(struct transponder *d, struct transponder *s)
36904 + struct list_head *pos;
36905 + struct service *service;
36907 + if (d->transport_stream_id != s->transport_stream_id) {
36908 + /* propagate change to any already allocated services */
36909 + list_for_each(pos, &d->services) {
36910 + service = list_entry(pos, struct service, list);
36911 + service->transport_stream_id = s->transport_stream_id;
36915 d->network_id = s->network_id;
36916 d->original_network_id = s->original_network_id;
36917 d->transport_stream_id = s->transport_stream_id;
36918 diff -r af23d23c278b util/szap/Makefile
36919 --- a/util/szap/Makefile Sat Jun 20 16:47:55 2009 +0200
36920 +++ b/util/szap/Makefile Tue Dec 21 12:13:28 2010 +0100
36922 # Makefile for linuxtv.org dvb-apps/util/szap
36925 +objects = lnb.o util.o
36929 diff -r af23d23c278b util/szap/azap.c
36930 --- a/util/szap/azap.c Sat Jun 20 16:47:55 2009 +0200
36931 +++ b/util/szap/azap.c Tue Dec 21 12:13:28 2010 +0100
36933 #include <linux/dvb/frontend.h>
36934 #include <linux/dvb/dmx.h>
36938 static char FRONTEND_DEV [80];
36939 static char DEMUX_DEV [80];
36941 @@ -209,31 +211,6 @@
36945 -int set_pesfilter (int fd, int pid, dmx_pes_type_t type, int dvr)
36947 - struct dmx_pes_filter_params pesfilter;
36949 - if (pid <= 0 || pid >= 0x1fff)
36952 - pesfilter.pid = pid;
36953 - pesfilter.input = DMX_IN_FRONTEND;
36954 - pesfilter.output = dvr ? DMX_OUT_TS_TAP : DMX_OUT_DECODER;
36955 - pesfilter.pes_type = type;
36956 - pesfilter.flags = DMX_IMMEDIATE_START;
36958 - if (ioctl(fd, DMX_SET_PES_FILTER, &pesfilter) < 0) {
36959 - PERROR ("ioctl(DMX_SET_PES_FILTER) for %s PID failed",
36960 - type == DMX_PES_AUDIO ? "Audio" :
36961 - type == DMX_PES_VIDEO ? "Video" : "??");
36970 int setup_frontend (int fe_fd, struct dvb_frontend_parameters *frontend)
36972 struct dvb_frontend_info fe_info;
36973 diff -r af23d23c278b util/szap/czap.c
36974 --- a/util/szap/czap.c Sat Jun 20 16:47:55 2009 +0200
36975 +++ b/util/szap/czap.c Tue Dec 21 12:13:28 2010 +0100
36977 #include <linux/dvb/frontend.h>
36978 #include <linux/dvb/dmx.h>
36983 static char FRONTEND_DEV [80];
36984 static char DEMUX_DEV [80];
36985 @@ -118,7 +120,7 @@
36988 int parse(const char *fname, int list_channels, int chan_no, const char *channel,
36989 - struct dvb_frontend_parameters *frontend, int *vpid, int *apid)
36990 + struct dvb_frontend_parameters *frontend, int *vpid, int *apid, int *sid)
36994 @@ -141,10 +143,10 @@
36996 printf("%3d %s", chan_no, chan);
36998 - if ((sscanf(chan, "%a[^:]:%d:%a[^:]:%d:%a[^:]:%a[^:]:%d:%d\n",
36999 + if ((sscanf(chan, "%m[^:]:%d:%m[^:]:%d:%m[^:]:%m[^:]:%d:%d:%d\n",
37000 &name, &frontend->frequency,
37001 &inv, &frontend->u.qam.symbol_rate,
37002 - &fec, &mod, vpid, apid) != 8)
37003 + &fec, &mod, vpid, apid, sid) != 9)
37004 || !name || !inv || !fec | !mod) {
37005 ERROR("cannot parse service data");
37007 @@ -165,10 +167,10 @@
37008 ERROR("modulation field syntax '%s'", mod);
37011 - printf("%3d %s: f %d, s %d, i %d, fec %d, qam %d, v %#x, a %#x\n",
37012 + printf("%3d %s: f %d, s %d, i %d, fec %d, qam %d, v %#x, a %#x, s %#x \n",
37013 chan_no, name, frontend->frequency, frontend->u.qam.symbol_rate,
37014 frontend->inversion, frontend->u.qam.fec_inner,
37015 - frontend->u.qam.modulation, *vpid, *apid);
37016 + frontend->u.qam.modulation, *vpid, *apid, *sid);
37020 @@ -178,31 +180,6 @@
37026 -int set_pesfilter (int fd, int pid, dmx_pes_type_t type, int dvr)
37028 - struct dmx_pes_filter_params pesfilter;
37030 - if (pid <= 0 || pid >= 0x1fff)
37033 - pesfilter.pid = pid;
37034 - pesfilter.input = DMX_IN_FRONTEND;
37035 - pesfilter.output = dvr ? DMX_OUT_TS_TAP : DMX_OUT_DECODER;
37036 - pesfilter.pes_type = type;
37037 - pesfilter.flags = DMX_IMMEDIATE_START;
37039 - if (ioctl(fd, DMX_SET_PES_FILTER, &pesfilter) < 0) {
37040 - PERROR ("ioctl(DMX_SET_PES_FILTER) for %s PID failed",
37041 - type == DMX_PES_AUDIO ? "Audio" :
37042 - type == DMX_PES_VIDEO ? "Video" : "??");
37050 int setup_frontend(int fe_fd, struct dvb_frontend_parameters *frontend)
37052 @@ -264,9 +241,20 @@
37056 -static const char *usage = "\nusage: %s [-a adapter_num] [-f frontend_id] [-d demux_id] [-c conf_file] [ -H ] {<channel name>| -n channel_num} [-x]\n"
37057 - " or: %s [-c conf_file] -l\n\n";
37059 +static const char *usage =
37060 + "\nusage: %s [options] -l\n"
37061 + " list known channels\n"
37062 + " %s [options] {-n channel-number|channel_name}\n"
37063 + " zap to channel via number or full name (case insensitive)\n"
37064 + " -a number : use given adapter (default 0)\n"
37065 + " -f number : use given frontend (default 0)\n"
37066 + " -d number : use given demux (default 0)\n"
37067 + " -c file : read channels list from 'file'\n"
37068 + " -x : exit after tuning\n"
37069 + " -H : human readable output\n"
37070 + " -r : set up /dev/dvb/adapterX/dvr0 for TS recording\n"
37071 + " -p : add pat and pmt to TS recording (implies -r)\n"
37074 int main(int argc, char **argv)
37076 @@ -275,12 +263,12 @@
37077 char *confname = NULL;
37078 char *channel = NULL;
37079 int adapter = 0, frontend = 0, demux = 0, dvr = 0;
37081 - int frontend_fd, video_fd, audio_fd;
37082 + int vpid, apid, sid, pmtpid = 0;
37083 + int frontend_fd, video_fd, audio_fd, pat_fd, pmt_fd;
37084 int opt, list_channels = 0, chan_no = 0;
37085 - int human_readable = 0;
37086 + int human_readable = 0, rec_psi = 0;
37088 - while ((opt = getopt(argc, argv, "Hln:hrn:a:f:d:c:x")) != -1) {
37089 + while ((opt = getopt(argc, argv, "Hln:hrn:a:f:d:c:x:p")) != -1) {
37092 adapter = strtoul(optarg, NULL, 0);
37093 @@ -300,6 +288,9 @@
37095 chan_no = strtoul(optarg, NULL, 0);
37101 exit_after_tuning = 1;
37103 @@ -352,7 +343,7 @@
37105 memset(&frontend_param, 0, sizeof(struct dvb_frontend_parameters));
37107 - if (parse(confname, list_channels, chan_no, channel, &frontend_param, &vpid, &apid))
37108 + if (parse(confname, list_channels, chan_no, channel, &frontend_param, &vpid, &apid, &sid))
37112 @@ -365,6 +356,28 @@
37113 if (setup_frontend(frontend_fd, &frontend_param) < 0)
37117 + pmtpid = get_pmt_pid(DEMUX_DEV, sid);
37118 + if (pmtpid <= 0) {
37119 + fprintf(stderr,"couldn't find pmt-pid for sid %04x\n",sid);
37123 + if ((pat_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
37124 + perror("opening pat demux failed");
37127 + if (set_pesfilter(pat_fd, 0, DMX_PES_OTHER, dvr) < 0)
37130 + if ((pmt_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
37131 + perror("opening pmt demux failed");
37134 + if (set_pesfilter(pmt_fd, pmtpid, DMX_PES_OTHER, dvr) < 0)
37138 if ((video_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
37139 PERROR("failed opening '%s'", DEMUX_DEV);
37141 @@ -383,6 +396,8 @@
37143 check_frontend (frontend_fd, human_readable);
37149 close (frontend_fd);
37150 diff -r af23d23c278b util/szap/szap.c
37151 --- a/util/szap/szap.c Sat Jun 20 16:47:55 2009 +0200
37152 +++ b/util/szap/szap.c Tue Dec 21 12:13:28 2010 +0100
37154 #include <linux/dvb/dmx.h>
37155 #include <linux/dvb/audio.h>
37160 #define TRUE (1==1)
37162 " -p : add pat and pmt to TS recording (implies -r)\n"
37163 " or -n numbers for zapping\n";
37165 -static int set_demux(int dmxfd, int pid, int pes_type, int dvr)
37167 - struct dmx_pes_filter_params pesfilter;
37169 - if (pid < 0 || pid >= 0x1fff) /* ignore this pid to allow radio services */
37173 - int buffersize = 64 * 1024;
37174 - if (ioctl(dmxfd, DMX_SET_BUFFER_SIZE, buffersize) == -1)
37175 - perror("DMX_SET_BUFFER_SIZE failed");
37178 - pesfilter.pid = pid;
37179 - pesfilter.input = DMX_IN_FRONTEND;
37180 - pesfilter.output = dvr ? DMX_OUT_TS_TAP : DMX_OUT_DECODER;
37181 - pesfilter.pes_type = pes_type;
37182 - pesfilter.flags = DMX_IMMEDIATE_START;
37184 - if (ioctl(dmxfd, DMX_SET_PES_FILTER, &pesfilter) == -1) {
37185 - fprintf(stderr, "DMX_SET_PES_FILTER failed "
37186 - "(PID = 0x%04x): %d %m\n", pid, errno);
37193 -int get_pmt_pid(char *dmxdev, int sid)
37195 - int patfd, count;
37198 - int section_length;
37199 - unsigned char buft[4096];
37200 - unsigned char *buf = buft;
37201 - struct dmx_sct_filter_params f;
37203 - memset(&f, 0, sizeof(f));
37205 - f.filter.filter[0] = 0x00;
37206 - f.filter.mask[0] = 0xff;
37208 - f.flags = DMX_IMMEDIATE_START | DMX_CHECK_CRC;
37210 - if ((patfd = open(dmxdev, O_RDWR)) < 0) {
37211 - perror("openening pat demux failed");
37215 - if (ioctl(patfd, DMX_SET_FILTER, &f) == -1) {
37216 - perror("ioctl DMX_SET_FILTER failed");
37221 - while (!patread){
37222 - if (((count = read(patfd, buf, sizeof(buft))) < 0) && errno == EOVERFLOW)
37223 - count = read(patfd, buf, sizeof(buft));
37225 - perror("read_sections: read error");
37230 - section_length = ((buf[1] & 0x0f) << 8) | buf[2];
37231 - if (count != section_length + 3)
37235 - section_length -= 8;
37237 - patread = 1; /* assumes one section contains the whole pat */
37238 - while (section_length > 0) {
37239 - int service_id = (buf[0] << 8) | buf[1];
37240 - if (service_id == sid) {
37241 - pmt_pid = ((buf[2] & 0x1f) << 8) | buf[3];
37242 - section_length = 0;
37245 - section_length -= 4;
37253 struct diseqc_cmd {
37254 struct dvb_diseqc_master_cmd cmd;
37256 @@ -390,10 +303,10 @@
37258 if (diseqc(fefd, sat_no, pol, hiband))
37259 if (do_tune(fefd, ifreq, sr))
37260 - if (set_demux(dmxfdv, vpid, DMX_PES_VIDEO, dvr))
37261 + if (set_pesfilter(dmxfdv, vpid, DMX_PES_VIDEO, dvr))
37263 (void)ioctl(audiofd, AUDIO_SET_BYPASS_MODE, bypass);
37264 - if (set_demux(dmxfda, apid, DMX_PES_AUDIO, dvr)) {
37265 + if (set_pesfilter(dmxfda, apid, DMX_PES_AUDIO, dvr)) {
37267 pmtpid = get_pmt_pid(dmxdev, sid);
37269 @@ -403,8 +316,8 @@
37270 fprintf(stderr,"couldn't find pmt-pid for sid %04x\n",sid);
37273 - if (set_demux(patfd, 0, DMX_PES_OTHER, dvr))
37274 - if (set_demux(pmtfd, pmtpid, DMX_PES_OTHER, dvr))
37275 + if (set_pesfilter(patfd, 0, DMX_PES_OTHER, dvr))
37276 + if (set_pesfilter(pmtfd, pmtpid, DMX_PES_OTHER, dvr))
37280 diff -r af23d23c278b util/szap/tzap.c
37281 --- a/util/szap/tzap.c Sat Jun 20 16:47:55 2009 +0200
37282 +++ b/util/szap/tzap.c Tue Dec 21 12:13:28 2010 +0100
37284 #include <linux/dvb/frontend.h>
37285 #include <linux/dvb/dmx.h>
37289 static char FRONTEND_DEV [80];
37290 static char DEMUX_DEV [80];
37291 static char DVR_DEV [80];
37292 @@ -269,7 +271,8 @@
37295 int parse(const char *fname, const char *channel,
37296 - struct dvb_frontend_parameters *frontend, int *vpid, int *apid)
37297 + struct dvb_frontend_parameters *frontend, int *vpid, int *apid,
37302 @@ -343,7 +346,11 @@
37304 if ((err = try_parse_int(fd, apid, "Audio PID")))
37308 + if ((err = try_parse_int(fd, sid, "Service ID")))
37315 @@ -351,31 +358,6 @@
37319 -int set_pesfilter (int fd, int pid, dmx_pes_type_t type, int dvr)
37321 - struct dmx_pes_filter_params pesfilter;
37323 - if (pid <= 0 || pid >= 0x1fff)
37326 - pesfilter.pid = pid;
37327 - pesfilter.input = DMX_IN_FRONTEND;
37328 - pesfilter.output = dvr ? DMX_OUT_TS_TAP : DMX_OUT_DECODER;
37329 - pesfilter.pes_type = type;
37330 - pesfilter.flags = DMX_IMMEDIATE_START;
37332 - if (ioctl(fd, DMX_SET_PES_FILTER, &pesfilter) < 0) {
37333 - PERROR ("ioctl(DMX_SET_PES_FILTER) for %s PID failed",
37334 - type == DMX_PES_AUDIO ? "Audio" :
37335 - type == DMX_PES_VIDEO ? "Video" : "??");
37344 int setup_frontend (int fe_fd, struct dvb_frontend_parameters *frontend)
37346 struct dvb_frontend_info fe_info;
37347 @@ -503,6 +485,7 @@
37348 " -c file : read channels list from 'file'\n"
37349 " -x : exit after tuning\n"
37350 " -r : set up /dev/dvb/adapterX/dvr0 for TS recording\n"
37351 + " -p : add pat and pmt to TS recording (implies -r)\n"
37352 " -s : only print summary\n"
37353 " -S : run silently (no output)\n"
37354 " -H : human readable output\n"
37355 @@ -519,15 +502,16 @@
37356 char *confname = NULL;
37357 char *channel = NULL;
37358 int adapter = 0, frontend = 0, demux = 0, dvr = 0;
37360 + int vpid, apid, sid, pmtpid = 0;
37361 + int pat_fd, pmt_fd;
37362 int frontend_fd, audio_fd = 0, video_fd = 0, dvr_fd, file_fd;
37365 int frontend_only = 0;
37366 char *filename = NULL;
37367 - int human_readable = 0;
37368 + int human_readable = 0, rec_psi = 0;
37370 - while ((opt = getopt(argc, argv, "H?hrxRsFSn:a:f:d:c:t:o:")) != -1) {
37371 + while ((opt = getopt(argc, argv, "H?hrpxRsFSn:a:f:d:c:t:o:")) != -1) {
37374 adapter = strtoul(optarg, NULL, 0);
37375 @@ -548,6 +532,9 @@
37383 exit_after_tuning = 1;
37385 @@ -610,7 +597,7 @@
37387 memset(&frontend_param, 0, sizeof(struct dvb_frontend_parameters));
37389 - if (parse (confname, channel, &frontend_param, &vpid, &apid))
37390 + if (parse (confname, channel, &frontend_param, &vpid, &apid, &sid))
37393 if ((frontend_fd = open(FRONTEND_DEV, O_RDWR)) < 0) {
37394 @@ -624,6 +611,28 @@
37396 goto just_the_frontend_dude;
37399 + pmtpid = get_pmt_pid(DEMUX_DEV, sid);
37400 + if (pmtpid <= 0) {
37401 + fprintf(stderr,"couldn't find pmt-pid for sid %04x\n",sid);
37405 + if ((pat_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
37406 + perror("opening pat demux failed");
37409 + if (set_pesfilter(pat_fd, 0, DMX_PES_OTHER, dvr) < 0)
37412 + if ((pmt_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
37413 + perror("opening pmt demux failed");
37416 + if (set_pesfilter(pmt_fd, pmtpid, DMX_PES_OTHER, dvr) < 0)
37420 if ((video_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
37421 PERROR("failed opening '%s'", DEMUX_DEV);
37423 @@ -689,6 +698,8 @@
37424 check_frontend (frontend_fd, human_readable);
37431 close (frontend_fd);
37432 diff -r af23d23c278b util/szap/util.c
37433 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
37434 +++ b/util/szap/util.c Tue Dec 21 12:13:28 2010 +0100
37437 + * util functions for various ?zap implementations
37439 + * Copyright (C) 2001 Johannes Stezenbach (js@convergence.de)
37440 + * for convergence integrated media
37442 + * This program is free software; you can redistribute it and/or modify
37443 + * it under the terms of the GNU General Public License as published by
37444 + * the Free Software Foundation; either version 2 of the License, or
37445 + * (at your option) any later version.
37447 + * This program is distributed in the hope that it will be useful,
37448 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
37449 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37450 + * GNU General Public License for more details.
37452 + * You should have received a copy of the GNU General Public License
37453 + * along with this program; if not, write to the Free Software
37454 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
37457 +#include <string.h>
37458 +#include <unistd.h>
37459 +#include <stdio.h>
37460 +#include <errno.h>
37462 +#include <sys/ioctl.h>
37463 +#include <sys/types.h>
37464 +#include <sys/stat.h>
37465 +#include <fcntl.h>
37467 +#include <linux/dvb/frontend.h>
37468 +#include <linux/dvb/dmx.h>
37471 +int set_pesfilter(int dmxfd, int pid, int pes_type, int dvr)
37473 + struct dmx_pes_filter_params pesfilter;
37475 + /* ignore this pid to allow radio services */
37478 + (pid == 0 && pes_type != DMX_PES_OTHER))
37482 + int buffersize = 64 * 1024;
37483 + if (ioctl(dmxfd, DMX_SET_BUFFER_SIZE, buffersize) == -1)
37484 + perror("DMX_SET_BUFFER_SIZE failed");
37487 + pesfilter.pid = pid;
37488 + pesfilter.input = DMX_IN_FRONTEND;
37489 + pesfilter.output = dvr ? DMX_OUT_TS_TAP : DMX_OUT_DECODER;
37490 + pesfilter.pes_type = pes_type;
37491 + pesfilter.flags = DMX_IMMEDIATE_START;
37493 + if (ioctl(dmxfd, DMX_SET_PES_FILTER, &pesfilter) == -1) {
37494 + fprintf(stderr, "DMX_SET_PES_FILTER failed "
37495 + "(PID = 0x%04x): %d %m\n", pid, errno);
37503 +int get_pmt_pid(char *dmxdev, int sid)
37505 + int patfd, count;
37508 + int section_length;
37509 + unsigned char buft[4096];
37510 + unsigned char *buf = buft;
37511 + struct dmx_sct_filter_params f;
37513 + memset(&f, 0, sizeof(f));
37515 + f.filter.filter[0] = 0x00;
37516 + f.filter.mask[0] = 0xff;
37518 + f.flags = DMX_IMMEDIATE_START | DMX_CHECK_CRC;
37520 + if ((patfd = open(dmxdev, O_RDWR)) < 0) {
37521 + perror("openening pat demux failed");
37525 + if (ioctl(patfd, DMX_SET_FILTER, &f) == -1) {
37526 + perror("ioctl DMX_SET_FILTER failed");
37531 + while (!patread){
37532 + if (((count = read(patfd, buf, sizeof(buft))) < 0) && errno == EOVERFLOW)
37533 + count = read(patfd, buf, sizeof(buft));
37535 + perror("read_sections: read error");
37540 + section_length = ((buf[1] & 0x0f) << 8) | buf[2];
37541 + if (count != section_length + 3)
37545 + section_length -= 8;
37547 + patread = 1; /* assumes one section contains the whole pat */
37548 + while (section_length > 0) {
37549 + int service_id = (buf[0] << 8) | buf[1];
37550 + if (service_id == sid) {
37551 + pmt_pid = ((buf[2] & 0x1f) << 8) | buf[3];
37552 + section_length = 0;
37555 + section_length -= 4;
37562 diff -r af23d23c278b util/szap/util.h
37563 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
37564 +++ b/util/szap/util.h Tue Dec 21 12:13:28 2010 +0100
37567 + * util functions for various ?zap implementations
37569 + * Copyright (C) 2001 Johannes Stezenbach (js@convergence.de)
37570 + * for convergence integrated media
37572 + * This program is free software; you can redistribute it and/or modify
37573 + * it under the terms of the GNU General Public License as published by
37574 + * the Free Software Foundation; either version 2 of the License, or
37575 + * (at your option) any later version.
37577 + * This program is distributed in the hope that it will be useful,
37578 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
37579 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37580 + * GNU General Public License for more details.
37582 + * You should have received a copy of the GNU General Public License
37583 + * along with this program; if not, write to the Free Software
37584 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
37587 +int set_pesfilter(int dmxfd, int pid, int pes_type, int dvr);
37589 +int get_pmt_pid(char *dmxdev, int sid);