summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY443
-rw-r--r--Makefile281
-rw-r--r--README142
-rw-r--r--TODO1
-rw-r--r--alias.c74
-rw-r--r--alias.h28
-rw-r--r--common.c217
-rw-r--r--common.h8
-rw-r--r--compat.h18
-rw-r--r--display.c2317
-rw-r--r--display.h200
-rw-r--r--extdata.c96
-rw-r--r--extdata.h46
-rw-r--r--global.h9
-rw-r--r--[l---------]graphlcd/channels.alias640
-rw-r--r--graphlcd/channels.alias-20101014.txt631
-rw-r--r--graphlcd/channels.alias-20110104.txt639
l---------graphlcd/fonts.conf1
-rw-r--r--graphlcd/fonts.conf.large4
-rw-r--r--graphlcd/fonts.conf.medium4
-rw-r--r--graphlcd/fonts.conf.small4
-rw-r--r--graphlcd/fonts.conf.tiny4
-rw-r--r--graphlcd/fonts.conf.ttf4
-rw-r--r--graphlcd/fonts/DejaVuSans-Bold.ttfbin0 -> 573136 bytes
-rw-r--r--graphlcd/fonts/DejaVuSansCondensed.ttfbin0 -> 544636 bytes
-rw-r--r--graphlcd/fonts/f12b.fntbin2576 -> 2576 bytes
-rw-r--r--graphlcd/fonts/f12bn.fntbin2576 -> 2576 bytes
-rw-r--r--graphlcd/fonts/f17b.fntbin3801 -> 3801 bytes
-rw-r--r--graphlcd/fonts/f5n.fntbin1456 -> 1456 bytes
-rw-r--r--graphlcd/fonts/f8b.fntbin1936 -> 1936 bytes
-rw-r--r--graphlcd/fonts/f8n.fntbin1936 -> 1936 bytes
-rw-r--r--graphlcd/fonts/verdana-012.fntbin0 -> 4572 bytes
-rw-r--r--graphlcd/fonts/verdana-014.fntbin0 -> 6396 bytes
-rw-r--r--graphlcd/fonts/verdana-015.fntbin0 -> 7440 bytes
-rw-r--r--graphlcd/fonts/verdana-022.fntbin0 -> 12092 bytes
-rw-r--r--graphlcd/logos/channels/1-2-3 TV_l.glcd (renamed from graphlcd/logos/1-2-3 TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/1-2-3.tv_l.glcd (renamed from graphlcd/logos/1-2-3.tv_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/1-2-3.tv_m.glcd (renamed from graphlcd/logos/1-2-3.tv_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/13TH_STREET_l.glcd (renamed from graphlcd/logos/13TH_STREET_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/13TH_STREET_m.glcd (renamed from graphlcd/logos/13TH_STREET_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/13TH_STREETv2_l.glcd (renamed from graphlcd/logos/13TH_STREETv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/1LIVE_DIGGI_l.glcd (renamed from graphlcd/logos/1LIVE_DIGGI_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/1LIVE_DIGGI_m.glcd (renamed from graphlcd/logos/1LIVE_DIGGI_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/1LIVE_DIGGIv2_l.glcd (renamed from graphlcd/logos/1LIVE_DIGGIv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/1LIVE_l.glcd (renamed from graphlcd/logos/1LIVE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/1LIVE_m.glcd (renamed from graphlcd/logos/1LIVE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/2M_MAROC_m.glcd (renamed from graphlcd/logos/2M_MAROC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/3SAT_l.glcd (renamed from graphlcd/logos/3SAT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/3SAT_m.glcd (renamed from graphlcd/logos/3SAT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/40_TV_m.glcd (renamed from graphlcd/logos/40_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/9LIVE_l.glcd (renamed from graphlcd/logos/9LIVE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/9LIVE_m.glcd (renamed from graphlcd/logos/9LIVE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/AB1_l.glcd (renamed from graphlcd/logos/AB1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/AB1_m.glcd (renamed from graphlcd/logos/AB1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/AB_MOTEURS_l.glcd (renamed from graphlcd/logos/AB_MOTEURS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/AB_MOTEURS_m.glcd (renamed from graphlcd/logos/AB_MOTEURS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ACTION_m.glcd (renamed from graphlcd/logos/ACTION_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ADO FM_l.glcd (renamed from graphlcd/logos/ADO FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ADO FM_m.glcd (renamed from graphlcd/logos/ADO FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ADO_FM_l.glcd (renamed from graphlcd/logos/ADO_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ADO_FM_m.glcd (renamed from graphlcd/logos/ADO_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ALGERIE_l.glcd (renamed from graphlcd/logos/ALGERIE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ALGERIE_m.glcd (renamed from graphlcd/logos/ALGERIE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ALOUETTE_l.glcd (renamed from graphlcd/logos/ALOUETTE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ALOUETTE_m.glcd (renamed from graphlcd/logos/ALOUETTE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/AL_JAZEERA_l.glcd (renamed from graphlcd/logos/AL_JAZEERA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/AL_JAZEERA_m.glcd (renamed from graphlcd/logos/AL_JAZEERA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANIMAL_PLANET_l.glcd (renamed from graphlcd/logos/ANIMAL_PLANET_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANIMAL_PLANET_m.glcd (renamed from graphlcd/logos/ANIMAL_PLANET_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANIMAUX_l.glcd (renamed from graphlcd/logos/ANIMAUX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANIMAUX_m.glcd (renamed from graphlcd/logos/ANIMAUX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANIXE_HD_l.glcd (renamed from graphlcd/logos/ANIXE_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANIXE_HD_m.glcd (renamed from graphlcd/logos/ANIXE_HD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANIXE_HDv2_l.glcd (renamed from graphlcd/logos/ANIXE_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANIXE_SD_l.glcd (renamed from graphlcd/logos/ANIXE_SD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANIXE_SD_m.glcd (renamed from graphlcd/logos/ANIXE_SD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANTENNE_BAYERN_l.glcd (renamed from graphlcd/logos/ANTENNE_BAYERN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANTENNE_BAYERN_m.glcd (renamed from graphlcd/logos/ANTENNE_BAYERN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANTENNE_BAYERN_v2_m.glcd (renamed from graphlcd/logos/ANTENNE_BAYERN_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ANTENNE_BRANDENBURG_l.glcd (renamed from graphlcd/logos/ANTENNE_BRANDENBURG_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ANTENNE_BRANDENBURG_m.glcd (renamed from graphlcd/logos/ANTENNE_BRANDENBURG_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ARTE_HD_l.glcd (renamed from graphlcd/logos/ARTE_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ARTE_HD_m.glcd (renamed from graphlcd/logos/ARTE_HD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ARTE_HDv2_l.glcd (renamed from graphlcd/logos/ARTE_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ARTE_l.glcd (renamed from graphlcd/logos/ARTE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ARTE_m.glcd (renamed from graphlcd/logos/ARTE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ASTRA_HD_l.glcd (renamed from graphlcd/logos/ASTRA_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ASTRA_HD_m.glcd (renamed from graphlcd/logos/ASTRA_HD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ATVPLUS_l.glcd (renamed from graphlcd/logos/ATVPLUS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ATVPLUS_m.glcd (renamed from graphlcd/logos/ATVPLUS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/AXN_l.glcd (renamed from graphlcd/logos/AXN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/AXN_m.glcd (renamed from graphlcd/logos/AXN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/B5_AKTUELL_l.glcd (renamed from graphlcd/logos/B5_AKTUELL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/B5_AKTUELL_m.glcd (renamed from graphlcd/logos/B5_AKTUELL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/B5_AKTUELLv2_l.glcd (renamed from graphlcd/logos/B5_AKTUELLv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/B5_AKTUELLv2_m.glcd (renamed from graphlcd/logos/B5_AKTUELLv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/B5_AKTUELLv3_m.glcd (renamed from graphlcd/logos/B5_AKTUELLv3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/B5_PLUS_l.glcd (renamed from graphlcd/logos/B5_PLUS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/B5_PLUS_m.glcd (renamed from graphlcd/logos/B5_PLUS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAHN_TV_l.glcd (renamed from graphlcd/logos/BAHN_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAHN_TV_m.glcd (renamed from graphlcd/logos/BAHN_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAHN_TV_v2_m.glcd (renamed from graphlcd/logos/BAHN_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_l.glcd (renamed from graphlcd/logos/BAYERISCHES_FERNSEHEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_m.glcd (renamed from graphlcd/logos/BAYERISCHES_FERNSEHEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_v2_l.glcd (renamed from graphlcd/logos/BAYERISCHES_FERNSEHEN_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_v2_m.glcd (renamed from graphlcd/logos/BAYERISCHES_FERNSEHEN_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_1_l.glcd (renamed from graphlcd/logos/BAYERN_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_1_m.glcd (renamed from graphlcd/logos/BAYERN_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_1v2_l.glcd (renamed from graphlcd/logos/BAYERN_1v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_1v2_m.glcd (renamed from graphlcd/logos/BAYERN_1v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_2_l.glcd (renamed from graphlcd/logos/BAYERN_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_2v2_l.glcd (renamed from graphlcd/logos/BAYERN_2v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_3_l.glcd (renamed from graphlcd/logos/BAYERN_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_3v2_l.glcd (renamed from graphlcd/logos/BAYERN_3v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_4_KLASSIK_l.glcd (renamed from graphlcd/logos/BAYERN_4_KLASSIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_4_KLASSIK_m.glcd (renamed from graphlcd/logos/BAYERN_4_KLASSIK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_4_KLASSIKv2_l.glcd (renamed from graphlcd/logos/BAYERN_4_KLASSIKv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_4_KLASSIKv2_m.glcd (renamed from graphlcd/logos/BAYERN_4_KLASSIKv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_PLUS_l.glcd (renamed from graphlcd/logos/BAYERN_PLUS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BAYERN_PLUS_m.glcd (renamed from graphlcd/logos/BAYERN_PLUS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BBC_PRIME_l.glcd (renamed from graphlcd/logos/BBC_PRIME_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BBC_PRIME_m.glcd (renamed from graphlcd/logos/BBC_PRIME_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BBC_WORLD_l.glcd (renamed from graphlcd/logos/BBC_WORLD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BBC_WORLD_m.glcd (renamed from graphlcd/logos/BBC_WORLD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BBC_WORLD_v2_l.glcd (renamed from graphlcd/logos/BBC_WORLD_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BBC_WORLD_v2_m.glcd (renamed from graphlcd/logos/BBC_WORLD_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BEATE_UHSE.TV_l.glcd (renamed from graphlcd/logos/BEATE_UHSE.TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BEATE_UHSE.TV_m.glcd (renamed from graphlcd/logos/BEATE_UHSE.TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BEATE_UHSE.TV_v2_l.glcd (renamed from graphlcd/logos/BEATE_UHSE.TV_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BEUR_TV_l.glcd (renamed from graphlcd/logos/BEUR_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BEUR_TV_m.glcd (renamed from graphlcd/logos/BEUR_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BEUR_TVv2_m.glcd (renamed from graphlcd/logos/BEUR_TVv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BIBEL_TV_l.glcd (renamed from graphlcd/logos/BIBEL_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BIBEL_TV_m.glcd (renamed from graphlcd/logos/BIBEL_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BIBEL_TV_v2_m.glcd (renamed from graphlcd/logos/BIBEL_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BLOOMBERG_TV_GERMANY_l.glcd (renamed from graphlcd/logos/BLOOMBERG_TV_GERMANY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BLOOMBERG_TV_GERMANY_m.glcd (renamed from graphlcd/logos/BLOOMBERG_TV_GERMANY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BLOOMBERG_TV_l.glcd (renamed from graphlcd/logos/BLOOMBERG_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BLOOMBERG_TV_m.glcd (renamed from graphlcd/logos/BLOOMBERG_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BREMEN_EINS_l.glcd (renamed from graphlcd/logos/BREMEN_EINS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BREMEN_EINS_m.glcd (renamed from graphlcd/logos/BREMEN_EINS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BREMEN_VIER_l.glcd (renamed from graphlcd/logos/BREMEN_VIER_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BREMEN_VIER_m.glcd (renamed from graphlcd/logos/BREMEN_VIER_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BR_ALPHA_l.glcd (renamed from graphlcd/logos/BR_ALPHA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BR_ALPHA_m.glcd (renamed from graphlcd/logos/BR_ALPHA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BR_ALPHAv2_l.glcd (renamed from graphlcd/logos/BR_ALPHAv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BR_ALPHAv2_m.glcd (renamed from graphlcd/logos/BR_ALPHAv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BR_ALPHAv3_l.glcd (renamed from graphlcd/logos/BR_ALPHAv3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BR_ALPHAv3_m.glcd (renamed from graphlcd/logos/BR_ALPHAv3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BR_KLASSIK_l.glcd (renamed from graphlcd/logos/BR_KLASSIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BR_VERKEHR_l.glcd (renamed from graphlcd/logos/BR_VERKEHR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BR_VERKEHR_m.glcd (renamed from graphlcd/logos/BR_VERKEHR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BTV4_l.glcd (renamed from graphlcd/logos/BTV4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BTV4_m.glcd (renamed from graphlcd/logos/BTV4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BTV4_v2_l.glcd (renamed from graphlcd/logos/BTV4_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BTV_l.glcd (renamed from graphlcd/logos/BTV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BTV_m.glcd (renamed from graphlcd/logos/BTV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BVN_l.glcd (renamed from graphlcd/logos/BVN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/BVN_m.glcd (renamed from graphlcd/logos/BVN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/BVN_v2_m.glcd (renamed from graphlcd/logos/BVN_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CADENA_DIAL_l.glcd (renamed from graphlcd/logos/CADENA_DIAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CADENA_DIAL_m.glcd (renamed from graphlcd/logos/CADENA_DIAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL+ ...30_m.glcd (renamed from graphlcd/logos/CANAL+ ...30_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL+_m.glcd (renamed from graphlcd/logos/CANAL+_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_24_HORAS_l.glcd (renamed from graphlcd/logos/CANAL_24_HORAS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_24_HORAS_m.glcd (renamed from graphlcd/logos/CANAL_24_HORAS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_CANARIAS_l.glcd (renamed from graphlcd/logos/CANAL_CANARIAS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_CANARIAS_m.glcd (renamed from graphlcd/logos/CANAL_CANARIAS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_CANARIAS_v2_m.glcd (renamed from graphlcd/logos/CANAL_CANARIAS_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_CLUB_l.glcd (renamed from graphlcd/logos/CANAL_CLUB_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_CLUB_m.glcd (renamed from graphlcd/logos/CANAL_CLUB_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CANAL_CLUB_v2_m.glcd (renamed from graphlcd/logos/CANAL_CLUB_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CARTOON_NETWORK_l.glcd (renamed from graphlcd/logos/CARTOON_NETWORK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CARTOON_NETWORK_m.glcd (renamed from graphlcd/logos/CARTOON_NETWORK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CFN_RFC_l.glcd (renamed from graphlcd/logos/CFN_RFC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CFN_RFC_m.glcd (renamed from graphlcd/logos/CFN_RFC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CHANNEL_21_l.glcd (renamed from graphlcd/logos/CHANNEL_21_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CHANNEL_21_m.glcd (renamed from graphlcd/logos/CHANNEL_21_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CHERIE_FM_l.glcd (renamed from graphlcd/logos/CHERIE_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CHERIE_FM_m.glcd (renamed from graphlcd/logos/CHERIE_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CHRONOS_l.glcd (renamed from graphlcd/logos/CHRONOS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CHRONOS_m.glcd (renamed from graphlcd/logos/CHRONOS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CINE_BOX_m.glcd (renamed from graphlcd/logos/CINE_BOX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CLASSICA_l.glcd (renamed from graphlcd/logos/CLASSICA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CLASSICA_m.glcd (renamed from graphlcd/logos/CLASSICA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CLUB_TELEACHAT_l.glcd (renamed from graphlcd/logos/CLUB_TELEACHAT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CLUB_TELEACHAT_m.glcd (renamed from graphlcd/logos/CLUB_TELEACHAT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CLUB_TELEACHAT_v2_m.glcd (renamed from graphlcd/logos/CLUB_TELEACHAT_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CNBC_EUROPE_l.glcd (renamed from graphlcd/logos/CNBC_EUROPE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CNBC_EUROPE_m.glcd (renamed from graphlcd/logos/CNBC_EUROPE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CNN+_m.glcd (renamed from graphlcd/logos/CNN+_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CNN_INT_l.glcd (renamed from graphlcd/logos/CNN_INT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CNN_INT_m.glcd (renamed from graphlcd/logos/CNN_INT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/COMEDY_CENTRAL_l.glcd (renamed from graphlcd/logos/COMEDY_CENTRAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/COMEDY_CENTRAL_m.glcd (renamed from graphlcd/logos/COMEDY_CENTRAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/CONT.RA_l.glcd (renamed from graphlcd/logos/CONT.RA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CONTACT_FM_l.glcd (renamed from graphlcd/logos/CONTACT_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/CONTACT_FM_m.glcd (renamed from graphlcd/logos/CONTACT_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DAS_DING_l.glcd (renamed from graphlcd/logos/DAS_DING_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_DING_m.glcd (renamed from graphlcd/logos/DAS_DING_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DAS_DINGv2_l.glcd (renamed from graphlcd/logos/DAS_DINGv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTE_HD_l.glcd (renamed from graphlcd/logos/DAS_ERSTE_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTE_HD_m.glcd (renamed from graphlcd/logos/DAS_ERSTE_HD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTE_HDv2_l.glcd (renamed from graphlcd/logos/DAS_ERSTE_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTE_HDv2_m.glcd (renamed from graphlcd/logos/DAS_ERSTE_HDv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTE_l.glcd (renamed from graphlcd/logos/DAS_ERSTE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTE_m.glcd (renamed from graphlcd/logos/DAS_ERSTE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DAS_ERSTEv2_l.glcd (renamed from graphlcd/logos/DAS_ERSTEv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_VIERTE_l.glcd (renamed from graphlcd/logos/DAS_VIERTE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DAS_VIERTE_m.glcd (renamed from graphlcd/logos/DAS_VIERTE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DAS_VIERTEv2_l.glcd (renamed from graphlcd/logos/DAS_VIERTEv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_LOUNGE_l.glcd (renamed from graphlcd/logos/DELUXE_LOUNGE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_LOUNGE_m.glcd (renamed from graphlcd/logos/DELUXE_LOUNGE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_MUSIC_l.glcd (renamed from graphlcd/logos/DELUXE_MUSIC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_MUSIC_m.glcd (renamed from graphlcd/logos/DELUXE_MUSIC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_MUSICv2_l.glcd (renamed from graphlcd/logos/DELUXE_MUSICv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_RADIO_l.glcd (renamed from graphlcd/logos/DELUXE_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_RADIO_m.glcd (renamed from graphlcd/logos/DELUXE_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DELUXE_RADIOv2_l.glcd (renamed from graphlcd/logos/DELUXE_RADIOv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_l.glcd (renamed from graphlcd/logos/DEUTSCHLANDFUNK_KOELN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_m.glcd (renamed from graphlcd/logos/DEUTSCHLANDFUNK_KOELN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_v2_m.glcd (renamed from graphlcd/logos/DEUTSCHLANDFUNK_KOELN_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_l.glcd (renamed from graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_m.glcd (renamed from graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_v2_m.glcd (renamed from graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DISCOVERY_CHANNEL_l.glcd (renamed from graphlcd/logos/DISCOVERY_CHANNEL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISCOVERY_CHANNEL_m.glcd (renamed from graphlcd/logos/DISCOVERY_CHANNEL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DISCOVERY_CHANNELv2_l.glcd (renamed from graphlcd/logos/DISCOVERY_CHANNELv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISCOVERY_CHANNELv3_l.glcd (renamed from graphlcd/logos/DISCOVERY_CHANNELv3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISCOVERY_HD_l.glcd (renamed from graphlcd/logos/DISCOVERY_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_CHANNEL_l.glcd (renamed from graphlcd/logos/DISNEY_CHANNEL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_CHANNEL_m.glcd (renamed from graphlcd/logos/DISNEY_CHANNEL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_CHANNELv2_l.glcd (renamed from graphlcd/logos/DISNEY_CHANNELv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_CHANNELv3_l.glcd (renamed from graphlcd/logos/DISNEY_CHANNELv3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_CINEMAGIC_HD_l.glcd (renamed from graphlcd/logos/DISNEY_CINEMAGIC_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_CINEMAGIC_l.glcd (renamed from graphlcd/logos/DISNEY_CINEMAGIC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_PLAYHOUSE_l.glcd (renamed from graphlcd/logos/DISNEY_PLAYHOUSE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_TOON_+1_l.glcd (renamed from graphlcd/logos/DISNEY_TOON_+1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_TOON_l.glcd (renamed from graphlcd/logos/DISNEY_TOON_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DISNEY_XD_l.glcd (renamed from graphlcd/logos/DISNEY_XD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DKULTUR_l.glcd (renamed from graphlcd/logos/DKULTUR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DKULTUR_m.glcd (renamed from graphlcd/logos/DKULTUR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DMAX_l.glcd (renamed from graphlcd/logos/DMAX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DMAX_m.glcd (renamed from graphlcd/logos/DMAX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DOK-DEB_l.glcd (renamed from graphlcd/logos/DOK-DEB_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DOK-DEb_m.glcd (renamed from graphlcd/logos/DOK-DEb_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DOMRADIO_l.glcd (renamed from graphlcd/logos/DOMRADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DOMRADIO_m.glcd (renamed from graphlcd/logos/DOMRADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DSF_l.glcd (renamed from graphlcd/logos/DSF_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DSF_m.glcd (renamed from graphlcd/logos/DSF_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DW_1_l.glcd (renamed from graphlcd/logos/DW_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DW_1_m.glcd (renamed from graphlcd/logos/DW_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DW_4_l.glcd (renamed from graphlcd/logos/DW_4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DW_4_m.glcd (renamed from graphlcd/logos/DW_4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DW_RADIO_M_l.glcd (renamed from graphlcd/logos/DW_RADIO_M_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DW_RADIO_M_m.glcd (renamed from graphlcd/logos/DW_RADIO_M_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DW_RADIO_l.glcd (renamed from graphlcd/logos/DW_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DW_RADIO_m.glcd (renamed from graphlcd/logos/DW_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/DW_TV_l.glcd (renamed from graphlcd/logos/DW_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/DW_TV_m.glcd (renamed from graphlcd/logos/DW_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EGO_FM_l.glcd (renamed from graphlcd/logos/EGO_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EGO_FM_m.glcd (renamed from graphlcd/logos/EGO_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_EXTRA_l.glcd (renamed from graphlcd/logos/EINS_EXTRA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_EXTRA_m.glcd (renamed from graphlcd/logos/EINS_EXTRA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_EXTRAv2_l.glcd (renamed from graphlcd/logos/EINS_EXTRAv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_EXTRAv2_m.glcd (renamed from graphlcd/logos/EINS_EXTRAv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_EXTRAv3_l.glcd (renamed from graphlcd/logos/EINS_EXTRAv3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_EXTRAv4_l.glcd (renamed from graphlcd/logos/EINS_EXTRAv4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVAL_HD_l.glcd (renamed from graphlcd/logos/EINS_FESTIVAL_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVAL_HD_m.glcd (renamed from graphlcd/logos/EINS_FESTIVAL_HD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVAL_HDv2_l.glcd (renamed from graphlcd/logos/EINS_FESTIVAL_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVAL_l.glcd (renamed from graphlcd/logos/EINS_FESTIVAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVAL_m.glcd (renamed from graphlcd/logos/EINS_FESTIVAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVALv2_l .glcd (renamed from graphlcd/logos/EINS_FESTIVALv2_l .glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVALv2_l.glcd (renamed from graphlcd/logos/EINS_FESTIVALv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVALv2_m.glcd (renamed from graphlcd/logos/EINS_FESTIVALv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_FESTIVALv3_l.glcd (renamed from graphlcd/logos/EINS_FESTIVALv3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_MUXX_l.glcd (renamed from graphlcd/logos/EINS_MUXX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_MUXX_m.glcd (renamed from graphlcd/logos/EINS_MUXX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_MUXX_v2_l.glcd (renamed from graphlcd/logos/EINS_MUXX_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_PLUS_l.glcd (renamed from graphlcd/logos/EINS_PLUS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EINS_PLUS_m.glcd (renamed from graphlcd/logos/EINS_PLUS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EINS_PLUSv2_l.glcd (renamed from graphlcd/logos/EINS_PLUSv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ERF_RADIO_l.glcd (renamed from graphlcd/logos/ERF_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ERF_RADIO_m.glcd (renamed from graphlcd/logos/ERF_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ESC1_EGYPT_l.glcd (renamed from graphlcd/logos/ESC1_EGYPT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ESPN_CLASSIC_SPORT_l.glcd (renamed from graphlcd/logos/ESPN_CLASSIC_SPORT_l.glcd)bin432 -> 432 bytes
-rw-r--r--graphlcd/logos/channels/EURONEWS_l.glcd (renamed from graphlcd/logos/EURONEWS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EURONEWS_m.glcd (renamed from graphlcd/logos/EURONEWS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EUROPE_2_l.glcd (renamed from graphlcd/logos/EUROPE_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EUROPE_2_m.glcd (renamed from graphlcd/logos/EUROPE_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EUROSPORT_HD_l.glcd (renamed from graphlcd/logos/EUROSPORT_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EUROSPORT_l.glcd (renamed from graphlcd/logos/EUROSPORT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EUROSPORT_m.glcd (renamed from graphlcd/logos/EUROSPORT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/EXTRA 1_l.glcd (renamed from graphlcd/logos/EXTRA 1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/EXTREME SPORTS_l.glcd (renamed from graphlcd/logos/EXTREME SPORTS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/E_ENTERTAINMENT_l.glcd (renamed from graphlcd/logos/E_ENTERTAINMENT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FASHION_TV_l.glcd (renamed from graphlcd/logos/FASHION_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FASHION_TV_m.glcd (renamed from graphlcd/logos/FASHION_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FASHION_TV_v2_m.glcd (renamed from graphlcd/logos/FASHION_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FESTIVAL_l.glcd (renamed from graphlcd/logos/FESTIVAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FESTIVAL_m.glcd (renamed from graphlcd/logos/FESTIVAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FFN_COMEDY_l.glcd (renamed from graphlcd/logos/FFN_COMEDY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FFN_COMEDY_m.glcd (renamed from graphlcd/logos/FFN_COMEDY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FFN_DIGITAL_l.glcd (renamed from graphlcd/logos/FFN_DIGITAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FFN_DIGITAL_m.glcd (renamed from graphlcd/logos/FFN_DIGITAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FM4_l.glcd (renamed from graphlcd/logos/FM4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FM4_m.glcd (renamed from graphlcd/logos/FM4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FOX_KIDS_l.glcd (renamed from graphlcd/logos/FOX_KIDS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FOX_KIDS_m.glcd (renamed from graphlcd/logos/FOX_KIDS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FOX_KIDSv2_l.glcd (renamed from graphlcd/logos/FOX_KIDSv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FOX_KIDSv2_m.glcd (renamed from graphlcd/logos/FOX_KIDSv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FOX_NEWS_m.glcd (renamed from graphlcd/logos/FOX_NEWS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FOX_l.glcd (renamed from graphlcd/logos/FOX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FOX_m.glcd (renamed from graphlcd/logos/FOX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_24_l.glcd (renamed from graphlcd/logos/FRANCE_24_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_24_m.glcd (renamed from graphlcd/logos/FRANCE_24_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_2_l.glcd (renamed from graphlcd/logos/FRANCE_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_2_m.glcd (renamed from graphlcd/logos/FRANCE_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_3_l.glcd (renamed from graphlcd/logos/FRANCE_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_3_m.glcd (renamed from graphlcd/logos/FRANCE_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_5_l.glcd (renamed from graphlcd/logos/FRANCE_5_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FRANCE_5_m.glcd (renamed from graphlcd/logos/FRANCE_5_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FRANKEN_SAT_l.glcd (renamed from graphlcd/logos/FRANKEN_SAT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FRANKEN_SAT_m.glcd (renamed from graphlcd/logos/FRANKEN_SAT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FREE_X_TV_l.glcd (renamed from graphlcd/logos/FREE_X_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FREE_X_TV_m.glcd (renamed from graphlcd/logos/FREE_X_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/FRITZ_l.glcd (renamed from graphlcd/logos/FRITZ_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/FRITZ_m.glcd (renamed from graphlcd/logos/FRITZ_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/GAMES_TV_l.glcd (renamed from graphlcd/logos/GAMES_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/GAMES_TV_m.glcd (renamed from graphlcd/logos/GAMES_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/GOLDSTAR_TV_l.glcd (renamed from graphlcd/logos/GOLDSTAR_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/GOLDSTAR_TV_m.glcd (renamed from graphlcd/logos/GOLDSTAR_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/GOLDSTAR_TVv2_l.glcd (renamed from graphlcd/logos/GOLDSTAR_TVv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/GOLDSTAR_TVv2_m.glcd (renamed from graphlcd/logos/GOLDSTAR_TVv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/GO_TV_l.glcd (renamed from graphlcd/logos/GO_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/GO_TV_m.glcd (renamed from graphlcd/logos/GO_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/GO_TVv2_l.glcd (renamed from graphlcd/logos/GO_TVv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/GUTE_LAUNE_TV_l.glcd (renamed from graphlcd/logos/GUTE_LAUNE_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/GUTE_LAUNE_TV_m.glcd (renamed from graphlcd/logos/GUTE_LAUNE_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HALLMARK_l.glcd (renamed from graphlcd/logos/HALLMARK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HALLMARK_m.glcd (renamed from graphlcd/logos/HALLMARK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HARMONY_FM_l.glcd (renamed from graphlcd/logos/HARMONY_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HARMONY_FM_m.glcd (renamed from graphlcd/logos/HARMONY_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HARMONY_FM_v2_m.glcd (renamed from graphlcd/logos/HARMONY_FM_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HARMONY_FMv2_m.glcd (renamed from graphlcd/logos/HARMONY_FMv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HD_TEST_ARD_ZDF_l.glcd (renamed from graphlcd/logos/HD_TEST_ARD_ZDF_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HD_TEST_ARD_ZDF_m.glcd (renamed from graphlcd/logos/HD_TEST_ARD_ZDF_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HEIMATKANAL_l.glcd (renamed from graphlcd/logos/HEIMATKANAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HEIMATKANAL_m.glcd (renamed from graphlcd/logos/HEIMATKANAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HEIMATKANAL_v2_l.glcd (renamed from graphlcd/logos/HEIMATKANAL_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HEIMATKANALv2_l.glcd (renamed from graphlcd/logos/HEIMATKANALv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HESSEN_FERNSEHEN_l.glcd (renamed from graphlcd/logos/HESSEN_FERNSEHEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HESSEN_FERNSEHEN_m.glcd (renamed from graphlcd/logos/HESSEN_FERNSEHEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HESSEN_FERNSEHEN_v2_l.glcd (renamed from graphlcd/logos/HESSEN_FERNSEHEN_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HISTOIRE_m.glcd (renamed from graphlcd/logos/HISTOIRE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HISTORY_CHANNEL_l.glcd (renamed from graphlcd/logos/HISTORY_CHANNEL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HISTORY_HD_l.glcd (renamed from graphlcd/logos/HISTORY_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HITRADIO_FFH_l.glcd (renamed from graphlcd/logos/HITRADIO_FFH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HITRADIO_FFH_m.glcd (renamed from graphlcd/logos/HITRADIO_FFH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HITRADIO_OE3_l.glcd (renamed from graphlcd/logos/HITRADIO_OE3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HITRADIO_OE3_m.glcd (renamed from graphlcd/logos/HITRADIO_OE3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HOERZU_DIGITAL_l.glcd (renamed from graphlcd/logos/HOERZU_DIGITAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HOERZU_DIGITAL_m.glcd (renamed from graphlcd/logos/HOERZU_DIGITAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HOPE_CHANNEL_RADIO_l.glcd (renamed from graphlcd/logos/HOPE_CHANNEL_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HOPE_CHANNEL_RADIO_m.glcd (renamed from graphlcd/logos/HOPE_CHANNEL_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_1_l.glcd (renamed from graphlcd/logos/HR_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_1_m.glcd (renamed from graphlcd/logos/HR_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_2_l.glcd (renamed from graphlcd/logos/HR_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_2_m.glcd (renamed from graphlcd/logos/HR_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_3_l.glcd (renamed from graphlcd/logos/HR_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_3_m.glcd (renamed from graphlcd/logos/HR_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_4_l.glcd (renamed from graphlcd/logos/HR_4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_4_m.glcd (renamed from graphlcd/logos/HR_4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_CHRONOS_l.glcd (renamed from graphlcd/logos/HR_CHRONOS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_INFO_PLUS_l.glcd (renamed from graphlcd/logos/HR_INFO_PLUS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_INFO_PLUS_m.glcd (renamed from graphlcd/logos/HR_INFO_PLUS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_INFO_l.glcd (renamed from graphlcd/logos/HR_INFO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_INFO_m.glcd (renamed from graphlcd/logos/HR_INFO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_KLASSIK_l.glcd (renamed from graphlcd/logos/HR_KLASSIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_KLASSIK_m.glcd (renamed from graphlcd/logos/HR_KLASSIK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_KLASSIKv2_m.glcd (renamed from graphlcd/logos/HR_KLASSIKv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_SKYLINE_l.glcd (renamed from graphlcd/logos/HR_SKYLINE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HR_SKYLINE_m.glcd (renamed from graphlcd/logos/HR_SKYLINE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_SKYLINEv2_m.glcd (renamed from graphlcd/logos/HR_SKYLINEv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HR_l.glcd (renamed from graphlcd/logos/HR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HSE24_EXTRA_l.glcd (renamed from graphlcd/logos/HSE24_EXTRA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HSE24_EXTRA_m.glcd (renamed from graphlcd/logos/HSE24_EXTRA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HSE24_l.glcd (renamed from graphlcd/logos/HSE24_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/HSE24_m.glcd (renamed from graphlcd/logos/HSE24_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/HSE24v2_m.glcd (renamed from graphlcd/logos/HSE24v2_m.glcd)bin123 -> 123 bytes
-rw-r--r--graphlcd/logos/channels/INFORADIO_l.glcd (renamed from graphlcd/logos/INFORADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/INFORADIO_m.glcd (renamed from graphlcd/logos/INFORADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/INSELRADIO_l.glcd (renamed from graphlcd/logos/INSELRADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/INSELRADIO_m.glcd (renamed from graphlcd/logos/INSELRADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/I_MUSIC_TV_l.glcd (renamed from graphlcd/logos/I_MUSIC_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/I_MUSIC_TV_m.glcd (renamed from graphlcd/logos/I_MUSIC_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/I_MUSIC_l.glcd (renamed from graphlcd/logos/I_MUSIC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/I_MUSIC_m.glcd (renamed from graphlcd/logos/I_MUSIC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/JML_SHOP_l.glcd (renamed from graphlcd/logos/JML_SHOP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/JML_SHOP_m.glcd (renamed from graphlcd/logos/JML_SHOP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/JUMP_l.glcd (renamed from graphlcd/logos/JUMP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/JUMP_m.glcd (renamed from graphlcd/logos/JUMP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/JUNIOR_l.glcd (renamed from graphlcd/logos/JUNIOR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/JUNIOR_m.glcd (renamed from graphlcd/logos/JUNIOR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/JUNIOR_v2_l.glcd (renamed from graphlcd/logos/JUNIOR_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/JUWELO_TV_l.glcd (renamed from graphlcd/logos/JUWELO_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/JUWELO_TV_m.glcd (renamed from graphlcd/logos/JUWELO_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_AUSTRIA_l.glcd (renamed from graphlcd/logos/KABEL_1_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_AUSTRIA_m.glcd (renamed from graphlcd/logos/KABEL_1_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_HD_l.glcd (renamed from graphlcd/logos/KABEL_1_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_SCHWEIZ_l.glcd (renamed from graphlcd/logos/KABEL_1_SCHWEIZ_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_SCHWEIZ_m.glcd (renamed from graphlcd/logos/KABEL_1_SCHWEIZ_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_l.glcd (renamed from graphlcd/logos/KABEL_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1_m.glcd (renamed from graphlcd/logos/KABEL_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1v2_l.glcd (renamed from graphlcd/logos/KABEL_1v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KABEL_1v2_m.glcd (renamed from graphlcd/logos/KABEL_1v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KIKA_l.glcd (renamed from graphlcd/logos/KIKA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KIKA_m.glcd (renamed from graphlcd/logos/KIKA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KINK_FM_l.glcd (renamed from graphlcd/logos/KINK_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KINK_FM_m.glcd (renamed from graphlcd/logos/KINK_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KINOWELT_l.glcd (renamed from graphlcd/logos/KINOWELT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KINOWELT_m.glcd (renamed from graphlcd/logos/KINOWELT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KIRAKA_l.glcd (renamed from graphlcd/logos/KIRAKA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KIRAKA_m.glcd (renamed from graphlcd/logos/KIRAKA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KLASSIK_RADIO_l.glcd (renamed from graphlcd/logos/KLASSIK_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KLASSIK_RADIO_m.glcd (renamed from graphlcd/logos/KLASSIK_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KLASSIK_RADIOv2_l.glcd (renamed from graphlcd/logos/KLASSIK_RADIOv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KRIMICO_l.glcd (renamed from graphlcd/logos/KRIMICO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KRIMICO_m.glcd (renamed from graphlcd/logos/KRIMICO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KTO_l.glcd (renamed from graphlcd/logos/KTO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KTO_m.glcd (renamed from graphlcd/logos/KTO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/KULTURRADIO_l.glcd (renamed from graphlcd/logos/KULTURRADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/KULTURRADIO_m.glcd (renamed from graphlcd/logos/KULTURRADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/K_TV_l.glcd (renamed from graphlcd/logos/K_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/K_TV_m.glcd (renamed from graphlcd/logos/K_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/K_TV_v2_m.glcd (renamed from graphlcd/logos/K_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/L1MBURG_l.glcd (renamed from graphlcd/logos/L1MBURG_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/L1MBURG_m.glcd (renamed from graphlcd/logos/L1MBURG_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/LCI_l.glcd (renamed from graphlcd/logos/LCI_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/LCI_m.glcd (renamed from graphlcd/logos/LCI_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/LCP_l.glcd (renamed from graphlcd/logos/LCP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/LCP_m.glcd (renamed from graphlcd/logos/LCP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/LIBERTY_TV_l.glcd (renamed from graphlcd/logos/LIBERTY_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/LIBERTY_TV_m.glcd (renamed from graphlcd/logos/LIBERTY_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/LIBERTY_TV_v2_m.glcd (renamed from graphlcd/logos/LIBERTY_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/LIVE_ 1_m.glcd (renamed from graphlcd/logos/LIVE_ 1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MATCH TV_m.glcd (renamed from graphlcd/logos/MATCH TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR1_SACHSEN_l.glcd (renamed from graphlcd/logos/MDR1_SACHSEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR1_SACHSEN_m.glcd (renamed from graphlcd/logos/MDR1_SACHSEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR1_SA_ANHALT_l.glcd (renamed from graphlcd/logos/MDR1_SA_ANHALT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR1_SA_ANHALT_m.glcd (renamed from graphlcd/logos/MDR1_SA_ANHALT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR1_THUERINGEN_l.glcd (renamed from graphlcd/logos/MDR1_THUERINGEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR1_THUERINGEN_m.glcd (renamed from graphlcd/logos/MDR1_THUERINGEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_SA_l.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_SA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_SA_m.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_SA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_S_l.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_S_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_S_m.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_S_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_TH_l.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_TH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_TH_m.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_TH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_l.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FERNSEHEN_m.glcd (renamed from graphlcd/logos/MDR_FERNSEHEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FIGARO_l.glcd (renamed from graphlcd/logos/MDR_FIGARO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_FIGARO_m.glcd (renamed from graphlcd/logos/MDR_FIGARO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_INFO_l.glcd (renamed from graphlcd/logos/MDR_INFO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_INFO_m.glcd (renamed from graphlcd/logos/MDR_INFO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_KLASSIK_l.glcd (renamed from graphlcd/logos/MDR_KLASSIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_KLASSIK_m.glcd (renamed from graphlcd/logos/MDR_KLASSIK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_SPUTNIK_l.glcd (renamed from graphlcd/logos/MDR_SPUTNIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MDR_SPUTNIK_m.glcd (renamed from graphlcd/logos/MDR_SPUTNIK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MDR_l.glcd (renamed from graphlcd/logos/MDR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MEDIA _TROPICAL_l.glcd (renamed from graphlcd/logos/MEDIA _TROPICAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MEDIA_TROPICAL_m.glcd (renamed from graphlcd/logos/MEDIA_TROPICAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MEIN_TV_SHOP_l.glcd (renamed from graphlcd/logos/MEIN_TV_SHOP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MEIN_TV_SHOP_m.glcd (renamed from graphlcd/logos/MEIN_TV_SHOP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MGM_l.glcd (renamed from graphlcd/logos/MGM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MGM_lv2.glcd (renamed from graphlcd/logos/MGM_lv2.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MGM_m.glcd (renamed from graphlcd/logos/MGM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MOTORS_TV_l.glcd (renamed from graphlcd/logos/MOTORS_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MOTORS_TV_m.glcd (renamed from graphlcd/logos/MOTORS_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MOTORS_TV_v2_m.glcd (renamed from graphlcd/logos/MOTORS_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MOTORVISION_TV_l.glcd (renamed from graphlcd/logos/MOTORVISION_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_2_POP_CHANNEL_l.glcd (renamed from graphlcd/logos/MTV_2_POP_CHANNEL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_2_POP_CHANNEL_m.glcd (renamed from graphlcd/logos/MTV_2_POP_CHANNEL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_2_l.glcd (renamed from graphlcd/logos/MTV_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_AUSTRIA_l.glcd (renamed from graphlcd/logos/MTV_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_AUSTRIA_m.glcd (renamed from graphlcd/logos/MTV_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_BASE_l.glcd (renamed from graphlcd/logos/MTV_BASE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_BASE_m.glcd (renamed from graphlcd/logos/MTV_BASE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_CENTRAL_l.glcd (renamed from graphlcd/logos/MTV_CENTRAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_CENTRAL_m.glcd (renamed from graphlcd/logos/MTV_CENTRAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_CENTRALv2_m.glcd (renamed from graphlcd/logos/MTV_CENTRALv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_DANCE_l.glcd (renamed from graphlcd/logos/MTV_DANCE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_F_l.glcd (renamed from graphlcd/logos/MTV_F_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_GERMANY_l.glcd (renamed from graphlcd/logos/MTV_GERMANY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_GERMANY_m.glcd (renamed from graphlcd/logos/MTV_GERMANY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_HITS_l.glcd (renamed from graphlcd/logos/MTV_HITS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_HITS_m.glcd (renamed from graphlcd/logos/MTV_HITS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MTV_l.glcd (renamed from graphlcd/logos/MTV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/MTV_m.glcd (renamed from graphlcd/logos/MTV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/MULTIVISION_m.glcd (renamed from graphlcd/logos/MULTIVISION_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/N24_l.glcd (renamed from graphlcd/logos/N24_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/N24_m.glcd (renamed from graphlcd/logos/N24_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/N24_v2_l.glcd (renamed from graphlcd/logos/N24_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NASN_l.glcd (renamed from graphlcd/logos/NASN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NASN_m.glcd (renamed from graphlcd/logos/NASN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NATIONAL_GEOGRAPHIC_HD_l.glcd (renamed from graphlcd/logos/NATIONAL_GEOGRAPHIC_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NATIONAL_GEOGRAPHIC_l.glcd (renamed from graphlcd/logos/NATIONAL_GEOGRAPHIC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NATIONAL_GEOGRAPHIC_m.glcd (renamed from graphlcd/logos/NATIONAL_GEOGRAPHIC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NATIONAL_GEOGRAPHICv2_l .glcd (renamed from graphlcd/logos/NATIONAL_GEOGRAPHICv2_l .glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NAT_GEO_WILD_l.glcd (renamed from graphlcd/logos/NAT_GEO_WILD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NBC_l.glcd (renamed from graphlcd/logos/NBC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NBC_m.glcd (renamed from graphlcd/logos/NBC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_1_NIEDERS_l.glcd (renamed from graphlcd/logos/NDR_1_NIEDERS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_1_NIEDERS_m.glcd (renamed from graphlcd/logos/NDR_1_NIEDERS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_1_RADIO_MV_l.glcd (renamed from graphlcd/logos/NDR_1_RADIO_MV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_1_RADIO_MV_m.glcd (renamed from graphlcd/logos/NDR_1_RADIO_MV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_1_WELLE_NORD_l.glcd (renamed from graphlcd/logos/NDR_1_WELLE_NORD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_1_WELLE_NORD_m.glcd (renamed from graphlcd/logos/NDR_1_WELLE_NORD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_2_l.glcd (renamed from graphlcd/logos/NDR_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_2_m.glcd (renamed from graphlcd/logos/NDR_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_90_3_l.glcd (renamed from graphlcd/logos/NDR_90_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_90_3_m.glcd (renamed from graphlcd/logos/NDR_90_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_HH_l.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_HH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_HH_m.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_HH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_MV_l.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_MV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_MV_m.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_MV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_NDS_l.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_NDS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_NDS_m.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_NDS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_SH_l.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_SH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_SH_m.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_SH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_l.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_FERNSEHEN_m.glcd (renamed from graphlcd/logos/NDR_FERNSEHEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_INFO_SPEZIAL_l.glcd (renamed from graphlcd/logos/NDR_INFO_SPEZIAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_INFO_SPEZIAL_m.glcd (renamed from graphlcd/logos/NDR_INFO_SPEZIAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_INFO_l.glcd (renamed from graphlcd/logos/NDR_INFO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_INFO_m.glcd (renamed from graphlcd/logos/NDR_INFO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_KULTUR_l.glcd (renamed from graphlcd/logos/NDR_KULTUR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NDR_KULTUR_m.glcd (renamed from graphlcd/logos/NDR_KULTUR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NDR_l.glcd (renamed from graphlcd/logos/NDR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ND_1_WELLE_NORD_l.glcd (renamed from graphlcd/logos/ND_1_WELLE_NORD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ND_1_WELLE_NORD_m.glcd (renamed from graphlcd/logos/ND_1_WELLE_NORD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NED_1_l.glcd (renamed from graphlcd/logos/NED_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NED_1_m.glcd (renamed from graphlcd/logos/NED_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NED_2_l.glcd (renamed from graphlcd/logos/NED_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NED_2_m.glcd (renamed from graphlcd/logos/NED_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NED_3_l.glcd (renamed from graphlcd/logos/NED_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NED_3_m.glcd (renamed from graphlcd/logos/NED_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NET_5_l.glcd (renamed from graphlcd/logos/NET_5_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NET_5_m.glcd (renamed from graphlcd/logos/NET_5_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NEUN_LIVE_l.glcd (renamed from graphlcd/logos/NEUN_LIVE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NEUN_LIVE_m.glcd (renamed from graphlcd/logos/NEUN_LIVE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NEUN_LIVE_v2_m.glcd (renamed from graphlcd/logos/NEUN_LIVE_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NICKELODEON_l.glcd (renamed from graphlcd/logos/NICKELODEON_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NICKELODEON_m.glcd (renamed from graphlcd/logos/NICKELODEON_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NICK_l.glcd (renamed from graphlcd/logos/NICK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NORDWEST_RADIO2_l.glcd (renamed from graphlcd/logos/NORDWEST_RADIO2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NORDWEST_RADIO_l.glcd (renamed from graphlcd/logos/NORDWEST_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NORDWEST_RADIO_m.glcd (renamed from graphlcd/logos/NORDWEST_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NORDWEST_RADIOv2_m.glcd (renamed from graphlcd/logos/NORDWEST_RADIOv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NRJ_HITS_l.glcd (renamed from graphlcd/logos/NRJ_HITS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NRJ_l.glcd (renamed from graphlcd/logos/NRJ_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NRJ_m.glcd (renamed from graphlcd/logos/NRJ_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NTV_l.glcd (renamed from graphlcd/logos/NTV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/NTV_m.glcd (renamed from graphlcd/logos/NTV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/NTV_v2_m.glcd (renamed from graphlcd/logos/NTV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/N_JOY_l.glcd (renamed from graphlcd/logos/N_JOY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/N_JOY_m.glcd (renamed from graphlcd/logos/N_JOY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/N_JOYv2_l.glcd (renamed from graphlcd/logos/N_JOYv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/OESTERREICH_1_l.glcd (renamed from graphlcd/logos/OESTERREICH_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/OESTERREICH_1_m.glcd (renamed from graphlcd/logos/OESTERREICH_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/OESTERREICH_3_l.glcd (renamed from graphlcd/logos/OESTERREICH_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/OESTERREICH_3_m.glcd (renamed from graphlcd/logos/OESTERREICH_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/OLDIESTAR_l.glcd (renamed from graphlcd/logos/OLDIESTAR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/OLDIESTAR_m.glcd (renamed from graphlcd/logos/OLDIESTAR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ONTV_l.glcd (renamed from graphlcd/logos/ONTV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ONTV_m.glcd (renamed from graphlcd/logos/ONTV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ONTV_v2_m.glcd (renamed from graphlcd/logos/ONTV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ONYX_TV_l.glcd (renamed from graphlcd/logos/ONYX_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ONYX_TV_m.glcd (renamed from graphlcd/logos/ONYX_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ON_3_RADIO_l.glcd (renamed from graphlcd/logos/ON_3_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ON_3_RADIO_m.glcd (renamed from graphlcd/logos/ON_3_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF2_RADIO_l.glcd (renamed from graphlcd/logos/ORF2_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF2_RADIO_m.glcd (renamed from graphlcd/logos/ORF2_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_1_HD_l.glcd (renamed from graphlcd/logos/ORF_1_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_1_l.glcd (renamed from graphlcd/logos/ORF_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_1_m.glcd (renamed from graphlcd/logos/ORF_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_ BURGENLAND_l.glcd (renamed from graphlcd/logos/ORF_2_ BURGENLAND_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_ BURGENLAND_m.glcd (renamed from graphlcd/logos/ORF_2_ BURGENLAND_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_HD_l.glcd (renamed from graphlcd/logos/ORF_2_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_KAERNTEN_l.glcd (renamed from graphlcd/logos/ORF_2_KAERNTEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_KAERNTEN_m.glcd (renamed from graphlcd/logos/ORF_2_KAERNTEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_NIEDEROESTERREICH_l.glcd (renamed from graphlcd/logos/ORF_2_NIEDEROESTERREICH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_NIEDEROESTERREICH_m.glcd (renamed from graphlcd/logos/ORF_2_NIEDEROESTERREICH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_OBEROESTERREICH_l.glcd (renamed from graphlcd/logos/ORF_2_OBEROESTERREICH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_OBEROESTERREICH_m.glcd (renamed from graphlcd/logos/ORF_2_OBEROESTERREICH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_SALZBURG_l.glcd (renamed from graphlcd/logos/ORF_2_SALZBURG_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_SALZBURG_m.glcd (renamed from graphlcd/logos/ORF_2_SALZBURG_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_STEIERMARK_l.glcd (renamed from graphlcd/logos/ORF_2_STEIERMARK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_STEIERMARK_m.glcd (renamed from graphlcd/logos/ORF_2_STEIERMARK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_TIROL_l.glcd (renamed from graphlcd/logos/ORF_2_TIROL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_TIROL_m.glcd (renamed from graphlcd/logos/ORF_2_TIROL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_VORARLBERG_l.glcd (renamed from graphlcd/logos/ORF_2_VORARLBERG_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_VORARLBERG_m.glcd (renamed from graphlcd/logos/ORF_2_VORARLBERG_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_WIEN_l.glcd (renamed from graphlcd/logos/ORF_2_WIEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_WIEN_m.glcd (renamed from graphlcd/logos/ORF_2_WIEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_l.glcd (renamed from graphlcd/logos/ORF_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ORF_2_m.glcd (renamed from graphlcd/logos/ORF_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/OTTO_SHOP_l.glcd (renamed from graphlcd/logos/OTTO_SHOP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/OTTO_SHOP_m.glcd (renamed from graphlcd/logos/OTTO_SHOP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PASSION_l.glcd (renamed from graphlcd/logos/PASSION_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PEPPERMINT_FM_l.glcd (renamed from graphlcd/logos/PEPPERMINT_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PEPPERMINT_FM_m.glcd (renamed from graphlcd/logos/PEPPERMINT_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PHOENIX_l.glcd (renamed from graphlcd/logos/PHOENIX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PHOENIX_m.glcd (renamed from graphlcd/logos/PHOENIX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PHOENIX_v2_l.glcd (renamed from graphlcd/logos/PHOENIX_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PHOENIX_v2_m.glcd (renamed from graphlcd/logos/PHOENIX_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PLANET_RADIO_l.glcd (renamed from graphlcd/logos/PLANET_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PLANET_RADIO_m.glcd (renamed from graphlcd/logos/PLANET_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PLANET_l.glcd (renamed from graphlcd/logos/PLANET_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PLANET_m.glcd (renamed from graphlcd/logos/PLANET_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PLAYBOY_TV_l.glcd (renamed from graphlcd/logos/PLAYBOY_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PLAYBOY_TV_m.glcd (renamed from graphlcd/logos/PLAYBOY_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PLAYHOUSE_DISNEY_l.glcd (renamed from graphlcd/logos/PLAYHOUSE_DISNEY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PLAYHOUSE_DISNEY_m.glcd (renamed from graphlcd/logos/PLAYHOUSE_DISNEY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_AUSTRIA_l.glcd (renamed from graphlcd/logos/PRO_SIEBEN_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_AUSTRIA_m.glcd (renamed from graphlcd/logos/PRO_SIEBEN_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_HD_l.glcd (renamed from graphlcd/logos/PRO_SIEBEN_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_SCHWEIZ_l.glcd (renamed from graphlcd/logos/PRO_SIEBEN_SCHWEIZ_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_SCHWEIZ_m.glcd (renamed from graphlcd/logos/PRO_SIEBEN_SCHWEIZ_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_l.glcd (renamed from graphlcd/logos/PRO_SIEBEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBEN_m.glcd (renamed from graphlcd/logos/PRO_SIEBEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/PRO_SIEBENv2_l.glcd (renamed from graphlcd/logos/PRO_SIEBENv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PULS_l.glcd (renamed from graphlcd/logos/PULS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/PULS_m.glcd (renamed from graphlcd/logos/PULS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/QVC_GERMANY_l.glcd (renamed from graphlcd/logos/QVC_GERMANY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/QVC_GERMANY_m.glcd (renamed from graphlcd/logos/QVC_GERMANY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/Q_TV_SHOP_l.glcd (renamed from graphlcd/logos/Q_TV_SHOP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/Q_TV_SHOP_m.glcd (renamed from graphlcd/logos/Q_TV_SHOP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_10_GOLD_l.glcd (renamed from graphlcd/logos/RADIO_10_GOLD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_10_GOLD_m.glcd (renamed from graphlcd/logos/RADIO_10_GOLD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_538_l.glcd (renamed from graphlcd/logos/RADIO_538_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_538_m.glcd (renamed from graphlcd/logos/RADIO_538_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_BERLIN_88_8_l.glcd (renamed from graphlcd/logos/RADIO_BERLIN_88_8_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_BERLIN_88_8_m.glcd (renamed from graphlcd/logos/RADIO_BERLIN_88_8_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_EINS_l.glcd (renamed from graphlcd/logos/RADIO_EINS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_EINS_m.glcd (renamed from graphlcd/logos/RADIO_EINS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_GLORIA_l.glcd (renamed from graphlcd/logos/RADIO_GLORIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_GLORIA_m.glcd (renamed from graphlcd/logos/RADIO_GLORIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_HOREB_l.glcd (renamed from graphlcd/logos/RADIO_HOREB_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_HOREB_m.glcd (renamed from graphlcd/logos/RADIO_HOREB_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_MARIA_l.glcd (renamed from graphlcd/logos/RADIO_MARIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_MARIA_m.glcd (renamed from graphlcd/logos/RADIO_MARIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_MARIA_v2_m.glcd (renamed from graphlcd/logos/RADIO_MARIA_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_MULTIKULTI_l.glcd (renamed from graphlcd/logos/RADIO_MULTIKULTI_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_MULTIKULTI_m.glcd (renamed from graphlcd/logos/RADIO_MULTIKULTI_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_MULTIKULTI_v2_m.glcd (renamed from graphlcd/logos/RADIO_MULTIKULTI_v2_m.glcd)bin128 -> 128 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_PALOMA_l.glcd (renamed from graphlcd/logos/RADIO_PALOMA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_PALOMA_m.glcd (renamed from graphlcd/logos/RADIO_PALOMA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_REGENBOGEN_l.glcd (renamed from graphlcd/logos/RADIO_REGENBOGEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RADIO_REGENBOGEN_m.glcd (renamed from graphlcd/logos/RADIO_REGENBOGEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI _1_l.glcd (renamed from graphlcd/logos/RAI _1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RAI _1_m.glcd (renamed from graphlcd/logos/RAI _1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI _1v2_m.glcd (renamed from graphlcd/logos/RAI _1v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI _2_l.glcd (renamed from graphlcd/logos/RAI _2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RAI _2_m.glcd (renamed from graphlcd/logos/RAI _2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI _2v2_m.glcd (renamed from graphlcd/logos/RAI _2v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI _3_m.glcd (renamed from graphlcd/logos/RAI _3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI _3v2_m.glcd (renamed from graphlcd/logos/RAI _3v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAI_3_l.glcd (renamed from graphlcd/logos/RAI_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RAZE_TV_l.glcd (renamed from graphlcd/logos/RAZE_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RAZE_TV_m.glcd (renamed from graphlcd/logos/RAZE_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RAZE_TV_v2_m.glcd (renamed from graphlcd/logos/RAZE_TV_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RBB_BERLIN_l.glcd (renamed from graphlcd/logos/RBB_BERLIN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RBB_BERLIN_m.glcd (renamed from graphlcd/logos/RBB_BERLIN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RBB_BRANDENBURG_l.glcd (renamed from graphlcd/logos/RBB_BRANDENBURG_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RBB_BRANDENBURG_m.glcd (renamed from graphlcd/logos/RBB_BRANDENBURG_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REAL_MADRID_TV_l.glcd (renamed from graphlcd/logos/REAL_MADRID_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REAL_MADRID_TV_m.glcd (renamed from graphlcd/logos/REAL_MADRID_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-CD-v2_l.glcd (renamed from graphlcd/logos/REPLAY-CD-v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-CD-v2_m.glcd (renamed from graphlcd/logos/REPLAY-CD-v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-CD_l.glcd (renamed from graphlcd/logos/REPLAY-CD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-CD_m.glcd (renamed from graphlcd/logos/REPLAY-CD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-DVD-v2_l.glcd (renamed from graphlcd/logos/REPLAY-DVD-v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-DVD_l.glcd (renamed from graphlcd/logos/REPLAY-DVD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-DVD_m.glcd (renamed from graphlcd/logos/REPLAY-DVD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-FILE_l.glcd (renamed from graphlcd/logos/REPLAY-FILE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-FILE_m.glcd (renamed from graphlcd/logos/REPLAY-FILE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-IMAGE_l.glcd (renamed from graphlcd/logos/REPLAY-IMAGE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-IMAGE_m.glcd (renamed from graphlcd/logos/REPLAY-IMAGE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-MUSIC_l.glcd (renamed from graphlcd/logos/REPLAY-MUSIC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-MUSIC_m.glcd (renamed from graphlcd/logos/REPLAY-MUSIC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-VDR_l.glcd (renamed from graphlcd/logos/REPLAY-VDR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/REPLAY-VDR_m.glcd (renamed from graphlcd/logos/REPLAY-VDR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RFM_TV_m.glcd (renamed from graphlcd/logos/RFM_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RHEIN_MAIN_TV_l.glcd (renamed from graphlcd/logos/RHEIN_MAIN_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RHEIN_MAIN_TV_m.glcd (renamed from graphlcd/logos/RHEIN_MAIN_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RHEIN_MAIN_TVv2_m.glcd (renamed from graphlcd/logos/RHEIN_MAIN_TVv2_m.glcd)bin158 -> 158 bytes
-rw-r--r--graphlcd/logos/channels/RIRE_ET_CHANSONS_l.glcd (renamed from graphlcd/logos/RIRE_ET_CHANSONS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RIRE_ET_CHANSONS_m.glcd (renamed from graphlcd/logos/RIRE_ET_CHANSONS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ROCK_ANTENNE_l.glcd (renamed from graphlcd/logos/ROCK_ANTENNE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ROCK_ANTENNE_m.glcd (renamed from graphlcd/logos/ROCK_ANTENNE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ROCK_ANTENNE_v2_m.glcd (renamed from graphlcd/logos/ROCK_ANTENNE_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RSR_COULEUR_3_l.glcd (renamed from graphlcd/logos/RSR_COULEUR_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RSR_COULEUR_3_m.glcd (renamed from graphlcd/logos/RSR_COULEUR_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTBF_SAT_l.glcd (renamed from graphlcd/logos/RTBF_SAT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTBF_SAT_m.glcd (renamed from graphlcd/logos/RTBF_SAT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_2_AUSTRIA_l.glcd (renamed from graphlcd/logos/RTL_2_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_2_AUSTRIA_m.glcd (renamed from graphlcd/logos/RTL_2_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_2_l.glcd (renamed from graphlcd/logos/RTL_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_2_m.glcd (renamed from graphlcd/logos/RTL_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_2v2_l.glcd (renamed from graphlcd/logos/RTL_2v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_4_l.glcd (renamed from graphlcd/logos/RTL_4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_4_m.glcd (renamed from graphlcd/logos/RTL_4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_5_l.glcd (renamed from graphlcd/logos/RTL_5_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_5_m.glcd (renamed from graphlcd/logos/RTL_5_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_AUSTRIA_l.glcd (renamed from graphlcd/logos/RTL_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_AUSTRIA_m.glcd (renamed from graphlcd/logos/RTL_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_AUSTRIA_v2_m.glcd (renamed from graphlcd/logos/RTL_AUSTRIA_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_CRIME_l.glcd (renamed from graphlcd/logos/RTL_CRIME_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_FM_l.glcd (renamed from graphlcd/logos/RTL_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_FM_m.glcd (renamed from graphlcd/logos/RTL_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_FS_l.glcd (renamed from graphlcd/logos/RTL_FS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_FS_m.glcd (renamed from graphlcd/logos/RTL_FS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_HD_l.glcd (renamed from graphlcd/logos/RTL_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_HDv2_l.glcd (renamed from graphlcd/logos/RTL_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_HDv3_l.glcd (renamed from graphlcd/logos/RTL_HDv3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_PASSION_l.glcd (renamed from graphlcd/logos/RTL_PASSION_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_RADIO_l.glcd (renamed from graphlcd/logos/RTL_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_RADIO_m.glcd (renamed from graphlcd/logos/RTL_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_SHOP_l.glcd (renamed from graphlcd/logos/RTL_SHOP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_SHOP_m.glcd (renamed from graphlcd/logos/RTL_SHOP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_SHOP_v2_m.glcd (renamed from graphlcd/logos/RTL_SHOP_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_TELE LETZEBURG_l.glcd (renamed from graphlcd/logos/RTL_TELE LETZEBURG_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_TELE LETZEBURG_m.glcd (renamed from graphlcd/logos/RTL_TELE LETZEBURG_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTL_TELE LETZEBURG_v2_l.glcd (renamed from graphlcd/logos/RTL_TELE LETZEBURG_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_TELEVISION_l.glcd (renamed from graphlcd/logos/RTL_TELEVISION_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTL_TELEVISION_m.glcd (renamed from graphlcd/logos/RTL_TELEVISION_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RTM_MAROC_l.glcd (renamed from graphlcd/logos/RTM_MAROC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTP_INT_l.glcd (renamed from graphlcd/logos/RTP_INT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RTP_INT_m.glcd (renamed from graphlcd/logos/RTP_INT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/RUSSIA_TODAY_l.glcd (renamed from graphlcd/logos/RUSSIA_TODAY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/RUSSIA_TODAY_m.glcd (renamed from graphlcd/logos/RUSSIA_TODAY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAILING_CHANNEL_l.glcd (renamed from graphlcd/logos/SAILING_CHANNEL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SALZBURG_TV_l.glcd (renamed from graphlcd/logos/SALZBURG_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SALZBURG_TV_m.glcd (renamed from graphlcd/logos/SALZBURG_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_AUSTRIA_l.glcd (renamed from graphlcd/logos/SAT.1_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_AUSTRIA_m.glcd (renamed from graphlcd/logos/SAT.1_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_AUSTRIA_v2_m.glcd (renamed from graphlcd/logos/SAT.1_AUSTRIA_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_HD_l.glcd (renamed from graphlcd/logos/SAT.1_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_SCHWEIZ_l.glcd (renamed from graphlcd/logos/SAT.1_SCHWEIZ_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_SCHWEIZ_m.glcd (renamed from graphlcd/logos/SAT.1_SCHWEIZ_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_SCHWEIZ_v2_m.glcd (renamed from graphlcd/logos/SAT.1_SCHWEIZ_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_l.glcd (renamed from graphlcd/logos/SAT.1_l.glcd)bin1550 -> 1550 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1_m.glcd (renamed from graphlcd/logos/SAT.1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SAT.1v2_l.glcd (renamed from graphlcd/logos/SAT.1v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SBS6_l.glcd (renamed from graphlcd/logos/SBS6_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SBS6_m.glcd (renamed from graphlcd/logos/SBS6_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SCHMUCKKANAL_l.glcd (renamed from graphlcd/logos/SCHMUCKKANAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SCHMUCKKANAL_m.glcd (renamed from graphlcd/logos/SCHMUCKKANAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SERVUS_TV_HD_l.glcd (renamed from graphlcd/logos/SERVUS_TV_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SERVUS_TV_l.glcd (renamed from graphlcd/logos/SERVUS_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SF_ 1_l.glcd (renamed from graphlcd/logos/SF_ 1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SF_1_m.glcd (renamed from graphlcd/logos/SF_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SF_2_l.glcd (renamed from graphlcd/logos/SF_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SF_2_m.glcd (renamed from graphlcd/logos/SF_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SF_INFO_l.glcd (renamed from graphlcd/logos/SF_INFO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SF_INFO_m.glcd (renamed from graphlcd/logos/SF_INFO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SILVERLINE_l.glcd (renamed from graphlcd/logos/SILVERLINE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SILVERLINE_m.glcd (renamed from graphlcd/logos/SILVERLINE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SIXX_l.glcd (renamed from graphlcd/logos/SIXX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SIXX_m.glcd (renamed from graphlcd/logos/SIXX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SKY_ACTION_HD_l.glcd (renamed from graphlcd/logos/SKY_ACTION_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_ACTION_l.glcd (renamed from graphlcd/logos/SKY_ACTION_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_BUNDESLIGA_l.glcd (renamed from graphlcd/logos/SKY_BUNDESLIGA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMA+1_l.glcd (renamed from graphlcd/logos/SKY_CINEMA+1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMA+24_l.glcd (renamed from graphlcd/logos/SKY_CINEMA+24_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMAHITS_HD_l.glcd (renamed from graphlcd/logos/SKY_CINEMAHITS_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMAHITS_l.glcd (renamed from graphlcd/logos/SKY_CINEMAHITS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMA_HD_l.glcd (renamed from graphlcd/logos/SKY_CINEMA_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMA_HDv2_l.glcd (renamed from graphlcd/logos/SKY_CINEMA_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_CINEMA_l.glcd (renamed from graphlcd/logos/SKY_CINEMA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_COMEDY_l.glcd (renamed from graphlcd/logos/SKY_COMEDY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_EMOTION_l.glcd (renamed from graphlcd/logos/SKY_EMOTION_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_KRIMI_l.glcd (renamed from graphlcd/logos/SKY_KRIMI_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_NEWS_INTL_l.glcd (renamed from graphlcd/logos/SKY_NEWS_INTL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_NEWS_INTL_m.glcd (renamed from graphlcd/logos/SKY_NEWS_INTL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SKY_NEWS_INTLv2_l.glcd (renamed from graphlcd/logos/SKY_NEWS_INTLv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_NEWS_INTLv2_m.glcd (renamed from graphlcd/logos/SKY_NEWS_INTLv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SKY_NEWS_l.glcd (renamed from graphlcd/logos/SKY_NEWS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_NOSTALIGIE_l.glcd (renamed from graphlcd/logos/SKY_NOSTALIGIE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_RADIO_NL_l.glcd (renamed from graphlcd/logos/SKY_RADIO_NL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_RADIO_NL_m.glcd (renamed from graphlcd/logos/SKY_RADIO_NL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SKY_SPORT_1_l.glcd (renamed from graphlcd/logos/SKY_SPORT_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_SPORT_2_l.glcd (renamed from graphlcd/logos/SKY_SPORT_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_SPORT_AUSTRIA_l.glcd (renamed from graphlcd/logos/SKY_SPORT_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_SPORT_HD1_l.glcd (renamed from graphlcd/logos/SKY_SPORT_HD1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SKY_SPORT_HD2_l.glcd (renamed from graphlcd/logos/SKY_SPORT_HD2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SONNENKLAR_TV_l.glcd (renamed from graphlcd/logos/SONNENKLAR_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SONNENKLAR_TV_m.glcd (renamed from graphlcd/logos/SONNENKLAR_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SPIEGEL_GESCHICHTE_l.glcd (renamed from graphlcd/logos/SPIEGEL_GESCHICHTE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SPIEGEL_TV_XXP_l.glcd (renamed from graphlcd/logos/SPIEGEL_TV_XXP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SPORT1_l.glcd (renamed from graphlcd/logos/SPORT1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SPUTNIK_l.glcd (renamed from graphlcd/logos/SPUTNIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SPUTNIK_m.glcd (renamed from graphlcd/logos/SPUTNIK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SPUTNIKv2_l.glcd (renamed from graphlcd/logos/SPUTNIKv2_l.glcd)bin352 -> 352 bytes
-rw-r--r--graphlcd/logos/channels/SPUTNIKv2_m.glcd (renamed from graphlcd/logos/SPUTNIKv2_m.glcd)bin123 -> 123 bytes
-rw-r--r--graphlcd/logos/channels/SR1_EUROPAWELLE_l.glcd (renamed from graphlcd/logos/SR1_EUROPAWELLE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SR2_KULTURRADIO_l.glcd (renamed from graphlcd/logos/SR2_KULTURRADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SR3_SAARLANDWELLE_l.glcd (renamed from graphlcd/logos/SR3_SAARLANDWELLE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SR_1_l.glcd (renamed from graphlcd/logos/SR_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SR_1_m.glcd (renamed from graphlcd/logos/SR_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SR_FERNSEHEN_l.glcd (renamed from graphlcd/logos/SR_FERNSEHEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SR_FERNSEHEN_m.glcd (renamed from graphlcd/logos/SR_FERNSEHEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SUEDWEST_FS_RP_l.glcd (renamed from graphlcd/logos/SUEDWEST_FS_RP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SUEDWEST_FS_RP_m.glcd (renamed from graphlcd/logos/SUEDWEST_FS_RP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SUEDWEST_FS_RPv2_l.glcd (renamed from graphlcd/logos/SUEDWEST_FS_RPv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SUNSHINE_LIVE_l.glcd (renamed from graphlcd/logos/SUNSHINE_LIVE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SUNSHINE_LIVE_m.glcd (renamed from graphlcd/logos/SUNSHINE_LIVE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SUNSHINE_LIVE_v2_m.glcd (renamed from graphlcd/logos/SUNSHINE_LIVE_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SUPER_RTL_AUSTRIA_l.glcd (renamed from graphlcd/logos/SUPER_RTL_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SUPER_RTL_AUSTRIA_m.glcd (renamed from graphlcd/logos/SUPER_RTL_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SUPER_RTL_l.glcd (renamed from graphlcd/logos/SUPER_RTL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SUPER_RTL_m.glcd (renamed from graphlcd/logos/SUPER_RTL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SUPER_RTLv2_l.glcd (renamed from graphlcd/logos/SUPER_RTLv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_1_BW_l.glcd (renamed from graphlcd/logos/SWR_1_BW_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_1_BW_m.glcd (renamed from graphlcd/logos/SWR_1_BW_m.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_1_RP_l.glcd (renamed from graphlcd/logos/SWR_1_RP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_1_RP_m.glcd (renamed from graphlcd/logos/SWR_1_RP_m.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_1_l.glcd (renamed from graphlcd/logos/SWR_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_1_m.glcd (renamed from graphlcd/logos/SWR_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_2_l.glcd (renamed from graphlcd/logos/SWR_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_2_m.glcd (renamed from graphlcd/logos/SWR_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_2v2_l.glcd (renamed from graphlcd/logos/SWR_2v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_2v2_m.glcd (renamed from graphlcd/logos/SWR_2v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_3_l.glcd (renamed from graphlcd/logos/SWR_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_3_m.glcd (renamed from graphlcd/logos/SWR_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_3v2_l.glcd (renamed from graphlcd/logos/SWR_3v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_3v2_m.glcd (renamed from graphlcd/logos/SWR_3v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_4_BW_l.glcd (renamed from graphlcd/logos/SWR_4_BW_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_4_BW_m.glcd (renamed from graphlcd/logos/SWR_4_BW_m.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_4_RP_l.glcd (renamed from graphlcd/logos/SWR_4_RP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_4_RP_m.glcd (renamed from graphlcd/logos/SWR_4_RP_m.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_4_l.glcd (renamed from graphlcd/logos/SWR_4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_4_m.glcd (renamed from graphlcd/logos/SWR_4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_BW_l.glcd (renamed from graphlcd/logos/SWR_BW_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_CONT_RA_l.glcd (renamed from graphlcd/logos/SWR_CONT_RA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_CONT_RA_m.glcd (renamed from graphlcd/logos/SWR_CONT_RA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SWR_FERNSEHEN_BW_l.glcd (renamed from graphlcd/logos/SWR_FERNSEHEN_BW_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/SWR_FERNSEHEN_BW_m.glcd (renamed from graphlcd/logos/SWR_FERNSEHEN_BW_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/SYFY_l.glcd (renamed from graphlcd/logos/SYFY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TANGO TV_l.glcd (renamed from graphlcd/logos/TANGO TV_l.glcd)bin352 -> 352 bytes
-rw-r--r--graphlcd/logos/channels/TANGO TV_m.glcd (renamed from graphlcd/logos/TANGO TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TEDDY_l.glcd (renamed from graphlcd/logos/TEDDY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TEDDY_m.glcd (renamed from graphlcd/logos/TEDDY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TELE_5_l.glcd (renamed from graphlcd/logos/TELE_5_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TELE_5_m.glcd (renamed from graphlcd/logos/TELE_5_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TELE_5v2_l.glcd (renamed from graphlcd/logos/TELE_5v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TMF_l.glcd (renamed from graphlcd/logos/TMF_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TMF_m.glcd (renamed from graphlcd/logos/TMF_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TNT_SERIE_l.glcd (renamed from graphlcd/logos/TNT_SERIE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TRACE_TV_l.glcd (renamed from graphlcd/logos/TRACE_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TRACE_TV_m.glcd (renamed from graphlcd/logos/TRACE_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TRW_AM_l.glcd (renamed from graphlcd/logos/TRW_AM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TSI_1_l.glcd (renamed from graphlcd/logos/TSI_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TSI_1_m.glcd (renamed from graphlcd/logos/TSI_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TSR_1_l.glcd (renamed from graphlcd/logos/TSR_1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TSR_1_m.glcd (renamed from graphlcd/logos/TSR_1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TVC_INT_l.glcd (renamed from graphlcd/logos/TVC_INT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TVC_INT_m.glcd (renamed from graphlcd/logos/TVC_INT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TVE_INT_l.glcd (renamed from graphlcd/logos/TVE_INT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TVE_INT_m.glcd (renamed from graphlcd/logos/TVE_INT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_5_EUROPE_l.glcd (renamed from graphlcd/logos/TV_5_EUROPE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_5_EUROPE_m.glcd (renamed from graphlcd/logos/TV_5_EUROPE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_5_l.glcd (renamed from graphlcd/logos/TV_5_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_5_m.glcd (renamed from graphlcd/logos/TV_5_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_6_l.glcd (renamed from graphlcd/logos/TV_6_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_6_m.glcd (renamed from graphlcd/logos/TV_6_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_7_l.glcd (renamed from graphlcd/logos/TV_7_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_7_m.glcd (renamed from graphlcd/logos/TV_7_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_BERLIN_l.glcd (renamed from graphlcd/logos/TV_BERLIN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_BERLIN_m.glcd (renamed from graphlcd/logos/TV_BERLIN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_BERLIN_v2_l.glcd (renamed from graphlcd/logos/TV_BERLIN_v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_BERLIN_v2_m.glcd (renamed from graphlcd/logos/TV_BERLIN_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_BERLIN_v3_m.glcd (renamed from graphlcd/logos/TV_BERLIN_v3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_GALICIA_m.glcd (renamed from graphlcd/logos/TV_GALICIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TV_GUSTO_l.glcd (renamed from graphlcd/logos/TV_GUSTO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TV_GUSTO_m.glcd (renamed from graphlcd/logos/TV_GUSTO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TW1_l.glcd (renamed from graphlcd/logos/TW1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/TW1_m.glcd (renamed from graphlcd/logos/TW1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/TW1v2_m.glcd (renamed from graphlcd/logos/TW1v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VERONICA_RADIO_l.glcd (renamed from graphlcd/logos/VERONICA_RADIO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VERONICA_RADIO_m.glcd (renamed from graphlcd/logos/VERONICA_RADIO_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VH1_CLASSIC_l.glcd (renamed from graphlcd/logos/VH1_CLASSIC_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VH1_CLASSIC_m.glcd (renamed from graphlcd/logos/VH1_CLASSIC_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VH1_l.glcd (renamed from graphlcd/logos/VH1_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VH1_m.glcd (renamed from graphlcd/logos/VH1_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VIBRATION_l.glcd (renamed from graphlcd/logos/VIBRATION_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VIBRATION_m.glcd (renamed from graphlcd/logos/VIBRATION_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_GERMANY_l.glcd (renamed from graphlcd/logos/VIVA_GERMANY_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_GERMANY_m.glcd (renamed from graphlcd/logos/VIVA_GERMANY_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_PLUS_l.glcd (renamed from graphlcd/logos/VIVA_PLUS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_PLUS_m.glcd (renamed from graphlcd/logos/VIVA_PLUS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_PLUSv2_m.glcd (renamed from graphlcd/logos/VIVA_PLUSv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_l.glcd (renamed from graphlcd/logos/VIVA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VIVA_m.glcd (renamed from graphlcd/logos/VIVA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VOLTAGE_l.glcd (renamed from graphlcd/logos/VOLTAGE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VOLTAGE_m.glcd (renamed from graphlcd/logos/VOLTAGE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VOX_AUSTRIA_l.glcd (renamed from graphlcd/logos/VOX_AUSTRIA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VOX_AUSTRIA_m.glcd (renamed from graphlcd/logos/VOX_AUSTRIA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VOX_CH_l.glcd (renamed from graphlcd/logos/VOX_CH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VOX_CH_m.glcd (renamed from graphlcd/logos/VOX_CH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VOX_HD_l.glcd (renamed from graphlcd/logos/VOX_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VOX_l.glcd (renamed from graphlcd/logos/VOX_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/VOX_m.glcd (renamed from graphlcd/logos/VOX_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/VOXv2_m.glcd (renamed from graphlcd/logos/VOXv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_2_l.glcd (renamed from graphlcd/logos/WDR_2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_2_m.glcd (renamed from graphlcd/logos/WDR_2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_3_l.glcd (renamed from graphlcd/logos/WDR_3_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_3_m.glcd (renamed from graphlcd/logos/WDR_3_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_3v2_l.glcd (renamed from graphlcd/logos/WDR_3v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_3v2_m.glcd (renamed from graphlcd/logos/WDR_3v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_4_l.glcd (renamed from graphlcd/logos/WDR_4_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_4_m.glcd (renamed from graphlcd/logos/WDR_4_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_5_l.glcd (renamed from graphlcd/logos/WDR_5_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_5_m.glcd (renamed from graphlcd/logos/WDR_5_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_5v2_l.glcd (renamed from graphlcd/logos/WDR_5v2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_5v2_m.glcd (renamed from graphlcd/logos/WDR_5v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_EVENT_l.glcd (renamed from graphlcd/logos/WDR_EVENT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_EVENT_m.glcd (renamed from graphlcd/logos/WDR_EVENT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_FUNKHAUS_EUROPA_l.glcd (renamed from graphlcd/logos/WDR_FUNKHAUS_EUROPA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_FUNKHAUS_EUROPA_m.glcd (renamed from graphlcd/logos/WDR_FUNKHAUS_EUROPA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WDR_l.glcd (renamed from graphlcd/logos/WDR_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WDR_m.glcd (renamed from graphlcd/logos/WDR_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WEIN_TV_l.glcd (renamed from graphlcd/logos/WEIN_TV_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WEIN_TV_m.glcd (renamed from graphlcd/logos/WEIN_TV_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WETTER_FERNSEHEN_l.glcd (renamed from graphlcd/logos/WETTER_FERNSEHEN_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WETTER_FERNSEHEN_m.glcd (renamed from graphlcd/logos/WETTER_FERNSEHEN_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WISHLINE_l.glcd (renamed from graphlcd/logos/WISHLINE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WISHLINE_m.glcd (renamed from graphlcd/logos/WISHLINE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/WRN_DEUTSCH_l.glcd (renamed from graphlcd/logos/WRN_DEUTSCH_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/WRN_DEUTSCH_m.glcd (renamed from graphlcd/logos/WRN_DEUTSCH_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/XXL_l.glcd (renamed from graphlcd/logos/XXL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/XXL_m.glcd (renamed from graphlcd/logos/XXL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/XXP_l.glcd (renamed from graphlcd/logos/XXP_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/XXP_m.glcd (renamed from graphlcd/logos/XXP_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/XXP_v2_m.glcd (renamed from graphlcd/logos/XXP_v2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/X_ZONE_l.glcd (renamed from graphlcd/logos/X_ZONE_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/X_ZONE_m.glcd (renamed from graphlcd/logos/X_ZONE_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/YAM_FM_l.glcd (renamed from graphlcd/logos/YAM_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/YAM_FM_m.glcd (renamed from graphlcd/logos/YAM_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/YAVIDO_CLIPS_l.glcd (renamed from graphlcd/logos/YAVIDO_CLIPS_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/YAVIDO_CLIPS_m.glcd (renamed from graphlcd/logos/YAVIDO_CLIPS_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/YORIN_FM_l.glcd (renamed from graphlcd/logos/YORIN_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/YORIN_FM_m.glcd (renamed from graphlcd/logos/YORIN_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/YOU_FM_l.glcd (renamed from graphlcd/logos/YOU_FM_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/YOU_FM_m.glcd (renamed from graphlcd/logos/YOU_FM_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_DOKUKANAL_l.glcd (renamed from graphlcd/logos/ZDF_DOKUKANAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_DOKUKANAL_m.glcd (renamed from graphlcd/logos/ZDF_DOKUKANAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_DOKUKANALv2_l.glcd (renamed from graphlcd/logos/ZDF_DOKUKANALv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_DOKUKANALv2_m.glcd (renamed from graphlcd/logos/ZDF_DOKUKANALv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_DOKU_KIKA_l.glcd (renamed from graphlcd/logos/ZDF_DOKU_KIKA_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_DOKU_KIKA_m.glcd (renamed from graphlcd/logos/ZDF_DOKU_KIKA_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_HD_l.glcd (renamed from graphlcd/logos/ZDF_HD_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_HD_m.glcd (renamed from graphlcd/logos/ZDF_HD_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_HDv2_l.glcd (renamed from graphlcd/logos/ZDF_HDv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_HDv2_m.glcd (renamed from graphlcd/logos/ZDF_HDv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_INFOKANAL_l.glcd (renamed from graphlcd/logos/ZDF_INFOKANAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_INFOKANAL_m.glcd (renamed from graphlcd/logos/ZDF_INFOKANAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_INFOKANALv2_l.glcd (renamed from graphlcd/logos/ZDF_INFOKANALv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_INFOKANALv2_m.glcd (renamed from graphlcd/logos/ZDF_INFOKANALv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_INFO_3SAT_l.glcd (renamed from graphlcd/logos/ZDF_INFO_3SAT_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_INFO_3SAT_m.glcd (renamed from graphlcd/logos/ZDF_INFO_3SAT_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_NEO_l.glcd (renamed from graphlcd/logos/ZDF_NEO_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_THEATERKANAL_l.glcd (renamed from graphlcd/logos/ZDF_THEATERKANAL_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_THEATERKANAL_m.glcd (renamed from graphlcd/logos/ZDF_THEATERKANAL_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_THEATERKANALv2_l.glcd (renamed from graphlcd/logos/ZDF_THEATERKANALv2_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_THEATERKANALv2_m.glcd (renamed from graphlcd/logos/ZDF_THEATERKANALv2_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_l.glcd (renamed from graphlcd/logos/ZDF_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZDF_m.glcd (renamed from graphlcd/logos/ZDF_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/ZIK_l.glcd (renamed from graphlcd/logos/ZIK_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/ZIK_m.glcd (renamed from graphlcd/logos/ZIK_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/_l.glcd (renamed from graphlcd/logos/_l.glcd)bin392 -> 392 bytes
-rw-r--r--graphlcd/logos/channels/_m.glcd (renamed from graphlcd/logos/_m.glcd)bin153 -> 153 bytes
-rw-r--r--graphlcd/logos/channels/animated/SAT1_l.glcd (renamed from graphlcd/logos/animated/SAT1_l.glcd)bin1550 -> 1550 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-cd_l.glcd (renamed from graphlcd/logos/animated/REPLAY-CD_l.glcd)bin782 -> 782 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-dvd_l.glcd (renamed from graphlcd/logos/animated/REPLAY-DVD_l.glcd)bin782 -> 782 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-file_l.glcd (renamed from graphlcd/logos/animated/REPLAY-FILE_l.glcd)bin782 -> 782 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-image_l.glcd (renamed from graphlcd/logos/animated/REPLAY-IMAGE_l.glcd)bin782 -> 782 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-music_l.glcd (renamed from graphlcd/logos/animated/REPLAY-MUSIC_l.glcd)bin782 -> 782 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-vdr_l.glcd (renamed from graphlcd/logos/animated/REPLAY-VDR_l.glcd)bin12302 -> 12302 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-vdr_m.glcd (renamed from graphlcd/logos/animated/REPLAY-VDR_m.glcd)bin4654 -> 4654 bytes
-rw-r--r--graphlcd/logos/replay/animated/replay-vdr_v2_l.glcd (renamed from graphlcd/logos/animated/REPLAY-VDR_v2_l.glcd)bin782 -> 782 bytes
-rw-r--r--graphlcd/logos/replay/replay-cd_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-cd_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos/replay/replay-cd_v2_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-cd_v2_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos/replay/replay-dvd_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-dvd_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos/replay/replay-dvd_v2_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-file_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-file_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos/replay/replay-image_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-image_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos/replay/replay-music_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-music_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos/replay/replay-vdr_l.glcdbin0 -> 392 bytes
-rw-r--r--graphlcd/logos/replay/replay-vdr_m.glcdbin0 -> 153 bytes
-rw-r--r--graphlcd/logos_bmp/13th_Street_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/1LIVE_DIGGI_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/1LIVE_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/3SAT_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/AnixeHD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/BAYERN1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/BAYERN2_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/BAYERN3_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/BR_ALPHA_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/BR_KLASSIK_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/BR_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Beate-Uhse.TV_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/CONT.RA_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Classica_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DAS_DING_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DELUXE_MUSIC_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DELUXE_RADIO_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DMAX_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DSF_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DasErsteHD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Discovery_Channel_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Discovery_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/DisneyXD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Disney_Channel_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Disney_Cinemagic_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Disney_Cinemagic_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/EINS_EXTRA_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/EINS_FESTIVAL_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/EINS_PLUS_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/EURONEWS_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/EinsFestival_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Eurosport_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/FOX_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/GO_TV_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/GoldStarTV_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/HR_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Heimatkanal_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/History_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/I_MUSIC_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Junior_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/KABEL1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/KLASSIK_RADIO_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/MDR_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/MGM_Channel_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/MotorvisionTV_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Music_Choice_Extra_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/N24_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/NAT_GEO_WILD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/NDR_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/NJOY_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/NRJ_HITS_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/National_Geographic_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/National_Geographic_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/ORF_1_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/ORF_2_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/PHOENIX_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Passion_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Playhouse_Disney_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/RTL_Crime_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/RTL_II_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SAT1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SIXX_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKYNEWS_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_actionHD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_action_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_bundesliga_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_cinema+1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_cinema+24_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_cinemaHD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_cinema_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_cinemahitsHD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_cinemahits_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_comedy_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_emotion_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_krimi_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_nostalgie_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_sport1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_sport2_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_sportHD1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_sportHD2_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SKY_sport_austria_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SPIEGEL_Geschichte_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SPORT1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SUPER_RTL_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SWR1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SWR2_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SWR3_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SWR4_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/SWR_BW_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/ServusTV.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/Syfy_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/TELE_5_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/TNT_Serie_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/TW1_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/WDR_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/ZDF_HD_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/ZDF_NEO_l.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/logos_bmp/arteHD_L.bmpbin446 -> 0 bytes
-rw-r--r--graphlcd/skins/default/default.skin433
-rw-r--r--graphlcd/skins/default/images/arrow.pbmbin0 -> 59 bytes
-rw-r--r--graphlcd/skins/default/images/arrow_small.pbm4
-rw-r--r--graphlcd/skins/default/images/message.pbmbin0 -> 123 bytes
-rw-r--r--graphlcd/skins/default/images/mute.pbm4
-rw-r--r--graphlcd/skins/default/symbols/dolby.pbm4
-rw-r--r--graphlcd/skins/default/symbols/dolby_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/empty.pbm4
-rw-r--r--graphlcd/skins/default/symbols/empty_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/multilanguage.pbm4
-rw-r--r--graphlcd/skins/default/symbols/multilanguage_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/mute.pbm4
-rw-r--r--graphlcd/skins/default/symbols/mute_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording2.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording2_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording3.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording3_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording4.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording4_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/recording_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/replay-fast-fwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/default/symbols/replay-fast-rwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/default/symbols/replay-pause.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/default/symbols/replay-play.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/default/symbols/replay-slow-fwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/default/symbols/replay-slow-rwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/default/symbols/scrambled.pbm4
-rw-r--r--graphlcd/skins/default/symbols/scrambled_small.pbm4
-rw-r--r--graphlcd/skins/default/symbols/teletext.pbm4
-rw-r--r--graphlcd/skins/default/symbols/teletext_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/images/arrow.pbmbin0 -> 59 bytes
-rw-r--r--graphlcd/skins/touchcol/images/arrow_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/images/message.pbmbin0 -> 123 bytes
-rw-r--r--graphlcd/skins/touchcol/images/mute.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/dolby.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/dolby_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/empty.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/empty_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/multilanguage.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/multilanguage_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/mute.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/mute_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording2.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording2_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording3.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording3_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording4.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording4_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/recording_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/replay-fast-fwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/touchcol/symbols/replay-fast-rwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/touchcol/symbols/replay-pause.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/touchcol/symbols/replay-play.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/touchcol/symbols/replay-slow-fwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/touchcol/symbols/replay-slow-rwd.pbmbin0 -> 63 bytes
-rw-r--r--graphlcd/skins/touchcol/symbols/scrambled.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/scrambled_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/teletext.pbm4
-rw-r--r--graphlcd/skins/touchcol/symbols/teletext_small.pbm4
-rw-r--r--graphlcd/skins/touchcol/touchcol.skin421
-rw-r--r--i18n.c1770
-rw-r--r--i18n.h4
-rw-r--r--layout.c171
-rw-r--r--layout.h54
-rw-r--r--logo.c35
-rw-r--r--logo.h44
-rw-r--r--logolist.c177
-rw-r--r--logolist.h65
-rw-r--r--menu.c131
-rw-r--r--menu.h8
-rw-r--r--patches/femon-1.1.5_fixnullandsegfault_path.diff38
-rw-r--r--patches/femon-1.7.7_fixsegfault_patch.diff11
-rw-r--r--plugin.c674
-rw-r--r--po/de_DE.po50
-rw-r--r--po/fi_FI.po49
-rw-r--r--po/fr_FR.po49
-rw-r--r--[-rwxr-xr-x]po/it_IT.po50
-rw-r--r--po/ro_RO.po49
-rw-r--r--service.c626
-rw-r--r--service.h111
-rw-r--r--setup.c97
-rw-r--r--setup.h54
-rw-r--r--skinconfig.c999
-rw-r--r--skinconfig.h50
-rw-r--r--state.c798
-rw-r--r--state.h103
-rw-r--r--strfct.c84
-rw-r--r--widgets.c95
-rw-r--r--widgets.h61
1197 files changed, 7085 insertions, 6263 deletions
diff --git a/HISTORY b/HISTORY
index 11075ef..2bc47f1 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,26 +1,6 @@
VDR Plugin 'graphlcd' Revision History
-------------------------------------
-2011-02-13: version 0.1.9
-- fixed vdr 1.6.0 combatibility and several typos
-- added SVDRP support (TomJoad): http://projects.vdr-developer.org/issues/488
-- added SPAN support (Mreimer): http://projects.vdr-developer.org/issues/523
-- new: logonames.alias is now named channels.alias, which is maintained by wbreu
-
-
-2010-11-21: version 0.1.8
-- added --exclude .git in make dist
-- code minimizing (http://www.vdrportal.de/board/thread.php?postid=955543#post955543)
-- wrong recordinglength with vdr-1.7.x (http://projects.vdr-developer.org/issues/443)
-- fixed NULL-pointer-exception when using UTF-8 and Freetype fonts (http://projects.vdr-developer.org/issues/457)
- patches by Steve135 - http://www.vdrportal.de/board/thread.php?postid=955543#post955543
-
-
-2010-11-02: version 0.1.7
-- added wbreus logo pack (http://wbreu.htpc-forum.de/vdrplugins/vdrgraphlcdplugin/index.php)
-- added utf8 conversion for correct display (http://projects.vdr-developer.org/issues/436)
-
-
2010-03-01: Version 0.1.6
- added UTF8 support (vdr-graphlcd-0.1.5-utf8_i18n.diff)
- added include path graphlcd-base/ in Makefile
@@ -28,7 +8,6 @@ VDR Plugin 'graphlcd' Revision History
- changed FRAMESPERSEC to DEFAULTFRAMESPERSECOND (vdr-1.7.x)
- modified Makefile for vdr-1.7.13
-
2007-02-25: Version 0.1.5
- added some missing includes
- do LCD initialisation in display thread instead of during plugin initialisation to fix some issues with direct port accesses (thanks to TomJoad from vdr-portal.de)
@@ -59,3 +38,425 @@ VDR Plugin 'graphlcd' Revision History
set (thanks to Andreas Brachold).
- Added support for VDR version 1.3.38 and up (thanks to Andreas Brachold).
- Added logos for cable and terrestrial channels and modified some of the old
+ (thanks to Stefan Hufeldt).
+
+
+2005-09-17: Version 0.1.2
+- split off drivers to GraphLCD base package (libglcddrivers)
+- split off graphics and font handling to GraphLCD base package
+ (libglcdgraphics)
+- split off tools to GraphLCD base package
+- adopted the plugin's code to use the new driver and graphics API
+- removed low level driver settings from the plugin's setup page. They
+ are now located in the driver lirbrary's configuration file.
+- display class: grouped current state values into some structures
+- using a mutex for exclusive access on current state values
+- moved current vdr state structures to new class cGraphLCDState based
+ on old cGraphLCDStatus class.
+- completely rewritten logo list implementation
+- further code revising
+- added channel IDs for logonames.alias.1.3 for the DVB-T channels in Berlin
+ and probably other areas in Germany (thanks to Andreas Brachold)
+- now compiles with gcc 2.95 and 3.x
+- added missing #includes
+- made the plugin more thread-safe by making the global state variable
+ a member of the display class and correcting the initialization order.
+- added possibility to switch on backlight at user activity and switch it off
+ at user inactivity (thanks to Andreas Brachold). Can be enabled or disabled
+ in setup menu.
+- added additional space between progress bar and logo on small LCDs (thanks
+ to Andreas Brachold).
+- added loopmode display in mp3 replay mode (thanks to Wolfgang Fritz).
+- replaced usleep with cCondWait::SleepMs() for vdr version 1.3.14 or greater
+- adapted to changes in vdr 1.3.18
+- now using verdana fonts converted by genfont as default for large displays.
+- moved plugin initialisation to cPluginGraphLCD::Initialize and added a wait
+ for the start of the display thread to cPluginGraphLCD::Start to don't miss
+ first channel switch (thanks to wofritz from vdrportal.de)
+- added rumanian translations (thanks to Lucian Muresan)
+- Added support for Freetype2 fonts based on the patch by Lucian Muresan.
+-- the fonts used by the plugin are no longer specified through symbolic
+ links to the font files but in a config file named fonts.conf that is
+ located in the graphlcd config directory (where logonames.alias is)
+-- the entries in the fonts.conf file are defined in a URL like way, a prefix
+ gives the type of the font and a absolute or relative path gives the
+ font file, plus the size in case of freetype2
+-- I provided several sample fonts.conf files as a replacement for the old
+ symbolic links
+- Fixed length of timebar in case event lasts longer.
+- Added a patch for VDR 1.3.29 and up that adds a new method Tick() to the
+ cStatus class. This method is called from vdr's main task every second. The
+ patch should apply to older versions too, maybe small changes are needed.
+- Now querying the replay state in the cStatus::Tick() method if available.
+- Now loading config file in cPluginGraphLCD::Initialize and not in
+ ProcessArgs. So it is possible to view the help page without specifying
+ config file and display.
+- Rearranged includes to prevent an compiler error regardings the swap
+ function.
+- Added a check for EIT scanner activity in cGraphLCDState::ChannelSwitch
+ function to prevent showing channel logos during replay.
+- Added a check for file extension in replay type identification (thanks to
+ Andreas Brachold).
+- Added channel logos for Radio Eins (thanks to Andreas Brachold).
+
+
+
+2004-09-26: Version 0.1.1
+- fixed vdr 1.2 service id compile error
+- fixed t6963 driver: added range check in Set8Pixels, now all sizes should
+ work
+- new driver: gu256x64-3900, should support other sizes too (thanks to
+ Ralf Mller)
+- Added, replaced and removed some channel logos (thanks to Marco Birkholz)
+- Now using a channels unique channel ID (without Source, VDR-1.3) or service
+ ID (VDR 1.2) instead of channel names to identify the channel logo.
+-- During this I have renamed almost all channel logos so it is needed to
+ replace your old /<vdr config directory>/plugins/graphlcd/ completely.
+-- There are now two logonames.alias files, one for vdr 1.2 and the other one
+ for vdr 1.3, you maybe have to recreate the link, p. e.
+ "ln -sf logonames.alias.1.3 logonames.alias" if you have a vdr 1.3 version.
+- added finnish translations (thanks to Rolf Ahrenberg)
+- fixed sed1520 driver: removed a unnecessary ReverseBits (thanks to Andreas
+ 'randy' Weinberger)
+- modified gu140x32f driver
+-- added possibility to choose type of wiring in setup menu (thanks to
+ Andreas Brachold)
+- modified sed1330_2 driver
+-- added support for several different types of wiring the lcd to the parallel
+ port, this is selectable in setup menu
+-- added support for 6800 and 8080 mode for all wirings, selectable in setup
+ menu
+- removed sed1130 driver and replaced it with sed1330_2
+- updated serdisplib support (thanks to Wolfgang Astleitner)
+-- look in README.serdisplib for details
+- fixed 100 percent CPU usage during volume changes if volume display is
+ disabled (thanks to Christoph Haubrich, Andreas Brachold)
+- fixed cGraphLCDDisplay::WrapText (thanks to Lars Altenhain)
+- fixed "special" ownership of logonames.alias files (thanks to Django from
+ vdrportal.de)
+
+
+
+2004-05-22: Version 0.1.0
+- modified hd61830 driver:
+-- fixed bug in partly update
+-- modified write method
+- replaced sed1330 driver with roland praml's original patch
+- modified sed1330 driver:
+-- renamed control line names to reflect the controller's
+ specification a bit more
+-- modified WriteCmd and WriteData
+- modified sed1330_2 driver (thanks to Heinz Gressenberger and Roland Praml)
+-- renamed control line names to reflect the controller's
+ specification a bit more
+-- modified WriteCmd and WriteData
+-- added possibility to change oscillator frequency through setup menu
+-- added experimental support for 8080 operation mode (undef MODE6800 in
+ sed1330_2.c to test it)
+-- commented out sleep calls, probably not needed any longer (please test this)
+- added framebuffer device driver (thanks to Stephan Skrodzki)
+-- README tells you how to use it
+- added serdisplib driver (thanks to Wolfgang Astleitner)
+-- README.serdisplib tells you how to use it
+- fixed a bug in serdisplib driver that caused some flickering
+ (thanks to Wolfgang Astleitner)
+- new GU256x64-372 driver (thanks to Andreas 'randy' Weinberger)
+- fixed an error in T6963 driver's partial refresh when using auto mode
+- new image driver that writes an image sequence in pbm format to /tmp
+- made round rectangle type 4 looking rounder (thanks to Andreas
+ 'randy' Weinberger)
+- text item display (programme information) now also contains title
+ and subtitle
+- added up/down scrolling to text item display
+-- fixed a bug with long texts in text items (thanks to Andreas Brachold)
+- fixed cGraphLCDSetup::CopyFrom: copy of ShowMenu was wrong
+- fixed cGraphLCDSetup::CopyFrom: missing ModifiyReplayString
+- simplified the display of the replay string
+-- more than two lines are possible if they fit on screen
+- modified uSleep and nSleep when using wait method 0: now tests if
+ value is greater than 0 before sleeping at least one microsecond
+- added scroller widget, a single scrolling text line
+-- extended Text, Char and CharProp of cGraphLCDLib to support this
+-- using it for program information (present title and subtitle)
+-- scroll speed (time interval and pixel increment) configurable in
+ setup menu
+- fixed DisplayProgramm for small LCD's, no overlapping program
+ information texts with logo or symbols (thanks to Andreas Brachold)
+- fixed german translation of month march (thanks to Andreas Brachold)
+- added new, replaced some and deleted some old channel logos
+ (thanks to Hannes Stein for collecting, sorting and renaming the logos
+ from Holly, Hulk, Lola, C. Born, himself and providing a new
+ logonames.alias)
+- added a lot of splash screens for 140x32, 128x64 and 240x128 LCD's
+ (thanks to Hannes Stein)
+- included DisplayReplay Patch from Andreas Brachold
+-- scrolling ReplayMessage
+-- display of a replay-dependent logo (selectable in setup menu, replay
+ type identification has to be enabled for this)
+-- improved display of time bar and indexes according to display size
+-- just showing minutes and seconds for replays shorter than one hour
+-- simplified DisplayProgramm
+- further code revising and cleaning:
+-- using STL string instead of char array strings for font and graphlib
+ functions
+- some compilation fixes (thanks to Tobias Grimm)
+- the Makefiles now have a proper install target (thanks to Tobias Grimm)
+- fixed some memory leaks in logolist.c and some of the drivers
+ (thanks to Andreas Brachold)
+- showpic: now does a clean exit after "kill" (thanks to Andreas Brachold)
+- showpic: new command line parameter -t (timing) to select low level wait
+ method (thanks to Christian Gmeiner)
+- fixed possible overlapping of replay string and progress bar with logo
+ (thanks to Andreas Brachold)
+- support for animated logos (thanks to Andreas Brachold)
+-- extended plugin, convpic and showpic to support this
+-- convpic now can read and write animations in tuxbox-aniplay-format
+-- included some new animated replay logos
+- now using usleep() instead of low level sleep functions from drivers/fct.h
+ in display.c (this reduces cpu load when gettimeofday wait method is used)
+- new setup parameter "Identify replay type" that makes replay logos possible
+ without forced modifying of the replay's text
+- revised README a little bit
+
+
+
+2004-03-06: Version 0.0.9
+- reworked driver interface:
+ - all drivers in one library
+ - static and dynamic linking of drivers possible (look for STATIC_DRIVERS
+ in Makefile)
+ - moved low level parallel port code to the new class cParallelPort
+ - cleaned up driver's code
+ - adopted plugin and showpic to this new interface
+- gu140x32f updates (thanks to Andreas Brachold)
+ - brightness control through setup works now
+ - timing setup works now
+- fixed cGraphLCDSetup::CopyFrom (thanks to Andreas Brachold)
+- removed memory leak in GraphLCDSetup (thanks to Andreas Brachold)
+- now using driver ID instead of driver name for driver creation
+ (thanks to Andreas Brachold)
+- setup menu: only show entries that are relevant for current driver
+ (thanks to Andreas Brachold)
+- added replay string modification, selectable in setup menu
+ (thanks to Andreas Brachold)
+- showpic: now clearing LCD buffer before displaying image, fixes error
+ when displaying image sequences (thanks to Andreas Brachold)
+- showpic: no double GraphLCDSetup any longer, wait settings now used
+ (thanks to Andreas Brachold for reporting this one)
+- fixed segfault when font is not correctly loaded (Thanks to Andreas
+ Brachold)
+- code revising and cleaning (not completed):
+ - extracted setup menu code from graphlcd.c to menu.c/menu.h
+ - extracted status monitor code from graphlcd.c to status.c/.h
+ - extracted logo code from graphlib.c/.h to logo.c/.h and
+ logolist.c/.h and using list and vector containers from STL for
+ storing the data
+ - showpic and plugin now share the same logo source code
+ - general: using new/delete instead of malloc/free (not completely yet)
+ - using STL's vector and string for storing menu entries
+ - general: using STL string instead of char array strings
+ - sleep functions from fct.c/.h and other are now part of driver library
+ (no double files)
+ - string functions from fct.c/.h are now in strfct.c/.h
+- added new wait method using gettimeofday for kernel 2.6 users (thanks to
+ Henning 'fawkes')
+- new default wait method: nanosleep_rr (same as in 0.0.7)
+- updated ks0108 and sed1520 driver (thanks to Andreas Weinberger)
+ - drawing errors fixed
+ - code cleanups, adopted to new coding style
+ - ks0108: support for displays greater than 128x64
+- removed double ReverseBits from ks0108, sed1330 and sed1520 drivers
+- new alternative sed1330 driver, supports more sizes, choose with "sed1330_2"
+ (modified original driver, thanks by to Heinz Gressenberger)
+ - please test it, maybe we can join these two
+- improved volume display (thanks to Andreas Weinberger)
+ - now disappears correctly after approx. one second
+ - if muted, a symbol will be shown in symbol area and volume bar
+ - slightly modified display, bar has variable height now
+- added RoundRectangle Method to graphic library
+ - both colors are possible now
+ - adopted display code to use this new function
+- new logos for medium displays (thanks to Hannsens)
+- fixed displaying wrong channel, logo, programme when a recording on primary
+ device starts (thanks to burki for reporting this one)
+
+
+
+2004-02-25: Version 0.0.8
+- added support for parport device
+- added support for VDR version 1.3 (tested with 1.3.4)
+- added display of free devices, selectable in setup menu
+ (thanks to Thomas Keil)
+- inverted and round color buttons
+- driver reset after certain setup changes
+- choose the size of logos in setup (no, auto, medium, large)
+- new 'compressed' mode for symbols (show only enabled symbols)
+- Volume controls
+- use of iopl() instead ioperm() (allows ports > 0x3ff)
+- delayed update of the display in menu
+- removed useless 'Good-Bye picture'.
+ You have to call showpic in shutdown script instead.
+- display name of recording without subdirectories
+- new SED1520 driver (thanks to Andreas 'randy' Weinberger).
+- alias list for program names (logonames.alias)
+- new SED1330 driver (thanks to Roland Praml).
+- increased performance by using Set8Pixels() instead of SetPixel()
+ in Char() and CharProp()
+- increased speed in menus (you might apply an included patch against
+ vdr to improve the speed even more...)
+- added a cache for logos to reduce harddisk operations.
+- a value of 0 for Refresh disables the complete refresh of the LCD
+- added a setup option to disable the output to the LCD completely
+- fixed bug displaying long SVDRP Messages (that couldn't be splitted
+ to more lines of text, because they didn't have any spaces)
+- fixed bug with Rec icon. If multiple recordings were active and
+ one recordings has stopped, the Rec icon has been cleared although
+ the others recordings were still active. (thanks to Steffen Schoewitz
+ for reporting and fixing it)
+- select alternative wiring for T6963 (WIRING_WINDOWS)
+ with setup parameter (plugin) and commandline parameter (showpic)
+- improved timing of T6963 driver (thanks to Good)
+- further improved timing of T6963 driver
+- T6963 status check selectable in setup menu
+- added auto mode support for T6963, selectable in setup menu
+- added font select 8x8 support for T6963, selectable in setup menu
+ (thanks to Andreas 'randy' Weinberger)
+- changed way of T6963 control line setting (thanks to Andreas 'randy'
+ Weinberger)
+- changed clipping method (thanks to Andreas Brachold)
+- new Noritake GU140x32f driver (thanks to Andreas Brachold).
+- new classification of LCD sizes:
+ tiny: 0..48
+ small: 49..61
+ medium: 62..127
+ large: 128..
+- more logos (contributed by Carsten Born and Andreas Brachold)
+
+- plugin development and hosting is taken over by Andreas Regel
+
+
+
+2003-06-30: Version 0.0.7
+- the file format of the logos and the pictures have been replaced
+ with a new format: *.GLCD
+- 'Good-Bye picture'
+- added some tools:
+ convpic: a tool to convert *.BMP + *.TIFF images to *.GLCD format.
+ (TIFF: uncompressed, RGB-encoded, 2-color
+ BMP : uncompressed, RGB-encoded, 2-color, WindowsBMP format)
+ showpic: a tool to show an image on the LCD.
+ The image must be in *.GLCD format. (use convpic to convert)
+ crtfont: a tool to create fonts.
+ (see appropriate README files for more info)
+- included 'sources' for logos and fonts
+- fixed problem, if logo was bigger than LCD size.
+- macros in one line
+- added external triggered symbols
+- setup parameters are explained in the README
+- the usage of different fonts are explained in the README
+- now Set8Pixels() is used in Char() and CharProp()
+ (increases performance)
+- replaced strncpy with own fct strncopy.
+
+
+
+2003-06-05: Version 0.0.6
+- fixed segfault on exit of mp3 plugin.
+- added a timebar to show the progress
+ of the current program.
+- added color buttons
+- possibility to disable Date/Time bar in menus
+- don't switch back to replay screen when the menu is
+ active and the next mp3 is going to be played.
+- update values of setup entries
+ (for this, a patch for vdr-1.2.0 is required.
+ Patch vdr with vdr-1.2.0-setup_menu_patch.diff in patches subdirectory.
+ Attention: this patch has NOT been tested with other plugins!)
+- fixed cursor position when a setup item has been changed.
+- better calculation of Tabs
+- use symlinks for fonts. This allows to replace the fonts easily:
+ small displays ( vertical size < 64 ):
+ f_s_l.fnt : large font
+ f_s_n.fnt : normal font
+ f_s_s.fnt : small font
+ f_s_sym.fnt: symbols
+ medium displays ( vertical size 64..127 ):
+ f_m_l.fnt : large font
+ f_m_n.fnt : normal font
+ f_m_s.fnt : small font
+ f_m_sym.fnt: symbols
+ large displays ( vertical size >= 128 ):
+ f_l_l.fnt : large font
+ f_l_n.fnt : normal font
+ f_l_s.fnt : small font
+ f_l_sym.fnt: symbols
+- alternative font for 128x64 (ln -s f8n_alt.fnt f_m_n.fnt)
+
+
+
+2003-05-23: Version 0.0.5
+- fixed display if second card does epg scan
+ (thanks to Andreas 'randy' Weinberger)
+- fixed position of the symbols on small lcds
+ (thanks to Andreas 'randy' Weinberger)
+- possibility to en-/disable display of menus per setup
+- fixed problem in the T6963 driver when the LCDs horizontal size
+ was not a multiple of 6
+ (thanks to Andreas 'powARman' Regel)
+- alternative wiring for T6963 (used by some Windows programs)
+ If You have this wiring, You must compile with:
+ eg: GRAPHLCD_DRIVER=T6963 GRAPHLCD_WIRING=WINDOWS make plugins
+ (thanks to Andreas 'powARman' Regel)
+- allow to enter the port in hex (eg: vdr -P"graphlcd -p 0x278" )
+ (thanks to Sascha Volkenandt)
+- creates graphlcd.man in .../PLUGINS/man directory
+- small changes for vdr-1.1.32
+- show different Recording Symbols to show which card is recording
+ currently.
+- added output of Messages
+- added output of Summaries
+
+
+
+2003-05-08: Version 0.0.4
+- display of menus (requires vdr >= 1.1.30)
+- 'round' edges
+
+
+
+2003-04-25: Version 0.0.3
+- new KS0108 driver (thanks to Andreas 'randy' Weinberger).
+ You have to specify the driver during compile:
+ eg: make plugins GRAPHLCD_DRIVER=KS0108
+- uses different fonts & logos for smaller displays
+- changed layout for 128x64 displays
+- changed format of font files (=> new crtfont-0.1.2)
+- removed swab(). SwabByte() uses table instead of calculating
+
+
+
+2003-04-16: Version 0.0.2
+- new T6963 driver (thanks to Andreas 'powARman' Regel).
+ You have to specify the driver during compile:
+ eg: GRAPHLCD_DRIVER=T6963 make plugins
+- support for smaller displays.
+- now it's customizable in the setup menu, what parts should
+ be displayed. The currently available parts are:
+ - Date/Time bar
+ - Channel bar
+ - Logo
+ - Symbols
+ - Program information
+- fonts with special characters like french accents.
+- port + size of LCD are customizable.
+ (allocate LCD buffer dynamically)
+- 2 lines for long titles (in Recording mode)
+- Clear OSDProgramme, if no EPG data is available.
+- refresh display, when title has changed.
+- do not abort, if logo file could not be read successfully.
+
+
+
+2003-01-08: Version 0.0.1
+
+- Initial revision.
diff --git a/Makefile b/Makefile
index 1c69325..f0321e8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,50 +1,158 @@
#
# Makefile for a Video Disk Recorder plugin
#
+# Compliant with: VDR >= 1.7.34 (new Makefile style) but also VDR 1.4.x, VDR 1.6.x, up to VDR 1.7.33 ('old style Makefiles')
+#
# $Id$
+
# The official name of this plugin.
-# This name will be used in the '-P...' option of VDR to load the plugin.
-# By default the main source file also carries this name.
-#
-PLUGIN = graphlcd
-# define this if you built graphlcd-base with freetype:
-HAVE_FREETYPE2 = 1
+PLUGIN = graphlcd
### The version number of this plugin (taken from the main source file):
VERSION = $(shell grep 'static const char \*VERSION *=' plugin.c | awk '{ print $$6 }' | sed -e 's/[";]//g')
-### The C++ compiler and options:
+### The directory environment:
-CXX ?= g++
-CXXFLAGS ?= -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
+# Use package data if installed...otherwise assume we're under the VDR source directory:
+PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
+LIBDIR = $(call PKGCFG,libdir)
+LOCDIR = $(call PKGCFG,locdir)
+PLGCFG = $(call PKGCFG,plgcfg)
+#
+TMPDIR ?= /tmp
+
+### The compiler options:
+
+export CFLAGS = $(call PKGCFG,cflags)
+export CXXFLAGS = $(call PKGCFG,cxxflags)
+
+### The version number of VDR's plugin API:
+
+APIVERSION = $(call PKGCFG,apiversion)
+
+
+# FLAG_PKGCFG: is pkg-config existing for vdr?
+# 'auto' : via pkg-config vdr,
+# 'absolute': via pkg-config $(VDRDIR)/vdr.pc,
+# 'relative': via pkg-config ../../../vdr.pc,
+# 'no' : compiling w/o pkg-config
+FLAG_PKGCFG=no
+ifneq ($(VDRDIR),)
+ ifeq ($(shell pkg-config --exists $(VDRDIR)/vdr.pc && echo yes),yes)
+ FLAG_PKGCFG=absolute
+ endif
+else
+ ifeq ($(shell pkg-config --exists vdr && echo yes),yes)
+ FLAG_PKGCFG=auto
+ else
+ ifeq ($(shell pkg-config --exists ../../../vdr.pc && echo yes),yes)
+ FLAG_PKGCFG=relative
+ endif
+ endif
+endif
-### The directory environment:
+ifeq ($(strip $(APIVERSION)),)
+ # APIVERSION is empty? either pkg-config was not successful or vdr is too old:
+ # assume in-vdr-tree compilation: set VDRDIR Makefile-wide
+ VDRDIR ?= ../../..
+ APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | cut -d'"' -f2)
+endif
+
+# still no APIVERSION? bail out
+ifeq ($(APIVERSION),)
+ $(error no APIVERSION found, bailing out ...)
+endif
-VDRDIR = ../../..
-LIBDIR = ../../lib
-TMPDIR = /tmp
+# get numeric VDR version number for numeric comparisons (eg: 1.7.47 -> 10747)
+APIVERSNUM = $(shell printf "%2d%02d%02d" $(subst ., ,$(APIVERSION)))
-export INSTALLPREFIX = /usr
-export INSTALLDOCDIR = $(INSTALLPREFIX)/share/doc
+# non-Makefile-wide VDRDIR only for internal use
+ifeq ($(VDRDIR),)
+ TEMP_VDRDIR = ../../..
+else
+ TEMP_VDRDIR = $(VDRDIR)
+endif
-### Make sure that necessary options are included:
+# post 1.7.33 vdr?
+FLAG_NEWSTYLE=false
+$(shell [ $(APIVERSNUM) -gt 10733 ] && FLAG_NEWSTYLE=true)
+
+# do some adaptions and defaults for old vdr versions
+ifeq ($(FLAG_NEWSTYLE),false)
+ CXXFLAGS += $(call PKGCFG,plugincflags)
+ # ensure -fPIC
+ ifeq ($(findstring -fPIC,$(CXXFLAGS)),)
+ CXXFLAGS += -fPIC
+ endif
+ export CXXFLAGS
+
+ ifeq ($(LOCDIR),)
+ LOCDIR = $(call PKGCFG,localedir)
+ ifeq ($(LOCDIR),)
+ LOCDIR = $(TEMP_VDRDIR)/locale
+ endif
+ endif
+ # avoid relative locale path
+ ifeq ($(LOCDIR),./locale)
+ LOCDIR = $(TEMP_VDRDIR)/locale
+ endif
+
+ ifeq ($(PLGCFG),)
+ PLGCFG = $(TEMP_VDRDIR)/Make.config
+ endif
+
+ # fallbacks
+ ifeq ($(LIBDIR),)
+ LIBDIR = $(TEMP_VDRDIR)/PLUGINS/lib
+ endif
+endif
+-include $(PLGCFG)
--include $(VDRDIR)/Make.global
+# some paranoia security checks
+ifeq ($(LIBDIR),)
+ $(error LIBDIR not set, bailing out ...)
+endif
+ifeq ($(shell [ $(APIVERSNUM) -ge 10500 ] && echo yes),yes)
+ ifeq ($(LOCDIR),)
+ $(error LOCDIR not set, bailing out ...)
+ endif
+endif
+
### Allow user defined options to overwrite defaults:
--include $(VDRDIR)/Make.config
+# make sure to have a correct RESDIR
+MYRESDIR = $(call PKGCFG,resdir)
+ifeq ($(MYRESDIR),)
+ MYRESDIR = /usr/share/vdr
+endif
+RESDIR := $(MYRESDIR)/plugins/$(PLUGIN)
-### The version number of VDR (taken from VDR's "config.h"):
-VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
-APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
-ifeq ($(strip $(APIVERSION)),)
- APIVERSION = $(VDRVERSION)
-endif
+# define this if you built graphlcd-base with freetype:
+HAVE_FREETYPE2 ?= 1
+
+# define this if femon-plugin <= 1.7.7 is used AND which has already been patched (see README)
+# either define this setting here or in $VDRDIR/Make.config or in $VDRDIR/Make.global
+HAVE_VALID_FEMON ?= 0
+
+# define the path to the graphlcd.conf file. if not defined, path = "/etc/graphlcd.conf"
+#PLUGIN_GRAPHLCDCONF = "$(CONFDIR)/plugins/$(PLUGIN)/graphlcd.conf"
+
+# defines if installing of TTF should be omitted (default is to install)
+SKIP_INSTALL_TTF ?= 0
+
+# defines if installing of documentation should be omitted (default is to install)
+SKIP_INSTALL_DOC ?= 0
+
+# if no prefix defined: use a default one
+PREFIX ?= /usr
+
+# if we install the documentation ourselves, do it here:
+export INSTALLDOCDIR = $(PREFIX)/share/doc/vdr-$(PLUGIN)-$(VERSION)
### The name of the distribution archive:
@@ -52,95 +160,142 @@ endif
ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)
+### The name of the shared object file:
+
+SOFILE = libvdr-$(PLUGIN).so
### Includes and Defines (add further entries here):
-INCLUDES += -I./graphlcd-base/ -I$(VDRDIR)/include -I$(INSTALLPREFIX)/include
+#include $(VDRDIR)/include if vdr is not installed via package-systems or the like
+ifneq ($(FLAG_PKGCFG),auto)
+ INCLUDES += -I$(TEMP_VDRDIR)/include
+endif
+INCLUDES += -I./graphlcd-base/ -I$(PREFIX)/include
-DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
+DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-ifdef HAVE_FREETYPE2
- INCLUDES += -I$(INSTALLPREFIX)/include/freetype2
+ifneq ($(HAVE_FREETYPE2), 0)
+ INCLUDES += $(shell pkg-config --cflags freetype2 || echo "-I$(PREFIX)/include/freetype2")
DEFINES += -DHAVE_FREETYPE2
endif
+# if a valid and/or fixed femon-plugin is available
+ifneq ($(HAVE_VALID_FEMON), 0)
+ DEFINES += -DGRAPHLCD_SERVICE_FEMON_VALID
+endif
+
+# if a graphlcd.conf different than the default one in /etc is provided
+ifdef PLUGIN_GRAPHLCDCONF
+ DEFINES += -DPLUGIN_GRAPHLCDCONF='${PLUGIN_GRAPHLCDCONF}'
+endif
+
+# if we add TTF to additional install targets
+ifeq ($(SKIP_INSTALL_TTF), 0)
+ INS_TARGET_TTF = ttf-fonts
+endif
+
+# if we add documentations to additional install targets
+ifeq ($(SKIP_INSTALL_DOC), 0)
+ INS_TARGET_DOCS = docs
+endif
+
### The object files (add further files here):
-OBJS = display.o layout.o logo.o logolist.o menu.o plugin.o setup.o state.o strfct.o widgets.o
+OBJS = alias.o common.o display.o menu.o plugin.o setup.o skinconfig.o state.o strfct.o service.o extdata.o
-### The main target:
-TARGETS = libvdr-$(PLUGIN).so
-ifneq ($(shell grep -l 'Phrases' $(VDRDIR)/i18n.c),$(VDRDIR)/i18n.c)
-TARGETS += i18n
+# internationalisation: check if new style (> vdr 1.4.x) or fall back to 1.4.x
+ifeq ($(shell [ $(APIVERSNUM) -ge 10500 ] && echo yes),yes)
+ I18NTARGET = i18n
+else
+ OBJS += i18n.o
endif
+### The main target:
-all: $(TARGETS)
+all: $(SOFILE) $(I18NTARGET)
### Implicit rules:
%.o: %.c
- $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
-
+ $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
-# Dependencies:
+### Dependencies:
-MAKEDEP = g++ -MM -MG
+MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
- @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
+ @$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@
-include $(DEPFILE)
-
### Internationalization (I18N):
PODIR = po
-LOCALEDIR = $(VDRDIR)/locale
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
-I18Ndirs = $(notdir $(foreach file, $(I18Npo), $(basename $(file))))
+I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot
-
%.mo: %.po
msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
- xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<nobody@domain.com>' -o $@ $^
+ xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
-$(I18Npo): $(I18Npot)
- msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
+%.po: $(I18Npot)
+ msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@
-i18n: $(I18Nmo)
- @mkdir -p $(LOCALEDIR)
- for i in $(I18Ndirs); do\
- mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\
- cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr-$(PLUGIN).mo;\
- done
+$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
+ install -D -m644 $< $@
+
+.PHONY: i18n
+i18n: $(I18Nmo) $(I18Npot)
+
+install-i18n: $(I18Nmsgs)
### Targets:
-libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) -L$(INSTALLPREFIX)/lib -L./graphlcd-base/glcddrivers/ -L./graphlcd-base/glcdgraphics/ -shared $(OBJS) -lglcddrivers -lglcdgraphics -lstdc++ -o $@
- @cp $@ $(LIBDIR)/$@.$(APIVERSION)
+$(SOFILE): $(OBJS)
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lglcddrivers -lglcdgraphics -lglcdskin -lstdc++ -o $@
+
+install-lib: $(SOFILE)
+ install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)
-dist: clean
+install: install-lib install-i18n resources $(INS_TARGET_TTF) $(INS_TARGET_DOCS)
+
+docs:
+ @install -d $(DESTDIR)$(INSTALLDOCDIR)
+ @install -m 644 COPYING $(DESTDIR)$(INSTALLDOCDIR)
+ @install -m 644 README $(DESTDIR)$(INSTALLDOCDIR)
+ @install -m 644 HISTORY $(DESTDIR)$(INSTALLDOCDIR)
+
+ttf-fonts:
+ @install -d $(DESTDIR)$(RESDIR)/fonts
+ @install -m 644 $(PLUGIN)/fonts/*.ttf $(DESTDIR)$(RESDIR)/fonts
+
+resources:
+ @install -d $(DESTDIR)$(RESDIR)/fonts
+ @install -m 644 $(PLUGIN)/channels.alias $(DESTDIR)$(RESDIR)
+ @cp -a $(PLUGIN)/logos $(DESTDIR)$(RESDIR)
+ @cp -a $(PLUGIN)/skins $(DESTDIR)$(RESDIR)
+ @install -m 644 $(PLUGIN)/fonts/*.fnt $(DESTDIR)$(RESDIR)/fonts
+
+dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
- @tar czf $(PACKAGE).tgz --exclude .svn --exclude .git --exclude *.cbp --exclude *.layout -C $(TMPDIR) $(ARCHIVE)
+ @tar czf $(PACKAGE).tgz --exclude .git --exclude *.cbp --exclude *.layout -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz
clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
- @-rm -f *.o $(DEPFILE) *.so *.tgz core* *~
-
-install: all
- @install -d $(INSTALLDOCDIR)/$(PLUGIN)
- @install -m 644 README $(INSTALLDOCDIR)/$(PLUGIN)
+ @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
uninstall:
- @rm -rf $(INSTALLDOCDIR)/$(PLUGIN)
+ @-rm -rf $(DESTDIR)$(INSTALLDOCDIR)
+ @-rm -rf $(DESTDIR)$(RESDIR)
+ @-rm -f $(DESTDIR)$(LOCDIR)/*/LC_MESSAGES/vdr-$(PLUGIN).mo
+ @-rm -f $(DESTDIR)$(LIBDIR)/$(SOFILE).$(APIVERSION)
+
diff --git a/README b/README
index ddfdc73..731f577 100644
--- a/README
+++ b/README
@@ -4,7 +4,8 @@ Written by Carsten Siebholz (c.siebholz AT t-online.de>
From 0.0.8 on maintained by Andreas 'powARman' Regel (andreas.regel AT powarman.de)
from 0.1.5 on maintained by Wolfgang Astleitner (mrwastl AT users.sourceforge.net) & Andreas 'randy' Weinberger (vdr AT smue.org)
-Project's homepage: http://graphlcd.berlios.de/
+Project's homepage: http://projects.vdr-developer.org/projects/show/graphlcd
+ before 0.1.5: http://graphlcd.berlios.de/
before 0.0.8: http://c.siebholz.bei.t-online.de/
GIT repo: http://projects.vdr-developer.org/projects/show/graphlcd
@@ -37,20 +38,29 @@ Installation and Configuration:
|
+- plugins
| |
- | +- graphlcd (contains channels.alias)
+ | +- graphlcd (contains logonames.alias)
| | |
| | +-- fonts (contains *.fnt files)
| | |
- . . +-- logos (contains *.glcd files)
+ | | +-- logos (contains *.glcd files)
+ | | |
+ . . +-- skins (contains skin files and definitions)
. .
-5. Start VDR with the plugin.
+5. If you are using VDR 1.3 or higher, you will have to recreate the
+ link to logonames.alias:
+
+ ln -sf logonames.alias.13 logonames.alias
+
+6. Start VDR with the plugin.
You have to specify your the path and name of the driver library's
configuration file and the name of your display in the config file
on the command line.
Possible options are:
-c CONFIG, --config=CONFIG file name and path of the configuration file
-d DISPLAY, --display=DISPLAY name of the display
+ -s SKIN, --skin=SKIN name of the skin
+
-c: Sets the file path and name of the driver library's config file.
If this parameter is not given the default '/etc/graphlcd.conf'
@@ -58,10 +68,13 @@ Installation and Configuration:
-d: Sets the name of the section in the config file that specifies
the display used for the plugin's output. If this parameter is
not given, the first section will be used.
+ -s: Sets the name of the skin to be used.
+ If this parameter is not given, skin 'default' will be used.
Examples:
vdr -P 'graphlcd -c /video/graphlcd.conf -d ks0108'
vdr -P 'graphlcd -c /etc/graphlcd.conf'
+ vdr -P 'graphlcd -c /video/graphlcd.conf -d usb13700 -s bigskin'
Channel Logos
@@ -75,10 +88,11 @@ Normally, the plugin looks for a file with the name
like used by VDR itself and <Size> is a character depending of the
size of the logo. (l for large size logos and m for medium size logos).
To keep an overview over the logos it instead would be better to name
-them <ChannelName>_<Size>.glcd and use the file channels.alias for the
+them <ChannelName>_<Size>.glcd and use the file logonames.alias for the
relation between channel ID and channel name.
-example: ZDF_l.glcd, channels.alias entry: '1-1079-28006:ZDF'
+example: ZDF_l.glcd
+
Setup Parameters:
-----------------
@@ -181,64 +195,60 @@ Scroll time interval:
(Possible values: 100 <= x <= 2000)
-SVDRP Commands:
----------------
-svdrpsend.pl "PLUG graphlcd <CMD>", where CMD is:
-
-ON
- Switch Plugin on
-
-OFF
- Switch Plugin off
-
-UPD
- Update LCD Content, Plugin must be active.
-
-CLS
- Clear LCD Content (aka blank screen), Plugin must not be active.
-
-
-Changing Fonts:
----------------
-It's very easy to change the fonts that are used by graphlcd.
-The plugin uses 4 fonts:
-- a large font, that is used for
- the title of the current program and for
- the title of the recording (during replay).
-- a normal font, that is used for
- the date/time bar,
- the channel bar,
- the starttime, endtime and the subtitle of the current program,
- the times in the replay screen,
- the title and the items in the menus,
- the popup-messages and for
- the text items like the content of a recording.
-- a small font, that is only used for the text of the 4 colored buttons.
-- a symbol font, that contains the symbols.
-
-Because smaller displays should use smaller fonts, the displays will be
-classified in 3 categories. Each category should have all 4 fonts.
-The name of the font files depend on the category and on the font:
- small displays ( vertical size < 64 ):
- f_s_l.fnt : large font
- f_s_n.fnt : normal font
- f_s_s.fnt : small font
- f_s_sym.fnt: symbols
- medium displays ( vertical size 64..127 ):
- f_m_l.fnt : large font
- f_m_n.fnt : normal font
- f_m_s.fnt : small font
- f_m_sym.fnt: symbols
- large displays ( vertical size >= 128 ):
- f_l_l.fnt : large font
- f_l_n.fnt : normal font
- f_l_s.fnt : small font
- f_l_sym.fnt: symbols
-
-To change the fonts you only have to change the related symbolic link to
-another font file.
-If you use another already existing font or if you want to create a new
-one by yourself does not matter. If you want to create a new one or if
-you want to modify an existing font, look into /tools/crtfont in the
-GraphLCD base package and read the README.
+Patches
+-------
+femon:
+versions <= 1.7.7 require a patch to be functionable with graphlcd.
+if graphlcd-plugin detects a femon version <= 1.7.7 and this version has not yet been patched,
+femon will ignored by graphlcd (problem: if graphlcd calls an unpatched femon, vdr will crash
+when shutting or restarting). the bug has already been reported to the maintainer of femon and
+will be fixed in 1.7.8.
+
+note: $SOURCEDIR/VDR == source directory of vdr. replace accordingly.
+
+for femon <= 1.2.x apply the following patch:
+cd $SOURCEDIR/VDR/PLUGINS/src/femon
+patch -p0 < $SOURCEDIR/VDR/PLUGINS/src/graphlcd/patches/femon-1.1.5_fixnullandsegfault_path.diff
+
+for femon > 1.2.x and <= 1.7.7 apply the following patch:
+cd $SOURCEDIR/VDR/PLUGINS/src/femon
+patch -p0 < $SOURCEDIR/VDR/PLUGINS/src/graphlcd/patches/femon-1.7.7_fixsegfault_patch.diff
+
+or, if you don't want to apply a patch or the patch fails with your version of femon,
+replace the entire function
+
+bool cPluginFemon::Service(const char *Id, void *Data)
+{
+....
+}
+
+with the following one (should be valid for all femon versions >= 1.1.x):
+
+bool cPluginFemon::Service(const char *Id, void *Data)
+{
+ if (strcmp(Id,"FemonService-v1.0") == 0) {
+ if (Data) {
+ FemonService_v1_0 *data = (FemonService_v1_0*)Data;
+ if (! cDevice::ActualDevice() )
+ return false;
+
+ int ndx = cDevice::ActualDevice()->CardIndex();
+ data->fe_name = getFrontendName(ndx);
+ data->fe_status = getFrontendStatus(ndx);
+ data->fe_snr = getSNR(ndx);
+ data->fe_signal = getSignal(ndx);
+ data->fe_ber = getBER(ndx);
+ data->fe_unc = getUNC(ndx);
+ data->video_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetVideoBitrate() : 0.0;
+ data->audio_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetAudioBitrate() : 0.0;
+ data->dolby_bitrate = cFemonOsd::Instance() ? cFemonOsd::Instance()->GetDolbyBitrate() : 0.0;
+ }
+ return true;
+ }
+
+ return false;
+}
+
+
+after applying this patch uncomment DEFINES += -DGRAPHLCD_SERVICE_FEMON_VALID in the Makefile.
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..e49b92e
--- /dev/null
+++ b/TODO
@@ -0,0 +1 @@
+for skin-related TODOs: see TODO in graphlcd-base
diff --git a/alias.c b/alias.c
new file mode 100644
index 0000000..a17a4d9
--- /dev/null
+++ b/alias.c
@@ -0,0 +1,74 @@
+/*
+ * GraphLCD plugin for the Video Disk Recorder
+ *
+ * alias.c - alias class for converting channel id to its alias name
+ *
+ * This file is released under the GNU General Public License. Refer
+ * to the COPYING file distributed with this package.
+ *
+ * (c) 2001-2004 Carsten Siebholz <c.siebholz AT t-online.de>
+ * (c) 2004 Andreas Regel <andreas.regel AT powarman.de>
+ * (c) 2011 Wolfgang Astleitner <mrwastl AT users sourceforge net>
+ */
+
+#include <fstream>
+
+#include "alias.h"
+#include "strfct.h"
+
+#include <vdr/tools.h>
+
+const char * kChannelAliasFileName = "channels.alias";
+
+bool cChannelAliasList::Load(const std::string & CfgPath)
+{
+ std::fstream file;
+ char readLine[1000];
+ std::string line;
+ std::string aliasFileName;
+ std::string::size_type pos;
+ std::string id;
+ std::string alias;
+
+ aliasFileName = CfgPath + "/" + kChannelAliasFileName;
+
+#if (__GNUC__ < 3)
+ file.open(aliasFileName.c_str(), std::ios::in);
+#else
+ file.open(aliasFileName.c_str(), std::ios_base::in);
+#endif
+ if (!file.is_open())
+ {
+ esyslog("graphlcd plugin: ERROR opening channel alias file '%s'", aliasFileName.c_str());
+ return false;
+ }
+
+ while (!file.eof())
+ {
+ file.getline(readLine, 1000);
+ line = trim(readLine);
+ if (line.length() == 0)
+ continue;
+ if (line[0] == '#')
+ continue;
+ pos = line.find(":");
+ if (pos == std::string::npos)
+ continue;
+ id = trim(line.substr(0, pos));
+ alias = trim(line.substr(pos + 1));
+ mAliases.insert(std::make_pair(id, alias));
+ }
+ file.close();
+
+ return true;
+}
+
+std::string cChannelAliasList::GetAlias(const std::string & ChannelID) const
+{
+ std::map<std::string, std::string>::const_iterator pos;
+
+ pos = mAliases.find(ChannelID);
+ if (pos != mAliases.end())
+ return pos->second;
+ return "";
+}
diff --git a/alias.h b/alias.h
new file mode 100644
index 0000000..a691cb1
--- /dev/null
+++ b/alias.h
@@ -0,0 +1,28 @@
+/*
+ * GraphLCD plugin for the Video Disk Recorder
+ *
+ * alias.h - alias class for converting channel id to its alias name
+ *
+ * This file is released under the GNU General Public License. Refer
+ * to the COPYING file distributed with this package.
+ *
+ * (c) 2001-2004 Carsten Siebholz <c.siebholz AT t-online.de>
+ * (c) 2004 Andreas Regel <andreas.regel AT powarman.de>
+ */
+
+#ifndef _GRAPHLCD_ALIAS_H_
+#define _GRAPHLCD_ALIAS_H_
+
+#include <map>
+#include <string>
+
+class cChannelAliasList
+{
+private:
+ std::map<std::string, std::string> mAliases;
+public:
+ bool Load(const std::string & CfgPath);
+ std::string GetAlias(const std::string & ChannelID) const;
+};
+
+#endif
diff --git a/common.c b/common.c
new file mode 100644
index 0000000..8f1c52a
--- /dev/null
+++ b/common.c
@@ -0,0 +1,217 @@
+#include <time.h>
+
+#include <glcdskin/type.h>
+#include <glcdskin/string.h>
+
+#include <vdr/plugin.h>
+#include <string.h>
+
+#include "strfct.h"
+
+#if APIVERSNUM < 10503
+#include <locale.h>
+
+static char* locID[] = {
+ "en_US", //" English",
+ "de_DE", // "Deutsch",
+ "sl_SI", // "Slovenski",
+ "it_IT", // "Italiano",
+ "nl_NL", // "Nederlands",
+ "pt_PT", // "Português",
+ "fr_FR", // "Français",
+ "no_NO", // "Norsk",
+ "fi_FI", // "suomi", Finnish (this is not a typo - it's really lowercase!)
+ "pl_PL", // "Polski",
+ "es_ES", // "Español",
+ "el_GR", // "ÅëëçíéêÜ", Greek
+ "sv_SE", // "Svenska",
+ "ro_RO", // "Românã",
+ "hu_HU", // "Magyar",
+ "ca_ES", // "Català",
+ "ru_RU", // "ÀãááÚØÙ", Russian
+ "hr_HR", // "Hrvatski",
+ "et_EE", // "Eesti",
+ "da_DK", // "Dansk",
+ "cs_CZ" // "Èesky", Czech
+};
+#endif
+
+
+GLCD::cType TimeType(time_t Time, const std::string &Format)
+{
+ static char result[1000];
+ struct tm tm_r, *tm;
+ tm = localtime_r(&Time, &tm_r);
+
+ if (Time > 0)
+ {
+ if (Format.length() > 0)
+ {
+// for vdr < 1.5.x: force locale for correct language output. for >= 1.5.x: system locale should be fine
+#if APIVERSNUM < 10503
+ setlocale(LC_TIME, ( Setup.OSDLanguage < (int)(sizeof(locID)/sizeof(char*)) ) ? locID[Setup.OSDLanguage] : "en_US" );
+#endif
+ strftime(result, sizeof(result), Format.c_str(), tm);
+
+ GLCD::cType r = result;
+ return r;
+ } else
+ return Time;
+ }
+ return false;
+}
+
+GLCD::cType DurationType(int Index, const std::string &Format, double framesPerSecFactor = 1.0)
+{
+ static char result[1000];
+ if (Index > 0)
+ {
+ if (Format.length() > 0)
+ {
+ uint update = 0;
+ const char *ptr = Format.c_str();
+ char *res = result;
+ enum { normal, format } state = normal;
+ int n = 0;
+
+ int f = (Index % (int)framesPerSecFactor) + 1;
+ int s = (Index / (int)framesPerSecFactor);
+
+ int m = s / 60 % 60;
+ int h = s / 3600;
+ s %= 60;
+ while (*ptr && res < result + sizeof(result))
+ {
+ switch (state)
+ {
+ case normal:
+ if (*ptr == '%')
+ state = format;
+ else
+ *(res++) = *ptr;
+ break;
+
+ case format:
+ switch (*ptr)
+ {
+ case 'H':
+ n = snprintf(res, sizeof(result) - (res - result), "%02d", h);
+ break;
+
+ case 'k':
+ n = snprintf(res, sizeof(result) - (res - result), "% 2d", h);
+ break;
+
+ case 'M':
+ n = snprintf(res, sizeof(result) - (res - result), "%02d", m);
+ update = 1000*60;
+ break;
+
+ case 'm':
+ n = snprintf(res, sizeof(result) - (res - result), "%d", m + (h * 60));
+ update = 1000*60;
+ break;
+
+ case 'S':
+ n = snprintf(res, sizeof(result) - (res - result), "%02d", s);
+ update = 1000;
+ break;
+
+ case 'f':
+ n = snprintf(res, sizeof(result) - (res - result), "%d", f);
+ update = 1000;
+ break;
+
+ case '%':
+ n = 1;
+ *res = '%';
+ break;
+ }
+ res += n;
+ state = normal;
+ break;
+ }
+ ++ptr;
+ }
+
+ GLCD::cType r = result;
+ r.SetUpdate(update);
+ return r;
+ } else
+ return (int)Index;
+ }
+ return false;
+}
+
+int ParanoiaStrcmp(const char *s1, const char *s2)
+{
+ if (! s1 || ! s2)
+ return -1;
+
+ // s1 must be under 'our' control (and thus valid), s2 may be a string w/ unexpected content
+ size_t n = strlen(s1);
+
+ int rv = strncmp(s1, s2, n);
+ if (rv == 0)
+ return (s2[n] == '\0') ? 0 : -1;
+ else
+ return rv;
+}
+
+const std::string SplitText(const std::string &Text, const std::string &Delim, bool firstPart = true) {
+ size_t found = Text.find(Delim);
+
+ if (found != std::string::npos) {
+ return (firstPart) ? Text.substr(0, found) : Text.substr(found + Delim.size());
+ }
+ return (firstPart) ? Text : NULL;
+}
+
+const std::string SplitToken(const std::string &Token, const struct GLCD::tSkinAttrib Attrib, bool extSplit) {
+ if (Attrib.Type == GLCD::aClean) {
+ if (extSplit) {
+ std::string Text = SplitText(Token, " - ", true);
+
+ // also cut leading index numbers, eg: "1 Menu" -> "Menu"
+ size_t pos = 0;
+ bool exitw = false;
+ bool valid = true;
+
+ while (!exitw && valid && pos < Text.size()-1) {
+ if (Text[pos] == ' ') {
+ pos++;
+ } else {
+ valid = (isdigit(Text[pos]) || Text[pos] == ' ' || Text[pos] == '\t') ? true : false;
+ exitw = true;
+ }
+ }
+
+ exitw = false;
+ while (!exitw && valid && pos < Text.size()-1) {
+ if (isdigit(Text[pos])) {
+ pos++;
+ } else {
+ valid = (Text[pos] == ' ' || Text[pos] == '\t') ? true : false;
+ exitw = true;
+ }
+ }
+
+ exitw = false;
+ while (!exitw && valid && pos < Text.size()-1) {
+ if (Text[pos] == ' ') {
+ pos++;
+ } else {
+ exitw = true;
+ }
+ }
+
+ if (valid && Text[pos] == '\t')
+ pos++;
+ return trim( (valid) ? Text.substr(pos) : Text );
+ }
+ return SplitText(Token, " - ", true);
+ } else if (Attrib.Type == GLCD::aRest) {
+ return SplitText(Token, " - ", false);
+ }
+ return Token;
+}
diff --git a/common.h b/common.h
new file mode 100644
index 0000000..9873690
--- /dev/null
+++ b/common.h
@@ -0,0 +1,8 @@
+
+#include <glcdskin/string.h>
+
+GLCD::cType TimeType(time_t Time, const std::string &Format);
+GLCD::cType DurationType(int Index, const std::string &Format, double framesPerSecFactor = 1.0);
+int ParanoiaStrcmp(const char *s1, const char *s2);
+const std::string SplitText(const std::string &Text, const std::string &Delim, bool firstPart = true);
+const std::string SplitToken(const std::string &Token, const struct GLCD::tSkinAttrib Attrib, bool extSplit = false);
diff --git a/compat.h b/compat.h
deleted file mode 100644
index 4041ed4..0000000
--- a/compat.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _GRAPHLCD_COMPAT_H_
-#define _GRAPHLCD_COMPAT_H_
-
-
-#if VDRVERSNUM < 10318
-#define TimeMs time_ms
-#else
-#define TimeMs cTimeMs::Now
-#endif
-
-#if VDRVERSNUM >= 10318
-#define Apid1() Apid(0)
-#define Apid2() Apid(1)
-#define Dpid1() Dpid(0)
-#define Dpid2() Dpid(1)
-#endif
-
-#endif
diff --git a/display.c b/display.c
index 49ddbb4..54c93f1 100644
--- a/display.c
+++ b/display.c
@@ -7,18 +7,17 @@
* to the COPYING file distributed with this package.
*
* (c) 2001-2004 Carsten Siebholz <c.siebholz AT t-online.de>
- * (c) 2004 Andreas Regel <andreas.regel AT powarman.de>
+ * (c) 2004-2010 Andreas Regel <andreas.regel AT powarman.de>
+ * (c) 2010-2012 Wolfgang Astleitner <mrwastl AT users sourceforge net>
*/
-#include <ctype.h>
-#include <unistd.h>
-#include <sys/io.h>
-#include <sys/time.h>
+#include <stdlib.h>
#include <algorithm>
#include <glcddrivers/config.h>
#include <glcddrivers/drivers.h>
+#include <glcdskin/parser.h>
#include "display.h"
#include "global.h"
@@ -28,1992 +27,481 @@
#include <vdr/tools.h>
#include <vdr/menu.h>
-#include <vdr/plugin.h>
-
-#include "compat.h"
-
-#ifdef USE_WAREAGLEICON
-#include <vdr/iconpatch.h>
-#endif
-
-#define MAXLINES_MSG 4
-#define MAXLINES_TEXT 16
-#define FILENAME_EXTERNAL_TRIGGERED_SYMBOLS "/tmp/graphlcd_symbols"
-
-// tiny: 0..48
-#define MINY_T 0
-#define MAXY_T 48
-
-// small: 49..61
-#define MINY_S (MAXY_T+1)
-#define MAXY_S 61
-
-// medium: 62..127
-#define MINY_M (MAXY_S+1)
-#define MAXY_M 127
-
-// large: 128..
-#define MINY_L (MAXY_M+1)
-#define MAXY_L 9999
-
-
-
-int FRAME_SPACE_X;
-int FRAME_SPACE_XB;
-int FRAME_SPACE_Y;
-int FRAME_SPACE_YB;
-int TEXT_OFFSET_X;
-int TEXT_OFFSET_Y_TIME;
-int TEXT_OFFSET_Y_CHANNEL;
-int TEXT_OFFSET_Y_TITLE;
-int SYMBOL_SPACE;
-int TIMEBAR_HEIGHT;
-
+#include <vdr/remote.h>
cGraphLCDDisplay::cGraphLCDDisplay()
: cThread("glcd_display"),
- update(false),
- active(false),
mLcd(NULL),
- bitmap(NULL),
- GraphLCDState(NULL)
+ mScreen(NULL),
+ mSkin(NULL),
+ mSkinConfig(NULL),
+ mGraphLCDState(NULL)
{
- cfgDir = "";
- fontDir = "";
- logoDir = "";
-
- CurrTime = time(NULL);
- LastTime = CurrTime-58;
- CurrTimeval.tv_sec = 0;
- CurrTimeval.tv_usec = 0;
- timerclear(&UpdateAt);
- LastTimeCheckSym = CurrTime;
-
- State = Normal;
- LastState = Normal;
-
- menuTop = 0;
- menuCount = 0;
- tabCount = 0;
- for (int i = 0; i < kMaxTabCount; i++)
- tab[i] = 0;
- tabMax[0] = 0;
- tabMax[1] = 66;
- tabMax[2] = 100;
- tabMax[3] = 100;
- tabMax[4] = 100;
- tabMax[5] = 100;
- tabMax[6] = 100;
- tabMax[7] = 100;
- tabMax[8] = 100;
- tabMax[9] = 100;
-
- showVolume = false;
-
- logo = NULL;
- logoList = NULL;
-
- strcpy (szETSymbols, "");
+ mUpdate = false;
+ mUpdateAt = 0;
+ mLastTimeMs = 0;
+
+ mState = StateNormal;
+ mLastState = StateNormal;
+
+ mDisplayMode = DisplayModeNormal;
+ LastTimeDisplayMode = 0;
+
+ mShowVolume = false;
+ mShowAudio = false;
nCurrentBrightness = -1;
LastTimeBrightness = 0;
bBrightnessActive = true;
- LastTimeSA.Set(0); //span
- // convert to UTF-8 internally, if we want to support anything else and not only ISO-8859-1
- conv = new cCharSetConv(cCharSetConv::SystemCharacterTable() ? cCharSetConv::SystemCharacterTable() : "UTF-8", "UTF-8");
-#ifdef USE_WAREAGLEICON
- bIsUTF8 = IsLangUtf8();
- textWithIcons = 0;
-#endif
+ mService = NULL; /* cannot be initialised here (mGraphLCDState not yet available) */
}
cGraphLCDDisplay::~cGraphLCDDisplay()
{
- active = false;
Cancel(3);
- delete GraphLCDState;
- delete bitmap;
- delete logoList;
-
- if (conv) {
- delete conv;
- }
-#ifdef USE_WAREAGLEICON
- if (textWithIcons)
- free(textWithIcons);
-#endif
+ delete mSkin;
+ delete mSkinConfig;
+ delete mScreen;
+ delete mGraphLCDState;
+
+ delete mService;
}
-int cGraphLCDDisplay::Init(GLCD::cDriver * Lcd, const char * CfgDir)
+bool cGraphLCDDisplay::Initialise(GLCD::cDriver * Lcd, const std::string & CfgPath, const std::string & SkinsPath, const std::string & SkinName)
{
- if (!Lcd || !CfgDir)
- return 2;
+ std::string skinsPath;
+
+ if (!Lcd)
+ return false;
mLcd = Lcd;
- cfgDir = CfgDir;
- fontDir = cfgDir + "/fonts";
- logoDir = cfgDir + "/logos";
- logoList = new cGraphLCDLogoList(logoDir.c_str(), cfgDir.c_str());
- if (!logoList)
- {
- esyslog("graphlcd plugin: ERROR out of memory\n");
- return 1;
- }
+ mGraphLCDState = new cGraphLCDState(this);
+ if (!mGraphLCDState)
+ return false;
+
+ // must be initialised before cGraphLCDSkinConfig (else: seg fault)
+ mService = new cGraphLCDService(mGraphLCDState);
+
+ skinsPath = SkinsPath;
+ if (skinsPath == "")
+ skinsPath = CfgPath + "/skins";
- std::string fontListFile = cfgDir + "/fonts.conf";
- if (fontList.Load(fontListFile) == false)
+ mSkinConfig = new cGraphLCDSkinConfig(this, CfgPath, skinsPath, SkinName, mGraphLCDState);
+ if (!mSkinConfig)
{
- esyslog("graphlcd plugin: ERROR: Could not load %s!\n", fontListFile.c_str());
- return 1;
+ esyslog("graphlcd plugin: ERROR creating skin config\n");
+ return false;
}
Start();
- return 0;
+ return true;
}
void cGraphLCDDisplay::Tick(void)
{
- if (GraphLCDState)
- GraphLCDState->Tick();
+ if (mGraphLCDState)
+ mGraphLCDState->Tick();
}
void cGraphLCDDisplay::Action(void)
{
+ std::string skinFileName;
+
if (mLcd->Init() != 0)
{
esyslog("graphlcd plugin: ERROR: Failed initializing display\n");
+ GraphLCDSetup.PluginActive = 0;
+ Cancel(-1); // cancel display thread
return;
}
- bitmap = new GLCD::cBitmap(mLcd->Width(), mLcd->Height());
- if (!bitmap)
+ mScreen = new GLCD::cBitmap(mLcd->Width(), mLcd->Height());
+ if (!mScreen)
{
esyslog("graphlcd plugin: ERROR creating drawing bitmap\n");
return;
}
- largeFont = fontList.GetFont("Large Font");
- if (largeFont == NULL)
- {
- esyslog("graphlcd plugin: ERROR: No \"Large Font\" specified!\n");
- return;
- }
- normalFont = fontList.GetFont("Normal Font");
- if (normalFont == NULL)
- {
- esyslog("graphlcd plugin: ERROR: No \"Normal Font\" specified!\n");
- return;
- }
- smallFont = fontList.GetFont("Small Font");
- if (smallFont == NULL)
+ skinFileName = mSkinConfig->SkinPath() + "/" + mSkinConfig->SkinName() + ".skin";
+ std::string errorString = "";
+ mSkin = GLCD::XmlParse(*mSkinConfig, mSkinConfig->SkinName(), skinFileName, errorString);
+ if (!mSkin)
{
- esyslog("graphlcd plugin: ERROR: No \"Small Font\" specified!\n");
- return;
- }
- symbols = fontList.GetFont("Symbol Font");
- if (symbols == NULL)
- {
- esyslog("graphlcd plugin: ERROR: No \"Symbol Font\" specified!\n");
- return;
- }
+ int skipx = mLcd->Width() >> 3;
+ int skipy = mLcd->Height() >> 3;
- if (bitmap->Width() < 240)
- {
- FRAME_SPACE_X = 0;
- FRAME_SPACE_XB = 1;
- TEXT_OFFSET_X = 2;
- }
- else
- {
- FRAME_SPACE_X = 2;
- FRAME_SPACE_XB = 2;
- TEXT_OFFSET_X = 4;
- }
+ esyslog("graphlcd plugin: ERROR loading skin '%s'\n", mSkinConfig->SkinName().c_str());
- if (bitmap->Height() <= MAXY_T)
- {
- // very small display
- FRAME_SPACE_Y = 0;
- FRAME_SPACE_YB = 1;
- TEXT_OFFSET_Y_TIME = 1;
- TEXT_OFFSET_Y_CHANNEL = 1;
- TEXT_OFFSET_Y_TITLE = 1;
- SYMBOL_SPACE = 1;
- TIMEBAR_HEIGHT = 3;
- }
- else if (bitmap->Height() <= MAXY_S)
- {
- // small display
- FRAME_SPACE_Y = 0;
- FRAME_SPACE_YB = 1;
- TEXT_OFFSET_Y_TIME = 1;
- TEXT_OFFSET_Y_CHANNEL = 3;
- TEXT_OFFSET_Y_TITLE = 1;
- SYMBOL_SPACE = 1;
- TIMEBAR_HEIGHT = 3;
- }
- else if (bitmap->Height() <= MAXY_M)
- {
- // medium display
- FRAME_SPACE_Y = 0;
- FRAME_SPACE_YB = 1;
- TEXT_OFFSET_Y_TIME = 1;
- TEXT_OFFSET_Y_CHANNEL = 3;
- TEXT_OFFSET_Y_TITLE = 3;
- SYMBOL_SPACE = 1;
- TIMEBAR_HEIGHT = 3;
- }
- else
- {
- // large display
- FRAME_SPACE_Y = 2;
- FRAME_SPACE_YB = 2;
- TEXT_OFFSET_Y_TIME = 2;
- TEXT_OFFSET_Y_CHANNEL = 5;
- TEXT_OFFSET_Y_TITLE = 5;
- SYMBOL_SPACE = 2;
- TIMEBAR_HEIGHT = 5;
- }
+ mLcd->Clear();
+ // clear the screen with a filled rectangle using a defined colour to guarantee visible text or 'X'
+#ifdef GRAPHLCD_CBITMAP_ARGB
+ mScreen->DrawRectangle(0, 0, mLcd->Width()-1, mLcd->Height()-1, GLCD::cColor::Black, true);
+#else
+ mScreen->DrawRectangle(0, 0, mLcd->Width()-1, mLcd->Height()-1, GLCD::clrBlack, true);
+#endif
- GraphLCDState = new cGraphLCDState(this);
- if (!GraphLCDState)
+ GLCD::cFont * font = new GLCD::cFont();
+ if ( font->LoadFNT( mSkinConfig->FontPath() + "/" + "f8n.fnt") ) {
+ std::vector <std::string> lines;
+ font->WrapText(mLcd->Width()-10, mLcd->Height()-1, errorString, lines);
+ int lh = font->LineHeight();
+ for (size_t i = 0; i < lines.size(); i++) {
+#ifdef GRAPHLCD_CBITMAP_ARGB
+ mScreen->DrawText(3, 1+i*lh, mLcd->Width()-1, lines[i], font, GLCD::cColor::White);
+#else
+ mScreen->DrawText(3, 1+i*lh, mLcd->Width()-1, lines[i], font, GLCD::clrWhite);
+#endif
+ }
+ } else {
+ // draw an 'X' to inform the user that there was a problem with loading the skin
+ // (better than just leaving an empty screen ...)
+#ifdef GRAPHLCD_CBITMAP_ARGB
+ mScreen->DrawLine(skipx, skipy, mLcd->Width()-1-skipx, mLcd->Height()-1-skipy, GLCD::cColor::White);
+ mScreen->DrawLine(mLcd->Width()-1-skipx, skipy, skipx, mLcd->Height()-1-skipy, GLCD::cColor::White);
+#else
+ mScreen->DrawLine(skipx, skipy, mLcd->Width()-1-skipx, mLcd->Height()-1-skipy, GLCD::clrWhite);
+ mScreen->DrawLine(mLcd->Width()-1-skipx, skipy, skipx, mLcd->Height()-1-skipy, GLCD::clrWhite);
+#endif
+ }
+#ifdef GRAPHLCD_CBITMAP_ARGB
+ mLcd->SetScreen(mScreen->Data(), mScreen->Width(), mScreen->Height());
+#else
+ mLcd->SetScreen(mScreen->Data(), mScreen->Width(), mScreen->Height(), mScreen->LineSize());
+#endif
+ mLcd->Refresh(true);
return;
+ }
+ mSkin->SetBaseSize(mScreen->Width(), mScreen->Height());
+ mLcd->Clear();
mLcd->Refresh(true);
- active = true;
- update = true;
- while (active)
+ mUpdate = true;
+
+ uint64_t lastEventMs = 0;
+#define MIN_EVENT_DELAY 500
+
+ while (Running())
{
if (GraphLCDSetup.PluginActive)
{
- CurrTime = time(NULL);
+ uint64_t currTimeMs = cTimeMs::Now();
+ GLCD::cSkinDisplay * display = NULL;
- if (timerisset(&UpdateAt))
+ if (mUpdateAt != 0)
{
// timed Update enabled
- if (gettimeofday(&CurrTimeval, NULL) == 0)
+ if (currTimeMs > mUpdateAt)
{
- // get current time
- if (CurrTimeval.tv_sec > UpdateAt.tv_sec)
- {
- timerclear(&UpdateAt);
- update = true;
- }
- else if (CurrTimeval.tv_sec == UpdateAt.tv_sec &&
- CurrTimeval.tv_usec > UpdateAt.tv_usec)
- {
- timerclear(&UpdateAt);
- update = true;
- }
- }
- }
- if (GraphLCDSetup.ShowVolume && !update && showVolume)
- {
- if (TimeMs() - GraphLCDState->GetVolumeState().lastChange > 2000)
- {
- update = true;
- showVolume = false;
+ mUpdateAt = 0;
+ mUpdate = true;
}
}
- SetBrightness();
-
- switch (State)
+ if (GraphLCDSetup.ShowVolume)
{
- case Normal:
- // check and update external triggered symbols
- if (GraphLCDSetup.ShowETSymbols)
+ tVolumeState volume;
+ volume = mGraphLCDState->GetVolumeState();
+
+ if (volume.lastChange > 0)
+ {
+ if (!mShowVolume)
{
- if (CurrTime != LastTimeCheckSym)
+ if (currTimeMs - volume.lastChange < 2000)
{
- update |= CheckAndUpdateSymbols();
- LastTimeCheckSym = CurrTime;
+ mShowVolume = true;
+ mUpdate = true;
}
}
-
+ else
{
- std::vector<cScroller>::iterator it;
- for (it = scroller.begin(); it != scroller.end(); it++)
+ if (currTimeMs - volume.lastChange > 2000)
{
- if (it->NeedsUpdate())
- update = true;
+ mShowVolume = false;
+ mUpdate = true;
}
}
+ }
+ }
- // update Display if animated Logo is present, and an update is necessary
- if (!update && IsLogoActive() && logo->Count() > 1 &&
- (TimeMs() - logo->LastChange() >= logo->Delay()))
- {
- update = true;
- }
-
- // update Display every minute or due to an update
- if (CurrTime/60 != LastTime/60 || update)
- {
- timerclear(&UpdateAt);
- update = false;
-
- bitmap->Clear();
- DisplayTime();
- DisplayLogo();
- DisplayChannel();
- DisplaySymbols();
- DisplayProgramme();
- DisplayVolume();
- DisplayMessage();
- mLcd->SetScreen(bitmap->Data(), bitmap->Width(), bitmap->Height(), bitmap->LineSize());
- mLcd->Refresh(false);
- LastTime = CurrTime;
- }
- else
- {
-#if VDRVERSNUM < 10314
- usleep(100000);
-#else
- cCondWait::SleepMs(100);
-#endif
- }
- break;
+ if (GraphLCDSetup.ShowMenu)
+ {
+ tAudioState audio;
+ audio = mGraphLCDState->GetAudioState();
- case Replay:
+ if (audio.tracks.size() == 0) {
+ mShowAudio = false;
+ } else
+ if (audio.lastChange > 0)
{
- tReplayState replay = GraphLCDState->GetReplayState();
- if (replay.control)
+ if (!mShowAudio)
{
+ if (currTimeMs - audio.lastChange < 5000)
{
- update = false;
- std::vector<cScroller>::iterator it;
- for (it = scroller.begin(); it != scroller.end(); it++)
- {
- if (it->NeedsUpdate())
- update = true;
- }
- }
- // update Display if animated Logo is present, and an update is necessary
- if (!update && IsLogoActive() && logo->Count() > 1 &&
- TimeMs() - logo->LastChange() >= logo->Delay())
- {
- update = true;
- }
-
- if ( LastTimeSA.TimedOut() ) //span
- {
- update = true;
- LastTimeSA.Set(1000);
- }
-
- // update Display every second or due to an update
- if (CurrTime != LastTime || update)
- {
- // but only, if something has changed
-#if VDRVERSNUM >= 10701
- if (replay.total / replay.framesPerSecond != replay.totalLast / replay.framesPerSecond ||
- replay.current / replay.framesPerSecond != replay.currentLast / replay.framesPerSecond ||
- CurrTime/60 != LastTime/60 ||
- update)
-#else
- if (replay.total / FRAMESPERSEC != replay.totalLast / FRAMESPERSEC ||
- replay.current / FRAMESPERSEC != replay.currentLast / FRAMESPERSEC ||
- CurrTime/60 != LastTime/60 ||
- update)
-#endif
- {
- timerclear(&UpdateAt);
- update = false;
- bitmap->Clear();
- DisplayTime();
- DisplayLogo();
- DisplayReplay(replay);
- //DisplaySymbols();
- DisplayVolume();
- DisplayMessage();
- mLcd->SetScreen(bitmap->Data(), bitmap->Width(), bitmap->Height(), bitmap->LineSize());
- mLcd->Refresh(false);
- LastTime = CurrTime;
- }
- else
- {
-#if VDRVERSNUM < 10314
- usleep(100000);
-#else
- cCondWait::SleepMs(100);
-#endif
- }
- }
- else
- {
-#if VDRVERSNUM < 10314
- usleep(100000);
-#else
- cCondWait::SleepMs(100);
-#endif
+ mShowAudio = true;
+ mUpdate = true;
}
}
else
{
- State = Normal;
- Update();
- }
- }
- break;
-
- case Menu:
- if (GraphLCDSetup.ShowMenu)
- {
- // update Display every minute or due to an update
- if (CurrTime/60 != LastTime/60 || update)
+ if (currTimeMs - audio.lastChange > 5000)
{
- timerclear(&UpdateAt);
- update = false;
-
- bitmap->Clear();
- DisplayTime();
- DisplayMenu();
- DisplayTextItem();
- DisplayVolume();
- DisplayMessage();
- DisplayColorButtons();
- mLcd->SetScreen(bitmap->Data(), bitmap->Width(), bitmap->Height(), bitmap->LineSize());
- mLcd->Refresh(false);
- LastTime = CurrTime;
+ mShowAudio = false;
+ mUpdate = true;
}
- else
- {
-#if VDRVERSNUM < 10314
- usleep(100000);
-#else
- cCondWait::SleepMs(100);
-#endif
- }
- }
- else
- {
- //GraphLCDState.OsdClear();
-
- State = LastState;
- // activate delayed Update
-#if VDRVERSNUM < 10314
- usleep(100000);
-#else
- cCondWait::SleepMs(100);
-#endif
}
- break;
-
- default:
- break;
- }
- }
- else
- {
-#if VDRVERSNUM < 10314
- usleep(100000);
-#else
- cCondWait::SleepMs(100);
-#endif
- }
- }
-}
-
-void cGraphLCDDisplay::SetChannel(int ChannelNumber)
-{
- if (ChannelNumber == 0)
- return;
-
- mutex.Lock();
- cChannel * ch = Channels.GetByNumber(ChannelNumber);
- if (GraphLCDSetup.ShowLogo)
- {
- ePicType picType;
-
- switch (GraphLCDSetup.ShowLogo)
- {
- case 1: // auto
- if (bitmap->Height() <= MAXY_M)
- picType = ptLogoMedium;
- else
- picType = ptLogoLarge;
- break;
- case 2: // medium
- picType = ptLogoMedium;
- break;
- case 3: // large
- picType = ptLogoLarge;
- break;
- default: // should not happen at the moment !!
- picType = ptLogoSmall;
- break;
- }
-#if VDRVERSNUM >= 10300
- char strTmp[64];
- strcpy(strTmp, (const char *) ch->GetChannelID().ToString());
- char * strId = strstr(strTmp, "-") + 1;
- logo = logoList->GetLogo(strId, picType);
-#else
- char strId[16];
- sprintf(strId, "%d", ch->Sid());
- logo = logoList->GetLogo(strId, picType);
-#endif
- if (logo)
- logo->First(TimeMs());
- }
- else
- {
- logo = NULL;
- }
- bBrightnessActive = true;
- Update();
- mutex.Unlock();
-}
-
-void cGraphLCDDisplay::SetClear()
-{
- mutex.Lock();
-
- textItemLines.clear();
- textItemTop = 0;
- tabCount = 0;
- for (int i = 0; i < kMaxTabCount; i++)
- tab[i] = 0;
-
- mutex.Unlock();
-
- if (State == Menu)
- {
- State = LastState;
- // activate delayed Update
- UpdateIn(100000);
- }
- else
- {
- Update();
- }
-}
-
-void cGraphLCDDisplay::SetOsdTitle()
-{
- UpdateIn(0); // stop delayed Update
- mutex.Lock();
- if (State != Menu)
- {
- menuTop = 0;
- LastState = State;
- State = Menu;
- }
- mutex.Unlock();
- // activate delayed Update
- UpdateIn(100000);
-}
-
-void cGraphLCDDisplay::SetOsdItem(const char * Text)
-{
- int iAT, t;
- std::string str;
- std::string::size_type pos1, pos2;
-
- mutex.Lock();
-
- UpdateIn(0); // stop delayed Update
- str = Text;
- pos1 = 0;
- pos2 = str.find('\t');
- iAT = 0;
- while (pos1 < str.length() && pos2 != std::string::npos)
- {
- iAT++;
- t = std::min(normalFont->Width(str.substr(pos1), pos2 - pos1), (tabMax[iAT] * bitmap->Width()) / 100);
- tab[iAT] = std::max(tab[iAT], t);
- tabCount = std::max(tabCount, iAT);
- pos1 = pos2 + 1;
- pos2 = str.find('\t', pos1);
- }
- mutex.Unlock();
-}
-
-void cGraphLCDDisplay::SetOsdCurrentItem()
-{
- UpdateIn(100000); //XXX
-}
-
-void cGraphLCDDisplay::Replaying(bool starting, eReplayMode replayMode)
-{
- if (starting)
- {
- if (State != Menu)
- {
- State = Replay;
- }
- else
- {
- LastState = Replay;
- }
- if (GraphLCDSetup.ReplayLogo)
- {
- ePicType picType;
-
- switch (GraphLCDSetup.ReplayLogo)
- {
- case 1: // auto
- if (bitmap->Height() <= MAXY_M)
- picType = ptLogoMedium;
- else
- picType = ptLogoLarge;
- break;
- case 2: // medium
- picType = ptLogoMedium;
- break;
- case 3: // large
- picType = ptLogoLarge;
- break;
- default: // should not happen at the moment !!
- picType = ptLogoSmall;
- break;
- }
- switch (replayMode)
- {
- default:
- case eReplayNormal :
- logo = logoList->GetLogo("REPLAY-VDR", picType);break;
- case eReplayMusic :
- logo = logoList->GetLogo("REPLAY-MUSIC", picType);break;
- case eReplayDVD :
- logo = logoList->GetLogo("REPLAY-DVD", picType);break;
- case eReplayFile :
- logo = logoList->GetLogo("REPLAY-FILE", picType);break;
- case eReplayImage :
- logo = logoList->GetLogo("REPLAY-IMAGE", picType);break;
- case eReplayAudioCD:
- logo = logoList->GetLogo("REPLAY-AUDIOCD", picType);break;
- }
- if (logo)
- logo->First(TimeMs());
- }
- else
- {
- logo = NULL;
- }
- }
- else
- {
- if (State != Menu)
- {
- State = Normal;
- }
- else
- {
- LastState = Normal;
- }
- }
- bBrightnessActive = true;
- Update();
-}
-
-void cGraphLCDDisplay::SetOsdTextItem(const char * Text, bool Scroll)
-{
- static const char * lastText = NULL;
- tOsdState osd;
-
- osd = GraphLCDState->GetOsdState();
- mutex.Lock();
- if (Text)
- {
- if (osd.textItem.length() == 0)
- lastText = NULL;
- int maxTextLen = bitmap->Width() - 2 * FRAME_SPACE_X - 2 * TEXT_OFFSET_X;
- normalFont->WrapText(maxTextLen, 0, osd.textItem, textItemLines);
- textItemLines.push_back("");
- if (lastText != Text)
- {
- lastText = Text;
- textItemTop = 0;
- }
- }
- else
- {
- if (Scroll)
- {
- if (textItemTop > 0)
- textItemTop--;
- }
- else
- {
- if (textItemTop < (int) textItemLines.size() - 2)
- textItemTop++;
- }
- }
- mutex.Unlock();
- UpdateIn(100000);
-}
-
-void cGraphLCDDisplay::Update()
-{
- update = true;
-}
-
-void cGraphLCDDisplay::Clear()
-{
- bitmap->Clear();
- mLcd->SetScreen(bitmap->Data(), bitmap->Width(), bitmap->Height(), bitmap->LineSize());
- mLcd->Refresh(false);
-}
-
-void cGraphLCDDisplay::DisplayTime()
-{
- static char buffer[32];
- static char month[16];
- int FrameWidth, TextLen, yPos;
- struct tm tm_r;
-
- if (GraphLCDSetup.ShowDateTime == 1 ||
- (GraphLCDSetup.ShowDateTime == 2 && State != Menu))
- {
- FrameWidth = std::max(bitmap->Width() - 2 * FRAME_SPACE_X, 1);
- if (State == Normal || State == Replay)
- {
- if (IsLogoActive()) // Logo enabled & available
- {
- FrameWidth = std::max(FrameWidth - FRAME_SPACE_XB - logo->Width() - 2, (unsigned int) 1);
- }
- if (bitmap->Height() <= MAXY_M)
- {
- // tiny, small & medium display
- if (IsSymbolsActive()) // Symbols enabled
- {
- FrameWidth = std::max(FrameWidth - FRAME_SPACE_XB - symbols->TotalWidth(), 1);
}
}
- }
- yPos = FRAME_SPACE_Y;
-
- // draw Rectangle
- bitmap->DrawRoundRectangle(FRAME_SPACE_X, yPos,
- FRAME_SPACE_X + FrameWidth - 1,
- yPos + normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_TIME - 1,
- GLCD::clrBlack, true, (TEXT_OFFSET_Y_TIME >= 2) ? 4 : 1);
-
- if (CurrTime == 0)
- time(&CurrTime);
- tm * tm = localtime_r(&CurrTime, &tm_r);
-
- const char *amonth = tr("JanFebMarAprMayJunJulAugSepOctNovDec");
- amonth += Utf8SymChars(amonth, tm->tm_mon * 3);
- strn0cpy(month, amonth, min(Utf8SymChars(amonth, 3) + 1, int(sizeof(month))));
- snprintf(buffer, sizeof(buffer), "%s %2d.%s %d:%02d", (const char *) WeekDayName(tm->tm_wday), tm->tm_mday, Convert(month), tm->tm_hour, tm->tm_min);
- TextLen = normalFont->Width(buffer);
- if (TextLen > std::max(FrameWidth - 2 * TEXT_OFFSET_X, 1))
- {
- snprintf(buffer, sizeof(buffer), "%d.%s %d:%02d", tm->tm_mday, Convert(month), tm->tm_hour, tm->tm_min);
- TextLen = normalFont->Width(buffer);
- }
-
- if (TextLen > std::max(FrameWidth - 2 * TEXT_OFFSET_X, 1))
- {
- snprintf(buffer, sizeof(buffer), "%d.%d. %d:%02d", tm->tm_mday, tm->tm_mon+1, tm->tm_hour, tm->tm_min);
- TextLen = normalFont->Width(buffer);
- }
+ /* display mode (normal or interactive): reset after 10 secs if not normal */
+ if ( (mDisplayMode != DisplayModeNormal) && ( (uint32_t)(currTimeMs - LastTimeDisplayMode) > (uint32_t)(10000)) ) {
+ mDisplayMode = DisplayModeNormal;
+ LastTimeDisplayMode = currTimeMs;
+ mUpdate = true;
+ }
- if (TextLen > std::max(FrameWidth - 2 * TEXT_OFFSET_X, 1))
- {
- snprintf(buffer, sizeof(buffer), "%d:%02d", tm->tm_hour, tm->tm_min);
- TextLen = normalFont->Width(buffer);
- }
+ if (mState == StateNormal)
+ display = mSkin->GetDisplay("normal");
+ else if (mState == StateReplay)
+ display = mSkin->GetDisplay("replay");
+ else if (mState == StateMenu)
+ display = mSkin->GetDisplay("menu");
+ if (display && display->NeedsUpdate(currTimeMs ) )
+ mUpdate = true;
- if (TextLen < std::max(FrameWidth - 2 * TEXT_OFFSET_X, 1))
- {
- bitmap->DrawText(FRAME_SPACE_X + FrameWidth - TextLen - TEXT_OFFSET_X,
- yPos + TEXT_OFFSET_Y_TIME,
- FRAME_SPACE_X + FrameWidth - 1,
- buffer, normalFont, GLCD::clrWhite);
- }
- else
- {
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X,
- yPos + TEXT_OFFSET_Y_TIME,
- FRAME_SPACE_X + FrameWidth - 1,
- buffer, normalFont, GLCD::clrWhite);
- }
- }
-}
-void cGraphLCDDisplay::DisplayChannel()
-{
- int FrameWidth, yPos;
- tChannelState channel;
- const char * pszTmp1;
-
- channel = GraphLCDState->GetChannelState();
- if (GraphLCDSetup.ShowChannel)
- {
- FrameWidth = std::max(bitmap->Width() - 2 * FRAME_SPACE_X, 1);
- if (State == Normal)
- {
- if (IsLogoActive()) // Logo enabled & available
- {
- FrameWidth = std::max(FrameWidth - FRAME_SPACE_XB - logo->Width() - 2, (unsigned int) 1);
- }
- if (bitmap->Height() <= MAXY_M)
+ // update Display every minute
+ if (mState == StateNormal && (currTimeMs/60000 != mLastTimeMs/60000))
{
- // tiny, small & medium display
- if (IsSymbolsActive()) // Symbols enabled
- {
- FrameWidth = std::max(FrameWidth - FRAME_SPACE_XB - symbols->TotalWidth(), 1);
- }
+ mUpdate = true;
}
- }
-
- if (GraphLCDSetup.ShowDateTime == 1 ||
- (GraphLCDSetup.ShowDateTime == 2 && State != Menu))
- {
- yPos = FRAME_SPACE_Y + normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- if (bitmap->Height() >= MINY_L)
+ // update Display every second in replay state
+ if (mState == StateReplay && (currTimeMs/1000 != mLastTimeMs/1000))
{
- // align bottom border with logo
- if (IsLogoActive()) // Logo enabled & available
- {
- yPos += std::max((unsigned int) 0, FRAME_SPACE_Y + logo->Height() + 2 - yPos -
- (normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_CHANNEL));
- }
+ mUpdate = true;
}
- }
- else
- {
- yPos = FRAME_SPACE_Y;
- }
-
- // draw Rectangle
- bitmap->DrawRoundRectangle(FRAME_SPACE_X, yPos,
- FRAME_SPACE_X + FrameWidth - 1,
- yPos + normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_CHANNEL - 1,
- GLCD::clrBlack, true, (TEXT_OFFSET_Y_CHANNEL >= 4) ? 4 : 1);
-
- if (channel.strTmp.length() > 0)
- {
- pszTmp1 = Convert(channel.strTmp.c_str());
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X,
- yPos + TEXT_OFFSET_Y_CHANNEL,
- FRAME_SPACE_X + FrameWidth - 1,
- pszTmp1, normalFont, GLCD::clrWhite);
- }
- else if (channel.str.length() > 0)
- {
- pszTmp1 = Convert(channel.str.c_str());
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X,
- yPos + TEXT_OFFSET_Y_CHANNEL,
- FRAME_SPACE_X + FrameWidth - 1,
- pszTmp1, normalFont, GLCD::clrWhite);
- }
- }
-}
-bool cGraphLCDDisplay::IsLogoActive() const
-{
- if ((State==Normal && GraphLCDSetup.ShowLogo) ||
- (State==Replay && GraphLCDSetup.IdentifyReplayType && GraphLCDSetup.ReplayLogo))
- {
- return logo != NULL;
- }
- return false;
-}
-void cGraphLCDDisplay::DisplayLogo()
-{
- int x;
- int y;
+ bool bActive = bBrightnessActive
+ || (mState == StateMenu)
+ || (GraphLCDSetup.ShowVolume && mShowVolume)
+ || (GraphLCDSetup.ShowMenu && mShowAudio)
+ || (GraphLCDSetup.ShowMessages && mGraphLCDState->ShowMessage())
+ || (GraphLCDSetup.BrightnessDelay == 900);
- if (IsLogoActive())
- {
- if (logo->Count() > 1)
- {
- uint64_t t = TimeMs();
- if (t - logo->LastChange() >= logo->Delay())
+ // update display if BrightnessDelay is exceeded
+ if (bActive && (nCurrentBrightness == GraphLCDSetup.BrightnessActive) &&
+ ((uint32_t)((/*cTimeMs::Now()*/currTimeMs - LastTimeBrightness)) > (uint32_t)(GraphLCDSetup.BrightnessDelay*1000)))
{
- if (!logo->Next(t))
- logo->First(t);
+ mUpdate = true;
}
- }
-
- x = std::max(bitmap->Width() - FRAME_SPACE_X - logo->Width() - 2, (unsigned int) 0);
- y = FRAME_SPACE_Y;
-
- bitmap->DrawRoundRectangle(x, y, x + logo->Width() + 1, y + logo->Height() + 1, GLCD::clrBlack, false, 1);
- bitmap->DrawBitmap(x + 1, y + 1, *logo->GetBitmap(), GLCD::clrBlack);
- }
-}
-
-bool cGraphLCDDisplay::IsSymbolsActive() const
-{
- return GraphLCDSetup.ShowSymbols;
-}
-void cGraphLCDDisplay::DisplaySymbols()
-{
- int yPos = 0;
- int xPos = 0;
- int i;
- tChannelState channel;
- tVolumeState volume;
- tCardState card[MAXDEVICES];
-
- channel = GraphLCDState->GetChannelState();
- for (i = 0; i < MAXDEVICES; i++)
- card[i] = GraphLCDState->GetCardState(i);
- volume = GraphLCDState->GetVolumeState();
-
- if (IsSymbolsActive())
- {
- cChannel * ch = Channels.GetByNumber(channel.number);
- if (ch)
- {
- if (bitmap->Height() <= MAXY_M) // medium display
+ // external service changed (check each 1/10th second)
+ if ( (currTimeMs/100 != mLastTimeMs/100) && mService->NeedsUpdate(currTimeMs))
{
- yPos = FRAME_SPACE_Y;
- xPos = bitmap->Width() - FRAME_SPACE_X - symbols->TotalWidth();
-
- if (IsLogoActive())
- {
- xPos -= FRAME_SPACE_XB + logo->Width() + 2;
- }
-
- if (GraphLCDSetup.ShowSymbols == 1) // normal/fixed symbols
- {
- // new layout:
- // displays rec symbols for every card and
- // 2chan + dolby have their own symbols
- // user triggered symbols
-
- int yPos2 = 0;
-
- // blank or 2chan or mute
- if (volume.value == 0)
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'M', symbols);
- yPos += symbols->Height('S') + SYMBOL_SPACE;
- }
- else if (ch->Apid2())
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'A', symbols);
- yPos += symbols->Height('A') + SYMBOL_SPACE;
- }
- else
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ' ', symbols);
- yPos += symbols->Height(' ') + SYMBOL_SPACE;
- }
-
- // blank or dolby
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Dpid1() ? 'D' : ' ', symbols);
- yPos += symbols->Height(ch->Dpid1() ? 'D' : ' ') + SYMBOL_SPACE;
-
- // blank or teletext
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Tpid() ? 'T' : ' ', symbols);
- yPos += symbols->Height(ch->Tpid() ? 'T' : ' ') + SYMBOL_SPACE;
-
- // blank or crypt
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Ca() ? 'C' : ' ', symbols);
- yPos += symbols->Height(ch->Tpid() ? 'C' : ' ') + SYMBOL_SPACE;
-
- // show REC symbols at the right border below the logo
- yPos2 = yPos;
- yPos = FRAME_SPACE_Y;
- if (GraphLCDSetup.ShowDateTime == 1 ||
- (GraphLCDSetup.ShowDateTime == 2 && State != Menu))
- {
- yPos += normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- }
- if (GraphLCDSetup.ShowChannel)
- {
- yPos += normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_CHANNEL + FRAME_SPACE_YB;
- }
- if (IsLogoActive())
- {
- yPos = std::max((unsigned int) yPos, FRAME_SPACE_Y + logo->Height() + 2 + FRAME_SPACE_YB);
- }
-
- yPos = std::max(yPos, yPos2);
- xPos = bitmap->Width() - FRAME_SPACE_X + SYMBOL_SPACE;
- for (i = LCDMAXCARDS - 1; i >= 0; i--)
- {
- if (card[i].recordingCount > 0)
- {
- xPos -= symbols->Width(49 + i) + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 49 + i, symbols);
- }
- }
-
- // show external triggered symbols
- if (GraphLCDSetup.ShowETSymbols && strlen(szETSymbols) > 0)
- {
- for (i = strlen(szETSymbols) - 1; i >= 0; i--)
- {
- xPos -= symbols->Width(szETSymbols[i]) + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, szETSymbols[i], symbols);
+ mUpdate = true;
+ }
+
+
+ // check event
+ GLCD::cGLCDEvent * ev = mSkin->Config().GetDriver()->GetEvent();
+ if (ev && display && ((uint32_t)(currTimeMs-lastEventMs) > (uint32_t)(MIN_EVENT_DELAY) )) {
+ std::string rv = "";
+
+ if ( (rv = display->CheckAction(ev) ) != "") {
+ if (rv.substr(0,4) == "Key.") {
+ cRemote::Put(cKey::FromString(rv.substr(4).c_str()), true);
+ LastTimeDisplayMode = currTimeMs; /* if interactive mode: extend it */
+ } else if (rv.substr(0,5) == "Mode.") {
+ if (rv.substr(5) == "Interactive") {
+ mDisplayMode = DisplayModeInteractive;
+ LastTimeDisplayMode = currTimeMs;
+ } else if (rv.substr(5) == "Normal") {
+ mDisplayMode = DisplayModeNormal;
+ LastTimeDisplayMode = currTimeMs;
}
+ mUpdate = true;
}
- }
- else // compressed symbols
- {
- // old layout:
- // displays only 1 rec symbol and
- // a combined 2chan + dolby symbol
-
- // blank or teletext
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Tpid() ? 'T' : ' ', symbols);
- yPos += symbols->Height(ch->Tpid() ? 'T' : ' ') + SYMBOL_SPACE;
-
- // blank or crypt
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Ca() ? 'C' : ' ', symbols);
- yPos += symbols->Height(ch->Tpid() ? 'C' : ' ') + SYMBOL_SPACE;
-
- // blank, 2chan, dolby or combined symbol
- if (volume.value == 0)
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'M', symbols);
- yPos += symbols->Height('S') + SYMBOL_SPACE;
- }
- else if (ch->Apid2() && ch->Dpid1())
- {
- // if Apid2 and Dpid1 are set then use combined symbol
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'B', symbols);
- yPos += symbols->Height('B') + SYMBOL_SPACE;
- }
- else if (ch->Apid2())
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'A', symbols);
- yPos += symbols->Height('A') + SYMBOL_SPACE;
- }
- else if (ch->Dpid1())
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'D', symbols);
- yPos += symbols->Height('D') + SYMBOL_SPACE;
- }
- else
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ' ', symbols);
- yPos += symbols->Height(' ') + SYMBOL_SPACE;
- }
-
- // blank or rec
- if (cRecordControls::Active())
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, '1', symbols);
- }
- else
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ' ', symbols);
- }
+ lastEventMs = currTimeMs;
}
}
- else // large display
+
+ if (mUpdate)
{
- yPos = FRAME_SPACE_Y;
- if (GraphLCDSetup.ShowDateTime == 1 ||
- (GraphLCDSetup.ShowDateTime == 2 && State != Menu))
- {
- yPos += normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- }
- if (GraphLCDSetup.ShowChannel)
- {
- yPos += normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_CHANNEL + FRAME_SPACE_YB;
- }
- if (IsLogoActive())
- {
- yPos = std::max((unsigned int) yPos, FRAME_SPACE_Y + logo->Height() + 2 + FRAME_SPACE_YB);
- }
+ mUpdateAt = 0;
+ mUpdate = false;
- xPos = bitmap->Width() - FRAME_SPACE_X - symbols->Width(' ');
+ mGraphLCDState->Update();
- if (GraphLCDSetup.ShowSymbols == 1) // normal/fixed symbols
- {
- // blank or teletext
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Tpid() ? 'T' : ' ', symbols);
- xPos -= symbols->Width(ch->Tpid() ? 'T' : ' ') + SYMBOL_SPACE;
+ mScreen->Clear(mSkin->GetBackgroundColor());
- // blank or dolby
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Dpid1() ? 'D' : ' ', symbols);
- xPos -= symbols->Width(ch->Dpid1() ? 'D' : ' ') + SYMBOL_SPACE;
+ mSkin->SetTSEvalTick(currTimeMs);
- if (bitmap->Height() > MAXY_M) // with 128 pixel width only 3 symbols...
- {
- // blank or crypt
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ch->Ca()? 'C' : ' ', symbols);
- xPos -= symbols->Width(ch->Ca() ? 'C' : ' ') + SYMBOL_SPACE;
- }
+ GLCD::cSkinDisplay * display = NULL;
- // blank or 2chan or mute
- if (volume.value == 0)
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'M', symbols);
- xPos -= symbols->Width('S') + SYMBOL_SPACE;
- }
- else if (ch->Apid2())
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'A', symbols);
- xPos -= symbols->Width('A') + SYMBOL_SPACE;
- }
- else
- {
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ' ', symbols);
- xPos -= symbols->Width(' ') + SYMBOL_SPACE;
- }
- }
- else // compressed symbols
+ if (mState == StateNormal)
+ display = mSkin->GetDisplay("normal");
+ else if (mState == StateReplay)
+ display = mSkin->GetDisplay("replay");
+ else if (mState == StateMenu)
+ display = mSkin->GetDisplay("menu");
+ if (display)
+ display->Render(mScreen);
+ if (mShowVolume)
{
- // crypt
- if (ch->Ca())
- {
- xPos -= symbols->Width('C') + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'C', symbols);
- }
-
- // teletext
- if (ch->Tpid())
- {
- xPos -= symbols->Width('T') + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'T', symbols);
- }
-
- // dolby
- if (ch->Dpid1())
- {
- xPos -= symbols->Width('D') + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'D', symbols);
- }
-
- // 2chan
- if (ch->Apid2())
- {
- xPos -= symbols->Width('A') + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'A', symbols);
- }
-
- // mute
- if (volume.value == 0)
- {
- xPos -= symbols->Width('S') + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 'M', symbols);
- }
+ display = mSkin->GetDisplay("volume");
+ if (display)
+ display->Render(mScreen);
}
-
- // show REC symbols at the right border of the 'next line'
- xPos = bitmap->Width() - FRAME_SPACE_X + SYMBOL_SPACE;
- yPos += symbols->TotalHeight() + FRAME_SPACE_YB;
- for (i = cDevice::NumDevices() - 1; i >= 0; i--)
+ if (mShowAudio)
{
- // Just display present devices
- xPos -= symbols->Width(49 + i) + SYMBOL_SPACE;
- if (card[i].recordingCount > 0)
- {
- // Show a recording Symbol
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, 49 + i, symbols);
- }
- else
- {
- if (GraphLCDSetup.ShowNotRecording == 1)
- {
- // Do we want an empty frame around not recording card's icons?
- // Show an empty frame instead of the recording symbol
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, ' ', symbols);
- }
- }
+ display = mSkin->GetDisplay("audio");
+ if (display)
+ display->Render(mScreen);
}
-
- // show external triggered symbols
- if (GraphLCDSetup.ShowETSymbols && strlen(szETSymbols) > 0)
+ if (GraphLCDSetup.ShowMessages && mGraphLCDState->ShowMessage())
{
- for (i = strlen(szETSymbols) - 1; i >= 0; i--)
- {
- xPos -= symbols->Width(szETSymbols[i]) + SYMBOL_SPACE;
- bitmap->DrawCharacter(xPos, yPos, bitmap->Width() - 1, szETSymbols[i], symbols);
- }
+ display = mSkin->GetDisplay("message");
+ if (display)
+ display->Render(mScreen);
}
- }
- }
- }
-}
+#ifdef GRAPHLCD_CBITMAP_ARGB
+ mLcd->SetScreen(mScreen->Data(), mScreen->Width(), mScreen->Height());
+#else
+ mLcd->SetScreen(mScreen->Data(), mScreen->Width(), mScreen->Height(), mScreen->LineSize());
+#endif
+ mLcd->Refresh(false);
+ mLastTimeMs = currTimeMs;
+ SetBrightness();
-void cGraphLCDDisplay::DisplayProgramme()
-{
- struct tm tm_r;
- char buffer[25];
- std::string str;
- bool showTimeBar = false;
- int timeBarWidth = 0;
- int timeBarValue = 0;
- tEventState event;
-
- event = GraphLCDState->GetEventState();
- if (GraphLCDSetup.ShowProgram)
- {
- strftime(buffer, sizeof(buffer), "%R", localtime_r(&event.presentTime, &tm_r));
- if (event.followingTime && event.followingTime != event.presentTime)
- {
- str = Convert(buffer);
- if ((bitmap->Width() >= MINY_L || !IsSymbolsActive()))
- {
- str += " - ";
+ // flush events
+ mSkin->Config().GetDriver()->GetEvent();
}
else
{
- str += "-";
+#if 0
+ GLCD::cGLCDEvent * ev = mSkin->Config().GetDriver()->GetEvent();
+ if (ev && display && ((uint32_t)(currTimeMs-lastEventMs) > (uint32_t)(MIN_EVENT_DELAY) )) {
+ std::string rv = "";
+
+ if ( (rv = display->CheckAction(ev) ) != "") {
+ if (rv.substr(0,4) == "Key.") {
+ cRemote::Put(cKey::FromString(rv.substr(4).c_str()), true);
+ }
+ lastEventMs = currTimeMs;
+ }
+ }
+#endif
+ cCondWait::SleepMs(100);
}
- strftime(buffer, sizeof(buffer), "%R", localtime_r(&event.followingTime, &tm_r));
- str += buffer;
- showTimeBar = true;
- timeBarWidth = normalFont->Width(str) - 1;
- timeBarValue = (time(NULL) - event.presentTime) * timeBarWidth / (event.followingTime - event.presentTime);
- if (timeBarValue > timeBarWidth)
- timeBarValue = timeBarWidth;
- if (timeBarValue < 0)
- timeBarValue = 0;
}
else
{
- str = Convert(buffer);
- }
-
- if (!event.presentTime)
- {
- std::vector<cScroller>::iterator it;
- for (it = scroller.begin(); it != scroller.end(); it++)
- {
- it->Reset();
- }
- }
-
- if (event.presentTime)
- {
- if (scroller.size() < 1 ||
- event.presentTitle != scroller[0].Text() ||
- (scroller.size() > 1 && event.presentSubtitle != scroller[1].Text()))
- {
- if (bitmap->Height() <= MAXY_S)
- {
- scroller.resize(1);
-
- int nTopY = bitmap->Height() - (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight();
- int nMaxX = std::max(1, bitmap->Width() - 1 - (2 * FRAME_SPACE_X));
- // Logo enabled & available, and text with Logo is overlapped
- if (IsLogoActive() && nTopY < (int) logo->Height())
- {
- nMaxX -= FRAME_SPACE_XB;
- nMaxX -= logo->Width();
- nMaxX = std::max(nMaxX-2,1);//Frame around Logo
- }
- // If symbols used, and text with symbols is overlapped
- if (IsSymbolsActive())
- {
- nMaxX -= FRAME_SPACE_XB;
- nMaxX -= symbols->TotalWidth();
- nMaxX = std::max(nMaxX,1);
- }
-
- scroller[0].Init(FRAME_SPACE_X + TEXT_OFFSET_X,
- nTopY,
- nMaxX,
- largeFont, Convert(event.presentTitle.c_str()));
- }
- else
- {
- scroller.resize(2);
-
- scroller[0].Init(FRAME_SPACE_X + TEXT_OFFSET_X,
- bitmap->Height() - 2 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - normalFont->TotalHeight(),
- bitmap->Width() - 1,
- largeFont, Convert(event.presentTitle.c_str()));
- scroller[1].Init(FRAME_SPACE_X + TEXT_OFFSET_X,
- bitmap->Height() - (TEXT_OFFSET_Y_TITLE-1) - normalFont->TotalHeight(),
- bitmap->Width() - 1,
- normalFont, Convert(event.presentSubtitle.c_str()));
- }
- }
- if (bitmap->Height() <= MAXY_S)
- {
- // tiny and small LCDs
- bitmap->DrawText(FRAME_SPACE_X,
- bitmap->Height() - 2 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - normalFont->TotalHeight(),
- bitmap->Width() - 1,
- Convert(str.c_str()), normalFont);
- }
- else
- {
- // medium and large LCDs
- bitmap->DrawText(FRAME_SPACE_X,
- bitmap->Height() - 3 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - 2 * normalFont->TotalHeight() - (showTimeBar && GraphLCDSetup.ShowTimebar ? TIMEBAR_HEIGHT + 1 : 0),
- bitmap->Width() - 1,
- Convert(str.c_str()), normalFont);
- if (showTimeBar && GraphLCDSetup.ShowTimebar)
- {
- bitmap->DrawRectangle(FRAME_SPACE_X,
- bitmap->Height() - 3 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - normalFont->TotalHeight() - TIMEBAR_HEIGHT - 1,
- FRAME_SPACE_X + timeBarWidth,
- bitmap->Height() - 3 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - normalFont->TotalHeight() - 2,
- GLCD::clrBlack, false);
- bitmap->DrawRectangle(FRAME_SPACE_X,
- bitmap->Height() - 3 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - normalFont->TotalHeight() - TIMEBAR_HEIGHT - 1,
- FRAME_SPACE_X + timeBarValue,
- bitmap->Height() - 3 * (TEXT_OFFSET_Y_TITLE - 1) - largeFont->TotalHeight() - normalFont->TotalHeight() - 2,
- GLCD::clrBlack, true);
- }
- }
- // Draw Programmtext
- {
- std::vector<cScroller>::iterator it;
- for (it = scroller.begin(); it != scroller.end(); it++)
- {
- it->Draw(bitmap);
- }
- }
+ cCondWait::SleepMs(100);
}
}
+ // clear screen before thread is stopping
+ mLcd->Clear();
+ mLcd->Refresh(true);
}
-#if VDRVERSNUM >= 10701
-bool cGraphLCDDisplay::IndexIsGreaterAsOneHour(int Index, double framesPerSecond) const
-{
- return (((Index / framesPerSecond) / 3600) > 0);
-}
-#else
-bool cGraphLCDDisplay::IndexIsGreaterAsOneHour(int Index) const
-{
- int h = (Index / FRAMESPERSEC) / 3600;
- return h > 0;
-}
-#endif
-
-#if VDRVERSNUM >= 10701
-const char * cGraphLCDDisplay::IndexToMS(int Index, double framesPerSecond) const
-{
- static char buffer[16];
- int s = (Index / framesPerSecond);
-#else
-const char * cGraphLCDDisplay::IndexToMS(int Index) const
-{
- static char buffer[16];
- int s = (Index / FRAMESPERSEC);
-#endif
- int m = s / 60;
- s %= 60;
- snprintf(buffer, sizeof(buffer), "%02d:%02d", m, s);
- return buffer;
-}
-
-bool cGraphLCDDisplay::IsScrollerTextChanged(const std::vector<cScroller> & scrollers, const std::vector <std::string> & lines) const
+void cGraphLCDDisplay::Update()
{
- if (lines.size() == 0)
- return true; //Different size found
- if (scrollers.size() == 0)
- return true; //Different size found
-
- std::vector<cScroller>::const_iterator i = scrollers.begin();
- std::vector<cScroller>::const_iterator e = scrollers.end();
- std::vector<std::string>::const_iterator li = lines.begin();
- std::vector<std::string>::const_iterator le = lines.end();
-
- for (; e != i && le != li; ++li,++i)
- {
- if (i->Text() != (*li))
- return true; //Different text found
- }
- return false; //Text seem equal
+ mUpdate = true;
}
-void cGraphLCDDisplay::DisplayReplay(tReplayState & replay)
+void cGraphLCDDisplay::UpdateIn(uint64_t msec)
{
- int nMaxX, nProgressbarHeight, nTopY;
- int nWidthPreMsg = 0, nWidthCurrent = 0, nWidthTotal = 0,nWidthOffset = 0;
- std::string szPreMsg,szCurrent,szTotal;
-
- if (bitmap->Height() >= MINY_L)
- nProgressbarHeight = 15;
- else if (bitmap->Height() >= MINY_M)
- nProgressbarHeight = 9;
- else if (bitmap->Height() >= MINY_S)
- nProgressbarHeight = 5;
- else
- nProgressbarHeight = 3;
-
- if (IsLogoActive())
- nTopY = FRAME_SPACE_Y + logo->Height() + 2;
- else if (GraphLCDSetup.ShowDateTime)
- nTopY = FRAME_SPACE_Y + normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- else
- nTopY = FRAME_SPACE_Y;
- if (replay.name.length() > 0)
- {
- int lineHeight, maxLines;
- std::vector <std::string> lines;
- std::string szReplayName = Convert(replay.name.c_str());
-
- nMaxX = std::max(1, bitmap->Width() - (2 * FRAME_SPACE_X) - 2 * TEXT_OFFSET_X);
- lineHeight = FRAME_SPACE_Y + largeFont->TotalHeight();
- maxLines = std::max(0, (bitmap->Height() - normalFont->TotalHeight() - FRAME_SPACE_Y - nProgressbarHeight - 2 - nTopY) / lineHeight);
-
- if (maxLines == 0)
- {
- if (IsLogoActive())
- {
- // draw replayname next to logo
- nMaxX = std::max((unsigned int) 1, nMaxX - FRAME_SPACE_X - logo->Width() - 2);
- if (GraphLCDSetup.ShowDateTime)
- nTopY = FRAME_SPACE_Y + normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- else
- nTopY = FRAME_SPACE_Y;
- maxLines = (bitmap->Height() - normalFont->TotalHeight() - FRAME_SPACE_Y - nProgressbarHeight - 2 - nTopY) / lineHeight;
- }
- if (maxLines <= 1)
- {
- // use singleline mode
- lines.push_back(szReplayName);
- }
- else
- largeFont->WrapText(nMaxX, maxLines * lineHeight, szReplayName, lines);
- }
- else if (maxLines == 1) //singleline mode
- lines.push_back(szReplayName);
- else
- {
- largeFont->WrapText(nMaxX, maxLines * lineHeight, szReplayName, lines);
- }
-
- if (scroller.size() != lines.size() ||
- IsScrollerTextChanged(scroller,lines)) // if any text is changed
- {
- // Same size for Scroller and Textbuffer
- scroller.resize(lines.size());
-
- std::vector<cScroller>::iterator i = scroller.begin();
- std::vector<cScroller>::const_iterator e = scroller.end();
- std::vector<std::string>::const_iterator li = lines.begin();
- std::vector<std::string>::const_iterator le = lines.end();
-
- for (int n = lines.size(); e != i && le != li; ++li,++i,--n)
- {
- nTopY = bitmap->Height() - normalFont->TotalHeight() - FRAME_SPACE_Y - nProgressbarHeight - n * lineHeight - 2;
- i->Init(FRAME_SPACE_X + TEXT_OFFSET_X, nTopY, nMaxX + FRAME_SPACE_X + TEXT_OFFSET_X, largeFont, *li);
- }
- }
- }
-
- // Draw Replaytext
- {
- std::vector<cScroller>::iterator it;
- for (it = scroller.begin(); it != scroller.end(); it++)
- {
- it->Draw(bitmap);
- }
- }
-
- // Draw Progressbar with current and total replay time
- nTopY = bitmap->Height() - normalFont->TotalHeight() - FRAME_SPACE_Y - nProgressbarHeight - 2;
- nMaxX = std::max(1, bitmap->Width() - 1 - 2 * FRAME_SPACE_X);
- // Logo enabled & available, and text with Logo is overlapped
- if (IsLogoActive() && nTopY < (int) logo->Height())
- {
- nMaxX -= max(1,FRAME_SPACE_X); // Free line between Logo and progressbar
- nMaxX -= logo->Width();
- nMaxX = std::max(nMaxX - 2, 1); //Frame around Logo
- }
-
- bitmap->DrawRectangle(FRAME_SPACE_X,
- nTopY,
- FRAME_SPACE_X + nMaxX,
- nTopY + nProgressbarHeight,
- GLCD::clrBlack, false);
-
- DisplaySA(); //span
-
- if (1 < replay.total && 1 < replay.current) // Don't show full progressbar for endless streams
- {
- bitmap->DrawRectangle(FRAME_SPACE_X,
- nTopY,
- FRAME_SPACE_X + (std::min(replay.total, replay.current) * nMaxX / replay.total),
- nTopY + nProgressbarHeight,
- GLCD::clrBlack, true);
- }
-
- // Draw Strings with current and total replay time
- nTopY = bitmap->Height() - normalFont->TotalHeight() - FRAME_SPACE_Y;
- // use same width like Progressbar
-// if (!IsLogoActive() || nTopY > logo->Height())
-// nMaxX = max(1, bitmap->Width() - 1 - (2 * FRAME_SPACE_X));
-
- switch (replay.mode)
+ if (msec == 0)
{
- case eReplayDVD:
- szPreMsg = tr("DVD"); break;
- case eReplayMusic:
- szPreMsg = tr("Music"); break;
- case eReplayFile:
- szPreMsg = tr("File"); break;
- case eReplayImage:
- szPreMsg = tr("Image"); break;
- case eReplayAudioCD:
- szPreMsg = tr("CD"); break;
- default:
- szPreMsg = tr("Replay"); break;
- }
-
- if (bitmap->Width() >= MINY_M)
- {
- szPreMsg += " : ";
- szPreMsg += replay.loopmode;
+ mUpdateAt = 0;
}
else
- szPreMsg += ":";
-
- if (replay.mode == eReplayImage) // Image-Plugin hasn't Frames per Seconds
{
- char buffer[8];
- snprintf(buffer, sizeof(buffer), "%d", replay.current);
- szCurrent = buffer;
- snprintf(buffer, sizeof(buffer), "%d", replay.total);
- szTotal = buffer;
- }
- else
- {
-#if VDRVERSNUM >= 10701
- if ((replay.total > 1 && IndexIsGreaterAsOneHour(replay.total, replay.framesPerSecond)) ||
- IndexIsGreaterAsOneHour(replay.current, replay.framesPerSecond)) // Check if any index bigger as one hour
- {
- szCurrent = (const char *) IndexToHMSF(replay.current, false, replay.framesPerSecond);
- if (replay.total > 1) // Don't draw totaltime for endless streams
- szTotal = (const char *) IndexToHMSF(replay.total, false, replay.framesPerSecond);
- }
- else
- {
- // Show only minutes and seconds on short replays
- szCurrent = (const char *) IndexToMS(replay.current, replay.framesPerSecond);
- if (replay.total > 1) // Don't draw totaltime for endless streams
- szTotal = (const char *) IndexToMS(replay.total, replay.framesPerSecond);
- }
-#else
- if ((replay.total > 1 && IndexIsGreaterAsOneHour(replay.total)) ||
- IndexIsGreaterAsOneHour(replay.current)) // Check if any index bigger as one hour
- {
- szCurrent = (const char *) IndexToHMSF(replay.current);
- if (replay.total > 1) // Don't draw totaltime for endless streams
- szTotal = (const char *) IndexToHMSF(replay.total);
- }
- else
- {
- // Show only minutes and seconds on short replays
- szCurrent = (const char *) IndexToMS(replay.current);
- if (replay.total > 1) // Don't draw totaltime for endless streams
- szTotal = (const char *) IndexToMS(replay.total);
- }
-#endif
- }
- // Get width of drawable strings
- nWidthPreMsg = normalFont->Width(szPreMsg);
- nWidthCurrent = normalFont->Width(szCurrent);
- if (szTotal.length()) // Don't draw empty string
- nWidthTotal = normalFont->Width(szTotal);
-
- // Draw depends on display width, any placeable informations
- if (nWidthTotal && nWidthPreMsg && (nWidthPreMsg + nWidthCurrent + nWidthTotal + 5 < nMaxX))
- {
- // Show prefix and all position
- nWidthOffset = bitmap->DrawText(FRAME_SPACE_X, nTopY, nMaxX, szPreMsg, normalFont);
- bitmap->DrawText(FRAME_SPACE_X + nWidthOffset + 1, nTopY, nMaxX, szCurrent, normalFont);
- bitmap->DrawText(nMaxX - nWidthTotal, nTopY, nMaxX, szTotal, normalFont);
- }
- else if (nWidthTotal && (nWidthCurrent + nWidthTotal + 5 < nMaxX))
- {
- // Show current and total position
- bitmap->DrawText(FRAME_SPACE_X, nTopY, nMaxX, szCurrent, normalFont);
- bitmap->DrawText(nMaxX - nWidthTotal, nTopY, nMaxX, szTotal, normalFont);
- }
- else if (!nWidthTotal && nWidthPreMsg && (nWidthPreMsg + nWidthCurrent + 1 < nMaxX))
- {
- // Show prefix and current position
- nWidthOffset = bitmap->DrawText(FRAME_SPACE_X, nTopY, nMaxX, szPreMsg, normalFont);
- bitmap->DrawText(FRAME_SPACE_X + nWidthOffset + 1, nTopY, nMaxX, szCurrent, normalFont);
- }
- else
- {
- // Show only current position
- bitmap->DrawText(FRAME_SPACE_X, nTopY, nMaxX, szCurrent, normalFont);
+ mUpdateAt = cTimeMs::Now() + msec;
}
}
-void cGraphLCDDisplay::DisplayMenu(void)
+void cGraphLCDDisplay::Replaying(bool Starting)
{
- const char * pszTmp1;
- char * pszTmp2;
- int iAT, t;
- int FrameWidth, yPos, iEntryHeight;
- int extra = 0;
- tOsdState osd;
-
- osd = GraphLCDState->GetOsdState();
-
- mutex.Lock();
-
- FrameWidth = std::max(bitmap->Width() - 2 * FRAME_SPACE_X, 1);
-
- if (GraphLCDSetup.ShowDateTime == 1 ||
- (GraphLCDSetup.ShowDateTime == 2 && State != Menu))
- {
- yPos = FRAME_SPACE_Y + normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- }
- else
- {
- yPos = FRAME_SPACE_Y;
- }
-
- // draw Menu Title
- if (osd.title.length() > 0)
- {
- pszTmp1 = Convert(osd.title.c_str());
- bitmap->DrawRoundRectangle(FRAME_SPACE_X,
- yPos,
- FRAME_SPACE_X + FrameWidth - 1,
- yPos + normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_TIME - 1,
- GLCD::clrBlack, true, TEXT_OFFSET_Y_CHANNEL >= 4 ? 4 : 1);
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X,
- yPos + TEXT_OFFSET_Y_TIME,
- FRAME_SPACE_X + FrameWidth - 1,
- pszTmp1, normalFont, GLCD::clrWhite);
- }
-
- if (!(textItemLines.size() > 0))
+ if (Starting)
{
- // draw Menu Entries
- if (normalFont->TotalHeight() <= normalFont->LineHeight())
- extra = 1;
- iEntryHeight = normalFont->TotalHeight() + 2 * extra;
- yPos = yPos + normalFont->TotalHeight() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
- if (GraphLCDSetup.ShowColorButtons &&
- (osd.colorButton[0].length() > 0 || osd.colorButton[1].length() > 0 ||
- osd.colorButton[2].length() > 0 || osd.colorButton[3].length() > 0))
+ if (mState != StateMenu)
{
- menuCount = (bitmap->Height() - yPos - smallFont->TotalHeight() - 4 - FRAME_SPACE_Y / 3) / iEntryHeight;
+ mState = StateReplay;
}
else
{
- menuCount = (bitmap->Height() - yPos) / iEntryHeight;
- }
-
- if (osd.currentItemIndex < menuTop)
- menuTop = osd.currentItemIndex;
- if (osd.currentItemIndex > menuTop + menuCount - 1)
- menuTop = std::max(0, osd.currentItemIndex + 1 - menuCount);
-
- bitmap->DrawRectangle(0, yPos, bitmap->Width() - 1, bitmap->Height() - 1, GLCD::clrWhite, true);
-
- for (int i = menuTop; i < std::min((int) osd.items.size(), menuTop + menuCount); i++)
- {
- if (i == osd.currentItemIndex)
- {
- bitmap->DrawRoundRectangle(FRAME_SPACE_X, yPos + (i - menuTop) * iEntryHeight,
- bitmap->Width() - 1 - FRAME_SPACE_X,
- yPos + (i - menuTop + 1) * iEntryHeight - 1,
- GLCD::clrBlack, true, TEXT_OFFSET_Y_CHANNEL >= 4 ? 3 : 1);
- }
- pszTmp1 = Convert(osd.items[i].c_str());
- pszTmp2 = (char*) strchr(pszTmp1, '\t');
- iAT = 0; t = 0;
-
- while (pszTmp1 && pszTmp2)
- {
- *pszTmp2 = '\0';
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X + t,
- yPos + (i - menuTop) * iEntryHeight + extra,
- std::min(FRAME_SPACE_X + TEXT_OFFSET_X + t + tab[iAT + 1], bitmap->Width() - 1 - FRAME_SPACE_X),
- pszTmp1, normalFont, (i == osd.currentItemIndex) ? GLCD::clrWhite : GLCD::clrBlack);
- pszTmp1 = pszTmp2+1;
- pszTmp2 = (char*) strchr(pszTmp1, '\t');
- t = t + tab[iAT + 1] + TEXT_OFFSET_X;
- iAT++;
- }
-
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X + t,
- yPos + (i - menuTop) * iEntryHeight + extra,
- bitmap->Width() - 1 - FRAME_SPACE_X,
- pszTmp1, normalFont, (i == osd.currentItemIndex) ? GLCD::clrWhite : GLCD::clrBlack);
- }
- }
- mutex.Unlock();
-}
-
-void cGraphLCDDisplay::DisplayMessage()
-{
- std::vector <std::string> lines;
- int lineCount;
- int maxTextLen, recW, recH;
- int entryHeight;
- tOsdState osd;
- const char * pszTmp1;
-
- osd = GraphLCDState->GetOsdState();
- if (GraphLCDSetup.ShowMessages && osd.message.length() > 0)
- {
- maxTextLen = bitmap->Width() - 2 * FRAME_SPACE_X - 2 * FRAME_SPACE_XB - 2 * TEXT_OFFSET_X - 10;
- entryHeight = 2 * (normalFont->TotalHeight() - normalFont->TotalAscent()) + normalFont->TotalAscent();
- normalFont->WrapText(maxTextLen, MAXLINES_MSG * entryHeight, osd.message, lines, &recW);
- lineCount = lines.size();
-
- // display text
- recH = lineCount * entryHeight + 2 * TEXT_OFFSET_Y_CHANNEL + 2 * FRAME_SPACE_YB;
- recW = recW + 2 * TEXT_OFFSET_X + 2 * FRAME_SPACE_XB + 2 * FRAME_SPACE_X;
- recW += (recW % 2);
-
- bitmap->DrawRectangle((bitmap->Width() - recW) / 2,
- (bitmap->Height() - recH) / 2,
- bitmap->Width() - 1 - (bitmap->Width() - recW) / 2,
- bitmap->Height() - 1 - (bitmap->Height() - recH) / 2,
- GLCD::clrWhite, true);
- recH = recH - 2 * FRAME_SPACE_YB;
- recW = recW - 2 * FRAME_SPACE_XB;
- bitmap->DrawRectangle((bitmap->Width() - recW) / 2,
- (bitmap->Height() - recH) / 2,
- bitmap->Width() - 1 - (bitmap->Width() - recW) / 2,
- bitmap->Height() - 1 - (bitmap->Height() - recH) / 2,
- GLCD::clrBlack, false);
- recH = recH - 2 * TEXT_OFFSET_Y_CHANNEL;
- recW = recW - 2 * TEXT_OFFSET_X;
- for (int i = 0; i < lineCount; i++)
- {
- pszTmp1 = Convert(lines[i].c_str());
- bitmap->DrawText((bitmap->Width() - normalFont->Width(lines[i])) / 2,
- (bitmap->Height() - recH) / 2 + i * entryHeight + (normalFont->TotalHeight() - normalFont->TotalAscent()),
- bitmap->Width() - (bitmap->Width() - recW) / 2,
- pszTmp1, normalFont);
+ mLastState = StateReplay;
}
}
-}
-
-void cGraphLCDDisplay::DisplayTextItem()
-{
- int lineCount;
- int iEntryHeight, iLineAnz;
- int yPos;
- tOsdState osd;
- const char * pszTmp1;
-
- osd = GraphLCDState->GetOsdState();
-
- mutex.Lock();
- if (textItemLines.size() > 0)
+ else
{
- lineCount = textItemLines.size();
-
- if (GraphLCDSetup.ShowDateTime == 1 ||
- (GraphLCDSetup.ShowDateTime == 2 && State != Menu))
+ if (mState != StateMenu)
{
- yPos = FRAME_SPACE_Y + normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_TIME + FRAME_SPACE_YB;
+ mState = StateNormal;
}
else
{
- yPos = FRAME_SPACE_Y;
- }
-
- // draw Text
- iEntryHeight = normalFont->LineHeight();
- yPos = yPos + normalFont->TotalAscent() + 2 * TEXT_OFFSET_Y_CHANNEL + FRAME_SPACE_YB;
- if (GraphLCDSetup.ShowColorButtons &&
- (osd.colorButton[0].length() > 0 || osd.colorButton[1].length() > 0 ||
- osd.colorButton[2].length() > 0 || osd.colorButton[3].length() > 0))
- {
- iLineAnz = (bitmap->Height() - yPos - smallFont->TotalHeight() - 4 - FRAME_SPACE_Y / 3) / iEntryHeight;
- }
- else
- {
- iLineAnz = (bitmap->Height() - yPos) / iEntryHeight;
- }
-
- int startLine = textItemTop;
- for (int i = 0; i < std::min(lineCount, iLineAnz); i++)
- {
- if (i + startLine < lineCount) {
- pszTmp1 = Convert(textItemLines[i + startLine].c_str());
- bitmap->DrawText(FRAME_SPACE_X + TEXT_OFFSET_X,
- yPos + i * iEntryHeight,
- bitmap->Width() - 1 - FRAME_SPACE_X,
- pszTmp1, normalFont);
- }
+ mLastState = StateNormal;
}
}
- mutex.Unlock();
+ Update();
}
-void cGraphLCDDisplay::DisplayColorButtons()
+void cGraphLCDDisplay::SetMenuClear()
{
- int i, buttonWidth, textLen;
- int extra = 0;
- tOsdState osd;
- const char * pszTmp1;
-
- osd = GraphLCDState->GetOsdState();
+ if (mSkin)
+ mSkin->SetTSEvalSwitch(cTimeMs::Now());
- if (GraphLCDSetup.ShowColorButtons)
+ mSkinConfig->SetMenuClear();
+ if (mState == StateMenu)
{
- buttonWidth = (bitmap->Width() / 4) - (FRAME_SPACE_X ? 2 * FRAME_SPACE_X : 1);
- if (smallFont->TotalHeight() == smallFont->TotalAscent())
- extra = 1;
-
- for (i = 0; i < 4; i++)
- {
- if (osd.colorButton[i].length() > 0)
- {
- pszTmp1 = Convert(osd.colorButton[i].c_str());
- bitmap->DrawRoundRectangle(i * (bitmap->Width() / 4) + FRAME_SPACE_X,
- bitmap->Height() - smallFont->TotalHeight() - 2 * extra - FRAME_SPACE_Y / 3,
- i * (bitmap->Width() / 4) + FRAME_SPACE_X + buttonWidth - 1,
- bitmap->Height() - 1 - FRAME_SPACE_Y / 3,
- GLCD::clrBlack, true, std::max(1, (smallFont->TotalHeight() + 4) / 5));
- textLen = smallFont->Width(osd.colorButton[i]);
- if (textLen <= buttonWidth - 2)
- {
- bitmap->DrawText(i * (bitmap->Width() / 4) + (bitmap->Width() / 8) - (textLen + 1) / 2,
- bitmap->Height() - smallFont->TotalHeight() - extra - FRAME_SPACE_Y / 3,
- i * (bitmap->Width() / 4) + FRAME_SPACE_X + buttonWidth - 1,
- pszTmp1, smallFont, GLCD::clrWhite);
- }
- else
- {
- bitmap->DrawText(i * (bitmap->Width() / 4) + FRAME_SPACE_X + 1,
- bitmap->Height() - smallFont->TotalHeight() - extra - FRAME_SPACE_Y / 3,
- i * (bitmap->Width() / 4) + FRAME_SPACE_X + buttonWidth - 1,
- pszTmp1, smallFont, GLCD::clrWhite);
- }
- }
- }
+ mState = mLastState;
+ // activate delayed Update
+ UpdateIn(100);
}
-}
-
-void cGraphLCDDisplay::DisplayVolume()
-{
- int RecW, RecH;
- tVolumeState volume;
-
- volume = GraphLCDState->GetVolumeState();
-
- if (GraphLCDSetup.ShowVolume)
+ else
{
- if (volume.lastChange > 0)
- {
- if (TimeMs() - volume.lastChange < 2000)
- {
- RecH = (bitmap->Height() / 5) + 2 * FRAME_SPACE_YB + 4 * FRAME_SPACE_YB;
- RecW = bitmap->Width() / 2;
- bitmap->DrawRoundRectangle((bitmap->Width() - RecW) / 2, // draw frame
- (bitmap->Height() - RecH) / 2,
- bitmap->Width() - (bitmap->Width() - RecW) / 2 - 1,
- bitmap->Height() - (bitmap->Height() - RecH) / 2 - 1,
- GLCD::clrWhite, true, 1);
- RecH = RecH - 2 * FRAME_SPACE_YB;
- RecW = RecW - 2 * FRAME_SPACE_XB;
- bitmap->DrawRoundRectangle((bitmap->Width() - RecW) / 2, // draw box
- (bitmap->Height() - RecH) / 2,
- bitmap->Width() - 1 - (bitmap->Width() - RecW) / 2,
- bitmap->Height() - 1 - (bitmap->Height() - RecH) / 2,
- GLCD::clrBlack, false, 1);
- RecH = RecH - 2;
- RecW = RecW - 2;
- if (volume.value > 0)
- bitmap->DrawRectangle((bitmap->Width() - RecW) / 2, // draw bar
- (bitmap->Height() - RecH) / 2,
- (bitmap->Width() - RecW) / 2 + (volume.value * RecW) / 255,
- bitmap->Height() - 1 - (bitmap->Height() - RecH) / 2,
- GLCD::clrBlack, true);
- if (volume.value == 0)
- {
- // display big mute symbol
- bitmap->DrawCharacter(bitmap->Width() / 2 - symbols->Width('5'),
- bitmap->Height() / 2 - symbols->Height('5'),
- bitmap->Width() - 1, '5', symbols);
- bitmap->DrawCharacter(bitmap->Width() / 2,
- bitmap->Height() / 2 - symbols->Height('6'),
- bitmap->Width() - 1, '6', symbols);
- bitmap->DrawCharacter(bitmap->Width() / 2 - symbols->Width('7'),
- bitmap->Height() / 2,
- bitmap->Width() - 1, '7', symbols);
- bitmap->DrawCharacter(bitmap->Width() / 2,
- bitmap->Height() / 2,
- bitmap->Width() - 1, '8', symbols);
- }
- showVolume = true;
- }
- }
+ Update();
}
}
-void cGraphLCDDisplay::UpdateIn(long usec)
+void cGraphLCDDisplay::SetMenuTitle()
{
- if (usec == 0)
+ if (mState != StateMenu)
{
- timerclear(&UpdateAt);
- }
- else
- {
- if (gettimeofday(&CurrTimeval, NULL) == 0)
- {
- // get current time
- UpdateAt.tv_sec = CurrTimeval.tv_sec;
- UpdateAt.tv_usec = CurrTimeval.tv_usec + usec;
- while (UpdateAt.tv_usec >= 1000000)
- {
- // take care of an overflow
- UpdateAt.tv_sec++;
- UpdateAt.tv_usec -= 1000000;
- }
- }
+ mLastState = mState;
+ mState = StateMenu;
}
+ UpdateIn(100);
}
-
-bool cGraphLCDDisplay::CheckAndUpdateSymbols()
+void cGraphLCDDisplay::SetMenuCurrent()
{
- bool bRet = false;
- static struct stat filestat;
- FILE* InFile = NULL;
- static char szLine[8];
-
- if (stat(FILENAME_EXTERNAL_TRIGGERED_SYMBOLS, &filestat)==0) {
- if (LastTimeModSym != filestat.st_mtime) {
- InFile = fopen(FILENAME_EXTERNAL_TRIGGERED_SYMBOLS, "r");
- if (InFile) {
- strcpy(szETSymbols, "");
- while (!feof(InFile) && (strlen(szETSymbols)+1<sizeof(szLine))) {
- strcpy(szLine, "");
- fgets(szLine, sizeof(szLine), InFile);
- compactspace(szLine);
- if ((strlen(szLine)==2) && (szLine[1]=='1')) {
- strcat(szETSymbols, ".");
- szETSymbols[strlen(szETSymbols)-1] = szLine[0];
- }
- }
- fclose(InFile);
- LastTimeModSym = filestat.st_mtime;
- bRet = true;
- }
- }
- } else {
- if ((errno == ENOENT) && (strlen(szETSymbols)>0)) {
- strcpy(szETSymbols, "");
- bRet = true;
- }
+ if (mState != StateMenu)
+ {
+ mLastState = mState;
+ mState = StateMenu;
}
- return bRet;
+ UpdateIn(100);
}
void cGraphLCDDisplay::SetBrightness()
{
- mutex.Lock();
+ //mutex.Lock();
bool bActive = bBrightnessActive
- || (State == Menu)
- || (GraphLCDSetup.ShowVolume && showVolume)
- || (GraphLCDSetup.ShowMessages && GraphLCDState->GetOsdState().message.length() > 0)
+ || (mState == StateMenu)
+ || (GraphLCDSetup.ShowVolume && mShowVolume)
+ || (GraphLCDSetup.ShowMenu && mShowAudio)
+ || (GraphLCDSetup.ShowMessages && mGraphLCDState->ShowMessage())
|| (GraphLCDSetup.BrightnessDelay == 900);
if (bActive)
{
- LastTimeBrightness = TimeMs();
+ LastTimeBrightness = cTimeMs::Now();
bBrightnessActive = false;
}
if ((bActive ? GraphLCDSetup.BrightnessActive : GraphLCDSetup.BrightnessIdle) != nCurrentBrightness)
@@ -2026,211 +514,28 @@ void cGraphLCDDisplay::SetBrightness()
else
{
if (GraphLCDSetup.BrightnessDelay < 1
- || ((TimeMs() - LastTimeBrightness) > (uint64_t) (GraphLCDSetup.BrightnessDelay*1000)))
+ || ((unsigned int)(cTimeMs::Now() - LastTimeBrightness) > (unsigned int)(GraphLCDSetup.BrightnessDelay*1000)))
{
mLcd->SetBrightness(GraphLCDSetup.BrightnessIdle);
nCurrentBrightness = GraphLCDSetup.BrightnessIdle;
}
}
}
- mutex.Unlock();
-}
-
-#ifdef USE_WAREAGLEICON
-const char * cGraphLCDDisplay::ConvertWarEagleIconsUtf8(const char *s)
-{
- if (textWithIcons)
- free(textWithIcons);
- textWithIcons = (char *)malloc(sizeof(char *) * strlen(s) + 10);
- textWithIcons[0] = '\0';
- int sl;
- uint sym;
- char * iconChar;
- iconChar = (char *)malloc(sizeof(char *) * 4);
- iconChar[0] = '\0';
- // will replace unicode access codes with non-unicode ones between
- // start and end code of wareagle icons defined in VDRSymbols.ttf,
- // see http://andreas.vdr-developer.org/fonts/symbols.html and iconpatch.h of
- // vdr sources patched with USE_WAREAGLEICON support:
- uint symStart = 0xE000; // ICON_RESUME_UTF8
- //uint symEnd = 0xE000 + 0x15; // ICON_CLOCK_LH_UTF8
- uint symEnd = 0xE000 + 0x1C; // last custom icon beyond ICON_CLOCK_LH_UTF8
- int symOffset = - 0xDF80;
- for (const char *p = s; *p; )
- {
- sl = Utf8CharLen(p);
- sym = Utf8CharGet(p, sl);
- if (sym >= symStart && sym <= symEnd)
- {
- sl = Utf8CharSet(sym + symOffset, iconChar);
- strncat(textWithIcons, iconChar, sl - 1);
- }
- else
- {
- strncat(textWithIcons, p, sl);
- }
- p += sl;
- }
- free (iconChar);
- return textWithIcons;
+ //mutex.Unlock();
}
-#endif
-const char * cGraphLCDDisplay::Convert(const char *s)
-{
-// do character recoding to ISO-8859-1
-// code based on jowi24s vdr-lcdprog
- if (!s || !*s) {
- return s;
- }
- const char *s_converted = conv->Convert(s);
- if (s_converted == s) {
- const char* SCT = cCharSetConv::SystemCharacterTable() ? cCharSetConv::SystemCharacterTable() : "UTF-8";
- esyslog("graphlcd plugin: ERROR: conversion from %s to UTF-8 failed.", SCT);
- esyslog("graphlcd plugin: ERROR: '%s'",s);
- }
-#ifdef USE_WAREAGLEICON
- if (bIsUTF8)
- return ConvertWarEagleIconsUtf8(s_converted);
- else
-#endif
- return s_converted;
+void cGraphLCDDisplay::ForceUpdateBrightness() {
+ bBrightnessActive = true;
+ SetBrightness();
}
-
-void cGraphLCDDisplay::DisplaySA() //span
-{
-// Spectrum Analyzer visualization
- if ( GraphLCDSetup.enableSpectrumAnalyzer && GraphLCDSetup.pluginSpectrumAnalyzer )
- {
- if (cPluginManager::CallFirstService(SPAN_GET_BAR_HEIGHTS_ID, NULL))
- {
- Span_GetBarHeights_v1_0 GetBarHeights;
-
- int bandsSA = 20;
- int falloffSA = 8;
- int channelsSA = 1;
-
- unsigned int bar;
- unsigned int *barHeights = new unsigned int[bandsSA];
- unsigned int *barHeightsLeftChannel = new unsigned int[bandsSA];
- unsigned int *barHeightsRightChannel = new unsigned int[bandsSA];
- unsigned int volumeLeftChannel;
- unsigned int volumeRightChannel;
- unsigned int volumeBothChannels;
- unsigned int *barPeaksBothChannels = new unsigned int[bandsSA];
- unsigned int *barPeaksLeftChannel = new unsigned int[bandsSA];
- unsigned int *barPeaksRightChannel = new unsigned int[bandsSA];
-
- GetBarHeights.bands = bandsSA;
- GetBarHeights.barHeights = barHeights;
- GetBarHeights.barHeightsLeftChannel = barHeightsLeftChannel;
- GetBarHeights.barHeightsRightChannel = barHeightsRightChannel;
- GetBarHeights.volumeLeftChannel = &volumeLeftChannel;
- GetBarHeights.volumeRightChannel = &volumeRightChannel;
- GetBarHeights.volumeBothChannels = &volumeBothChannels;
- GetBarHeights.name = "graphlcd";
- GetBarHeights.falloff = falloffSA;
- GetBarHeights.barPeaksBothChannels = barPeaksBothChannels;
- GetBarHeights.barPeaksLeftChannel = barPeaksLeftChannel;
- GetBarHeights.barPeaksRightChannel = barPeaksRightChannel;
-
- if ( cPluginManager::CallFirstService(SPAN_GET_BAR_HEIGHTS_ID, &GetBarHeights ))
- {
- int i;
- int barWidth = 2;
- int saStartX = FRAME_SPACE_X;
- int saEndX = saStartX + barWidth*bandsSA*2 + bandsSA/4 - 1;
- int saStartY = FRAME_SPACE_Y;
- int saEndY = FRAME_SPACE_Y + bitmap->Height()/2 - 3;
-
- LastTimeSA.Set(100);
-
- if ( GraphLCDSetup.SAShowVolume )
- {
-
- saStartX = FRAME_SPACE_X + bitmap->Width()/2 - (barWidth*bandsSA*2 + bandsSA/4)/2 - 2;
- saEndX = saStartX + barWidth*bandsSA*2 + bandsSA/4 - 1;
-
- // left volume
- bitmap->DrawRectangle(FRAME_SPACE_X,
- saStartY,
- saStartX-1,
- saEndY + 1,
- GLCD::clrWhite, true);
-
- for ( i=0; (i<(int)logo->Width()/2-2) && (i<3*((int)volumeLeftChannel*(int)saStartX)/100); i++)
- {
- bitmap->DrawRectangle(saStartX - i - 2,
- saStartY + saEndY/2 - i,
- saStartX - i - 4,
- saStartY + saEndY/2 + i,
- GLCD::clrBlack, true);
- }
-
- // right volume
- bitmap->DrawRectangle(saEndX + 1,
- saStartY,
- bitmap->Width() - 1,
- saEndY + 1,
- GLCD::clrWhite, true);
-
- for ( i=0; (i<(int)logo->Width()/2-2) && (i<3*((int)volumeRightChannel*(int)saStartX)/100); i++)
- {
- bitmap->DrawRectangle(saEndX + 2 + i,
- saStartY + saEndY/2 - i,
- saEndX + i + 4,
- saStartY + saEndY/2 + i,
- GLCD::clrBlack, true);
- }
- }
- // black background
- bitmap->DrawRectangle(saStartX,
- saStartY,
- saEndX,
- saEndY + 1,
- GLCD::clrBlack, true);
-
- for ( i=0; i < bandsSA; i++ )
- {
-/*
- if ( channelsSA == 2 )
- {
- bar = barHeightsLeftChannel[i];
- bar = barHeightsRightChannel[i];
- }
-*/
- if ( channelsSA == 1)
- {
- // the bar
- bar = (barHeights[i]*(saEndY-saStartY))/100;
- bitmap->DrawRectangle(saStartX + barWidth*2*(i)+ barWidth + 1,
- saEndY,
- saStartX + barWidth*2*(i) + barWidth+ barWidth + 1,
- saEndY - bar,
- GLCD::clrWhite, true);
-
- // the peak
- bar = (barPeaksBothChannels[i]*(saEndY-saStartY))/100;
- if ( bar > 0 )
- {
- bitmap->DrawRectangle(saStartX + barWidth*2*(i)+ barWidth + 1,
- saEndY - bar,
- saStartX + barWidth*2*(i) + barWidth+ barWidth + 1,
- saEndY - bar+1,
- GLCD::clrWhite, true);
- }
- }
- }
- }
-
- delete [] barHeights;
- delete [] barHeightsLeftChannel;
- delete [] barHeightsRightChannel;
- delete [] barPeaksBothChannels;
- delete [] barPeaksLeftChannel;
- delete [] barPeaksRightChannel;
- }
- }
+void cGraphLCDDisplay::Clear() {
+ mScreen->Clear();
+#ifdef GRAPHLCD_CBITMAP_ARGB
+ mLcd->SetScreen(mScreen->Data(), mScreen->Width(), mScreen->Height());
+#else
+ mLcd->SetScreen(mScreen->Data(), mScreen->Width(), mScreen->Height(), mScreen->LineSize());
+#endif
+ mLcd->Refresh(false);
}
diff --git a/display.h b/display.h
index ac8cc81..2bb971a 100644
--- a/display.h
+++ b/display.h
@@ -7,68 +7,45 @@
* to the COPYING file distributed with this package.
*
* (c) 2001-2004 Carsten Siebholz <c.siebholz AT t-online.de>
- * (c) 2004 Andreas Regel <andreas.regel AT powarman.de>
+ * (c) 2004-2010 Andreas Regel <andreas.regel AT powarman.de>
+ * (c) 2010-2011 Wolfgang Astleitner <mrwastl AT users sourceforge net>
*/
-#ifndef GRAPHLCD_DISPLAY_H
-#define GRAPHLCD_DISPLAY_H
+#ifndef _GRAPHLCD_DISPLAY_H_
+#define _GRAPHLCD_DISPLAY_H_
#include <stdint.h>
#include <string>
#include <vector>
+#include <map>
#include <glcdgraphics/bitmap.h>
-#include <glcdgraphics/font.h>
+#include <glcddrivers/driver.h>
+#include <glcdskin/skin.h>
#include "global.h"
-#include "layout.h"
-#include "logolist.h"
#include "setup.h"
#include "state.h"
-#include "widgets.h"
+#include "skinconfig.h"
-#include <vdr/thread.h>
-#include <vdr/player.h>
-
-#define SPAN_CLIENT_CHECK_ID "Span-ClientCheck-v1.0"
-#define SPAN_GET_BAR_HEIGHTS_ID "Span-GetBarHeights-v1.0"
+#include "service.h"
-#define LCDMAXCARDS 4
-static const int kMaxTabCount = 10;
+#include <vdr/thread.h>
-struct Span_Client_Check_1_0 {
- bool *isActive;
- bool *isRunning;
-};
-struct Span_GetBarHeights_v1_0 {
- unsigned int bands; // number of bands to compute
- unsigned int *barHeights; // the heights of the bars of the
- // two channels combined
- unsigned int *barHeightsLeftChannel; // the heights of the bars of the
- // left channel
- unsigned int *barHeightsRightChannel; // the heights of the bars of the
- // right channel
- unsigned int *volumeLeftChannel; // the volume of the left channels
- unsigned int *volumeRightChannel; // the volume of the right channels
- unsigned int *volumeBothChannels; // the combined volume of the two
- // channels
- const char *name; // name of the plugin that wants to
- // get the data (must be unique for
- // each client!)
- unsigned int falloff; // bar falloff value
- unsigned int *barPeaksBothChannels; // bar peaks of the two channels
- // combined
- unsigned int *barPeaksLeftChannel; // bar peaks of the left channel
- unsigned int *barPeaksRightChannel; // bar peaks of the right channel
+enum eThreadState
+{
+ StateNormal,
+ StateReplay,
+ StateMenu
};
-enum ThreadState
+// state of current display mode (interesting for displays w/ touchpads)
+enum eDisplayMode
{
- Normal,
- Replay,
- Menu
+ DisplayModeNormal,
+ DisplayModeInteractive
};
// Display update Thread
@@ -78,121 +55,58 @@ public:
cGraphLCDDisplay(void);
~cGraphLCDDisplay(void);
- int Init(GLCD::cDriver * Lcd, const char * CfgDir);
- void Tick(void);
-
- void SetChannel(int ChannelNumber);
- void SetClear();
- void SetOsdTitle();
- void SetOsdItem(const char * Text);
- void SetOsdCurrentItem();
- void Recording(const cDevice * Device , const char * Name);
- void Replaying(bool starting, eReplayMode replayMode);
- //void SetStatusMessage(const char * Msg);
- void SetOsdTextItem(const char * Text, bool Scroll);
- //void SetColorButtons(const char * Red, const char * Green, const char * Yellow, const char * Blue);
- void SetVolume(int Volume, bool Absolute);
-
+ bool Initialise(GLCD::cDriver * Lcd, const std::string & CfgPath, const std::string & SkinsPath, const std::string & SkinName);
+ void Tick();
void Update();
void Clear();
+ void Replaying(bool Starting);
+ void SetMenuClear();
+ void SetMenuTitle();
+ void SetMenuCurrent();
+ const GLCD::cBitmap * GetScreen() const { return mScreen; }
+
+ void ForceUpdateBrightness();
+
+ const cGraphLCDService * GetServiceObject() const { return mService; }
+ GLCD::cDriver * GetDriver() const { return mLcd; }
+ GLCD::cSkin * GetSkin() const { return mSkin; }
+
+ const eDisplayMode GetDisplayMode() const { return mDisplayMode; }
protected:
virtual void Action();
private:
- bool update;
- bool active;
GLCD::cDriver * mLcd;
+ GLCD::cBitmap * mScreen;
+ GLCD::cSkin * mSkin;
+ cGraphLCDSkinConfig * mSkinConfig;
- cFontList fontList;
- GLCD::cBitmap * bitmap;
- const GLCD::cFont * largeFont;
- const GLCD::cFont * normalFont;
- const GLCD::cFont * smallFont;
- const GLCD::cFont * symbols;
- std::string cfgDir;
- std::string fontDir;
- std::string logoDir;
-
- ThreadState State;
- ThreadState LastState;
-
- cMutex mutex;
- cGraphLCDState * GraphLCDState;
-
- int menuTop;
- int menuCount;
- int tabCount;
- int tab[kMaxTabCount];
- int tabMax[kMaxTabCount];
-
- std::vector <std::string> textItemLines;
- int textItemTop;
- int textItemVisibleLines;
-
- bool showVolume;
-
- time_t CurrTime;
- time_t LastTime;
- time_t LastTimeCheckSym;
- time_t LastTimeModSym;
- cTimeMs LastTimeSA; //span
- struct timeval CurrTimeval;
- struct timeval UpdateAt;
-
- std::vector<cScroller> scroller;
-
- cGraphLCDLogoList * logoList;
- cGraphLCDLogo * logo;
-
- char szETSymbols[32];
-
-#ifdef USE_WAREAGLEICON
- bool bIsUTF8;
- char * textWithIcons;
- const char * ConvertWarEagleIconsUtf8(const char *s);
-#endif
+ bool mUpdate;
+ uint64_t mUpdateAt;
+ uint64_t mLastTimeMs;
- void DisplayChannel();
- void DisplayTime();
- void DisplayLogo();
- void DisplaySymbols();
- void DisplayProgramme();
- void DisplayReplay(tReplayState & replay);
- void DisplayMenu();
- void DisplayMessage();
- void DisplayTextItem();
- void DisplayColorButtons();
- void DisplayVolume();
- void DisplaySA(); //span
-
- void UpdateIn(long usec);
- bool CheckAndUpdateSymbols();
-
-#if VDRVERSNUM >= 10701
- /** Check if replay index bigger as one hour */
- bool IndexIsGreaterAsOneHour(int Index, double framesPerSecond) const;
- /** Translate replay index to string with minute and second MM:SS */
- const char *IndexToMS(int Index, double framesPerSecond) const;
-#else
- bool IndexIsGreaterAsOneHour(int Index) const;
- const char *IndexToMS(int Index) const;
-#endif
- /** Compare Scroller with new Textbuffer*/
- bool IsScrollerTextChanged(const std::vector<cScroller> & scroller, const std::vector <std::string> & lines) const;
- /** Returns true if Logo loaded and active*/
- bool IsLogoActive() const;
- /** Returns true if Symbols loaded and active*/
- bool IsSymbolsActive() const;
-
- /** Set Brightness depends user activity */
+ eThreadState mState;
+ eThreadState mLastState;
+
+ cMutex mMutex;
+ cGraphLCDState * mGraphLCDState;
+
+ bool mShowVolume;
+ bool mShowAudio;
+
+ void UpdateIn(uint64_t msec);
+
+ /* set brightness depending on user activity */
void SetBrightness();
uint64_t LastTimeBrightness;
int nCurrentBrightness;
bool bBrightnessActive;
-
- cCharSetConv *conv;
- const char * Convert(const char *s);
+ /* external services */
+ cGraphLCDService * mService;
+ /* display mode (normal or interactive) */
+ eDisplayMode mDisplayMode;
+ uint64_t LastTimeDisplayMode;
};
#endif
diff --git a/extdata.c b/extdata.c
new file mode 100644
index 0000000..f71f410
--- /dev/null
+++ b/extdata.c
@@ -0,0 +1,96 @@
+/*
+ * GraphLCD plugin for the Video Disk Recorder
+ *
+ * extdata.c - external data sent via SVDRP
+ *
+ * This file is released under the GNU General Public License. Refer
+ * to the COPYING file distributed with this package.
+ *
+ * (c) 2011 Wolfgang Astleitner <mrwastl AT users sourceforge net>
+ */
+
+#include "extdata.h"
+
+#include <vdr/tools.h>
+
+#include <stdio.h>
+cExtData * cExtData::mExtDataInstance = NULL;
+
+cExtData * cExtData::GetExtData(void) {
+ if (mExtDataInstance == NULL) {
+ mExtDataInstance = new cExtData();
+ }
+ return mExtDataInstance;
+}
+
+
+void cExtData::ReleaseExtData(void) {
+ delete mExtDataInstance;
+ mExtDataInstance = NULL;
+}
+
+
+cExtData::~cExtData(void) {
+ data.clear();
+ expData.clear();
+}
+
+
+bool cExtData::Set(const std::string & key, const std::string & value, const std::string & scope, uint32_t expire ) {
+ if (mExtDataInstance == NULL) return false; // paranoia check
+
+ std::string compkey = scope; compkey += ":"; compkey += key; // <scope>:<key>, <scope> can be "" (== global)
+ data[compkey] = value;
+
+ if (expire > 0) {
+ expData[compkey] = cTimeMs::Now() + (expire * 1000);
+ } else {
+ expData.erase(compkey); // just in case of an old expiration entry for compkey
+ }
+ return true;
+}
+
+
+bool cExtData::Unset(const std::string & key, const std::string & scope ) {
+ if (mExtDataInstance == NULL) return false; // paranoia check
+
+ std::string compkey = scope; compkey += ":"; compkey += key; // <scope>:<key>, <scope> can be "" (== global)
+ expData.erase(compkey); // ignore result;
+ return ( (data.erase(compkey) > 0) ? true : false );
+}
+
+
+bool cExtData::IsSet(const std::string & key, const std::string & scope ) {
+ std::string ret = Get(key, scope);
+ return ( (ret != "") ? true : false );
+}
+
+
+std::string cExtData::Get(const std::string & key, const std::string & scope ) {
+ if (mExtDataInstance == NULL) return ""; // paranoia check
+
+ std::string compkey;
+ int l = 0;
+ int loops = (scope == "") ? 1 : 2;
+ while ( l < loops) {
+ compkey = (l == 0) ? scope : ""; compkey += ":"; compkey += key; // 1st loop: display-scope, 2nd loop: global
+ it = data.find(compkey);
+ if ( it != data.end() ) {
+ expDataIt = expData.find(compkey);
+ if ( expDataIt != expData.end() ) {
+ uint64_t expts = (*expDataIt).second;
+ if ( cTimeMs::Now() > expts ) {
+ expData.erase(compkey);
+ data.erase(compkey);
+ // expired, thus no result here, but maybe there'll be a hit in global scope, so don't return here
+ } else {
+ return (*it).second;
+ }
+ } else {
+ return (*it).second;
+ }
+ }
+ l++;
+ }
+ return "";
+}
diff --git a/extdata.h b/extdata.h
new file mode 100644
index 0000000..0c7d781
--- /dev/null
+++ b/extdata.h
@@ -0,0 +1,46 @@
+/*
+ * GraphLCD plugin for the Video Disk Recorder
+ *
+ * extdata.h - external data sent via SVDRP
+ *
+ * This file is released under the GNU General Public License. Refer
+ * to the COPYING file distributed with this package.
+ *
+ * (c) 2011 Wolfgang Astleitner <mrwastl AT users sourceforge net>
+ */
+
+#ifndef _GRAPHLCD_EXTDATA_H_
+#define _GRAPHLCD_EXTDATA_H_
+
+#include <stdint.h>
+
+#include <string>
+#include <map>
+
+
+// external data set via SVDRP
+class cExtData {
+ friend class cGraphLCDSkinConfig;
+ friend class cPluginGraphLCD;
+private:
+ std::map<std::string,std::string> data;
+ std::map<std::string,std::string>::iterator it;
+ std::map<std::string,uint64_t> expData;
+ std::map<std::string,uint64_t>::iterator expDataIt;
+
+ static cExtData * mExtDataInstance;
+
+ cExtData(void) {}
+ ~cExtData(void);
+protected:
+ static cExtData * GetExtData(void);
+ static void ReleaseExtData(void);
+
+public:
+ bool Set(const std::string & key, const std::string & value, const std::string & scope, uint32_t expire = 0 );
+ bool Unset(const std::string & key, const std::string & scope);
+ bool IsSet(const std::string & key, const std::string & scope);
+ std::string Get(const std::string & key, const std::string & scope);
+};
+
+#endif
diff --git a/global.h b/global.h
index a810180..a2f031d 100644
--- a/global.h
+++ b/global.h
@@ -13,17 +13,8 @@
#ifndef _GRAPHLCD_GLOBAL_H_
#define _GRAPHLCD_GLOBAL_H_
-
#include <stdlib.h>
-#include <glcddrivers/driver.h>
-
-
-#define PLUGIN_NAME "graphlcd"
-#define SPACEWIDTH 2
-
-#define FREENULL(p) (free (p), p = NULL)
-
template<class T> inline void clip(T & value, T min, T max)
{
if (value < min) value = min;
diff --git a/graphlcd/channels.alias b/graphlcd/channels.alias
index debab3e..e0a802b 120000..100644
--- a/graphlcd/channels.alias
+++ b/graphlcd/channels.alias
@@ -1 +1,639 @@
-channels.alias-20110104.txt \ No newline at end of file
+133-5-662:1-2-3.tv
+61441-10000-50110:1-2-3.tv
+133-1-42:13TH_STREET
+61441-10005-50107:13TH_STREET
+53-1109-502313TH_STREET
+1-1093-28475:1LIVE
+1-1093-28481:1LIVE_DIGGI
+1-1024-9030:2M_MAROC
+1-1079-28007:3SAT
+1-1038-30405:40_TV
+1-1107-17504:9LIVE
+1-1094-17020:AB_MOTEURS
+1-1094-12021:AB1
+1-1094-17030:ACTION
+1-1090-8552:ADO_FM
+1-1020-7009:AL_JAZEERA
+1-1020-7012:AL_JAZEERA
+1-1024-9021:AL_JAZEERA
+1-1024-9011:ALGERIE
+1-1090-8549:ALOUETTE
+1-1095-20302:ANIMAL_PLANET
+53-1097-2020:ANIMAL_PLANET
+1-1094-17022:ANIMAUX
+1-1102-13203:ANIMAX
+53-1097-2047:ANIMAX
+1-1032-30207:ANIMAX
+1-1057-61202:ANIXE_HD
+133-5-764:ANIXE_SD
+133-7-170:ANTENNE_BAYERN
+1-1093-28454:ANTENNE_BRANDENBURG
+1-1051-28724:ARTE
+1-1076-8159:ARTE
+1-1076-8172:ARTE
+8468-2561-2:ARTE
+1-1098-9111:ARTE_HD
+1-1110-9304:ARTE_HD
+1-1110-9324:ARTE_HD
+1-1011-11120:ARTE_HD
+1-1057-61203:ASTRA_HD
+1-1117-13012:ATVPLUS
+1-1115-13106:AUSTRIA_9_TV
+1-1102-13212:AUTO_MOTOR_UND_SPORT
+1-1063-20352:AXN
+1-1008-29815:AXN
+61441-10005-50304:AXN
+133-9-62:AXN_ACTION
+1-1093-28404:B5_AKTUELL
+1-1093-28408:B5_PLUS
+1-1101-28107:BAYERISCHES_FERNSEHEN
+1-1101-28110:BAYERISCHES_FERNSEHEN
+8468-5633-34:BAYERISCHES_FERNSEHEN
+1-1093-28400:BAYERN_1
+1-1093-28401:BAYERN_2
+1-1093-28402:BAYERN_3
+1-1093-28403:BAYERN_4_KLASSIK
+1-1093-28405:BAYERN_PLUS
+1-1279-20328:BBC_PRIME
+53-1097-2030:BBC_PRIME
+61441-10004-53406:BBC_PRIME
+1-1026-10050:BBC_WORLD
+1-1094-17027:BBC_WORLD
+1-1112-12340:BBC_WORLD
+61441-10000-53001:BBC_WORLD
+133-17-21:BEATE_UHSE.TV
+1-1092-10155:BEATE_UHSE_SEXY_SAT
+1-1096-8613:BEUR_TV
+1-1108-12122:BIBEL TV
+61441-10004-53403:BIBEL TV
+1-1102-13208:BIOGRAPHY_CHANNEL
+133-9-67:BIOGRAPHY_CHANNEL
+1-1090-8505:BLOOMBERG_TV
+1-1108-12160:BLOOMBERG_TV
+61441-10000-53004:BLOOMBERG_TV
+1-1026-10067:BLOOMBERG_TV_GERMANY
+133-4-513:BLUE_MOVIE
+133-1-345:BLUE_MOVIE_1
+133-1-355:BLUE_MOVIE_2
+133-1-365:BLUE_MOVIE_3
+1-1063-20343:BOOMERANG
+133-9-66:BOOMERANG
+1-1054-30361:BOOMERANG
+1-1068-28527:BOOMERANG
+1-1093-28403:BR_KLASSIK
+1-1093-28407:BR_VERKEHR
+1-1093-28487:BR_ALPHA
+1-1101-28112:BR_ALPHA
+1-1093-28448:BREMEN_EINS
+1-1093-28450:BREMEN_VIER
+53-1109-5025:BVN
+1-1056-29963:CADENA_DIAL
+1-1020-7017:CANAL_CANARIAS
+1-1096-8612:CANAL_CLUB
+1-1038-30400:CANAL+
+1-1008-29817:CANAL+ ...30
+1-1102-13204:CARTOON_NETWORK
+133-9-64:CARTOON_NETWORK
+1-1279-20341:CARTOON_NETWORK
+1-1068-28521:CARTOON_NETWORK
+1-1111-7291:CFN_RFC
+1-1089-12095:CHANNEL_21
+1-1089-12080:CHANNEL_21
+133-7-769:CHANNEL_21
+1-1090-8548:CHERIE_FM
+1-1094-17032:CINE_BOX
+133-17-24:CLASSICA
+1-1026-10030:CNBC_EUROPE
+1-1112-12200:CNBC_EUROPE
+1-1068-28522:CNN_INT
+1-1032-30210:CNN+
+1-1063-20351:COMEDY_CENTRAL
+1-1090-8545:CONTACT_FM
+133-17-156:COUNTRY
+1-1092-10102:DAF_ANLEGER_TV
+1-1093-28471:DAS_DING
+1-1101-28106:DAS_ERSTE
+8468-2561-128:DAS_ERSTE
+8468-258-14:DAS_ERSTE
+1-1011-11100:DAS_ERSTE_HDv2
+133-5-1793:DAS_VIERTE
+1-1092-10141:DELUXE_LOUNGE
+1-1092-10100:DELUXE_MUSIC
+1-1092-10100:DELUXE_MUSIC
+1-1092-10140:DELUXE_RADIO
+1-1092-10140:DELUXE_RADIO
+133-17-150:DEUTSCHE_CHARTS
+1-1079-28013:DEUTSCHLANDFUNK_KOELN
+DEUTSCHLANDRADIO_BERLIN
+133-4-14:DISCOVERY_CHANNEL
+133-6-130:DISCOVERY_HD
+1-1038-30403:DISNEY_CHANNEL
+1-1095-20305:DISNEY_CHANNEL
+133-17-34:DISNEY_CHANNEL
+1-1072-8207:DISNEY_CHANNEL
+133-3-25:DISNEY_CINEMAGIC
+133-13-111:DISNEY_CINEMAGIC_HD
+133-8-126:DISNEY_CINEMAGIC_HD
+61441-10002-50709:DISNEY_PLAYHOUSE
+61441-10005-50307:DISNEY_TOON
+61441-10002-50710:DISNEY_TOON_+1
+133-17-28:DISNEY_XD
+1-1100-8705:DISNEY_XD
+1-1046-30506:DISNEY_XD
+1-1079-28012:DKULTUR
+1-1097-28013:DLF
+1-1092-10101:DMAX
+133-5-171:DOMRADIO
+8468-774-16392:DSF
+1-1093-28416:DW_1
+1-1093-28417:DW_4
+1-1026-10020:DW_TV
+61441-10005-50104:E_ENTERTAINMENT
+1-1114-8911:E_ENTERTAINMENT
+133-5-172:EGO_FM
+1-1051-28721:EINS_EXTRA
+1-1051-28722:EINS_FESTIVAL
+1-1201-28396:EINS_FESTIVAL_HD
+1-1073-28203:EINS_MUXX
+1-1051-28723:EINS_PLUS
+133-7-161:ERF_RADIO
+1-1024-9014:ESC1_EGYPT
+1-1115-13109:ESPN _AMERICA
+133-11-119:ESPN_AMERICA_SPORT
+1-1115-13105:ESPN_AMERICA_SPORT
+61441-10005-50301:ESPN_CLASSIC_SPORT
+1-1070-8004:EURONEWS
+1-1079-28015:EURONEWS
+1-1091-31220:EURONEWS
+1-1090-8537:EUROPE_2
+1-1034-30680:EUROSPORT
+1-1046-30503:EUROSPORT
+1-1076-8151:EUROSPORT
+1-1079-28009:EUROSPORT
+1-1091-31200:EUROSPORT
+1-1279-20321:EUROSPORT
+53-1097-2025:EUROSPORT
+8468-5889-16420:EUROSPORT
+8468-774-16420:EUROSPORT
+1-1102-13205:EUROSPORT_2
+133-9-65:EUROSPORT_2
+1-1099-20367:EUROSPORT_2
+1-1099-20366:EUROSPORT_2
+1-1088-9503:EUROSPORT_2
+133-6-132:EUROSPORT_HD
+1-1098-9106:EUROSPORT_HD
+1-1116-9903:EUROSPORT_HD
+1-1116-9923:EUROSPORT_HD
+1-1056-29953:EUROSPORT_HD
+1-1058-30163:EUROSPORT_HD
+1-1058-30163EXTRA_1
+61441-10004-53409:EXTREME_SPORTS
+1-1095-20311:EXTREME_SPORTS
+1-1088-9508:EXTREME_SPORTS
+1-1094-17029:FASHION_TV
+61441-10005-50101:FASHION_TV
+1-1110-9301:FESTIVAL
+1-1113-12658:FFN_COMEDY
+1-1113-12654:FFN_DIGITAL
+1-1115-13134:FM4
+1-1102-13209:FOX
+1-1008-29801:FOX_KIDS
+1-1099-20316:FOX_KIDS
+133-17-28:FOX_KIDS
+1-1060-30611:FOX_NEWS
+1-1032-30201:FOX_NEWS
+133-1-16:FOX
+1-1022-6906:FRANCE_ 24
+1-1080-8801:FRANCE_2
+1-1080-8802:FRANCE_3
+1-1090-8501:FRANCE_5
+1-1092-10104:FRANKEN_SAT
+1-1057-61980:FREE_X_TV
+1-1073-28209:FRITZ
+1-1093-28457:FRITZ
+133-17-333:FUSSBALL_AUT
+133-2-253:FUSSBALL_AUT
+61441-10002-50706:GAMES_TV
+1-1115-13102:GO_TV
+133-17-518:GOLDSTAR_TV
+133-1-373:GOLF
+61441-10003-50111:GUTE_LAUNE_TV
+1-1095-20308:HALLMARK
+1-1279-20323:HALLMARK
+53-1097-2035:HALLMARK
+1-1113-12662:HARMONY_FM
+1-1011-11140:HD_TEST_ARD_ZDF
+133-17-22:HEIMATKANAL
+1-1101-28108:HESSEN_FERNSEHEN
+1-1110-9302:HISTOIRE
+1-1102-13201:HISTORY
+133-9-68:HISTORY
+61441-10003-53301:HISTORY_CHANNEL
+133-13-113:HISTORY_HD
+133-8-128:HISTORY_HD
+1-1113-12660:HITRADIO_FFH
+1-1117-13013:HITRADIO_OE3
+1-1116-12750:HOERZU_DIGITAL
+133-7-71:HOPE_CHANNEL
+133-5-175:HOPE_CHANNEL_RADIO
+1-1093-28419:HR_1
+1-1093-28420:HR_2
+1-1093-28421:HR_3
+1-1093-28422:HR_4
+1-1093-28424:HR_INFO
+1-1093-28425:HR_INFO_PLUS
+1-1101-28124:HR_KLASSIK
+1-1101-28122:HR_SKYLINE
+133-33-40:HSE24
+1-1091-31210:HSE24_EXTRA
+133-33-77:HSE24_TREND
+133-5-772:I_MUSIC
+1-1093-28452:INFORADIO
+1-1113-12651:INSELRADIO
+133-7-514:JML_SHOP
+1-1093-28432:JUMP
+133-17-19:JUNIOR
+1-1113-12616:JUWELO_TV
+1-1113-12601:K_TV
+61441-10002-50705:K_TV
+8468-3074-16394:KABEL_1
+8468-769-16394:KABEL_1
+1-1107-17502:KABEL_1
+1-1082-20004:KABEL_1_AUSTRIA
+1-1107-17506:KABEL_1_CLASSIC
+1-1017-61302:KABEL_1_HD
+1-1082-20003:KABEL_1_SCHWEIZ
+1-1079-28008:KIKA
+53-1109-5055:KINK_FM
+133-9-60:KINOWELT
+1-1102-13206:KINOWELT
+1-1093-28482:KIRAKA
+133-5-173:KLASSIK_RADIO
+1-1022-6902:KTO
+1-1093-28453:KULTURRADIO
+1-1076-8156:LCI
+1-1076-8154:LCP
+1-1076-8173:LCP
+1-1108-12120:LIBERTY_TV
+1-1112-12280:LIBERTY_TV
+1-1110-9307:LIVE_1
+133-17-152:LOVE_SONGS
+1-1074-8355:MATCH_TV
+1-1073-28204:MDR_FERNSEHEN
+8468-5633-100:MDR_FERNSEHEN
+1-1073-28228:MDR_FERNSEHEN_S
+1-1073-28229:MDR_FERNSEHEN_SA
+1-1073-28230:MDR_FERNSEHEN_TH
+1-1073-28208:MDR_FIGARO
+1-1093-28431:MDR_FIGARO
+1-1073-28211:MDR_INFO
+1-1093-28434:MDR_INFO
+1-1093-28435:MDR_KLASSIK
+1-1093-28433:MDR_SPUTNIK
+1-1093-28429:MDR1_SA_ANHALT
+1-1093-28428:MDR1_SACHSEN
+1-1093-28430:MDR1_THUERINGEN
+1-1090-8559:MEDIA_TROPICAL
+133-33-899:MEIN_TV_SHOP
+133-3-515:MGM
+1-1063-20349:MGM
+1-1088-9509:MOTORS_TV
+61441-10003-50102:MOTORS_TV
+133-1-168:MOTORVISION_TV
+61441-10000-53005:MTV
+1-1066-28659:MTV_2
+1-1091-28641:MTV_AUSTRIA
+1-1066-28655:MTV_BASE
+1-1066-28661:MTV_BASE
+1-1066-28665:MTV_BASE
+1-1066-28653:MTV_CENTRAL
+1-1091-28641:MTV_CENTRAL
+1-1279-20322:MTV_CENTRAL
+61441-10002-50703:MTV_DANCE
+1-1066-28652:MTV_F
+1-1078-28673:MTV_GERMANY
+1-1066-28664:MTV_HITS
+1-1066-28654:MTV_HITS
+61441-10002-50704:MTV_HITS
+1-1093-28440:N_JOY
+1-1107-17503:N24
+8468-3074-16398:N24
+8468-769-16398:N24
+61441-10005-50306:NASN
+133-4-12:NAT_GEO_WILD
+1-1088-9506:NAT_GEO_WILD
+61441-10002-50708:NATIONAL_GEOGRAPHIC
+1-1060-30605:NATIONAL_GEOGRAPHIC
+133-4-13:NATIONAL_GEOGRAPHIC
+1-1102-13202NATIONAL_GEOGRAPHIC
+133-13-112:NATIONAL_GEOGRAPHIC_HD
+133-8-127:NATIONAL_GEOGRAPHIC_HD
+1-1058-30124NATIONAL_GEOGRAPHIC_HD
+1-1028-30704NATIONAL_GEOGRAPHIC_HD
+1-1093-28444:NDR_1_NIEDERS
+1-1093-28443:NDR_1_RADIO_MV
+1-1093-28442:NDR_1_WELLE_NORD
+1-1093-28437:NDR_2
+1-1093-28441:NDR_90_3
+1-1073-28225:NDR_FERNSEHEN_HH
+1-1073-28224:NDR_FERNSEHEN_MV
+1-1073-28226:NDR_FERNSEHEN_NDS
+1-1073-28227:NDR_FERNSEHEN_SH
+8468-5633-131:NDR_FERNSEHEN_SH
+1-1093-28439:NDR_INFO
+1-1101-28127:NDR_INFO
+1-1093-28445:NDR_INFO_SPEZIAL
+1-1093-28438:NDR_KULTUR
+1-1073-28207:NDR_KULTUR
+53-1105-4011:NED_1
+53-1105-4012:NED_2
+53-1105-4013:NED_3
+53-1109-5004:NET_5
+61441-10000-53006:NICK
+1-1066-28660:NICK
+1-1091-28640:NICKELODEON
+1-1078-28680:NICKELODEON
+1-1066-28658:NICKELODEON
+1-1078-28682:NICKTOONS_S
+1-1093-28449:NORDWEST_RADIO
+1-1090-8536:NRJ
+1-1018-6406:NRJ_HITS
+1-1089-12090:NTV
+1-1115-13135:OE_1_INTERNATIONAL
+1-1117-13021:OESTERREICH_1
+1-1115-13122:OESTERREICH_1
+1-1115-13121:OESTERREICH_1
+1-1117-13033:OESTERREICH_3
+1-1115-13133:OESTERREICH_3
+133-5-174:OLDIESTAR
+1-1093-28406:ON_3_RADIO
+1-1092-10103:ONTV
+1-1117-13001:ORF_1
+1-1007-4911:ORF_1_HD
+1-1117-13002:ORF_2
+1-1117-13014:ORF_2
+1-1117-13005:ORF_2_ BURGENLAND
+1-1115-13125:ORF_2_ BURGENLAND
+1-1007-4912:ORF_2_HD
+1-1117-13011:ORF_2_KAERNTEN
+1-1115-13131:ORF_2_KAERNTEN
+1-1117-13004:ORF_2_NIEDEROESTERREICH
+1-1115-13124:ORF_2_NIEDEROESTERREICH
+1-1117-13006:ORF_2_OBEROESTERREICH
+1-1115-13126:ORF_2_OBEROESTERREICH
+1-1117-13007:ORF_2_SALZBURG
+1-1115-13127:ORF_2_SALZBURG
+1-1117-13010:ORF_2_STEIERMARK
+1-1115-13130:ORF_2_STEIERMARK
+1-1117-13008:ORF_2_TIROL
+1-1115-13128:ORF_2_TIROL
+1-1117-13009:ORF_2_VORARLBERG
+1-1115-13129:ORF_2_VORARLBERG
+1-1117-13003:ORF_2_WIEN
+1-1115-13123:ORF_2_WIEN
+1-1111-7268:OTTO_SHOP
+1-1113-12657:PEPPERMINT_FM
+1-1051-28725:PHOENIX
+8468-2561-3:PHOENIX
+8468-258-13:PHOENIX
+133-17-13:PLANET
+61441-10003-50105:PLANET
+1-1113-12661:PLANET_RADIO
+1-1102-13210:PLAYBOY_TV
+1-1090-8506:PLAYBOY_TV
+1-1060-30603:PLAYBOY_TV
+61441-10002-50707:PLAYBOY_TV
+1-1008-29803:PLAYHOUSE_DISNEY
+1-1114-8907:PLAYHOUSE_DISNEY
+133-17-26:PLAYHOUSE_DISNEY
+1-1107-17501:PRO_SIEBEN
+8468-3074-16403:PRO_SIEBEN
+8468-769-16403:PRO_SIEBEN
+8468-771-16624:PRO_SIEBEN
+1-1082-20002:PRO_SIEBEN_AUSTRIA
+1-1017-61301:PRO_SIEBEN_HD
+1-1082-20001:PRO_SIEBEN_SCHWEIZ
+1-1082-20007:PULS
+133-7-54:Q_TV_SHOP
+1-1108-12100:QVC_GERMANY
+53-1109-5085:RADIO_10_GOLD
+53-1109-5072:RADIO_538
+1-1093-28455:RADIO_BERLIN_88_8
+1-1093-28456:RADIO_EINS
+1-1113-12659:RADIO_GLORIA
+1-1111-7289:RADIO_HOREB
+1-1115-13140:RADIO_MARIA
+1-1113-12650:RADIO_MARIA
+1-1073-28213:RADIO_MULTIKULTI
+1-1113-12655:RADIO_PALOMA
+1-1113-12663:RADIO_REGENBOGEN
+1-1057-61963:RAZE_TV
+1-1073-28206:RBB_BERLIN
+8468-258-12:RBB_BERLIN
+1-1073-28205:RBB_BRANDENBURG
+8468-258-11:RBB_BRANDENBURG
+1-1042-30051:REAL_MADRID_TV
+1-1090-8547:RFM_TV
+1-1113-12614:RHEIN_MAIN_TV
+1-1090-8529:RIRE_ET_CHANSONS
+133-17-155:RNB_HIPHOP
+133-7-160:ROCK_ANTENNE
+133-17-151:ROCK_HYMNEN
+133-9-63:ROMANCE_TV
+1-1090-8553:RSR_COULEUR_3
+1-1112-3982:RTBF_SAT
+1-1089-12020:RTL_2
+1-1090-8538:RTL_2
+8468-2818-16406:RTL_2
+8468-773-16406:RTL_2
+1-1091-28810:RTL_2_AUSTRIA
+53-1097-2004:RTL_4
+53-1097-2005:RTL_5
+53-1097-2006:RTL_7
+53-1097-2035:RTL_8
+1-1094-17035:RTL_9
+1-1089-12085:RTL_AUSTRIA
+1-1091-28800:RTL_AUSTRIA
+133-1-27:RTL_CRIME
+53-1105-4030:RTL_FM
+1-1057-61200:RTL_HD
+1-1089-12006:RTL_FS
+1-1089-12005:RTL_TELEVISION
+1-1089-12004:RTL_TELEVISION
+133-1-29:RTL_PASSION
+53-1097-2051:RTL_RADIO
+1-1102-13207:RTL_LIVING
+1-1089-12030:RTL_LIVING
+1-1089-12080:RTL_SHOP
+1-1108-3994:RTL_TELE_LETZEBURG
+1-1089-12003:RTL_TELEVISION
+1-1090-8528:RTL_TELEVISION
+8468-2818-16405:RTL_TELEVISION
+8468-773-16405:RTL_TELEVISION
+1-1026-10002:RTM_MAROC
+1-1024-9017:RTP_INT
+1-1022-6904:RUSSIA_TODAY
+1-1026-10077:RUSSIA_TODAY
+61441-10002-50702:SAILING_CHANNEL
+1-1107-17500:SAT.1
+8468-3074-16408:SAT.1
+8468-769-16408:SAT.1
+1-1107-17507:SAT.1
+1-1082-20008:SAT.1
+1-1107-17508:SAT.1
+1-1082-20009:SAT.1
+1-1082-20010:SAT.1
+1-1107-17505:SAT.1_COMEDY
+1-1082-20005:SAT.1_AUSTRIA
+1-1017-61300:SAT.1_HD
+1-1082-20006:SAT.1_SCHWEIZ
+53-1109-5005:SBS6
+61441-10002-50106:SCIFI
+1-1115-13111:SERVUS_TV
+1-1007-4913:SERVUS_TV_HD
+1-1007-4914:SERVUS_TV_HD
+8948-5-1:SF_1
+8948-5-2:SF_2
+8948-5-3:SF_INFO
+61441-10005-50305:SILVERLINE
+133-5-776:SIXX
+133-2-9:SKY_ACTION
+133-12-106:SKY_ACTION_HD
+133-10-123:SKY_ACTION_HD
+133-4-223:SKY_BUNDESLIGA
+133-2-10:SKY_CINEMA
+133-6-131:SKY_CINEMA_HD
+133-2-11:SKY_CINEMA+1
+133-2-43:SKY_CINEMA+24
+133-3-41:SKY_CINEMAHITS
+133-12-107:SKY_CINEMAHITS_HD
+133-10-124:SKY_CINEMAHITS_HD
+133-2-8:SKY_COMEDY
+133-2-20:SKY_EMOTION
+133-1-23:SKY_KRIMI
+1-1057-61969:SKY_NEWS_INTL
+1-1111-7290:SKY_NEWS_INTL
+133-3-516:SKY_NOSTALIGIE
+53-1109-5070:SKY_RADIO_NL
+133-4-18:SKY_SELECT
+133-4-221:SKY_SPORT_1
+133-4-222:SKY_SPORT_2
+133-7-53:SKY_SPORT_AUSTRIA
+133-6-129:SKY_SPORT_HD1
+133-13-114:SKY_SPORT_HD2
+133-10-122:SKY_SPORT_HD2
+133-3-17:SKY_SPORT_INFO
+133-33-32:SONNENKLAR_TV
+133-4-52:SPIEGEL_GESCHICHTE
+61441-10002-53401:SPIEGEL_TV_XXP
+133-33-900:SPORT1
+1-1057-61204:SPORT1_HD
+133-9-69:SPORTDIGITAL
+1-1073-28212:SPUTNIK
+1-1101-28129:SR_1
+1-1093-28486:SR_FERNSEHEN
+1-1093-28461:SR1_EUROPAWELLE
+1-1093-28462:SR2_KULTURRADIO
+1-1093-28463:SR3_SAARLANDWELLE
+1-1073-28231:SUEDWEST_FS_RP
+133-7-169:SUNSHINE_LIVE
+1-1089-12040:SUPER_RTL
+8468-2818-16411:SUPER_RTL
+8468-773-16411:SUPER_RTL
+1-1091-28815:SUPER_RTL_AUSTRIA
+1-1089-12041:SUPER_RTL
+1-1093-28465:SWR_1_BW
+1-1093-28466:SWR_1_RP
+1-1093-28467:SWR_2
+1-1093-28468:SWR_3
+1-1093-28469:SWR_4_BW
+1-1093-28470:SWR_4_RP
+1-1093-28472:SWR_CONT_RA
+1-1101-28113:SWR_FERNSEHEN_BW
+1-1073-28231:SWR_FERNSEHEN_RP
+133-17-36:SYFY
+1-1057-61920:TANGO_TV
+1-1092-10142:TEDDY
+133-33-51:TELE_5
+61441-10000-53002:TELE_5
+8468-5889-16413:TELE_5
+53-1109-5015:TMF
+133-1-50:TNT_SERIE
+133-9-61:TNT_FILM_TCM
+1-1100-8710:TRACE_TV
+61441-10003-50103:TRACE_TV
+1-1057-61911:TRW_AM
+8948-5-513:TSI_1
+8948-5-257:TSR_1
+61441-10000-53007:TV_5
+1-1024-9012:TV_5_EUROPE
+1-1112-12240:TV_5_EUROPE
+1-1091-31230:TV_6
+1-1112-12301:TV_6
+1-1024-9018:TV_7
+133-7-772:TV_BERLIN
+1-1032-30222:TV_GALICIA
+61441-10003-53302:TV_GUSTO
+1-1032-30201:TVC_INT
+1-1026-10001:TVE_INT
+1-1115-13101:TW1
+53-1109-5095:VERONICA_RADIO
+1-1066-28656:VH1
+1-1066-28666:VH1
+1-1066-28657:VH1_CLASSIC
+1-1066-28667:VH1_CLASSIC
+61441-10005-50302:VH1_CLASSIC
+1-1090-8544:VIBRATION
+1-1031-20365:VIVA
+1-1078-28676:VIVA
+1-1116-12732:VIVA
+1-1078-28676:VIVA_GERMANY
+1-1108-12120:VIVA_PLUS
+8468-774-16417:VIVA_PLUS
+1-1090-8550:VOLTAGE
+1-1089-12060:VOX
+8468-2818-16418:VOX
+8468-773-16418:VOX
+1-1091-28805:VOX_AUSTRIA
+1-1089-12061:VOX_CH
+1-1057-61201:VOX_HD
+1-1111-28534:WDR
+1-1201-28306:WDR
+1-1111-28536:WDR
+1-1201-28307:WDR
+1-1111-28537:WDR
+1-1201-28308:WDR
+1-1201-28309:WDR
+1-1101-28111:WDR
+1-1201-28310:WDR
+1-1201-28311:WDR
+1-1201-28395:WDR
+1-1111-28535:WDR
+8468-5633-262:WDR
+1-1093-28476:WDR_2
+1-1073-28215:WDR_3
+1-1093-28477:WDR_3
+1-1093-28478:WDR_4
+1-1073-28216:WDR_5
+1-1093-28479:WDR_5
+1-1093-28483:WDR_EVENT
+1-1093-28480:WDR_FUNKHAUS_EUROPA
+61441-10005-50303:WEIN_TV
+61441-10003-50109:WETTER_FERNSEHEN
+1-1112-12320:WISHLINE
+1-1113-12656:WRN_DEUTSCH
+53-1105-4009:X_ZONE
+1-1113-12602:XXP
+53-1105-4020:YAM_FM
+133-7-765:YAVIDO_CLIPS
+53-1109-5050:YORIN_FM
+1-1093-28423:YOU_FM
+1-1079-28006:ZDF
+8468-514-514:ZDF
+8468-514-517:ZDF_DOKU_KIKA
+1-1011-11110:ZDF_HD
+8468-514-515:ZDF_INFO_3SAT
+1-1079-28011:ZDF_INFOKANAL
+1-1079-28014:ZDF_NEO
+1-1079-28016:ZDF_THEATERKANAL
+1-1094-17024:ZIK
diff --git a/graphlcd/channels.alias-20101014.txt b/graphlcd/channels.alias-20101014.txt
deleted file mode 100644
index edbf06c..0000000
--- a/graphlcd/channels.alias-20101014.txt
+++ /dev/null
@@ -1,631 +0,0 @@
-133-5-662:1-2-3.tv
-61441-10000-50110:1-2-3.tv
-133-1-42:13TH_STREET
-61441-10005-50107:13TH_STREET
-53-1109-502313TH_STREET
-1-1093-28475:1LIVE
-1-1093-28481:1LIVE_DIGGI
-1-1024-9030:2M_MAROC
-1-1079-28007:3SAT
-1-1038-30405:40_TV
-1-1107-17504:9LIVE
-1-1094-17020:AB_MOTEURS
-1-1094-12021:AB1
-1-1094-17030:ACTION
-1-1090-8552:ADO_FM
-1-1020-7009:AL_JAZEERA
-1-1020-7012:AL_JAZEERA
-1-1024-9021:AL_JAZEERA
-1-1024-9011:ALGERIE
-1-1090-8549:ALOUETTE
-1-1095-20302:ANIMAL_PLANET
-53-1097-2020:ANIMAL_PLANET
-1-1094-17022:ANIMAUX
-1-1102-13203:ANIMAX
-53-1097-2047:ANIMAX
-1-1032-30207:ANIMAX
-1-1057-61202:ANIXE_HD
-133-5-764:ANIXE_SD
-133-7-170:ANTENNE_BAYERN
-1-1093-28454:ANTENNE_BRANDENBURG
-1-1051-28724:ARTE
-1-1076-8159:ARTE
-1-1076-8172:ARTE
-8468-2561-2:ARTE
-1-1098-9111:ARTE_HD
-1-1110-9304:ARTE_HD
-1-1110-9324:ARTE_HD
-1-1011-11120:ARTE_HD
-1-1057-61203:ASTRA_HD
-1-1117-13012:ATVPLUS
-1-1115-13106:AUSTRIA_9_TV
-1-1102-13212:AUTO_MOTOR_UND_SPORT
-1-1063-20352:AXN
-1-1008-29815:AXN
-61441-10005-50304:AXN
-133-9-62:AXN_ACTION
-1-1093-28404:B5_AKTUELL
-1-1093-28408:B5_PLUS
-1-1101-28107:BAYERISCHES_FERNSEHEN
-1-1101-28110:BAYERISCHES_FERNSEHEN
-8468-5633-34:BAYERISCHES_FERNSEHEN
-1-1093-28400:BAYERN_1
-1-1093-28401:BAYERN_2
-1-1093-28402:BAYERN_3
-1-1093-28403:BAYERN_4_KLASSIK
-1-1093-28405:BAYERN_PLUS
-1-1279-20328:BBC_PRIME
-53-1097-2030:BBC_PRIME
-61441-10004-53406:BBC_PRIME
-1-1026-10050:BBC_WORLD
-1-1094-17027:BBC_WORLD
-1-1112-12340:BBC_WORLD
-61441-10000-53001:BBC_WORLD
-133-17-21:BEATE_UHSE.TV
-1-1092-10155:BEATE_UHSE_SEXY_SAT
-1-1096-8613:BEUR_TV
-1-1108-12122:BIBEL TV
-61441-10004-53403:BIBEL TV
-1-1102-13208:BIOGRAPHY_CHANNEL
-133-9-67:BIOGRAPHY_CHANNEL
-1-1090-8505:BLOOMBERG_TV
-1-1108-12160:BLOOMBERG_TV
-61441-10000-53004:BLOOMBERG_TV
-1-1026-10067:BLOOMBERG_TV_GERMANY
-133-4-513:BLUE_MOVIE
-133-1-345:BLUE_MOVIE_1
-133-1-355:BLUE_MOVIE_2
-133-1-365:BLUE_MOVIE_3
-1-1063-20343:BOOMERANG
-133-9-66:BOOMERANG
-1-1054-30361:BOOMERANG
-1-1068-28527:BOOMERANG
-1-1093-28403:BR_KLASSIK
-1-1093-28407:BR_VERKEHR
-1-1093-28487:BR_ALPHA
-1-1101-28112:BR_ALPHA
-1-1093-28448:BREMEN_EINS
-1-1093-28450:BREMEN_VIER
-53-1109-5025:BVN
-1-1056-29963:CADENA_DIAL
-1-1020-7017:CANAL_CANARIAS
-1-1096-8612:CANAL_CLUB
-1-1038-30400:CANAL+
-1-1008-29817:CANAL+ ...30
-1-1102-13204:CARTOON_NETWORK
-133-9-64:CARTOON_NETWORK
-1-1279-20341:CARTOON_NETWORK
-1-1068-28521:CARTOON_NETWORK
-1-1111-7291:CFN_RFC
-1-1089-12095:CHANNEL_21
-1-1089-12080:CHANNEL_21
-133-7-769:CHANNEL_21
-1-1090-8548:CHERIE_FM
-1-1094-17032:CINE_BOX
-133-17-24:CLASSICA
-1-1026-10030:CNBC_EUROPE
-1-1112-12200:CNBC_EUROPE
-1-1068-28522:CNN_INT
-1-1032-30210:CNN+
-1-1063-20351:COMEDY_CENTRAL
-1-1090-8545:CONTACT_FM
-133-17-156:COUNTRY
-1-1092-10102:DAF_ANLEGER_TV
-1-1093-28471:DAS_DING
-1-1101-28106:DAS_ERSTE
-8468-2561-128:DAS_ERSTE
-8468-258-14:DAS_ERSTE
-1-1011-11100:DAS_ERSTE_HDv2
-133-5-1793:DAS_VIERTE
-1-1092-10141:DELUXE_LOUNGE
-1-1092-10100:DELUXE_MUSIC
-1-1092-10100:DELUXE_MUSIC
-1-1092-10140:DELUXE_RADIO
-1-1092-10140:DELUXE_RADIO
-133-17-150:DEUTSCHE_CHARTS
-1-1079-28013:DEUTSCHLANDFUNK_KOELN
-DEUTSCHLANDRADIO_BERLIN
-133-4-14:DISCOVERY_CHANNEL
-133-6-130:DISCOVERY_HD
-1-1038-30403:DISNEY_CHANNEL
-1-1095-20305:DISNEY_CHANNEL
-133-17-34:DISNEY_CHANNEL
-1-1072-8207:DISNEY_CHANNEL
-133-3-25:DISNEY_CINEMAGIC
-133-8-126:DISNEY_CINEMAGIC_HD
-61441-10002-50709:DISNEY_PLAYHOUSE
-61441-10005-50307:DISNEY_TOON
-61441-10002-50710:DISNEY_TOON_+1
-133-17-28:DISNEY_XD
-1-1100-8705:DISNEY_XD
-1-1046-30506:DISNEY_XD
-1-1079-28012:DKULTUR
-1-1097-28013:DLF
-1-1092-10101:DMAX
-133-5-171:DOMRADIO
-8468-774-16392:DSF
-1-1093-28416:DW_1
-1-1093-28417:DW_4
-1-1026-10020:DW_TV
-61441-10005-50104:E_ENTERTAINMENT
-1-1114-8911:E_ENTERTAINMENT
-133-5-172:EGO_FM
-1-1051-28721:EINS_EXTRA
-1-1051-28722:EINS_FESTIVAL
-1-1201-28396:EINS_FESTIVAL_HD
-1-1073-28203:EINS_MUXX
-1-1051-28723:EINS_PLUS
-133-7-161:ERF_RADIO
-1-1024-9014:ESC1_EGYPT
-1-1115-13109:ESPN _AMERICA
-1-1115-13105:ESPN_AMERICA_S
-61441-10005-50301:ESPN_CLASSIC_SPORT
-1-1070-8004:EURONEWS
-1-1079-28015:EURONEWS
-1-1091-31220:EURONEWS
-1-1090-8537:EUROPE_2
-1-1034-30680:EUROSPORT
-1-1046-30503:EUROSPORT
-1-1076-8151:EUROSPORT
-1-1079-28009:EUROSPORT
-1-1091-31200:EUROSPORT
-1-1279-20321:EUROSPORT
-53-1097-2025:EUROSPORT
-8468-5889-16420:EUROSPORT
-8468-774-16420:EUROSPORT
-1-1102-13205:EUROSPORT_2
-133-9-65:EUROSPORT_2
-1-1099-20367:EUROSPORT_2
-1-1099-20366:EUROSPORT_2
-1-1088-9503:EUROSPORT_2
-133-6-132:EUROSPORT_HD
-1-1098-9106:EUROSPORT_HD
-1-1116-9903:EUROSPORT_HD
-1-1116-9923:EUROSPORT_HD
-1-1056-29953:EUROSPORT_HD
-1-1058-30163:EUROSPORT_HD
-1-1058-30163EXTRA_1
-61441-10004-53409:EXTREME_SPORTS
-1-1095-20311:EXTREME_SPORTS
-1-1088-9508:EXTREME_SPORTS
-1-1094-17029:FASHION_TV
-61441-10005-50101:FASHION_TV
-1-1110-9301:FESTIVAL
-1-1113-12658:FFN_COMEDY
-1-1113-12654:FFN_DIGITAL
-1-1115-13134:FM4
-1-1102-13209:FOX
-1-1008-29801:FOX_KIDS
-1-1099-20316:FOX_KIDS
-133-17-28:FOX_KIDS
-1-1060-30611:FOX_NEWS
-1-1032-30201:FOX_NEWS
-133-1-16:FOX
-1-1022-6906:FRANCE_ 24
-1-1080-8801:FRANCE_2
-1-1080-8802:FRANCE_3
-1-1090-8501:FRANCE_5
-1-1092-10104:FRANKEN_SAT
-1-1057-61980:FREE_X_TV
-1-1073-28209:FRITZ
-1-1093-28457:FRITZ
-133-17-333:FUSSBALL_AUT
-133-2-253:FUSSBALL_AUT
-61441-10002-50706:GAMES_TV
-1-1115-13102:GO_TV
-133-17-518:GOLDSTAR_TV
-133-1-373:GOLF
-61441-10003-50111:GUTE_LAUNE_TV
-1-1095-20308:HALLMARK
-1-1279-20323:HALLMARK
-53-1097-2035:HALLMARK
-1-1113-12662:HARMONY_FM
-1-1011-11140:HD_TEST_ARD_ZDF
-133-17-22:HEIMATKANAL
-1-1101-28108:HESSEN_FERNSEHEN
-1-1110-9302:HISTOIRE
-1-1102-13201:HISTORY
-133-9-68:HISTORY
-61441-10003-53301:HISTORY_CHANNEL
-133-8-128:HISTORY_HD
-1-1113-12660:HITRADIO_FFH
-1-1117-13013:HITRADIO_OE3
-1-1116-12750:HOERZU_DIGITAL
-133-7-71:HOPE_CHANNEL
-133-5-175:HOPE_CHANNEL_RADIO
-1-1093-28419:HR_1
-1-1093-28420:HR_2
-1-1093-28421:HR_3
-1-1093-28422:HR_4
-1-1093-28424:HR_INFO
-1-1093-28425:HR_INFO_PLUS
-1-1101-28124:HR_KLASSIK
-1-1101-28122:HR_SKYLINE
-133-33-40:HSE24
-1-1091-31210:HSE24_EXTRA
-133-33-77:HSE24_TREND
-133-5-772:I_MUSIC
-1-1093-28452:INFORADIO
-1-1113-12651:INSELRADIO
-133-7-514:JML_SHOP
-1-1093-28432:JUMP
-133-17-19:JUNIOR
-1-1113-12616:JUWELO_TV
-1-1113-12601:K_TV
-61441-10002-50705:K_TV
-8468-3074-16394:KABEL_1
-8468-769-16394:KABEL_1
-1-1107-17502:KABEL_1
-1-1082-20004:KABEL_1_AUSTRIA
-1-1107-17506:KABEL_1_CLASSIC
-1-1017-61302:KABEL_1_HD
-1-1082-20003:KABEL_1_SCHWEIZ
-1-1079-28008:KIKA
-53-1109-5055:KINK_FM
-133-9-60:KINOWELT
-1-1102-13206:KINOWELT
-1-1093-28482:KIRAKA
-133-5-173:KLASSIK_RADIO
-1-1022-6902:KTO
-1-1093-28453:KULTURRADIO
-1-1076-8156:LCI
-1-1076-8154:LCP
-1-1076-8173:LCP
-1-1108-12120:LIBERTY_TV
-1-1112-12280:LIBERTY_TV
-1-1110-9307:LIVE_1
-133-17-152:LOVE_SONGS
-1-1074-8355:MATCH_TV
-1-1073-28204:MDR_FERNSEHEN
-8468-5633-100:MDR_FERNSEHEN
-1-1073-28228:MDR_FERNSEHEN_S
-1-1073-28229:MDR_FERNSEHEN_SA
-1-1073-28230:MDR_FERNSEHEN_TH
-1-1073-28208:MDR_FIGARO
-1-1093-28431:MDR_FIGARO
-1-1073-28211:MDR_INFO
-1-1093-28434:MDR_INFO
-1-1093-28435:MDR_KLASSIK
-1-1093-28433:MDR_SPUTNIK
-1-1093-28429:MDR1_SA_ANHALT
-1-1093-28428:MDR1_SACHSEN
-1-1093-28430:MDR1_THUERINGEN
-1-1090-8559:MEDIA_TROPICAL
-133-33-899:MEIN_TV_SHOP
-133-3-515:MGM
-1-1063-20349:MGM
-1-1088-9509:MOTORS_TV
-61441-10003-50102:MOTORS_TV
-133-1-168:MOTORVISION_TV
-61441-10000-53005:MTV
-1-1066-28659:MTV_2
-1-1091-28641:MTV_AUSTRIA
-1-1066-28655:MTV_BASE
-1-1066-28661:MTV_BASE
-1-1066-28665:MTV_BASE
-1-1066-28653:MTV_CENTRAL
-1-1091-28641:MTV_CENTRAL
-1-1279-20322:MTV_CENTRAL
-61441-10002-50703:MTV_DANCE
-1-1066-28652:MTV_F
-1-1078-28673:MTV_GERMANY
-1-1066-28664:MTV_HITS
-1-1066-28654:MTV_HITS
-61441-10002-50704:MTV_HITS
-1-1093-28440:N_JOY
-1-1107-17503:N24
-8468-3074-16398:N24
-8468-769-16398:N24
-61441-10005-50306:NASN
-133-4-12:NAT_GEO_WILD
-1-1088-9506:NAT_GEO_WILD
-61441-10002-50708:NATIONAL_GEOGRAPHIC
-1-1060-30605:NATIONAL_GEOGRAPHIC
-133-4-13:NATIONAL_GEOGRAPHIC
-1-1102-13202NATIONAL_GEOGRAPHIC
-133-8-127:NATIONAL_GEOGRAPHIC_HD
-1-1058-30124NATIONAL_GEOGRAPHIC_HD
-1-1028-30704NATIONAL_GEOGRAPHIC_HD
-1-1093-28444:NDR_1_NIEDERS
-1-1093-28443:NDR_1_RADIO_MV
-1-1093-28442:NDR_1_WELLE_NORD
-1-1093-28437:NDR_2
-1-1093-28441:NDR_90_3
-1-1073-28225:NDR_FERNSEHEN_HH
-1-1073-28224:NDR_FERNSEHEN_MV
-1-1073-28226:NDR_FERNSEHEN_NDS
-1-1073-28227:NDR_FERNSEHEN_SH
-8468-5633-131:NDR_FERNSEHEN_SH
-1-1093-28439:NDR_INFO
-1-1101-28127:NDR_INFO
-1-1093-28445:NDR_INFO_SPEZIAL
-1-1093-28438:NDR_KULTUR
-1-1073-28207:NDR_KULTUR
-53-1105-4011:NED_1
-53-1105-4012:NED_2
-53-1105-4013:NED_3
-53-1109-5004:NET_5
-61441-10000-53006:NICK
-1-1066-28660:NICK
-1-1091-28640:NICKELODEON
-1-1078-28680:NICKELODEON
-1-1066-28658:NICKELODEON
-1-1078-28682:NICKTOONS_S
-1-1093-28449:NORDWEST_RADIO
-1-1090-8536:NRJ
-1-1018-6406:NRJ_HITS
-1-1089-12090:NTV
-1-1115-13135:OE_1_INTERNATIONAL
-1-1117-13021:OESTERREICH_1
-1-1115-13122:OESTERREICH_1
-1-1115-13121:OESTERREICH_1
-1-1117-13033:OESTERREICH_3
-1-1115-13133:OESTERREICH_3
-133-5-174:OLDIESTAR
-1-1093-28406:ON_3_RADIO
-1-1092-10103:ONTV
-1-1117-13001:ORF_1
-1-1007-4911:ORF_1_HD
-1-1117-13002:ORF_2
-1-1117-13014:ORF_2
-1-1117-13005:ORF_2_ BURGENLAND
-1-1115-13125:ORF_2_ BURGENLAND
-1-1007-4912:ORF_2_HD
-1-1117-13011:ORF_2_KAERNTEN
-1-1115-13131:ORF_2_KAERNTEN
-1-1117-13004:ORF_2_NIEDEROESTERREICH
-1-1115-13124:ORF_2_NIEDEROESTERREICH
-1-1117-13006:ORF_2_OBEROESTERREICH
-1-1115-13126:ORF_2_OBEROESTERREICH
-1-1117-13007:ORF_2_SALZBURG
-1-1115-13127:ORF_2_SALZBURG
-1-1117-13010:ORF_2_STEIERMARK
-1-1115-13130:ORF_2_STEIERMARK
-1-1117-13008:ORF_2_TIROL
-1-1115-13128:ORF_2_TIROL
-1-1117-13009:ORF_2_VORARLBERG
-1-1115-13129:ORF_2_VORARLBERG
-1-1117-13003:ORF_2_WIEN
-1-1115-13123:ORF_2_WIEN
-1-1111-7268:OTTO_SHOP
-1-1113-12657:PEPPERMINT_FM
-1-1051-28725:PHOENIX
-8468-2561-3:PHOENIX
-8468-258-13:PHOENIX
-133-17-13:PLANET
-61441-10003-50105:PLANET
-1-1113-12661:PLANET_RADIO
-1-1102-13210:PLAYBOY_TV
-1-1090-8506:PLAYBOY_TV
-1-1060-30603:PLAYBOY_TV
-61441-10002-50707:PLAYBOY_TV
-1-1008-29803:PLAYHOUSE_DISNEY
-1-1114-8907:PLAYHOUSE_DISNEY
-133-17-26:PLAYHOUSE_DISNEY
-1-1107-17501:PRO_SIEBEN
-8468-3074-16403:PRO_SIEBEN
-8468-769-16403:PRO_SIEBEN
-8468-771-16624:PRO_SIEBEN
-1-1082-20002:PRO_SIEBEN_AUSTRIA
-1-1017-61301:PRO_SIEBEN_HD
-1-1082-20001:PRO_SIEBEN_SCHWEIZ
-1-1082-20007:PULS
-133-7-54:Q_TV_SHOP
-1-1108-12100:QVC_GERMANY
-53-1109-5085:RADIO_10_GOLD
-53-1109-5072:RADIO_538
-1-1093-28455:RADIO_BERLIN_88_8
-1-1093-28456:RADIO_EINS
-1-1113-12659:RADIO_GLORIA
-1-1111-7289:RADIO_HOREB
-1-1115-13140:RADIO_MARIA
-1-1113-12650:RADIO_MARIA
-1-1073-28213:RADIO_MULTIKULTI
-1-1113-12655:RADIO_PALOMA
-1-1113-12663:RADIO_REGENBOGEN
-1-1057-61963:RAZE_TV
-1-1073-28206:RBB_BERLIN
-8468-258-12:RBB_BERLIN
-1-1073-28205:RBB_BRANDENBURG
-8468-258-11:RBB_BRANDENBURG
-1-1042-30051:REAL_MADRID_TV
-1-1090-8547:RFM_TV
-1-1113-12614:RHEIN_MAIN_TV
-1-1090-8529:RIRE_ET_CHANSONS
-133-17-155:RNB_HIPHOP
-133-7-160:ROCK_ANTENNE
-133-17-151:ROCK_HYMNEN
-133-9-63:ROMANCE_TV
-1-1090-8553:RSR_COULEUR_3
-1-1112-3982:RTBF_SAT
-1-1089-12020:RTL_2
-1-1090-8538:RTL_2
-8468-2818-16406:RTL_2
-8468-773-16406:RTL_2
-1-1091-28810:RTL_2_AUSTRIA
-53-1097-2004:RTL_4
-53-1097-2005:RTL_5
-53-1097-2006:RTL_7
-53-1097-2035:RTL_8
-1-1094-17035:RTL_9
-1-1089-12085:RTL_AUSTRIA
-1-1091-28800:RTL_AUSTRIA
-133-1-27:RTL_CRIME
-53-1105-4030:RTL_FM
-1-1057-61200:RTL_HD
-1-1089-12006:RTL_FS
-1-1089-12005:RTL_TELEVISION
-1-1089-12004:RTL_TELEVISION
-133-1-29:RTL_PASSION
-53-1097-2051:RTL_RADIO
-1-1102-13207:RTL_LIVING
-1-1089-12030:RTL_LIVING
-1-1089-12080:RTL_SHOP
-1-1108-3994:RTL_TELE_LETZEBURG
-1-1089-12003:RTL_TELEVISION
-1-1090-8528:RTL_TELEVISION
-8468-2818-16405:RTL_TELEVISION
-8468-773-16405:RTL_TELEVISION
-1-1026-10002:RTM_MAROC
-1-1024-9017:RTP_INT
-1-1022-6904:RUSSIA_TODAY
-1-1026-10077:RUSSIA_TODAY
-61441-10002-50702:SAILING_CHANNEL
-1-1107-17500:SAT.1
-8468-3074-16408:SAT.1
-8468-769-16408:SAT.1
-1-1107-17507:SAT.1
-1-1082-20008:SAT.1
-1-1107-17508:SAT.1
-1-1082-20009:SAT.1
-1-1082-20010:SAT.1
-1-1107-17505:SAT.1_COMEDY
-1-1082-20005:SAT.1_AUSTRIA
-1-1017-61300:SAT.1_HD
-1-1082-20006:SAT.1_SCHWEIZ
-53-1109-5005:SBS6
-61441-10002-50106:SCIFI
-1-1115-13111:SERVUS_TV
-1-1007-4913:SERVUS_TV_HD
-8948-5-1:SF_1
-8948-5-2:SF_2
-8948-5-3:SF_INFO
-61441-10005-50305:SILVERLINE
-133-5-776:SIXX
-133-2-9:SKY_ACTION
-133-10-123:SKY_ACTION_HD
-133-4-223:SKY_BUNDESLIGA
-133-2-10:SKY_CINEMA
-133-6-131:SKY_CINEMA_HD
-133-2-11:SKY_CINEMA+1
-133-2-43:SKY_CINEMA+24
-133-3-41:SKY_CINEMAHITS
-133-10-124:SKY_CINEMAHITS_HD
-133-2-8:SKY_COMEDY
-133-2-20:SKY_EMOTION
-133-1-23:SKY_KRIMI
-1-1057-61969:SKY_NEWS_INTL
-1-1111-7290:SKY_NEWS_INTL
-133-3-516:SKY_NOSTALIGIE
-53-1109-5070:SKY_RADIO_NL
-133-4-18:SKY_SELECT
-133-4-221:SKY_SPORT_1
-133-4-222:SKY_SPORT_2
-133-7-53:SKY_SPORT_AUSTRIA
-133-6-129:SKY_SPORT_HD1
-133-10-122:SKY_SPORT_HD2
-133-3-17:SKY_SPORT_INFO
-133-33-32:SONNENKLAR_TV
-133-4-52:SPIEGEL_GESCHICHTE
-61441-10002-53401:SPIEGEL_TV_XXP
-133-33-900:SPORT1
-1-1057-61204:SPORT1_HD_DEMO
-133-9-69:SPORTDIGITAL
-1-1073-28212:SPUTNIK
-1-1101-28129:SR_1
-1-1093-28486:SR_FERNSEHEN
-1-1093-28461:SR1_EUROPAWELLE
-1-1093-28462:SR2_KULTURRADIO
-1-1093-28463:SR3_SAARLANDWELLE
-1-1073-28231:SUEDWEST_FS_RP
-133-7-169:SUNSHINE_LIVE
-1-1089-12040:SUPER_RTL
-8468-2818-16411:SUPER_RTL
-8468-773-16411:SUPER_RTL
-1-1091-28815:SUPER_RTL_AUSTRIA
-1-1089-12041:SUPER_RTL
-1-1093-28465:SWR_1_BW
-1-1093-28466:SWR_1_RP
-1-1093-28467:SWR_2
-1-1093-28468:SWR_3
-1-1093-28469:SWR_4_BW
-1-1093-28470:SWR_4_RP
-1-1093-28472:SWR_CONT_RA
-1-1101-28113:SWR_FERNSEHEN_BW
-1-1073-28231:SWR_FERNSEHEN_RP
-133-17-36:SYFY
-1-1057-61920:TANGO_TV
-1-1092-10142:TEDDY
-133-33-51:TELE_5
-61441-10000-53002:TELE_5
-8468-5889-16413:TELE_5
-53-1109-5015:TMF
-133-1-50:TNT_SERIE
-133-9-61:TNT_FILM_TCM
-1-1100-8710:TRACE_TV
-61441-10003-50103:TRACE_TV
-1-1057-61911:TRW_AM
-8948-5-513:TSI_1
-8948-5-257:TSR_1
-61441-10000-53007:TV_5
-1-1024-9012:TV_5_EUROPE
-1-1112-12240:TV_5_EUROPE
-1-1091-31230:TV_6
-1-1112-12301:TV_6
-1-1024-9018:TV_7
-133-7-772:TV_BERLIN
-1-1032-30222:TV_GALICIA
-61441-10003-53302:TV_GUSTO
-1-1032-30201:TVC_INT
-1-1026-10001:TVE_INT
-1-1115-13101:TW1
-53-1109-5095:VERONICA_RADIO
-1-1066-28656:VH1
-1-1066-28666:VH1
-1-1066-28657:VH1_CLASSIC
-1-1066-28667:VH1_CLASSIC
-61441-10005-50302:VH1_CLASSIC
-1-1090-8544:VIBRATION
-1-1031-20365:VIVA
-1-1078-28676:VIVA
-1-1116-12732:VIVA
-1-1078-28676:VIVA_GERMANY
-1-1108-12120:VIVA_PLUS
-8468-774-16417:VIVA_PLUS
-1-1090-8550:VOLTAGE
-1-1089-12060:VOX
-8468-2818-16418:VOX
-8468-773-16418:VOX
-1-1091-28805:VOX_AUSTRIA
-1-1089-12061:VOX_CH
-1-1057-61201:VOX_HD
-1-1111-28534:WDR
-1-1201-28306:WDR
-1-1111-28536:WDR
-1-1201-28307:WDR
-1-1111-28537:WDR
-1-1201-28308:WDR
-1-1201-28309:WDR
-1-1101-28111:WDR
-1-1201-28310:WDR
-1-1201-28311:WDR
-1-1201-28395:WDR
-1-1111-28535:WDR
-8468-5633-262:WDR
-1-1093-28476:WDR_2
-1-1073-28215:WDR_3
-1-1093-28477:WDR_3
-1-1093-28478:WDR_4
-1-1073-28216:WDR_5
-1-1093-28479:WDR_5
-1-1093-28483:WDR_EVENT
-1-1093-28480:WDR_FUNKHAUS_EUROPA
-61441-10005-50303:WEIN_TV
-61441-10003-50109:WETTER_FERNSEHEN
-1-1112-12320:WISHLINE
-1-1113-12656:WRN_DEUTSCH
-53-1105-4009:X_ZONE
-1-1113-12602:XXP
-53-1105-4020:YAM_FM
-133-7-765:YAVIDO_CLIPS
-53-1109-5050:YORIN_FM
-1-1093-28423:YOU_FM
-1-1079-28006:ZDF
-8468-514-514:ZDF
-8468-514-517:ZDF_DOKU_KIKA
-1-1011-11110:ZDF_HD
-8468-514-515:ZDF_INFO_3SAT
-1-1079-28011:ZDF_INFOKANAL
-1-1079-28014:ZDF_NEO
-1-1079-28016:ZDF_THEATERKANAL
-1-1094-17024:ZIK
diff --git a/graphlcd/channels.alias-20110104.txt b/graphlcd/channels.alias-20110104.txt
deleted file mode 100644
index e0a802b..0000000
--- a/graphlcd/channels.alias-20110104.txt
+++ /dev/null
@@ -1,639 +0,0 @@
-133-5-662:1-2-3.tv
-61441-10000-50110:1-2-3.tv
-133-1-42:13TH_STREET
-61441-10005-50107:13TH_STREET
-53-1109-502313TH_STREET
-1-1093-28475:1LIVE
-1-1093-28481:1LIVE_DIGGI
-1-1024-9030:2M_MAROC
-1-1079-28007:3SAT
-1-1038-30405:40_TV
-1-1107-17504:9LIVE
-1-1094-17020:AB_MOTEURS
-1-1094-12021:AB1
-1-1094-17030:ACTION
-1-1090-8552:ADO_FM
-1-1020-7009:AL_JAZEERA
-1-1020-7012:AL_JAZEERA
-1-1024-9021:AL_JAZEERA
-1-1024-9011:ALGERIE
-1-1090-8549:ALOUETTE
-1-1095-20302:ANIMAL_PLANET
-53-1097-2020:ANIMAL_PLANET
-1-1094-17022:ANIMAUX
-1-1102-13203:ANIMAX
-53-1097-2047:ANIMAX
-1-1032-30207:ANIMAX
-1-1057-61202:ANIXE_HD
-133-5-764:ANIXE_SD
-133-7-170:ANTENNE_BAYERN
-1-1093-28454:ANTENNE_BRANDENBURG
-1-1051-28724:ARTE
-1-1076-8159:ARTE
-1-1076-8172:ARTE
-8468-2561-2:ARTE
-1-1098-9111:ARTE_HD
-1-1110-9304:ARTE_HD
-1-1110-9324:ARTE_HD
-1-1011-11120:ARTE_HD
-1-1057-61203:ASTRA_HD
-1-1117-13012:ATVPLUS
-1-1115-13106:AUSTRIA_9_TV
-1-1102-13212:AUTO_MOTOR_UND_SPORT
-1-1063-20352:AXN
-1-1008-29815:AXN
-61441-10005-50304:AXN
-133-9-62:AXN_ACTION
-1-1093-28404:B5_AKTUELL
-1-1093-28408:B5_PLUS
-1-1101-28107:BAYERISCHES_FERNSEHEN
-1-1101-28110:BAYERISCHES_FERNSEHEN
-8468-5633-34:BAYERISCHES_FERNSEHEN
-1-1093-28400:BAYERN_1
-1-1093-28401:BAYERN_2
-1-1093-28402:BAYERN_3
-1-1093-28403:BAYERN_4_KLASSIK
-1-1093-28405:BAYERN_PLUS
-1-1279-20328:BBC_PRIME
-53-1097-2030:BBC_PRIME
-61441-10004-53406:BBC_PRIME
-1-1026-10050:BBC_WORLD
-1-1094-17027:BBC_WORLD
-1-1112-12340:BBC_WORLD
-61441-10000-53001:BBC_WORLD
-133-17-21:BEATE_UHSE.TV
-1-1092-10155:BEATE_UHSE_SEXY_SAT
-1-1096-8613:BEUR_TV
-1-1108-12122:BIBEL TV
-61441-10004-53403:BIBEL TV
-1-1102-13208:BIOGRAPHY_CHANNEL
-133-9-67:BIOGRAPHY_CHANNEL
-1-1090-8505:BLOOMBERG_TV
-1-1108-12160:BLOOMBERG_TV
-61441-10000-53004:BLOOMBERG_TV
-1-1026-10067:BLOOMBERG_TV_GERMANY
-133-4-513:BLUE_MOVIE
-133-1-345:BLUE_MOVIE_1
-133-1-355:BLUE_MOVIE_2
-133-1-365:BLUE_MOVIE_3
-1-1063-20343:BOOMERANG
-133-9-66:BOOMERANG
-1-1054-30361:BOOMERANG
-1-1068-28527:BOOMERANG
-1-1093-28403:BR_KLASSIK
-1-1093-28407:BR_VERKEHR
-1-1093-28487:BR_ALPHA
-1-1101-28112:BR_ALPHA
-1-1093-28448:BREMEN_EINS
-1-1093-28450:BREMEN_VIER
-53-1109-5025:BVN
-1-1056-29963:CADENA_DIAL
-1-1020-7017:CANAL_CANARIAS
-1-1096-8612:CANAL_CLUB
-1-1038-30400:CANAL+
-1-1008-29817:CANAL+ ...30
-1-1102-13204:CARTOON_NETWORK
-133-9-64:CARTOON_NETWORK
-1-1279-20341:CARTOON_NETWORK
-1-1068-28521:CARTOON_NETWORK
-1-1111-7291:CFN_RFC
-1-1089-12095:CHANNEL_21
-1-1089-12080:CHANNEL_21
-133-7-769:CHANNEL_21
-1-1090-8548:CHERIE_FM
-1-1094-17032:CINE_BOX
-133-17-24:CLASSICA
-1-1026-10030:CNBC_EUROPE
-1-1112-12200:CNBC_EUROPE
-1-1068-28522:CNN_INT
-1-1032-30210:CNN+
-1-1063-20351:COMEDY_CENTRAL
-1-1090-8545:CONTACT_FM
-133-17-156:COUNTRY
-1-1092-10102:DAF_ANLEGER_TV
-1-1093-28471:DAS_DING
-1-1101-28106:DAS_ERSTE
-8468-2561-128:DAS_ERSTE
-8468-258-14:DAS_ERSTE
-1-1011-11100:DAS_ERSTE_HDv2
-133-5-1793:DAS_VIERTE
-1-1092-10141:DELUXE_LOUNGE
-1-1092-10100:DELUXE_MUSIC
-1-1092-10100:DELUXE_MUSIC
-1-1092-10140:DELUXE_RADIO
-1-1092-10140:DELUXE_RADIO
-133-17-150:DEUTSCHE_CHARTS
-1-1079-28013:DEUTSCHLANDFUNK_KOELN
-DEUTSCHLANDRADIO_BERLIN
-133-4-14:DISCOVERY_CHANNEL
-133-6-130:DISCOVERY_HD
-1-1038-30403:DISNEY_CHANNEL
-1-1095-20305:DISNEY_CHANNEL
-133-17-34:DISNEY_CHANNEL
-1-1072-8207:DISNEY_CHANNEL
-133-3-25:DISNEY_CINEMAGIC
-133-13-111:DISNEY_CINEMAGIC_HD
-133-8-126:DISNEY_CINEMAGIC_HD
-61441-10002-50709:DISNEY_PLAYHOUSE
-61441-10005-50307:DISNEY_TOON
-61441-10002-50710:DISNEY_TOON_+1
-133-17-28:DISNEY_XD
-1-1100-8705:DISNEY_XD
-1-1046-30506:DISNEY_XD
-1-1079-28012:DKULTUR
-1-1097-28013:DLF
-1-1092-10101:DMAX
-133-5-171:DOMRADIO
-8468-774-16392:DSF
-1-1093-28416:DW_1
-1-1093-28417:DW_4
-1-1026-10020:DW_TV
-61441-10005-50104:E_ENTERTAINMENT
-1-1114-8911:E_ENTERTAINMENT
-133-5-172:EGO_FM
-1-1051-28721:EINS_EXTRA
-1-1051-28722:EINS_FESTIVAL
-1-1201-28396:EINS_FESTIVAL_HD
-1-1073-28203:EINS_MUXX
-1-1051-28723:EINS_PLUS
-133-7-161:ERF_RADIO
-1-1024-9014:ESC1_EGYPT
-1-1115-13109:ESPN _AMERICA
-133-11-119:ESPN_AMERICA_SPORT
-1-1115-13105:ESPN_AMERICA_SPORT
-61441-10005-50301:ESPN_CLASSIC_SPORT
-1-1070-8004:EURONEWS
-1-1079-28015:EURONEWS
-1-1091-31220:EURONEWS
-1-1090-8537:EUROPE_2
-1-1034-30680:EUROSPORT
-1-1046-30503:EUROSPORT
-1-1076-8151:EUROSPORT
-1-1079-28009:EUROSPORT
-1-1091-31200:EUROSPORT
-1-1279-20321:EUROSPORT
-53-1097-2025:EUROSPORT
-8468-5889-16420:EUROSPORT
-8468-774-16420:EUROSPORT
-1-1102-13205:EUROSPORT_2
-133-9-65:EUROSPORT_2
-1-1099-20367:EUROSPORT_2
-1-1099-20366:EUROSPORT_2
-1-1088-9503:EUROSPORT_2
-133-6-132:EUROSPORT_HD
-1-1098-9106:EUROSPORT_HD
-1-1116-9903:EUROSPORT_HD
-1-1116-9923:EUROSPORT_HD
-1-1056-29953:EUROSPORT_HD
-1-1058-30163:EUROSPORT_HD
-1-1058-30163EXTRA_1
-61441-10004-53409:EXTREME_SPORTS
-1-1095-20311:EXTREME_SPORTS
-1-1088-9508:EXTREME_SPORTS
-1-1094-17029:FASHION_TV
-61441-10005-50101:FASHION_TV
-1-1110-9301:FESTIVAL
-1-1113-12658:FFN_COMEDY
-1-1113-12654:FFN_DIGITAL
-1-1115-13134:FM4
-1-1102-13209:FOX
-1-1008-29801:FOX_KIDS
-1-1099-20316:FOX_KIDS
-133-17-28:FOX_KIDS
-1-1060-30611:FOX_NEWS
-1-1032-30201:FOX_NEWS
-133-1-16:FOX
-1-1022-6906:FRANCE_ 24
-1-1080-8801:FRANCE_2
-1-1080-8802:FRANCE_3
-1-1090-8501:FRANCE_5
-1-1092-10104:FRANKEN_SAT
-1-1057-61980:FREE_X_TV
-1-1073-28209:FRITZ
-1-1093-28457:FRITZ
-133-17-333:FUSSBALL_AUT
-133-2-253:FUSSBALL_AUT
-61441-10002-50706:GAMES_TV
-1-1115-13102:GO_TV
-133-17-518:GOLDSTAR_TV
-133-1-373:GOLF
-61441-10003-50111:GUTE_LAUNE_TV
-1-1095-20308:HALLMARK
-1-1279-20323:HALLMARK
-53-1097-2035:HALLMARK
-1-1113-12662:HARMONY_FM
-1-1011-11140:HD_TEST_ARD_ZDF
-133-17-22:HEIMATKANAL
-1-1101-28108:HESSEN_FERNSEHEN
-1-1110-9302:HISTOIRE
-1-1102-13201:HISTORY
-133-9-68:HISTORY
-61441-10003-53301:HISTORY_CHANNEL
-133-13-113:HISTORY_HD
-133-8-128:HISTORY_HD
-1-1113-12660:HITRADIO_FFH
-1-1117-13013:HITRADIO_OE3
-1-1116-12750:HOERZU_DIGITAL
-133-7-71:HOPE_CHANNEL
-133-5-175:HOPE_CHANNEL_RADIO
-1-1093-28419:HR_1
-1-1093-28420:HR_2
-1-1093-28421:HR_3
-1-1093-28422:HR_4
-1-1093-28424:HR_INFO
-1-1093-28425:HR_INFO_PLUS
-1-1101-28124:HR_KLASSIK
-1-1101-28122:HR_SKYLINE
-133-33-40:HSE24
-1-1091-31210:HSE24_EXTRA
-133-33-77:HSE24_TREND
-133-5-772:I_MUSIC
-1-1093-28452:INFORADIO
-1-1113-12651:INSELRADIO
-133-7-514:JML_SHOP
-1-1093-28432:JUMP
-133-17-19:JUNIOR
-1-1113-12616:JUWELO_TV
-1-1113-12601:K_TV
-61441-10002-50705:K_TV
-8468-3074-16394:KABEL_1
-8468-769-16394:KABEL_1
-1-1107-17502:KABEL_1
-1-1082-20004:KABEL_1_AUSTRIA
-1-1107-17506:KABEL_1_CLASSIC
-1-1017-61302:KABEL_1_HD
-1-1082-20003:KABEL_1_SCHWEIZ
-1-1079-28008:KIKA
-53-1109-5055:KINK_FM
-133-9-60:KINOWELT
-1-1102-13206:KINOWELT
-1-1093-28482:KIRAKA
-133-5-173:KLASSIK_RADIO
-1-1022-6902:KTO
-1-1093-28453:KULTURRADIO
-1-1076-8156:LCI
-1-1076-8154:LCP
-1-1076-8173:LCP
-1-1108-12120:LIBERTY_TV
-1-1112-12280:LIBERTY_TV
-1-1110-9307:LIVE_1
-133-17-152:LOVE_SONGS
-1-1074-8355:MATCH_TV
-1-1073-28204:MDR_FERNSEHEN
-8468-5633-100:MDR_FERNSEHEN
-1-1073-28228:MDR_FERNSEHEN_S
-1-1073-28229:MDR_FERNSEHEN_SA
-1-1073-28230:MDR_FERNSEHEN_TH
-1-1073-28208:MDR_FIGARO
-1-1093-28431:MDR_FIGARO
-1-1073-28211:MDR_INFO
-1-1093-28434:MDR_INFO
-1-1093-28435:MDR_KLASSIK
-1-1093-28433:MDR_SPUTNIK
-1-1093-28429:MDR1_SA_ANHALT
-1-1093-28428:MDR1_SACHSEN
-1-1093-28430:MDR1_THUERINGEN
-1-1090-8559:MEDIA_TROPICAL
-133-33-899:MEIN_TV_SHOP
-133-3-515:MGM
-1-1063-20349:MGM
-1-1088-9509:MOTORS_TV
-61441-10003-50102:MOTORS_TV
-133-1-168:MOTORVISION_TV
-61441-10000-53005:MTV
-1-1066-28659:MTV_2
-1-1091-28641:MTV_AUSTRIA
-1-1066-28655:MTV_BASE
-1-1066-28661:MTV_BASE
-1-1066-28665:MTV_BASE
-1-1066-28653:MTV_CENTRAL
-1-1091-28641:MTV_CENTRAL
-1-1279-20322:MTV_CENTRAL
-61441-10002-50703:MTV_DANCE
-1-1066-28652:MTV_F
-1-1078-28673:MTV_GERMANY
-1-1066-28664:MTV_HITS
-1-1066-28654:MTV_HITS
-61441-10002-50704:MTV_HITS
-1-1093-28440:N_JOY
-1-1107-17503:N24
-8468-3074-16398:N24
-8468-769-16398:N24
-61441-10005-50306:NASN
-133-4-12:NAT_GEO_WILD
-1-1088-9506:NAT_GEO_WILD
-61441-10002-50708:NATIONAL_GEOGRAPHIC
-1-1060-30605:NATIONAL_GEOGRAPHIC
-133-4-13:NATIONAL_GEOGRAPHIC
-1-1102-13202NATIONAL_GEOGRAPHIC
-133-13-112:NATIONAL_GEOGRAPHIC_HD
-133-8-127:NATIONAL_GEOGRAPHIC_HD
-1-1058-30124NATIONAL_GEOGRAPHIC_HD
-1-1028-30704NATIONAL_GEOGRAPHIC_HD
-1-1093-28444:NDR_1_NIEDERS
-1-1093-28443:NDR_1_RADIO_MV
-1-1093-28442:NDR_1_WELLE_NORD
-1-1093-28437:NDR_2
-1-1093-28441:NDR_90_3
-1-1073-28225:NDR_FERNSEHEN_HH
-1-1073-28224:NDR_FERNSEHEN_MV
-1-1073-28226:NDR_FERNSEHEN_NDS
-1-1073-28227:NDR_FERNSEHEN_SH
-8468-5633-131:NDR_FERNSEHEN_SH
-1-1093-28439:NDR_INFO
-1-1101-28127:NDR_INFO
-1-1093-28445:NDR_INFO_SPEZIAL
-1-1093-28438:NDR_KULTUR
-1-1073-28207:NDR_KULTUR
-53-1105-4011:NED_1
-53-1105-4012:NED_2
-53-1105-4013:NED_3
-53-1109-5004:NET_5
-61441-10000-53006:NICK
-1-1066-28660:NICK
-1-1091-28640:NICKELODEON
-1-1078-28680:NICKELODEON
-1-1066-28658:NICKELODEON
-1-1078-28682:NICKTOONS_S
-1-1093-28449:NORDWEST_RADIO
-1-1090-8536:NRJ
-1-1018-6406:NRJ_HITS
-1-1089-12090:NTV
-1-1115-13135:OE_1_INTERNATIONAL
-1-1117-13021:OESTERREICH_1
-1-1115-13122:OESTERREICH_1
-1-1115-13121:OESTERREICH_1
-1-1117-13033:OESTERREICH_3
-1-1115-13133:OESTERREICH_3
-133-5-174:OLDIESTAR
-1-1093-28406:ON_3_RADIO
-1-1092-10103:ONTV
-1-1117-13001:ORF_1
-1-1007-4911:ORF_1_HD
-1-1117-13002:ORF_2
-1-1117-13014:ORF_2
-1-1117-13005:ORF_2_ BURGENLAND
-1-1115-13125:ORF_2_ BURGENLAND
-1-1007-4912:ORF_2_HD
-1-1117-13011:ORF_2_KAERNTEN
-1-1115-13131:ORF_2_KAERNTEN
-1-1117-13004:ORF_2_NIEDEROESTERREICH
-1-1115-13124:ORF_2_NIEDEROESTERREICH
-1-1117-13006:ORF_2_OBEROESTERREICH
-1-1115-13126:ORF_2_OBEROESTERREICH
-1-1117-13007:ORF_2_SALZBURG
-1-1115-13127:ORF_2_SALZBURG
-1-1117-13010:ORF_2_STEIERMARK
-1-1115-13130:ORF_2_STEIERMARK
-1-1117-13008:ORF_2_TIROL
-1-1115-13128:ORF_2_TIROL
-1-1117-13009:ORF_2_VORARLBERG
-1-1115-13129:ORF_2_VORARLBERG
-1-1117-13003:ORF_2_WIEN
-1-1115-13123:ORF_2_WIEN
-1-1111-7268:OTTO_SHOP
-1-1113-12657:PEPPERMINT_FM
-1-1051-28725:PHOENIX
-8468-2561-3:PHOENIX
-8468-258-13:PHOENIX
-133-17-13:PLANET
-61441-10003-50105:PLANET
-1-1113-12661:PLANET_RADIO
-1-1102-13210:PLAYBOY_TV
-1-1090-8506:PLAYBOY_TV
-1-1060-30603:PLAYBOY_TV
-61441-10002-50707:PLAYBOY_TV
-1-1008-29803:PLAYHOUSE_DISNEY
-1-1114-8907:PLAYHOUSE_DISNEY
-133-17-26:PLAYHOUSE_DISNEY
-1-1107-17501:PRO_SIEBEN
-8468-3074-16403:PRO_SIEBEN
-8468-769-16403:PRO_SIEBEN
-8468-771-16624:PRO_SIEBEN
-1-1082-20002:PRO_SIEBEN_AUSTRIA
-1-1017-61301:PRO_SIEBEN_HD
-1-1082-20001:PRO_SIEBEN_SCHWEIZ
-1-1082-20007:PULS
-133-7-54:Q_TV_SHOP
-1-1108-12100:QVC_GERMANY
-53-1109-5085:RADIO_10_GOLD
-53-1109-5072:RADIO_538
-1-1093-28455:RADIO_BERLIN_88_8
-1-1093-28456:RADIO_EINS
-1-1113-12659:RADIO_GLORIA
-1-1111-7289:RADIO_HOREB
-1-1115-13140:RADIO_MARIA
-1-1113-12650:RADIO_MARIA
-1-1073-28213:RADIO_MULTIKULTI
-1-1113-12655:RADIO_PALOMA
-1-1113-12663:RADIO_REGENBOGEN
-1-1057-61963:RAZE_TV
-1-1073-28206:RBB_BERLIN
-8468-258-12:RBB_BERLIN
-1-1073-28205:RBB_BRANDENBURG
-8468-258-11:RBB_BRANDENBURG
-1-1042-30051:REAL_MADRID_TV
-1-1090-8547:RFM_TV
-1-1113-12614:RHEIN_MAIN_TV
-1-1090-8529:RIRE_ET_CHANSONS
-133-17-155:RNB_HIPHOP
-133-7-160:ROCK_ANTENNE
-133-17-151:ROCK_HYMNEN
-133-9-63:ROMANCE_TV
-1-1090-8553:RSR_COULEUR_3
-1-1112-3982:RTBF_SAT
-1-1089-12020:RTL_2
-1-1090-8538:RTL_2
-8468-2818-16406:RTL_2
-8468-773-16406:RTL_2
-1-1091-28810:RTL_2_AUSTRIA
-53-1097-2004:RTL_4
-53-1097-2005:RTL_5
-53-1097-2006:RTL_7
-53-1097-2035:RTL_8
-1-1094-17035:RTL_9
-1-1089-12085:RTL_AUSTRIA
-1-1091-28800:RTL_AUSTRIA
-133-1-27:RTL_CRIME
-53-1105-4030:RTL_FM
-1-1057-61200:RTL_HD
-1-1089-12006:RTL_FS
-1-1089-12005:RTL_TELEVISION
-1-1089-12004:RTL_TELEVISION
-133-1-29:RTL_PASSION
-53-1097-2051:RTL_RADIO
-1-1102-13207:RTL_LIVING
-1-1089-12030:RTL_LIVING
-1-1089-12080:RTL_SHOP
-1-1108-3994:RTL_TELE_LETZEBURG
-1-1089-12003:RTL_TELEVISION
-1-1090-8528:RTL_TELEVISION
-8468-2818-16405:RTL_TELEVISION
-8468-773-16405:RTL_TELEVISION
-1-1026-10002:RTM_MAROC
-1-1024-9017:RTP_INT
-1-1022-6904:RUSSIA_TODAY
-1-1026-10077:RUSSIA_TODAY
-61441-10002-50702:SAILING_CHANNEL
-1-1107-17500:SAT.1
-8468-3074-16408:SAT.1
-8468-769-16408:SAT.1
-1-1107-17507:SAT.1
-1-1082-20008:SAT.1
-1-1107-17508:SAT.1
-1-1082-20009:SAT.1
-1-1082-20010:SAT.1
-1-1107-17505:SAT.1_COMEDY
-1-1082-20005:SAT.1_AUSTRIA
-1-1017-61300:SAT.1_HD
-1-1082-20006:SAT.1_SCHWEIZ
-53-1109-5005:SBS6
-61441-10002-50106:SCIFI
-1-1115-13111:SERVUS_TV
-1-1007-4913:SERVUS_TV_HD
-1-1007-4914:SERVUS_TV_HD
-8948-5-1:SF_1
-8948-5-2:SF_2
-8948-5-3:SF_INFO
-61441-10005-50305:SILVERLINE
-133-5-776:SIXX
-133-2-9:SKY_ACTION
-133-12-106:SKY_ACTION_HD
-133-10-123:SKY_ACTION_HD
-133-4-223:SKY_BUNDESLIGA
-133-2-10:SKY_CINEMA
-133-6-131:SKY_CINEMA_HD
-133-2-11:SKY_CINEMA+1
-133-2-43:SKY_CINEMA+24
-133-3-41:SKY_CINEMAHITS
-133-12-107:SKY_CINEMAHITS_HD
-133-10-124:SKY_CINEMAHITS_HD
-133-2-8:SKY_COMEDY
-133-2-20:SKY_EMOTION
-133-1-23:SKY_KRIMI
-1-1057-61969:SKY_NEWS_INTL
-1-1111-7290:SKY_NEWS_INTL
-133-3-516:SKY_NOSTALIGIE
-53-1109-5070:SKY_RADIO_NL
-133-4-18:SKY_SELECT
-133-4-221:SKY_SPORT_1
-133-4-222:SKY_SPORT_2
-133-7-53:SKY_SPORT_AUSTRIA
-133-6-129:SKY_SPORT_HD1
-133-13-114:SKY_SPORT_HD2
-133-10-122:SKY_SPORT_HD2
-133-3-17:SKY_SPORT_INFO
-133-33-32:SONNENKLAR_TV
-133-4-52:SPIEGEL_GESCHICHTE
-61441-10002-53401:SPIEGEL_TV_XXP
-133-33-900:SPORT1
-1-1057-61204:SPORT1_HD
-133-9-69:SPORTDIGITAL
-1-1073-28212:SPUTNIK
-1-1101-28129:SR_1
-1-1093-28486:SR_FERNSEHEN
-1-1093-28461:SR1_EUROPAWELLE
-1-1093-28462:SR2_KULTURRADIO
-1-1093-28463:SR3_SAARLANDWELLE
-1-1073-28231:SUEDWEST_FS_RP
-133-7-169:SUNSHINE_LIVE
-1-1089-12040:SUPER_RTL
-8468-2818-16411:SUPER_RTL
-8468-773-16411:SUPER_RTL
-1-1091-28815:SUPER_RTL_AUSTRIA
-1-1089-12041:SUPER_RTL
-1-1093-28465:SWR_1_BW
-1-1093-28466:SWR_1_RP
-1-1093-28467:SWR_2
-1-1093-28468:SWR_3
-1-1093-28469:SWR_4_BW
-1-1093-28470:SWR_4_RP
-1-1093-28472:SWR_CONT_RA
-1-1101-28113:SWR_FERNSEHEN_BW
-1-1073-28231:SWR_FERNSEHEN_RP
-133-17-36:SYFY
-1-1057-61920:TANGO_TV
-1-1092-10142:TEDDY
-133-33-51:TELE_5
-61441-10000-53002:TELE_5
-8468-5889-16413:TELE_5
-53-1109-5015:TMF
-133-1-50:TNT_SERIE
-133-9-61:TNT_FILM_TCM
-1-1100-8710:TRACE_TV
-61441-10003-50103:TRACE_TV
-1-1057-61911:TRW_AM
-8948-5-513:TSI_1
-8948-5-257:TSR_1
-61441-10000-53007:TV_5
-1-1024-9012:TV_5_EUROPE
-1-1112-12240:TV_5_EUROPE
-1-1091-31230:TV_6
-1-1112-12301:TV_6
-1-1024-9018:TV_7
-133-7-772:TV_BERLIN
-1-1032-30222:TV_GALICIA
-61441-10003-53302:TV_GUSTO
-1-1032-30201:TVC_INT
-1-1026-10001:TVE_INT
-1-1115-13101:TW1
-53-1109-5095:VERONICA_RADIO
-1-1066-28656:VH1
-1-1066-28666:VH1
-1-1066-28657:VH1_CLASSIC
-1-1066-28667:VH1_CLASSIC
-61441-10005-50302:VH1_CLASSIC
-1-1090-8544:VIBRATION
-1-1031-20365:VIVA
-1-1078-28676:VIVA
-1-1116-12732:VIVA
-1-1078-28676:VIVA_GERMANY
-1-1108-12120:VIVA_PLUS
-8468-774-16417:VIVA_PLUS
-1-1090-8550:VOLTAGE
-1-1089-12060:VOX
-8468-2818-16418:VOX
-8468-773-16418:VOX
-1-1091-28805:VOX_AUSTRIA
-1-1089-12061:VOX_CH
-1-1057-61201:VOX_HD
-1-1111-28534:WDR
-1-1201-28306:WDR
-1-1111-28536:WDR
-1-1201-28307:WDR
-1-1111-28537:WDR
-1-1201-28308:WDR
-1-1201-28309:WDR
-1-1101-28111:WDR
-1-1201-28310:WDR
-1-1201-28311:WDR
-1-1201-28395:WDR
-1-1111-28535:WDR
-8468-5633-262:WDR
-1-1093-28476:WDR_2
-1-1073-28215:WDR_3
-1-1093-28477:WDR_3
-1-1093-28478:WDR_4
-1-1073-28216:WDR_5
-1-1093-28479:WDR_5
-1-1093-28483:WDR_EVENT
-1-1093-28480:WDR_FUNKHAUS_EUROPA
-61441-10005-50303:WEIN_TV
-61441-10003-50109:WETTER_FERNSEHEN
-1-1112-12320:WISHLINE
-1-1113-12656:WRN_DEUTSCH
-53-1105-4009:X_ZONE
-1-1113-12602:XXP
-53-1105-4020:YAM_FM
-133-7-765:YAVIDO_CLIPS
-53-1109-5050:YORIN_FM
-1-1093-28423:YOU_FM
-1-1079-28006:ZDF
-8468-514-514:ZDF
-8468-514-517:ZDF_DOKU_KIKA
-1-1011-11110:ZDF_HD
-8468-514-515:ZDF_INFO_3SAT
-1-1079-28011:ZDF_INFOKANAL
-1-1079-28014:ZDF_NEO
-1-1079-28016:ZDF_THEATERKANAL
-1-1094-17024:ZIK
diff --git a/graphlcd/fonts.conf b/graphlcd/fonts.conf
deleted file mode 120000
index 0df1c43..0000000
--- a/graphlcd/fonts.conf
+++ /dev/null
@@ -1 +0,0 @@
-fonts.conf.large \ No newline at end of file
diff --git a/graphlcd/fonts.conf.large b/graphlcd/fonts.conf.large
deleted file mode 100644
index e976638..0000000
--- a/graphlcd/fonts.conf.large
+++ /dev/null
@@ -1,4 +0,0 @@
-Large Font = fnt:verdana-018.fnt
-Normal Font = fnt:verdanab-013.fnt
-Small Font = fnt:verdanab-009.fnt
-Symbol Font = fnt:sym11.fnt
diff --git a/graphlcd/fonts.conf.medium b/graphlcd/fonts.conf.medium
deleted file mode 100644
index 3ffe9c8..0000000
--- a/graphlcd/fonts.conf.medium
+++ /dev/null
@@ -1,4 +0,0 @@
-Large Font = fnt:f12bn.fnt
-Normal Font = fnt:f8n.fnt
-Small Font = fnt:f5n.fnt
-Symbol Font = fnt:sym7.fnt
diff --git a/graphlcd/fonts.conf.small b/graphlcd/fonts.conf.small
deleted file mode 100644
index 3ffe9c8..0000000
--- a/graphlcd/fonts.conf.small
+++ /dev/null
@@ -1,4 +0,0 @@
-Large Font = fnt:f12bn.fnt
-Normal Font = fnt:f8n.fnt
-Small Font = fnt:f5n.fnt
-Symbol Font = fnt:sym7.fnt
diff --git a/graphlcd/fonts.conf.tiny b/graphlcd/fonts.conf.tiny
deleted file mode 100644
index e289421..0000000
--- a/graphlcd/fonts.conf.tiny
+++ /dev/null
@@ -1,4 +0,0 @@
-Large Font = fnt:f8b.fnt
-Normal Font = fnt:f8n.fnt
-Small Font = fnt:f5n.fnt
-Symbol Font = fnt:sym7.fnt
diff --git a/graphlcd/fonts.conf.ttf b/graphlcd/fonts.conf.ttf
deleted file mode 100644
index 8441388..0000000
--- a/graphlcd/fonts.conf.ttf
+++ /dev/null
@@ -1,4 +0,0 @@
-Large Font = ft2:Vera.ttf:18
-Normal Font = ft2:VeraBd.ttf:13
-Small Font = ft2:VeraBd.ttf:9
-Symbol Font = fnt:sym11.fnt
diff --git a/graphlcd/fonts/DejaVuSans-Bold.ttf b/graphlcd/fonts/DejaVuSans-Bold.ttf
new file mode 100644
index 0000000..55fc14e
--- /dev/null
+++ b/graphlcd/fonts/DejaVuSans-Bold.ttf
Binary files differ
diff --git a/graphlcd/fonts/DejaVuSansCondensed.ttf b/graphlcd/fonts/DejaVuSansCondensed.ttf
new file mode 100644
index 0000000..83d6e6e
--- /dev/null
+++ b/graphlcd/fonts/DejaVuSansCondensed.ttf
Binary files differ
diff --git a/graphlcd/fonts/f12b.fnt b/graphlcd/fonts/f12b.fnt
index ca2776d..c5379ff 100644
--- a/graphlcd/fonts/f12b.fnt
+++ b/graphlcd/fonts/f12b.fnt
Binary files differ
diff --git a/graphlcd/fonts/f12bn.fnt b/graphlcd/fonts/f12bn.fnt
index bf7f41e..55899a9 100644
--- a/graphlcd/fonts/f12bn.fnt
+++ b/graphlcd/fonts/f12bn.fnt
Binary files differ
diff --git a/graphlcd/fonts/f17b.fnt b/graphlcd/fonts/f17b.fnt
index a025765..a6c0e78 100644
--- a/graphlcd/fonts/f17b.fnt
+++ b/graphlcd/fonts/f17b.fnt
Binary files differ
diff --git a/graphlcd/fonts/f5n.fnt b/graphlcd/fonts/f5n.fnt
index 9e8814b..cc151e5 100644
--- a/graphlcd/fonts/f5n.fnt
+++ b/graphlcd/fonts/f5n.fnt
Binary files differ
diff --git a/graphlcd/fonts/f8b.fnt b/graphlcd/fonts/f8b.fnt
index ea6cc08..a9c882b 100644
--- a/graphlcd/fonts/f8b.fnt
+++ b/graphlcd/fonts/f8b.fnt
Binary files differ
diff --git a/graphlcd/fonts/f8n.fnt b/graphlcd/fonts/f8n.fnt
index fdd0362..8663403 100644
--- a/graphlcd/fonts/f8n.fnt
+++ b/graphlcd/fonts/f8n.fnt
Binary files differ
diff --git a/graphlcd/fonts/verdana-012.fnt b/graphlcd/fonts/verdana-012.fnt
new file mode 100644
index 0000000..538d9f2
--- /dev/null
+++ b/graphlcd/fonts/verdana-012.fnt
Binary files differ
diff --git a/graphlcd/fonts/verdana-014.fnt b/graphlcd/fonts/verdana-014.fnt
new file mode 100644
index 0000000..2603797
--- /dev/null
+++ b/graphlcd/fonts/verdana-014.fnt
Binary files differ
diff --git a/graphlcd/fonts/verdana-015.fnt b/graphlcd/fonts/verdana-015.fnt
new file mode 100644
index 0000000..bf501f5
--- /dev/null
+++ b/graphlcd/fonts/verdana-015.fnt
Binary files differ
diff --git a/graphlcd/fonts/verdana-022.fnt b/graphlcd/fonts/verdana-022.fnt
new file mode 100644
index 0000000..fd62316
--- /dev/null
+++ b/graphlcd/fonts/verdana-022.fnt
Binary files differ
diff --git a/graphlcd/logos/1-2-3 TV_l.glcd b/graphlcd/logos/channels/1-2-3 TV_l.glcd
index ddb538f..ddb538f 100644
--- a/graphlcd/logos/1-2-3 TV_l.glcd
+++ b/graphlcd/logos/channels/1-2-3 TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/1-2-3.tv_l.glcd b/graphlcd/logos/channels/1-2-3.tv_l.glcd
index ddb538f..ddb538f 100644
--- a/graphlcd/logos/1-2-3.tv_l.glcd
+++ b/graphlcd/logos/channels/1-2-3.tv_l.glcd
Binary files differ
diff --git a/graphlcd/logos/1-2-3.tv_m.glcd b/graphlcd/logos/channels/1-2-3.tv_m.glcd
index 8029f30..8029f30 100644
--- a/graphlcd/logos/1-2-3.tv_m.glcd
+++ b/graphlcd/logos/channels/1-2-3.tv_m.glcd
Binary files differ
diff --git a/graphlcd/logos/13TH_STREET_l.glcd b/graphlcd/logos/channels/13TH_STREET_l.glcd
index b98c792..b98c792 100644
--- a/graphlcd/logos/13TH_STREET_l.glcd
+++ b/graphlcd/logos/channels/13TH_STREET_l.glcd
Binary files differ
diff --git a/graphlcd/logos/13TH_STREET_m.glcd b/graphlcd/logos/channels/13TH_STREET_m.glcd
index 99967b7..99967b7 100644
--- a/graphlcd/logos/13TH_STREET_m.glcd
+++ b/graphlcd/logos/channels/13TH_STREET_m.glcd
Binary files differ
diff --git a/graphlcd/logos/13TH_STREETv2_l.glcd b/graphlcd/logos/channels/13TH_STREETv2_l.glcd
index 6c1186e..6c1186e 100644
--- a/graphlcd/logos/13TH_STREETv2_l.glcd
+++ b/graphlcd/logos/channels/13TH_STREETv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/1LIVE_DIGGI_l.glcd b/graphlcd/logos/channels/1LIVE_DIGGI_l.glcd
index dd6dacd..dd6dacd 100644
--- a/graphlcd/logos/1LIVE_DIGGI_l.glcd
+++ b/graphlcd/logos/channels/1LIVE_DIGGI_l.glcd
Binary files differ
diff --git a/graphlcd/logos/1LIVE_DIGGI_m.glcd b/graphlcd/logos/channels/1LIVE_DIGGI_m.glcd
index 82d7a0d..82d7a0d 100644
--- a/graphlcd/logos/1LIVE_DIGGI_m.glcd
+++ b/graphlcd/logos/channels/1LIVE_DIGGI_m.glcd
Binary files differ
diff --git a/graphlcd/logos/1LIVE_DIGGIv2_l.glcd b/graphlcd/logos/channels/1LIVE_DIGGIv2_l.glcd
index 12d28f7..12d28f7 100644
--- a/graphlcd/logos/1LIVE_DIGGIv2_l.glcd
+++ b/graphlcd/logos/channels/1LIVE_DIGGIv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/1LIVE_l.glcd b/graphlcd/logos/channels/1LIVE_l.glcd
index 984519a..984519a 100644
--- a/graphlcd/logos/1LIVE_l.glcd
+++ b/graphlcd/logos/channels/1LIVE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/1LIVE_m.glcd b/graphlcd/logos/channels/1LIVE_m.glcd
index bbf40f2..bbf40f2 100644
--- a/graphlcd/logos/1LIVE_m.glcd
+++ b/graphlcd/logos/channels/1LIVE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/2M_MAROC_m.glcd b/graphlcd/logos/channels/2M_MAROC_m.glcd
index 07b58c7..07b58c7 100644
--- a/graphlcd/logos/2M_MAROC_m.glcd
+++ b/graphlcd/logos/channels/2M_MAROC_m.glcd
Binary files differ
diff --git a/graphlcd/logos/3SAT_l.glcd b/graphlcd/logos/channels/3SAT_l.glcd
index 4a94a40..4a94a40 100644
--- a/graphlcd/logos/3SAT_l.glcd
+++ b/graphlcd/logos/channels/3SAT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/3SAT_m.glcd b/graphlcd/logos/channels/3SAT_m.glcd
index 0e36114..0e36114 100644
--- a/graphlcd/logos/3SAT_m.glcd
+++ b/graphlcd/logos/channels/3SAT_m.glcd
Binary files differ
diff --git a/graphlcd/logos/40_TV_m.glcd b/graphlcd/logos/channels/40_TV_m.glcd
index d5b2b32..d5b2b32 100644
--- a/graphlcd/logos/40_TV_m.glcd
+++ b/graphlcd/logos/channels/40_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/9LIVE_l.glcd b/graphlcd/logos/channels/9LIVE_l.glcd
index edb49e3..edb49e3 100644
--- a/graphlcd/logos/9LIVE_l.glcd
+++ b/graphlcd/logos/channels/9LIVE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/9LIVE_m.glcd b/graphlcd/logos/channels/9LIVE_m.glcd
index 8aad814..8aad814 100644
--- a/graphlcd/logos/9LIVE_m.glcd
+++ b/graphlcd/logos/channels/9LIVE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/AB1_l.glcd b/graphlcd/logos/channels/AB1_l.glcd
index 5512b78..5512b78 100644
--- a/graphlcd/logos/AB1_l.glcd
+++ b/graphlcd/logos/channels/AB1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/AB1_m.glcd b/graphlcd/logos/channels/AB1_m.glcd
index 8dbea74..8dbea74 100644
--- a/graphlcd/logos/AB1_m.glcd
+++ b/graphlcd/logos/channels/AB1_m.glcd
Binary files differ
diff --git a/graphlcd/logos/AB_MOTEURS_l.glcd b/graphlcd/logos/channels/AB_MOTEURS_l.glcd
index 30cd306..30cd306 100644
--- a/graphlcd/logos/AB_MOTEURS_l.glcd
+++ b/graphlcd/logos/channels/AB_MOTEURS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/AB_MOTEURS_m.glcd b/graphlcd/logos/channels/AB_MOTEURS_m.glcd
index 295a143..295a143 100644
--- a/graphlcd/logos/AB_MOTEURS_m.glcd
+++ b/graphlcd/logos/channels/AB_MOTEURS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ACTION_m.glcd b/graphlcd/logos/channels/ACTION_m.glcd
index 202f153..202f153 100644
--- a/graphlcd/logos/ACTION_m.glcd
+++ b/graphlcd/logos/channels/ACTION_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ADO FM_l.glcd b/graphlcd/logos/channels/ADO FM_l.glcd
index de4b32c..de4b32c 100644
--- a/graphlcd/logos/ADO FM_l.glcd
+++ b/graphlcd/logos/channels/ADO FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ADO FM_m.glcd b/graphlcd/logos/channels/ADO FM_m.glcd
index 8c0b06c..8c0b06c 100644
--- a/graphlcd/logos/ADO FM_m.glcd
+++ b/graphlcd/logos/channels/ADO FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ADO_FM_l.glcd b/graphlcd/logos/channels/ADO_FM_l.glcd
index de4b32c..de4b32c 100644
--- a/graphlcd/logos/ADO_FM_l.glcd
+++ b/graphlcd/logos/channels/ADO_FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ADO_FM_m.glcd b/graphlcd/logos/channels/ADO_FM_m.glcd
index 8c0b06c..8c0b06c 100644
--- a/graphlcd/logos/ADO_FM_m.glcd
+++ b/graphlcd/logos/channels/ADO_FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ALGERIE_l.glcd b/graphlcd/logos/channels/ALGERIE_l.glcd
index 941578e..941578e 100644
--- a/graphlcd/logos/ALGERIE_l.glcd
+++ b/graphlcd/logos/channels/ALGERIE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ALGERIE_m.glcd b/graphlcd/logos/channels/ALGERIE_m.glcd
index 387c98f..387c98f 100644
--- a/graphlcd/logos/ALGERIE_m.glcd
+++ b/graphlcd/logos/channels/ALGERIE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ALOUETTE_l.glcd b/graphlcd/logos/channels/ALOUETTE_l.glcd
index 03f5cc4..03f5cc4 100644
--- a/graphlcd/logos/ALOUETTE_l.glcd
+++ b/graphlcd/logos/channels/ALOUETTE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ALOUETTE_m.glcd b/graphlcd/logos/channels/ALOUETTE_m.glcd
index e1b8c38..e1b8c38 100644
--- a/graphlcd/logos/ALOUETTE_m.glcd
+++ b/graphlcd/logos/channels/ALOUETTE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/AL_JAZEERA_l.glcd b/graphlcd/logos/channels/AL_JAZEERA_l.glcd
index 76ba7c8..76ba7c8 100644
--- a/graphlcd/logos/AL_JAZEERA_l.glcd
+++ b/graphlcd/logos/channels/AL_JAZEERA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/AL_JAZEERA_m.glcd b/graphlcd/logos/channels/AL_JAZEERA_m.glcd
index 54132b6..54132b6 100644
--- a/graphlcd/logos/AL_JAZEERA_m.glcd
+++ b/graphlcd/logos/channels/AL_JAZEERA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIMAL_PLANET_l.glcd b/graphlcd/logos/channels/ANIMAL_PLANET_l.glcd
index bf7bf4b..bf7bf4b 100644
--- a/graphlcd/logos/ANIMAL_PLANET_l.glcd
+++ b/graphlcd/logos/channels/ANIMAL_PLANET_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIMAL_PLANET_m.glcd b/graphlcd/logos/channels/ANIMAL_PLANET_m.glcd
index 7c5cf8f..7c5cf8f 100644
--- a/graphlcd/logos/ANIMAL_PLANET_m.glcd
+++ b/graphlcd/logos/channels/ANIMAL_PLANET_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIMAUX_l.glcd b/graphlcd/logos/channels/ANIMAUX_l.glcd
index da5b6a5..da5b6a5 100644
--- a/graphlcd/logos/ANIMAUX_l.glcd
+++ b/graphlcd/logos/channels/ANIMAUX_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIMAUX_m.glcd b/graphlcd/logos/channels/ANIMAUX_m.glcd
index 4ca8553..4ca8553 100644
--- a/graphlcd/logos/ANIMAUX_m.glcd
+++ b/graphlcd/logos/channels/ANIMAUX_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIXE_HD_l.glcd b/graphlcd/logos/channels/ANIXE_HD_l.glcd
index 3621a70..3621a70 100644
--- a/graphlcd/logos/ANIXE_HD_l.glcd
+++ b/graphlcd/logos/channels/ANIXE_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIXE_HD_m.glcd b/graphlcd/logos/channels/ANIXE_HD_m.glcd
index 771147e..771147e 100644
--- a/graphlcd/logos/ANIXE_HD_m.glcd
+++ b/graphlcd/logos/channels/ANIXE_HD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIXE_HDv2_l.glcd b/graphlcd/logos/channels/ANIXE_HDv2_l.glcd
index 3a2fc8d..3a2fc8d 100644
--- a/graphlcd/logos/ANIXE_HDv2_l.glcd
+++ b/graphlcd/logos/channels/ANIXE_HDv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIXE_SD_l.glcd b/graphlcd/logos/channels/ANIXE_SD_l.glcd
index 30505c5..30505c5 100644
--- a/graphlcd/logos/ANIXE_SD_l.glcd
+++ b/graphlcd/logos/channels/ANIXE_SD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANIXE_SD_m.glcd b/graphlcd/logos/channels/ANIXE_SD_m.glcd
index ef10a1d..ef10a1d 100644
--- a/graphlcd/logos/ANIXE_SD_m.glcd
+++ b/graphlcd/logos/channels/ANIXE_SD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANTENNE_BAYERN_l.glcd b/graphlcd/logos/channels/ANTENNE_BAYERN_l.glcd
index b38bfaf..b38bfaf 100644
--- a/graphlcd/logos/ANTENNE_BAYERN_l.glcd
+++ b/graphlcd/logos/channels/ANTENNE_BAYERN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANTENNE_BAYERN_m.glcd b/graphlcd/logos/channels/ANTENNE_BAYERN_m.glcd
index 2bca2b4..2bca2b4 100644
--- a/graphlcd/logos/ANTENNE_BAYERN_m.glcd
+++ b/graphlcd/logos/channels/ANTENNE_BAYERN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANTENNE_BAYERN_v2_m.glcd b/graphlcd/logos/channels/ANTENNE_BAYERN_v2_m.glcd
index 9ca0433..9ca0433 100644
--- a/graphlcd/logos/ANTENNE_BAYERN_v2_m.glcd
+++ b/graphlcd/logos/channels/ANTENNE_BAYERN_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ANTENNE_BRANDENBURG_l.glcd b/graphlcd/logos/channels/ANTENNE_BRANDENBURG_l.glcd
index 0069347..0069347 100644
--- a/graphlcd/logos/ANTENNE_BRANDENBURG_l.glcd
+++ b/graphlcd/logos/channels/ANTENNE_BRANDENBURG_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ANTENNE_BRANDENBURG_m.glcd b/graphlcd/logos/channels/ANTENNE_BRANDENBURG_m.glcd
index 6371211..6371211 100644
--- a/graphlcd/logos/ANTENNE_BRANDENBURG_m.glcd
+++ b/graphlcd/logos/channels/ANTENNE_BRANDENBURG_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ARTE_HD_l.glcd b/graphlcd/logos/channels/ARTE_HD_l.glcd
index 043e161..043e161 100644
--- a/graphlcd/logos/ARTE_HD_l.glcd
+++ b/graphlcd/logos/channels/ARTE_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ARTE_HD_m.glcd b/graphlcd/logos/channels/ARTE_HD_m.glcd
index f390dde..f390dde 100644
--- a/graphlcd/logos/ARTE_HD_m.glcd
+++ b/graphlcd/logos/channels/ARTE_HD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ARTE_HDv2_l.glcd b/graphlcd/logos/channels/ARTE_HDv2_l.glcd
index c97ed73..c97ed73 100644
--- a/graphlcd/logos/ARTE_HDv2_l.glcd
+++ b/graphlcd/logos/channels/ARTE_HDv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ARTE_l.glcd b/graphlcd/logos/channels/ARTE_l.glcd
index c2f575e..c2f575e 100644
--- a/graphlcd/logos/ARTE_l.glcd
+++ b/graphlcd/logos/channels/ARTE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ARTE_m.glcd b/graphlcd/logos/channels/ARTE_m.glcd
index ca150b1..ca150b1 100644
--- a/graphlcd/logos/ARTE_m.glcd
+++ b/graphlcd/logos/channels/ARTE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ASTRA_HD_l.glcd b/graphlcd/logos/channels/ASTRA_HD_l.glcd
index c799579..c799579 100644
--- a/graphlcd/logos/ASTRA_HD_l.glcd
+++ b/graphlcd/logos/channels/ASTRA_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ASTRA_HD_m.glcd b/graphlcd/logos/channels/ASTRA_HD_m.glcd
index 392907d..392907d 100644
--- a/graphlcd/logos/ASTRA_HD_m.glcd
+++ b/graphlcd/logos/channels/ASTRA_HD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ATVPLUS_l.glcd b/graphlcd/logos/channels/ATVPLUS_l.glcd
index 6751fc1..6751fc1 100644
--- a/graphlcd/logos/ATVPLUS_l.glcd
+++ b/graphlcd/logos/channels/ATVPLUS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ATVPLUS_m.glcd b/graphlcd/logos/channels/ATVPLUS_m.glcd
index a5bc829..a5bc829 100644
--- a/graphlcd/logos/ATVPLUS_m.glcd
+++ b/graphlcd/logos/channels/ATVPLUS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/AXN_l.glcd b/graphlcd/logos/channels/AXN_l.glcd
index 8eb1880..8eb1880 100644
--- a/graphlcd/logos/AXN_l.glcd
+++ b/graphlcd/logos/channels/AXN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/AXN_m.glcd b/graphlcd/logos/channels/AXN_m.glcd
index ddfd81a..ddfd81a 100644
--- a/graphlcd/logos/AXN_m.glcd
+++ b/graphlcd/logos/channels/AXN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_AKTUELL_l.glcd b/graphlcd/logos/channels/B5_AKTUELL_l.glcd
index 95830b7..95830b7 100644
--- a/graphlcd/logos/B5_AKTUELL_l.glcd
+++ b/graphlcd/logos/channels/B5_AKTUELL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_AKTUELL_m.glcd b/graphlcd/logos/channels/B5_AKTUELL_m.glcd
index 6c8a481..6c8a481 100644
--- a/graphlcd/logos/B5_AKTUELL_m.glcd
+++ b/graphlcd/logos/channels/B5_AKTUELL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_AKTUELLv2_l.glcd b/graphlcd/logos/channels/B5_AKTUELLv2_l.glcd
index 049cdb2..049cdb2 100644
--- a/graphlcd/logos/B5_AKTUELLv2_l.glcd
+++ b/graphlcd/logos/channels/B5_AKTUELLv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_AKTUELLv2_m.glcd b/graphlcd/logos/channels/B5_AKTUELLv2_m.glcd
index 554903a..554903a 100644
--- a/graphlcd/logos/B5_AKTUELLv2_m.glcd
+++ b/graphlcd/logos/channels/B5_AKTUELLv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_AKTUELLv3_m.glcd b/graphlcd/logos/channels/B5_AKTUELLv3_m.glcd
index d40ab98..d40ab98 100644
--- a/graphlcd/logos/B5_AKTUELLv3_m.glcd
+++ b/graphlcd/logos/channels/B5_AKTUELLv3_m.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_PLUS_l.glcd b/graphlcd/logos/channels/B5_PLUS_l.glcd
index 6c736c4..6c736c4 100644
--- a/graphlcd/logos/B5_PLUS_l.glcd
+++ b/graphlcd/logos/channels/B5_PLUS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/B5_PLUS_m.glcd b/graphlcd/logos/channels/B5_PLUS_m.glcd
index b6f8aaf..b6f8aaf 100644
--- a/graphlcd/logos/B5_PLUS_m.glcd
+++ b/graphlcd/logos/channels/B5_PLUS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAHN_TV_l.glcd b/graphlcd/logos/channels/BAHN_TV_l.glcd
index bf92d26..bf92d26 100644
--- a/graphlcd/logos/BAHN_TV_l.glcd
+++ b/graphlcd/logos/channels/BAHN_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAHN_TV_m.glcd b/graphlcd/logos/channels/BAHN_TV_m.glcd
index cef8da8..cef8da8 100644
--- a/graphlcd/logos/BAHN_TV_m.glcd
+++ b/graphlcd/logos/channels/BAHN_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAHN_TV_v2_m.glcd b/graphlcd/logos/channels/BAHN_TV_v2_m.glcd
index fea2765..fea2765 100644
--- a/graphlcd/logos/BAHN_TV_v2_m.glcd
+++ b/graphlcd/logos/channels/BAHN_TV_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERISCHES_FERNSEHEN_l.glcd b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_l.glcd
index c0b93e6..c0b93e6 100644
--- a/graphlcd/logos/BAYERISCHES_FERNSEHEN_l.glcd
+++ b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERISCHES_FERNSEHEN_m.glcd b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_m.glcd
index a224e95..a224e95 100644
--- a/graphlcd/logos/BAYERISCHES_FERNSEHEN_m.glcd
+++ b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERISCHES_FERNSEHEN_v2_l.glcd b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_v2_l.glcd
index ad7d919..ad7d919 100644
--- a/graphlcd/logos/BAYERISCHES_FERNSEHEN_v2_l.glcd
+++ b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERISCHES_FERNSEHEN_v2_m.glcd b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_v2_m.glcd
index 9b6b4f2..9b6b4f2 100644
--- a/graphlcd/logos/BAYERISCHES_FERNSEHEN_v2_m.glcd
+++ b/graphlcd/logos/channels/BAYERISCHES_FERNSEHEN_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_1_l.glcd b/graphlcd/logos/channels/BAYERN_1_l.glcd
index 2426c09..2426c09 100644
--- a/graphlcd/logos/BAYERN_1_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_1_m.glcd b/graphlcd/logos/channels/BAYERN_1_m.glcd
index e3bf771..e3bf771 100644
--- a/graphlcd/logos/BAYERN_1_m.glcd
+++ b/graphlcd/logos/channels/BAYERN_1_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_1v2_l.glcd b/graphlcd/logos/channels/BAYERN_1v2_l.glcd
index e308876..e308876 100644
--- a/graphlcd/logos/BAYERN_1v2_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_1v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_1v2_m.glcd b/graphlcd/logos/channels/BAYERN_1v2_m.glcd
index e3bf771..e3bf771 100644
--- a/graphlcd/logos/BAYERN_1v2_m.glcd
+++ b/graphlcd/logos/channels/BAYERN_1v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_2_l.glcd b/graphlcd/logos/channels/BAYERN_2_l.glcd
index 1694783..1694783 100644
--- a/graphlcd/logos/BAYERN_2_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_2v2_l.glcd b/graphlcd/logos/channels/BAYERN_2v2_l.glcd
index 7b6c504..7b6c504 100644
--- a/graphlcd/logos/BAYERN_2v2_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_2v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_3_l.glcd b/graphlcd/logos/channels/BAYERN_3_l.glcd
index 12cffed..12cffed 100644
--- a/graphlcd/logos/BAYERN_3_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_3v2_l.glcd b/graphlcd/logos/channels/BAYERN_3v2_l.glcd
index 7b6c504..7b6c504 100644
--- a/graphlcd/logos/BAYERN_3v2_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_3v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_4_KLASSIK_l.glcd b/graphlcd/logos/channels/BAYERN_4_KLASSIK_l.glcd
index 72670c2..72670c2 100644
--- a/graphlcd/logos/BAYERN_4_KLASSIK_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_4_KLASSIK_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_4_KLASSIK_m.glcd b/graphlcd/logos/channels/BAYERN_4_KLASSIK_m.glcd
index d6d720d..d6d720d 100644
--- a/graphlcd/logos/BAYERN_4_KLASSIK_m.glcd
+++ b/graphlcd/logos/channels/BAYERN_4_KLASSIK_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_4_KLASSIKv2_l.glcd b/graphlcd/logos/channels/BAYERN_4_KLASSIKv2_l.glcd
index 72670c2..72670c2 100644
--- a/graphlcd/logos/BAYERN_4_KLASSIKv2_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_4_KLASSIKv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_4_KLASSIKv2_m.glcd b/graphlcd/logos/channels/BAYERN_4_KLASSIKv2_m.glcd
index d6d720d..d6d720d 100644
--- a/graphlcd/logos/BAYERN_4_KLASSIKv2_m.glcd
+++ b/graphlcd/logos/channels/BAYERN_4_KLASSIKv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_PLUS_l.glcd b/graphlcd/logos/channels/BAYERN_PLUS_l.glcd
index de0ea2f..de0ea2f 100644
--- a/graphlcd/logos/BAYERN_PLUS_l.glcd
+++ b/graphlcd/logos/channels/BAYERN_PLUS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BAYERN_PLUS_m.glcd b/graphlcd/logos/channels/BAYERN_PLUS_m.glcd
index 52f1cfb..52f1cfb 100644
--- a/graphlcd/logos/BAYERN_PLUS_m.glcd
+++ b/graphlcd/logos/channels/BAYERN_PLUS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BBC_PRIME_l.glcd b/graphlcd/logos/channels/BBC_PRIME_l.glcd
index c53afba..c53afba 100644
--- a/graphlcd/logos/BBC_PRIME_l.glcd
+++ b/graphlcd/logos/channels/BBC_PRIME_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BBC_PRIME_m.glcd b/graphlcd/logos/channels/BBC_PRIME_m.glcd
index 0ea7b4d..0ea7b4d 100644
--- a/graphlcd/logos/BBC_PRIME_m.glcd
+++ b/graphlcd/logos/channels/BBC_PRIME_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BBC_WORLD_l.glcd b/graphlcd/logos/channels/BBC_WORLD_l.glcd
index 8c4c191..8c4c191 100644
--- a/graphlcd/logos/BBC_WORLD_l.glcd
+++ b/graphlcd/logos/channels/BBC_WORLD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BBC_WORLD_m.glcd b/graphlcd/logos/channels/BBC_WORLD_m.glcd
index 71b132f..71b132f 100644
--- a/graphlcd/logos/BBC_WORLD_m.glcd
+++ b/graphlcd/logos/channels/BBC_WORLD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BBC_WORLD_v2_l.glcd b/graphlcd/logos/channels/BBC_WORLD_v2_l.glcd
index ccf90a2..ccf90a2 100644
--- a/graphlcd/logos/BBC_WORLD_v2_l.glcd
+++ b/graphlcd/logos/channels/BBC_WORLD_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BBC_WORLD_v2_m.glcd b/graphlcd/logos/channels/BBC_WORLD_v2_m.glcd
index 7c52215..7c52215 100644
--- a/graphlcd/logos/BBC_WORLD_v2_m.glcd
+++ b/graphlcd/logos/channels/BBC_WORLD_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BEATE_UHSE.TV_l.glcd b/graphlcd/logos/channels/BEATE_UHSE.TV_l.glcd
index 0040c04..0040c04 100644
--- a/graphlcd/logos/BEATE_UHSE.TV_l.glcd
+++ b/graphlcd/logos/channels/BEATE_UHSE.TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BEATE_UHSE.TV_m.glcd b/graphlcd/logos/channels/BEATE_UHSE.TV_m.glcd
index 40a8589..40a8589 100644
--- a/graphlcd/logos/BEATE_UHSE.TV_m.glcd
+++ b/graphlcd/logos/channels/BEATE_UHSE.TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BEATE_UHSE.TV_v2_l.glcd b/graphlcd/logos/channels/BEATE_UHSE.TV_v2_l.glcd
index 7981193..7981193 100644
--- a/graphlcd/logos/BEATE_UHSE.TV_v2_l.glcd
+++ b/graphlcd/logos/channels/BEATE_UHSE.TV_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BEUR_TV_l.glcd b/graphlcd/logos/channels/BEUR_TV_l.glcd
index 314a4b0..314a4b0 100644
--- a/graphlcd/logos/BEUR_TV_l.glcd
+++ b/graphlcd/logos/channels/BEUR_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BEUR_TV_m.glcd b/graphlcd/logos/channels/BEUR_TV_m.glcd
index 3caa32d..3caa32d 100644
--- a/graphlcd/logos/BEUR_TV_m.glcd
+++ b/graphlcd/logos/channels/BEUR_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BEUR_TVv2_m.glcd b/graphlcd/logos/channels/BEUR_TVv2_m.glcd
index 07f548e..07f548e 100644
--- a/graphlcd/logos/BEUR_TVv2_m.glcd
+++ b/graphlcd/logos/channels/BEUR_TVv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BIBEL_TV_l.glcd b/graphlcd/logos/channels/BIBEL_TV_l.glcd
index 3b62042..3b62042 100644
--- a/graphlcd/logos/BIBEL_TV_l.glcd
+++ b/graphlcd/logos/channels/BIBEL_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BIBEL_TV_m.glcd b/graphlcd/logos/channels/BIBEL_TV_m.glcd
index 30967af..30967af 100644
--- a/graphlcd/logos/BIBEL_TV_m.glcd
+++ b/graphlcd/logos/channels/BIBEL_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BIBEL_TV_v2_m.glcd b/graphlcd/logos/channels/BIBEL_TV_v2_m.glcd
index c9d9045..c9d9045 100644
--- a/graphlcd/logos/BIBEL_TV_v2_m.glcd
+++ b/graphlcd/logos/channels/BIBEL_TV_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BLOOMBERG_TV_GERMANY_l.glcd b/graphlcd/logos/channels/BLOOMBERG_TV_GERMANY_l.glcd
index f693de2..f693de2 100644
--- a/graphlcd/logos/BLOOMBERG_TV_GERMANY_l.glcd
+++ b/graphlcd/logos/channels/BLOOMBERG_TV_GERMANY_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BLOOMBERG_TV_GERMANY_m.glcd b/graphlcd/logos/channels/BLOOMBERG_TV_GERMANY_m.glcd
index 22dc275..22dc275 100644
--- a/graphlcd/logos/BLOOMBERG_TV_GERMANY_m.glcd
+++ b/graphlcd/logos/channels/BLOOMBERG_TV_GERMANY_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BLOOMBERG_TV_l.glcd b/graphlcd/logos/channels/BLOOMBERG_TV_l.glcd
index f693de2..f693de2 100644
--- a/graphlcd/logos/BLOOMBERG_TV_l.glcd
+++ b/graphlcd/logos/channels/BLOOMBERG_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BLOOMBERG_TV_m.glcd b/graphlcd/logos/channels/BLOOMBERG_TV_m.glcd
index 22dc275..22dc275 100644
--- a/graphlcd/logos/BLOOMBERG_TV_m.glcd
+++ b/graphlcd/logos/channels/BLOOMBERG_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BREMEN_EINS_l.glcd b/graphlcd/logos/channels/BREMEN_EINS_l.glcd
index 59aab45..59aab45 100644
--- a/graphlcd/logos/BREMEN_EINS_l.glcd
+++ b/graphlcd/logos/channels/BREMEN_EINS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BREMEN_EINS_m.glcd b/graphlcd/logos/channels/BREMEN_EINS_m.glcd
index 35d09d7..35d09d7 100644
--- a/graphlcd/logos/BREMEN_EINS_m.glcd
+++ b/graphlcd/logos/channels/BREMEN_EINS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BREMEN_VIER_l.glcd b/graphlcd/logos/channels/BREMEN_VIER_l.glcd
index f08a13f..f08a13f 100644
--- a/graphlcd/logos/BREMEN_VIER_l.glcd
+++ b/graphlcd/logos/channels/BREMEN_VIER_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BREMEN_VIER_m.glcd b/graphlcd/logos/channels/BREMEN_VIER_m.glcd
index 8592594..8592594 100644
--- a/graphlcd/logos/BREMEN_VIER_m.glcd
+++ b/graphlcd/logos/channels/BREMEN_VIER_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_ALPHA_l.glcd b/graphlcd/logos/channels/BR_ALPHA_l.glcd
index 89f455a..89f455a 100644
--- a/graphlcd/logos/BR_ALPHA_l.glcd
+++ b/graphlcd/logos/channels/BR_ALPHA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_ALPHA_m.glcd b/graphlcd/logos/channels/BR_ALPHA_m.glcd
index 9b48f64..9b48f64 100644
--- a/graphlcd/logos/BR_ALPHA_m.glcd
+++ b/graphlcd/logos/channels/BR_ALPHA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_ALPHAv2_l.glcd b/graphlcd/logos/channels/BR_ALPHAv2_l.glcd
index bcb323b..bcb323b 100644
--- a/graphlcd/logos/BR_ALPHAv2_l.glcd
+++ b/graphlcd/logos/channels/BR_ALPHAv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_ALPHAv2_m.glcd b/graphlcd/logos/channels/BR_ALPHAv2_m.glcd
index 9c1fa3d..9c1fa3d 100644
--- a/graphlcd/logos/BR_ALPHAv2_m.glcd
+++ b/graphlcd/logos/channels/BR_ALPHAv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_ALPHAv3_l.glcd b/graphlcd/logos/channels/BR_ALPHAv3_l.glcd
index 8cdbbb5..8cdbbb5 100644
--- a/graphlcd/logos/BR_ALPHAv3_l.glcd
+++ b/graphlcd/logos/channels/BR_ALPHAv3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_ALPHAv3_m.glcd b/graphlcd/logos/channels/BR_ALPHAv3_m.glcd
index 6de0d94..6de0d94 100644
--- a/graphlcd/logos/BR_ALPHAv3_m.glcd
+++ b/graphlcd/logos/channels/BR_ALPHAv3_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_KLASSIK_l.glcd b/graphlcd/logos/channels/BR_KLASSIK_l.glcd
index 4b57abe..4b57abe 100644
--- a/graphlcd/logos/BR_KLASSIK_l.glcd
+++ b/graphlcd/logos/channels/BR_KLASSIK_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_VERKEHR_l.glcd b/graphlcd/logos/channels/BR_VERKEHR_l.glcd
index c655535..c655535 100644
--- a/graphlcd/logos/BR_VERKEHR_l.glcd
+++ b/graphlcd/logos/channels/BR_VERKEHR_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BR_VERKEHR_m.glcd b/graphlcd/logos/channels/BR_VERKEHR_m.glcd
index 697be63..697be63 100644
--- a/graphlcd/logos/BR_VERKEHR_m.glcd
+++ b/graphlcd/logos/channels/BR_VERKEHR_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BTV4_l.glcd b/graphlcd/logos/channels/BTV4_l.glcd
index e82ca00..e82ca00 100644
--- a/graphlcd/logos/BTV4_l.glcd
+++ b/graphlcd/logos/channels/BTV4_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BTV4_m.glcd b/graphlcd/logos/channels/BTV4_m.glcd
index 4d5e9da..4d5e9da 100644
--- a/graphlcd/logos/BTV4_m.glcd
+++ b/graphlcd/logos/channels/BTV4_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BTV4_v2_l.glcd b/graphlcd/logos/channels/BTV4_v2_l.glcd
index c059759..c059759 100644
--- a/graphlcd/logos/BTV4_v2_l.glcd
+++ b/graphlcd/logos/channels/BTV4_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BTV_l.glcd b/graphlcd/logos/channels/BTV_l.glcd
index ffdf278..ffdf278 100644
--- a/graphlcd/logos/BTV_l.glcd
+++ b/graphlcd/logos/channels/BTV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BTV_m.glcd b/graphlcd/logos/channels/BTV_m.glcd
index f270770..f270770 100644
--- a/graphlcd/logos/BTV_m.glcd
+++ b/graphlcd/logos/channels/BTV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BVN_l.glcd b/graphlcd/logos/channels/BVN_l.glcd
index c8df29a..c8df29a 100644
--- a/graphlcd/logos/BVN_l.glcd
+++ b/graphlcd/logos/channels/BVN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/BVN_m.glcd b/graphlcd/logos/channels/BVN_m.glcd
index 132502b..132502b 100644
--- a/graphlcd/logos/BVN_m.glcd
+++ b/graphlcd/logos/channels/BVN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/BVN_v2_m.glcd b/graphlcd/logos/channels/BVN_v2_m.glcd
index 014673e..014673e 100644
--- a/graphlcd/logos/BVN_v2_m.glcd
+++ b/graphlcd/logos/channels/BVN_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CADENA_DIAL_l.glcd b/graphlcd/logos/channels/CADENA_DIAL_l.glcd
index 7cf6255..7cf6255 100644
--- a/graphlcd/logos/CADENA_DIAL_l.glcd
+++ b/graphlcd/logos/channels/CADENA_DIAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CADENA_DIAL_m.glcd b/graphlcd/logos/channels/CADENA_DIAL_m.glcd
index b2ec34a..b2ec34a 100644
--- a/graphlcd/logos/CADENA_DIAL_m.glcd
+++ b/graphlcd/logos/channels/CADENA_DIAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL+ ...30_m.glcd b/graphlcd/logos/channels/CANAL+ ...30_m.glcd
index eeb7d70..eeb7d70 100644
--- a/graphlcd/logos/CANAL+ ...30_m.glcd
+++ b/graphlcd/logos/channels/CANAL+ ...30_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL+_m.glcd b/graphlcd/logos/channels/CANAL+_m.glcd
index 8e87caf..8e87caf 100644
--- a/graphlcd/logos/CANAL+_m.glcd
+++ b/graphlcd/logos/channels/CANAL+_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_24_HORAS_l.glcd b/graphlcd/logos/channels/CANAL_24_HORAS_l.glcd
index d725461..d725461 100644
--- a/graphlcd/logos/CANAL_24_HORAS_l.glcd
+++ b/graphlcd/logos/channels/CANAL_24_HORAS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_24_HORAS_m.glcd b/graphlcd/logos/channels/CANAL_24_HORAS_m.glcd
index a71b55e..a71b55e 100644
--- a/graphlcd/logos/CANAL_24_HORAS_m.glcd
+++ b/graphlcd/logos/channels/CANAL_24_HORAS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_CANARIAS_l.glcd b/graphlcd/logos/channels/CANAL_CANARIAS_l.glcd
index 2c0f53d..2c0f53d 100644
--- a/graphlcd/logos/CANAL_CANARIAS_l.glcd
+++ b/graphlcd/logos/channels/CANAL_CANARIAS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_CANARIAS_m.glcd b/graphlcd/logos/channels/CANAL_CANARIAS_m.glcd
index 5870208..5870208 100644
--- a/graphlcd/logos/CANAL_CANARIAS_m.glcd
+++ b/graphlcd/logos/channels/CANAL_CANARIAS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_CANARIAS_v2_m.glcd b/graphlcd/logos/channels/CANAL_CANARIAS_v2_m.glcd
index f6b64c8..f6b64c8 100644
--- a/graphlcd/logos/CANAL_CANARIAS_v2_m.glcd
+++ b/graphlcd/logos/channels/CANAL_CANARIAS_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_CLUB_l.glcd b/graphlcd/logos/channels/CANAL_CLUB_l.glcd
index 069af7c..069af7c 100644
--- a/graphlcd/logos/CANAL_CLUB_l.glcd
+++ b/graphlcd/logos/channels/CANAL_CLUB_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_CLUB_m.glcd b/graphlcd/logos/channels/CANAL_CLUB_m.glcd
index ba74083..ba74083 100644
--- a/graphlcd/logos/CANAL_CLUB_m.glcd
+++ b/graphlcd/logos/channels/CANAL_CLUB_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CANAL_CLUB_v2_m.glcd b/graphlcd/logos/channels/CANAL_CLUB_v2_m.glcd
index 8bafd90..8bafd90 100644
--- a/graphlcd/logos/CANAL_CLUB_v2_m.glcd
+++ b/graphlcd/logos/channels/CANAL_CLUB_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CARTOON_NETWORK_l.glcd b/graphlcd/logos/channels/CARTOON_NETWORK_l.glcd
index 1d315e0..1d315e0 100644
--- a/graphlcd/logos/CARTOON_NETWORK_l.glcd
+++ b/graphlcd/logos/channels/CARTOON_NETWORK_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CARTOON_NETWORK_m.glcd b/graphlcd/logos/channels/CARTOON_NETWORK_m.glcd
index c5b7b30..c5b7b30 100644
--- a/graphlcd/logos/CARTOON_NETWORK_m.glcd
+++ b/graphlcd/logos/channels/CARTOON_NETWORK_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CFN_RFC_l.glcd b/graphlcd/logos/channels/CFN_RFC_l.glcd
index 87d510e..87d510e 100644
--- a/graphlcd/logos/CFN_RFC_l.glcd
+++ b/graphlcd/logos/channels/CFN_RFC_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CFN_RFC_m.glcd b/graphlcd/logos/channels/CFN_RFC_m.glcd
index 94ed328..94ed328 100644
--- a/graphlcd/logos/CFN_RFC_m.glcd
+++ b/graphlcd/logos/channels/CFN_RFC_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CHANNEL_21_l.glcd b/graphlcd/logos/channels/CHANNEL_21_l.glcd
index 91ef488..91ef488 100644
--- a/graphlcd/logos/CHANNEL_21_l.glcd
+++ b/graphlcd/logos/channels/CHANNEL_21_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CHANNEL_21_m.glcd b/graphlcd/logos/channels/CHANNEL_21_m.glcd
index f09c7da..f09c7da 100644
--- a/graphlcd/logos/CHANNEL_21_m.glcd
+++ b/graphlcd/logos/channels/CHANNEL_21_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CHERIE_FM_l.glcd b/graphlcd/logos/channels/CHERIE_FM_l.glcd
index d227f27..d227f27 100644
--- a/graphlcd/logos/CHERIE_FM_l.glcd
+++ b/graphlcd/logos/channels/CHERIE_FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CHERIE_FM_m.glcd b/graphlcd/logos/channels/CHERIE_FM_m.glcd
index fc14a17..fc14a17 100644
--- a/graphlcd/logos/CHERIE_FM_m.glcd
+++ b/graphlcd/logos/channels/CHERIE_FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CHRONOS_l.glcd b/graphlcd/logos/channels/CHRONOS_l.glcd
index 67d8418..67d8418 100644
--- a/graphlcd/logos/CHRONOS_l.glcd
+++ b/graphlcd/logos/channels/CHRONOS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CHRONOS_m.glcd b/graphlcd/logos/channels/CHRONOS_m.glcd
index ec0fe09..ec0fe09 100644
--- a/graphlcd/logos/CHRONOS_m.glcd
+++ b/graphlcd/logos/channels/CHRONOS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CINE_BOX_m.glcd b/graphlcd/logos/channels/CINE_BOX_m.glcd
index 442f234..442f234 100644
--- a/graphlcd/logos/CINE_BOX_m.glcd
+++ b/graphlcd/logos/channels/CINE_BOX_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CLASSICA_l.glcd b/graphlcd/logos/channels/CLASSICA_l.glcd
index f241e7b..f241e7b 100644
--- a/graphlcd/logos/CLASSICA_l.glcd
+++ b/graphlcd/logos/channels/CLASSICA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CLASSICA_m.glcd b/graphlcd/logos/channels/CLASSICA_m.glcd
index e2f174f..e2f174f 100644
--- a/graphlcd/logos/CLASSICA_m.glcd
+++ b/graphlcd/logos/channels/CLASSICA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CLUB_TELEACHAT_l.glcd b/graphlcd/logos/channels/CLUB_TELEACHAT_l.glcd
index 50a260d..50a260d 100644
--- a/graphlcd/logos/CLUB_TELEACHAT_l.glcd
+++ b/graphlcd/logos/channels/CLUB_TELEACHAT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CLUB_TELEACHAT_m.glcd b/graphlcd/logos/channels/CLUB_TELEACHAT_m.glcd
index a1ec468..a1ec468 100644
--- a/graphlcd/logos/CLUB_TELEACHAT_m.glcd
+++ b/graphlcd/logos/channels/CLUB_TELEACHAT_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CLUB_TELEACHAT_v2_m.glcd b/graphlcd/logos/channels/CLUB_TELEACHAT_v2_m.glcd
index e129033..e129033 100644
--- a/graphlcd/logos/CLUB_TELEACHAT_v2_m.glcd
+++ b/graphlcd/logos/channels/CLUB_TELEACHAT_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CNBC_EUROPE_l.glcd b/graphlcd/logos/channels/CNBC_EUROPE_l.glcd
index f9ec19f..f9ec19f 100644
--- a/graphlcd/logos/CNBC_EUROPE_l.glcd
+++ b/graphlcd/logos/channels/CNBC_EUROPE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CNBC_EUROPE_m.glcd b/graphlcd/logos/channels/CNBC_EUROPE_m.glcd
index 3245855..3245855 100644
--- a/graphlcd/logos/CNBC_EUROPE_m.glcd
+++ b/graphlcd/logos/channels/CNBC_EUROPE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CNN+_m.glcd b/graphlcd/logos/channels/CNN+_m.glcd
index fe93af9..fe93af9 100644
--- a/graphlcd/logos/CNN+_m.glcd
+++ b/graphlcd/logos/channels/CNN+_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CNN_INT_l.glcd b/graphlcd/logos/channels/CNN_INT_l.glcd
index 9c9dde6..9c9dde6 100644
--- a/graphlcd/logos/CNN_INT_l.glcd
+++ b/graphlcd/logos/channels/CNN_INT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CNN_INT_m.glcd b/graphlcd/logos/channels/CNN_INT_m.glcd
index 823483a..823483a 100644
--- a/graphlcd/logos/CNN_INT_m.glcd
+++ b/graphlcd/logos/channels/CNN_INT_m.glcd
Binary files differ
diff --git a/graphlcd/logos/COMEDY_CENTRAL_l.glcd b/graphlcd/logos/channels/COMEDY_CENTRAL_l.glcd
index c385e5b..c385e5b 100644
--- a/graphlcd/logos/COMEDY_CENTRAL_l.glcd
+++ b/graphlcd/logos/channels/COMEDY_CENTRAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/COMEDY_CENTRAL_m.glcd b/graphlcd/logos/channels/COMEDY_CENTRAL_m.glcd
index 87ab9b1..87ab9b1 100644
--- a/graphlcd/logos/COMEDY_CENTRAL_m.glcd
+++ b/graphlcd/logos/channels/COMEDY_CENTRAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/CONT.RA_l.glcd b/graphlcd/logos/channels/CONT.RA_l.glcd
index 3282f16..3282f16 100644
--- a/graphlcd/logos/CONT.RA_l.glcd
+++ b/graphlcd/logos/channels/CONT.RA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CONTACT_FM_l.glcd b/graphlcd/logos/channels/CONTACT_FM_l.glcd
index 39edf44..39edf44 100644
--- a/graphlcd/logos/CONTACT_FM_l.glcd
+++ b/graphlcd/logos/channels/CONTACT_FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/CONTACT_FM_m.glcd b/graphlcd/logos/channels/CONTACT_FM_m.glcd
index e67d16a..e67d16a 100644
--- a/graphlcd/logos/CONTACT_FM_m.glcd
+++ b/graphlcd/logos/channels/CONTACT_FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_DING_l.glcd b/graphlcd/logos/channels/DAS_DING_l.glcd
index 40b0799..40b0799 100644
--- a/graphlcd/logos/DAS_DING_l.glcd
+++ b/graphlcd/logos/channels/DAS_DING_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_DING_m.glcd b/graphlcd/logos/channels/DAS_DING_m.glcd
index aeae433..aeae433 100644
--- a/graphlcd/logos/DAS_DING_m.glcd
+++ b/graphlcd/logos/channels/DAS_DING_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_DINGv2_l.glcd b/graphlcd/logos/channels/DAS_DINGv2_l.glcd
index a33ce03..a33ce03 100644
--- a/graphlcd/logos/DAS_DINGv2_l.glcd
+++ b/graphlcd/logos/channels/DAS_DINGv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTE_HD_l.glcd b/graphlcd/logos/channels/DAS_ERSTE_HD_l.glcd
index 16972f9..16972f9 100644
--- a/graphlcd/logos/DAS_ERSTE_HD_l.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTE_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTE_HD_m.glcd b/graphlcd/logos/channels/DAS_ERSTE_HD_m.glcd
index f11a75d..f11a75d 100644
--- a/graphlcd/logos/DAS_ERSTE_HD_m.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTE_HD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTE_HDv2_l.glcd b/graphlcd/logos/channels/DAS_ERSTE_HDv2_l.glcd
index c07c36a..c07c36a 100644
--- a/graphlcd/logos/DAS_ERSTE_HDv2_l.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTE_HDv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTE_HDv2_m.glcd b/graphlcd/logos/channels/DAS_ERSTE_HDv2_m.glcd
index d6287f4..d6287f4 100644
--- a/graphlcd/logos/DAS_ERSTE_HDv2_m.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTE_HDv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTE_l.glcd b/graphlcd/logos/channels/DAS_ERSTE_l.glcd
index dd38c2f..dd38c2f 100644
--- a/graphlcd/logos/DAS_ERSTE_l.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTE_m.glcd b/graphlcd/logos/channels/DAS_ERSTE_m.glcd
index 95b8549..95b8549 100644
--- a/graphlcd/logos/DAS_ERSTE_m.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_ERSTEv2_l.glcd b/graphlcd/logos/channels/DAS_ERSTEv2_l.glcd
index 3fb4ed8..3fb4ed8 100644
--- a/graphlcd/logos/DAS_ERSTEv2_l.glcd
+++ b/graphlcd/logos/channels/DAS_ERSTEv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_VIERTE_l.glcd b/graphlcd/logos/channels/DAS_VIERTE_l.glcd
index 8417ec4..8417ec4 100644
--- a/graphlcd/logos/DAS_VIERTE_l.glcd
+++ b/graphlcd/logos/channels/DAS_VIERTE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_VIERTE_m.glcd b/graphlcd/logos/channels/DAS_VIERTE_m.glcd
index b542605..b542605 100644
--- a/graphlcd/logos/DAS_VIERTE_m.glcd
+++ b/graphlcd/logos/channels/DAS_VIERTE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DAS_VIERTEv2_l.glcd b/graphlcd/logos/channels/DAS_VIERTEv2_l.glcd
index 250b7ac..250b7ac 100644
--- a/graphlcd/logos/DAS_VIERTEv2_l.glcd
+++ b/graphlcd/logos/channels/DAS_VIERTEv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_LOUNGE_l.glcd b/graphlcd/logos/channels/DELUXE_LOUNGE_l.glcd
index 5bf536f..5bf536f 100644
--- a/graphlcd/logos/DELUXE_LOUNGE_l.glcd
+++ b/graphlcd/logos/channels/DELUXE_LOUNGE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_LOUNGE_m.glcd b/graphlcd/logos/channels/DELUXE_LOUNGE_m.glcd
index 1183376..1183376 100644
--- a/graphlcd/logos/DELUXE_LOUNGE_m.glcd
+++ b/graphlcd/logos/channels/DELUXE_LOUNGE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_MUSIC_l.glcd b/graphlcd/logos/channels/DELUXE_MUSIC_l.glcd
index 75733e8..75733e8 100644
--- a/graphlcd/logos/DELUXE_MUSIC_l.glcd
+++ b/graphlcd/logos/channels/DELUXE_MUSIC_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_MUSIC_m.glcd b/graphlcd/logos/channels/DELUXE_MUSIC_m.glcd
index 51a3182..51a3182 100644
--- a/graphlcd/logos/DELUXE_MUSIC_m.glcd
+++ b/graphlcd/logos/channels/DELUXE_MUSIC_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_MUSICv2_l.glcd b/graphlcd/logos/channels/DELUXE_MUSICv2_l.glcd
index 01c2ef9..01c2ef9 100644
--- a/graphlcd/logos/DELUXE_MUSICv2_l.glcd
+++ b/graphlcd/logos/channels/DELUXE_MUSICv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_RADIO_l.glcd b/graphlcd/logos/channels/DELUXE_RADIO_l.glcd
index 2fb7b82..2fb7b82 100644
--- a/graphlcd/logos/DELUXE_RADIO_l.glcd
+++ b/graphlcd/logos/channels/DELUXE_RADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_RADIO_m.glcd b/graphlcd/logos/channels/DELUXE_RADIO_m.glcd
index 3c8018b..3c8018b 100644
--- a/graphlcd/logos/DELUXE_RADIO_m.glcd
+++ b/graphlcd/logos/channels/DELUXE_RADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DELUXE_RADIOv2_l.glcd b/graphlcd/logos/channels/DELUXE_RADIOv2_l.glcd
index 9cffa95..9cffa95 100644
--- a/graphlcd/logos/DELUXE_RADIOv2_l.glcd
+++ b/graphlcd/logos/channels/DELUXE_RADIOv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DEUTSCHLANDFUNK_KOELN_l.glcd b/graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_l.glcd
index 068eb5d..068eb5d 100644
--- a/graphlcd/logos/DEUTSCHLANDFUNK_KOELN_l.glcd
+++ b/graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DEUTSCHLANDFUNK_KOELN_m.glcd b/graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_m.glcd
index cfcde86..cfcde86 100644
--- a/graphlcd/logos/DEUTSCHLANDFUNK_KOELN_m.glcd
+++ b/graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DEUTSCHLANDFUNK_KOELN_v2_m.glcd b/graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_v2_m.glcd
index 7907ad2..7907ad2 100644
--- a/graphlcd/logos/DEUTSCHLANDFUNK_KOELN_v2_m.glcd
+++ b/graphlcd/logos/channels/DEUTSCHLANDFUNK_KOELN_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_l.glcd b/graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_l.glcd
index 2a8e007..2a8e007 100644
--- a/graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_l.glcd
+++ b/graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_m.glcd b/graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_m.glcd
index bd35774..bd35774 100644
--- a/graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_m.glcd
+++ b/graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_v2_m.glcd b/graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_v2_m.glcd
index 19947a2..19947a2 100644
--- a/graphlcd/logos/DEUTSCHLANDRADIO_BERLIN_v2_m.glcd
+++ b/graphlcd/logos/channels/DEUTSCHLANDRADIO_BERLIN_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DISCOVERY_CHANNEL_l.glcd b/graphlcd/logos/channels/DISCOVERY_CHANNEL_l.glcd
index 7607e1b..7607e1b 100644
--- a/graphlcd/logos/DISCOVERY_CHANNEL_l.glcd
+++ b/graphlcd/logos/channels/DISCOVERY_CHANNEL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISCOVERY_CHANNEL_m.glcd b/graphlcd/logos/channels/DISCOVERY_CHANNEL_m.glcd
index fa9b349..fa9b349 100644
--- a/graphlcd/logos/DISCOVERY_CHANNEL_m.glcd
+++ b/graphlcd/logos/channels/DISCOVERY_CHANNEL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DISCOVERY_CHANNELv2_l.glcd b/graphlcd/logos/channels/DISCOVERY_CHANNELv2_l.glcd
index 1871981..1871981 100644
--- a/graphlcd/logos/DISCOVERY_CHANNELv2_l.glcd
+++ b/graphlcd/logos/channels/DISCOVERY_CHANNELv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISCOVERY_CHANNELv3_l.glcd b/graphlcd/logos/channels/DISCOVERY_CHANNELv3_l.glcd
index cb9518d..cb9518d 100644
--- a/graphlcd/logos/DISCOVERY_CHANNELv3_l.glcd
+++ b/graphlcd/logos/channels/DISCOVERY_CHANNELv3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISCOVERY_HD_l.glcd b/graphlcd/logos/channels/DISCOVERY_HD_l.glcd
index ffb07f6..ffb07f6 100644
--- a/graphlcd/logos/DISCOVERY_HD_l.glcd
+++ b/graphlcd/logos/channels/DISCOVERY_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_CHANNEL_l.glcd b/graphlcd/logos/channels/DISNEY_CHANNEL_l.glcd
index 4b8b8f8..4b8b8f8 100644
--- a/graphlcd/logos/DISNEY_CHANNEL_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_CHANNEL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_CHANNEL_m.glcd b/graphlcd/logos/channels/DISNEY_CHANNEL_m.glcd
index 1e8267e..1e8267e 100644
--- a/graphlcd/logos/DISNEY_CHANNEL_m.glcd
+++ b/graphlcd/logos/channels/DISNEY_CHANNEL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_CHANNELv2_l.glcd b/graphlcd/logos/channels/DISNEY_CHANNELv2_l.glcd
index ed63bcf..ed63bcf 100644
--- a/graphlcd/logos/DISNEY_CHANNELv2_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_CHANNELv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_CHANNELv3_l.glcd b/graphlcd/logos/channels/DISNEY_CHANNELv3_l.glcd
index cbc7820..cbc7820 100644
--- a/graphlcd/logos/DISNEY_CHANNELv3_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_CHANNELv3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_CINEMAGIC_HD_l.glcd b/graphlcd/logos/channels/DISNEY_CINEMAGIC_HD_l.glcd
index 003ec59..003ec59 100644
--- a/graphlcd/logos/DISNEY_CINEMAGIC_HD_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_CINEMAGIC_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_CINEMAGIC_l.glcd b/graphlcd/logos/channels/DISNEY_CINEMAGIC_l.glcd
index a04933d..a04933d 100644
--- a/graphlcd/logos/DISNEY_CINEMAGIC_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_CINEMAGIC_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_PLAYHOUSE_l.glcd b/graphlcd/logos/channels/DISNEY_PLAYHOUSE_l.glcd
index 778ad44..778ad44 100644
--- a/graphlcd/logos/DISNEY_PLAYHOUSE_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_PLAYHOUSE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_TOON_+1_l.glcd b/graphlcd/logos/channels/DISNEY_TOON_+1_l.glcd
index 5b1c984..5b1c984 100644
--- a/graphlcd/logos/DISNEY_TOON_+1_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_TOON_+1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_TOON_l.glcd b/graphlcd/logos/channels/DISNEY_TOON_l.glcd
index 910501c..910501c 100644
--- a/graphlcd/logos/DISNEY_TOON_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_TOON_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DISNEY_XD_l.glcd b/graphlcd/logos/channels/DISNEY_XD_l.glcd
index d4c2b55..d4c2b55 100644
--- a/graphlcd/logos/DISNEY_XD_l.glcd
+++ b/graphlcd/logos/channels/DISNEY_XD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DKULTUR_l.glcd b/graphlcd/logos/channels/DKULTUR_l.glcd
index f3982e4..f3982e4 100644
--- a/graphlcd/logos/DKULTUR_l.glcd
+++ b/graphlcd/logos/channels/DKULTUR_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DKULTUR_m.glcd b/graphlcd/logos/channels/DKULTUR_m.glcd
index 4886b36..4886b36 100644
--- a/graphlcd/logos/DKULTUR_m.glcd
+++ b/graphlcd/logos/channels/DKULTUR_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DMAX_l.glcd b/graphlcd/logos/channels/DMAX_l.glcd
index 3750973..3750973 100644
--- a/graphlcd/logos/DMAX_l.glcd
+++ b/graphlcd/logos/channels/DMAX_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DMAX_m.glcd b/graphlcd/logos/channels/DMAX_m.glcd
index 2f2f4be..2f2f4be 100644
--- a/graphlcd/logos/DMAX_m.glcd
+++ b/graphlcd/logos/channels/DMAX_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DOK-DEB_l.glcd b/graphlcd/logos/channels/DOK-DEB_l.glcd
index cced77f..cced77f 100644
--- a/graphlcd/logos/DOK-DEB_l.glcd
+++ b/graphlcd/logos/channels/DOK-DEB_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DOK-DEb_m.glcd b/graphlcd/logos/channels/DOK-DEb_m.glcd
index 55f65b2..55f65b2 100644
--- a/graphlcd/logos/DOK-DEb_m.glcd
+++ b/graphlcd/logos/channels/DOK-DEb_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DOMRADIO_l.glcd b/graphlcd/logos/channels/DOMRADIO_l.glcd
index e9fc84d..e9fc84d 100644
--- a/graphlcd/logos/DOMRADIO_l.glcd
+++ b/graphlcd/logos/channels/DOMRADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DOMRADIO_m.glcd b/graphlcd/logos/channels/DOMRADIO_m.glcd
index c65bf3b..c65bf3b 100644
--- a/graphlcd/logos/DOMRADIO_m.glcd
+++ b/graphlcd/logos/channels/DOMRADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DSF_l.glcd b/graphlcd/logos/channels/DSF_l.glcd
index 1821bbc..1821bbc 100644
--- a/graphlcd/logos/DSF_l.glcd
+++ b/graphlcd/logos/channels/DSF_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DSF_m.glcd b/graphlcd/logos/channels/DSF_m.glcd
index 4a2c1e8..4a2c1e8 100644
--- a/graphlcd/logos/DSF_m.glcd
+++ b/graphlcd/logos/channels/DSF_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_1_l.glcd b/graphlcd/logos/channels/DW_1_l.glcd
index d8cfdf3..d8cfdf3 100644
--- a/graphlcd/logos/DW_1_l.glcd
+++ b/graphlcd/logos/channels/DW_1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_1_m.glcd b/graphlcd/logos/channels/DW_1_m.glcd
index 940036f..940036f 100644
--- a/graphlcd/logos/DW_1_m.glcd
+++ b/graphlcd/logos/channels/DW_1_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_4_l.glcd b/graphlcd/logos/channels/DW_4_l.glcd
index d8cfdf3..d8cfdf3 100644
--- a/graphlcd/logos/DW_4_l.glcd
+++ b/graphlcd/logos/channels/DW_4_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_4_m.glcd b/graphlcd/logos/channels/DW_4_m.glcd
index 940036f..940036f 100644
--- a/graphlcd/logos/DW_4_m.glcd
+++ b/graphlcd/logos/channels/DW_4_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_RADIO_M_l.glcd b/graphlcd/logos/channels/DW_RADIO_M_l.glcd
index 781516a..781516a 100644
--- a/graphlcd/logos/DW_RADIO_M_l.glcd
+++ b/graphlcd/logos/channels/DW_RADIO_M_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_RADIO_M_m.glcd b/graphlcd/logos/channels/DW_RADIO_M_m.glcd
index 7834c4d..7834c4d 100644
--- a/graphlcd/logos/DW_RADIO_M_m.glcd
+++ b/graphlcd/logos/channels/DW_RADIO_M_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_RADIO_l.glcd b/graphlcd/logos/channels/DW_RADIO_l.glcd
index 90662ab..90662ab 100644
--- a/graphlcd/logos/DW_RADIO_l.glcd
+++ b/graphlcd/logos/channels/DW_RADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_RADIO_m.glcd b/graphlcd/logos/channels/DW_RADIO_m.glcd
index 6e935b3..6e935b3 100644
--- a/graphlcd/logos/DW_RADIO_m.glcd
+++ b/graphlcd/logos/channels/DW_RADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_TV_l.glcd b/graphlcd/logos/channels/DW_TV_l.glcd
index 5d2c3ef..5d2c3ef 100644
--- a/graphlcd/logos/DW_TV_l.glcd
+++ b/graphlcd/logos/channels/DW_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/DW_TV_m.glcd b/graphlcd/logos/channels/DW_TV_m.glcd
index 5bf7652..5bf7652 100644
--- a/graphlcd/logos/DW_TV_m.glcd
+++ b/graphlcd/logos/channels/DW_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EGO_FM_l.glcd b/graphlcd/logos/channels/EGO_FM_l.glcd
index d8933ae..d8933ae 100644
--- a/graphlcd/logos/EGO_FM_l.glcd
+++ b/graphlcd/logos/channels/EGO_FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EGO_FM_m.glcd b/graphlcd/logos/channels/EGO_FM_m.glcd
index 5ea8bad..5ea8bad 100644
--- a/graphlcd/logos/EGO_FM_m.glcd
+++ b/graphlcd/logos/channels/EGO_FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_EXTRA_l.glcd b/graphlcd/logos/channels/EINS_EXTRA_l.glcd
index 2cc1245..2cc1245 100644
--- a/graphlcd/logos/EINS_EXTRA_l.glcd
+++ b/graphlcd/logos/channels/EINS_EXTRA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_EXTRA_m.glcd b/graphlcd/logos/channels/EINS_EXTRA_m.glcd
index caa4ed8..caa4ed8 100644
--- a/graphlcd/logos/EINS_EXTRA_m.glcd
+++ b/graphlcd/logos/channels/EINS_EXTRA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_EXTRAv2_l.glcd b/graphlcd/logos/channels/EINS_EXTRAv2_l.glcd
index eae17ac..eae17ac 100644
--- a/graphlcd/logos/EINS_EXTRAv2_l.glcd
+++ b/graphlcd/logos/channels/EINS_EXTRAv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_EXTRAv2_m.glcd b/graphlcd/logos/channels/EINS_EXTRAv2_m.glcd
index c56e446..c56e446 100644
--- a/graphlcd/logos/EINS_EXTRAv2_m.glcd
+++ b/graphlcd/logos/channels/EINS_EXTRAv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_EXTRAv3_l.glcd b/graphlcd/logos/channels/EINS_EXTRAv3_l.glcd
index 8d28095..8d28095 100644
--- a/graphlcd/logos/EINS_EXTRAv3_l.glcd
+++ b/graphlcd/logos/channels/EINS_EXTRAv3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_EXTRAv4_l.glcd b/graphlcd/logos/channels/EINS_EXTRAv4_l.glcd
index 0c6c5f5..0c6c5f5 100644
--- a/graphlcd/logos/EINS_EXTRAv4_l.glcd
+++ b/graphlcd/logos/channels/EINS_EXTRAv4_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVAL_HD_l.glcd b/graphlcd/logos/channels/EINS_FESTIVAL_HD_l.glcd
index fc98ef8..fc98ef8 100644
--- a/graphlcd/logos/EINS_FESTIVAL_HD_l.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVAL_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVAL_HD_m.glcd b/graphlcd/logos/channels/EINS_FESTIVAL_HD_m.glcd
index e769e30..e769e30 100644
--- a/graphlcd/logos/EINS_FESTIVAL_HD_m.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVAL_HD_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVAL_HDv2_l.glcd b/graphlcd/logos/channels/EINS_FESTIVAL_HDv2_l.glcd
index eeb4241..eeb4241 100644
--- a/graphlcd/logos/EINS_FESTIVAL_HDv2_l.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVAL_HDv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVAL_l.glcd b/graphlcd/logos/channels/EINS_FESTIVAL_l.glcd
index 2af3fc7..2af3fc7 100644
--- a/graphlcd/logos/EINS_FESTIVAL_l.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVAL_m.glcd b/graphlcd/logos/channels/EINS_FESTIVAL_m.glcd
index 9e745ec..9e745ec 100644
--- a/graphlcd/logos/EINS_FESTIVAL_m.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVALv2_l .glcd b/graphlcd/logos/channels/EINS_FESTIVALv2_l .glcd
index 57377a8..57377a8 100644
--- a/graphlcd/logos/EINS_FESTIVALv2_l .glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVALv2_l .glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVALv2_l.glcd b/graphlcd/logos/channels/EINS_FESTIVALv2_l.glcd
index 37d0fb0..37d0fb0 100644
--- a/graphlcd/logos/EINS_FESTIVALv2_l.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVALv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVALv2_m.glcd b/graphlcd/logos/channels/EINS_FESTIVALv2_m.glcd
index ccec283..ccec283 100644
--- a/graphlcd/logos/EINS_FESTIVALv2_m.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVALv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_FESTIVALv3_l.glcd b/graphlcd/logos/channels/EINS_FESTIVALv3_l.glcd
index c9b7fd4..c9b7fd4 100644
--- a/graphlcd/logos/EINS_FESTIVALv3_l.glcd
+++ b/graphlcd/logos/channels/EINS_FESTIVALv3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_MUXX_l.glcd b/graphlcd/logos/channels/EINS_MUXX_l.glcd
index 5ff62b5..5ff62b5 100644
--- a/graphlcd/logos/EINS_MUXX_l.glcd
+++ b/graphlcd/logos/channels/EINS_MUXX_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_MUXX_m.glcd b/graphlcd/logos/channels/EINS_MUXX_m.glcd
index 8e4beca..8e4beca 100644
--- a/graphlcd/logos/EINS_MUXX_m.glcd
+++ b/graphlcd/logos/channels/EINS_MUXX_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_MUXX_v2_l.glcd b/graphlcd/logos/channels/EINS_MUXX_v2_l.glcd
index 4669887..4669887 100644
--- a/graphlcd/logos/EINS_MUXX_v2_l.glcd
+++ b/graphlcd/logos/channels/EINS_MUXX_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_PLUS_l.glcd b/graphlcd/logos/channels/EINS_PLUS_l.glcd
index bab0a76..bab0a76 100644
--- a/graphlcd/logos/EINS_PLUS_l.glcd
+++ b/graphlcd/logos/channels/EINS_PLUS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_PLUS_m.glcd b/graphlcd/logos/channels/EINS_PLUS_m.glcd
index ed35013..ed35013 100644
--- a/graphlcd/logos/EINS_PLUS_m.glcd
+++ b/graphlcd/logos/channels/EINS_PLUS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EINS_PLUSv2_l.glcd b/graphlcd/logos/channels/EINS_PLUSv2_l.glcd
index c949549..c949549 100644
--- a/graphlcd/logos/EINS_PLUSv2_l.glcd
+++ b/graphlcd/logos/channels/EINS_PLUSv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ERF_RADIO_l.glcd b/graphlcd/logos/channels/ERF_RADIO_l.glcd
index ca71505..ca71505 100644
--- a/graphlcd/logos/ERF_RADIO_l.glcd
+++ b/graphlcd/logos/channels/ERF_RADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ERF_RADIO_m.glcd b/graphlcd/logos/channels/ERF_RADIO_m.glcd
index 5b76db4..5b76db4 100644
--- a/graphlcd/logos/ERF_RADIO_m.glcd
+++ b/graphlcd/logos/channels/ERF_RADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/ESC1_EGYPT_l.glcd b/graphlcd/logos/channels/ESC1_EGYPT_l.glcd
index 2a3a7c9..2a3a7c9 100644
--- a/graphlcd/logos/ESC1_EGYPT_l.glcd
+++ b/graphlcd/logos/channels/ESC1_EGYPT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/ESPN_CLASSIC_SPORT_l.glcd b/graphlcd/logos/channels/ESPN_CLASSIC_SPORT_l.glcd
index 6c44801..6c44801 100644
--- a/graphlcd/logos/ESPN_CLASSIC_SPORT_l.glcd
+++ b/graphlcd/logos/channels/ESPN_CLASSIC_SPORT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EURONEWS_l.glcd b/graphlcd/logos/channels/EURONEWS_l.glcd
index 9a8ed2d..9a8ed2d 100644
--- a/graphlcd/logos/EURONEWS_l.glcd
+++ b/graphlcd/logos/channels/EURONEWS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EURONEWS_m.glcd b/graphlcd/logos/channels/EURONEWS_m.glcd
index 85367d1..85367d1 100644
--- a/graphlcd/logos/EURONEWS_m.glcd
+++ b/graphlcd/logos/channels/EURONEWS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EUROPE_2_l.glcd b/graphlcd/logos/channels/EUROPE_2_l.glcd
index 3020976..3020976 100644
--- a/graphlcd/logos/EUROPE_2_l.glcd
+++ b/graphlcd/logos/channels/EUROPE_2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EUROPE_2_m.glcd b/graphlcd/logos/channels/EUROPE_2_m.glcd
index 688bea3..688bea3 100644
--- a/graphlcd/logos/EUROPE_2_m.glcd
+++ b/graphlcd/logos/channels/EUROPE_2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EUROSPORT_HD_l.glcd b/graphlcd/logos/channels/EUROSPORT_HD_l.glcd
index c6c42d7..c6c42d7 100644
--- a/graphlcd/logos/EUROSPORT_HD_l.glcd
+++ b/graphlcd/logos/channels/EUROSPORT_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EUROSPORT_l.glcd b/graphlcd/logos/channels/EUROSPORT_l.glcd
index 3a929f0..3a929f0 100644
--- a/graphlcd/logos/EUROSPORT_l.glcd
+++ b/graphlcd/logos/channels/EUROSPORT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EUROSPORT_m.glcd b/graphlcd/logos/channels/EUROSPORT_m.glcd
index c41f51d..c41f51d 100644
--- a/graphlcd/logos/EUROSPORT_m.glcd
+++ b/graphlcd/logos/channels/EUROSPORT_m.glcd
Binary files differ
diff --git a/graphlcd/logos/EXTRA 1_l.glcd b/graphlcd/logos/channels/EXTRA 1_l.glcd
index 694c965..694c965 100644
--- a/graphlcd/logos/EXTRA 1_l.glcd
+++ b/graphlcd/logos/channels/EXTRA 1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/EXTREME SPORTS_l.glcd b/graphlcd/logos/channels/EXTREME SPORTS_l.glcd
index 4d43a09..4d43a09 100644
--- a/graphlcd/logos/EXTREME SPORTS_l.glcd
+++ b/graphlcd/logos/channels/EXTREME SPORTS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/E_ENTERTAINMENT_l.glcd b/graphlcd/logos/channels/E_ENTERTAINMENT_l.glcd
index d7cb2ff..d7cb2ff 100644
--- a/graphlcd/logos/E_ENTERTAINMENT_l.glcd
+++ b/graphlcd/logos/channels/E_ENTERTAINMENT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FASHION_TV_l.glcd b/graphlcd/logos/channels/FASHION_TV_l.glcd
index bc8e4ec..bc8e4ec 100644
--- a/graphlcd/logos/FASHION_TV_l.glcd
+++ b/graphlcd/logos/channels/FASHION_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FASHION_TV_m.glcd b/graphlcd/logos/channels/FASHION_TV_m.glcd
index 897fd5f..897fd5f 100644
--- a/graphlcd/logos/FASHION_TV_m.glcd
+++ b/graphlcd/logos/channels/FASHION_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FASHION_TV_v2_m.glcd b/graphlcd/logos/channels/FASHION_TV_v2_m.glcd
index 7c89848..7c89848 100644
--- a/graphlcd/logos/FASHION_TV_v2_m.glcd
+++ b/graphlcd/logos/channels/FASHION_TV_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FESTIVAL_l.glcd b/graphlcd/logos/channels/FESTIVAL_l.glcd
index d3e1b46..d3e1b46 100644
--- a/graphlcd/logos/FESTIVAL_l.glcd
+++ b/graphlcd/logos/channels/FESTIVAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FESTIVAL_m.glcd b/graphlcd/logos/channels/FESTIVAL_m.glcd
index 25fcea3..25fcea3 100644
--- a/graphlcd/logos/FESTIVAL_m.glcd
+++ b/graphlcd/logos/channels/FESTIVAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FFN_COMEDY_l.glcd b/graphlcd/logos/channels/FFN_COMEDY_l.glcd
index 12ee1d2..12ee1d2 100644
--- a/graphlcd/logos/FFN_COMEDY_l.glcd
+++ b/graphlcd/logos/channels/FFN_COMEDY_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FFN_COMEDY_m.glcd b/graphlcd/logos/channels/FFN_COMEDY_m.glcd
index 4ad9f5e..4ad9f5e 100644
--- a/graphlcd/logos/FFN_COMEDY_m.glcd
+++ b/graphlcd/logos/channels/FFN_COMEDY_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FFN_DIGITAL_l.glcd b/graphlcd/logos/channels/FFN_DIGITAL_l.glcd
index 2bc4045..2bc4045 100644
--- a/graphlcd/logos/FFN_DIGITAL_l.glcd
+++ b/graphlcd/logos/channels/FFN_DIGITAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FFN_DIGITAL_m.glcd b/graphlcd/logos/channels/FFN_DIGITAL_m.glcd
index 2044d6f..2044d6f 100644
--- a/graphlcd/logos/FFN_DIGITAL_m.glcd
+++ b/graphlcd/logos/channels/FFN_DIGITAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FM4_l.glcd b/graphlcd/logos/channels/FM4_l.glcd
index af43c43..af43c43 100644
--- a/graphlcd/logos/FM4_l.glcd
+++ b/graphlcd/logos/channels/FM4_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FM4_m.glcd b/graphlcd/logos/channels/FM4_m.glcd
index 80b9664..80b9664 100644
--- a/graphlcd/logos/FM4_m.glcd
+++ b/graphlcd/logos/channels/FM4_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_KIDS_l.glcd b/graphlcd/logos/channels/FOX_KIDS_l.glcd
index faac38a..faac38a 100644
--- a/graphlcd/logos/FOX_KIDS_l.glcd
+++ b/graphlcd/logos/channels/FOX_KIDS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_KIDS_m.glcd b/graphlcd/logos/channels/FOX_KIDS_m.glcd
index 6a681a1..6a681a1 100644
--- a/graphlcd/logos/FOX_KIDS_m.glcd
+++ b/graphlcd/logos/channels/FOX_KIDS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_KIDSv2_l.glcd b/graphlcd/logos/channels/FOX_KIDSv2_l.glcd
index 008f6c6..008f6c6 100644
--- a/graphlcd/logos/FOX_KIDSv2_l.glcd
+++ b/graphlcd/logos/channels/FOX_KIDSv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_KIDSv2_m.glcd b/graphlcd/logos/channels/FOX_KIDSv2_m.glcd
index 09ad0b2..09ad0b2 100644
--- a/graphlcd/logos/FOX_KIDSv2_m.glcd
+++ b/graphlcd/logos/channels/FOX_KIDSv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_NEWS_m.glcd b/graphlcd/logos/channels/FOX_NEWS_m.glcd
index 82d60f9..82d60f9 100644
--- a/graphlcd/logos/FOX_NEWS_m.glcd
+++ b/graphlcd/logos/channels/FOX_NEWS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_l.glcd b/graphlcd/logos/channels/FOX_l.glcd
index 12da108..12da108 100644
--- a/graphlcd/logos/FOX_l.glcd
+++ b/graphlcd/logos/channels/FOX_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FOX_m.glcd b/graphlcd/logos/channels/FOX_m.glcd
index 73b376b..73b376b 100644
--- a/graphlcd/logos/FOX_m.glcd
+++ b/graphlcd/logos/channels/FOX_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_24_l.glcd b/graphlcd/logos/channels/FRANCE_24_l.glcd
index bfd30be..bfd30be 100644
--- a/graphlcd/logos/FRANCE_24_l.glcd
+++ b/graphlcd/logos/channels/FRANCE_24_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_24_m.glcd b/graphlcd/logos/channels/FRANCE_24_m.glcd
index 375258e..375258e 100644
--- a/graphlcd/logos/FRANCE_24_m.glcd
+++ b/graphlcd/logos/channels/FRANCE_24_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_2_l.glcd b/graphlcd/logos/channels/FRANCE_2_l.glcd
index a01db87..a01db87 100644
--- a/graphlcd/logos/FRANCE_2_l.glcd
+++ b/graphlcd/logos/channels/FRANCE_2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_2_m.glcd b/graphlcd/logos/channels/FRANCE_2_m.glcd
index 8658df7..8658df7 100644
--- a/graphlcd/logos/FRANCE_2_m.glcd
+++ b/graphlcd/logos/channels/FRANCE_2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_3_l.glcd b/graphlcd/logos/channels/FRANCE_3_l.glcd
index fbea5ba..fbea5ba 100644
--- a/graphlcd/logos/FRANCE_3_l.glcd
+++ b/graphlcd/logos/channels/FRANCE_3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_3_m.glcd b/graphlcd/logos/channels/FRANCE_3_m.glcd
index 421e4e3..421e4e3 100644
--- a/graphlcd/logos/FRANCE_3_m.glcd
+++ b/graphlcd/logos/channels/FRANCE_3_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_5_l.glcd b/graphlcd/logos/channels/FRANCE_5_l.glcd
index bc3132a..bc3132a 100644
--- a/graphlcd/logos/FRANCE_5_l.glcd
+++ b/graphlcd/logos/channels/FRANCE_5_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANCE_5_m.glcd b/graphlcd/logos/channels/FRANCE_5_m.glcd
index 03cdbd3..03cdbd3 100644
--- a/graphlcd/logos/FRANCE_5_m.glcd
+++ b/graphlcd/logos/channels/FRANCE_5_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANKEN_SAT_l.glcd b/graphlcd/logos/channels/FRANKEN_SAT_l.glcd
index 9def4ca..9def4ca 100644
--- a/graphlcd/logos/FRANKEN_SAT_l.glcd
+++ b/graphlcd/logos/channels/FRANKEN_SAT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FRANKEN_SAT_m.glcd b/graphlcd/logos/channels/FRANKEN_SAT_m.glcd
index 4e0be7e..4e0be7e 100644
--- a/graphlcd/logos/FRANKEN_SAT_m.glcd
+++ b/graphlcd/logos/channels/FRANKEN_SAT_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FREE_X_TV_l.glcd b/graphlcd/logos/channels/FREE_X_TV_l.glcd
index d84a6d9..d84a6d9 100644
--- a/graphlcd/logos/FREE_X_TV_l.glcd
+++ b/graphlcd/logos/channels/FREE_X_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FREE_X_TV_m.glcd b/graphlcd/logos/channels/FREE_X_TV_m.glcd
index c98bdc5..c98bdc5 100644
--- a/graphlcd/logos/FREE_X_TV_m.glcd
+++ b/graphlcd/logos/channels/FREE_X_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/FRITZ_l.glcd b/graphlcd/logos/channels/FRITZ_l.glcd
index e84e499..e84e499 100644
--- a/graphlcd/logos/FRITZ_l.glcd
+++ b/graphlcd/logos/channels/FRITZ_l.glcd
Binary files differ
diff --git a/graphlcd/logos/FRITZ_m.glcd b/graphlcd/logos/channels/FRITZ_m.glcd
index 894fda0..894fda0 100644
--- a/graphlcd/logos/FRITZ_m.glcd
+++ b/graphlcd/logos/channels/FRITZ_m.glcd
Binary files differ
diff --git a/graphlcd/logos/GAMES_TV_l.glcd b/graphlcd/logos/channels/GAMES_TV_l.glcd
index b6c862e..b6c862e 100644
--- a/graphlcd/logos/GAMES_TV_l.glcd
+++ b/graphlcd/logos/channels/GAMES_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/GAMES_TV_m.glcd b/graphlcd/logos/channels/GAMES_TV_m.glcd
index e952df0..e952df0 100644
--- a/graphlcd/logos/GAMES_TV_m.glcd
+++ b/graphlcd/logos/channels/GAMES_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/GOLDSTAR_TV_l.glcd b/graphlcd/logos/channels/GOLDSTAR_TV_l.glcd
index e2ebf7d..e2ebf7d 100644
--- a/graphlcd/logos/GOLDSTAR_TV_l.glcd
+++ b/graphlcd/logos/channels/GOLDSTAR_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/GOLDSTAR_TV_m.glcd b/graphlcd/logos/channels/GOLDSTAR_TV_m.glcd
index 82b0f94..82b0f94 100644
--- a/graphlcd/logos/GOLDSTAR_TV_m.glcd
+++ b/graphlcd/logos/channels/GOLDSTAR_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/GOLDSTAR_TVv2_l.glcd b/graphlcd/logos/channels/GOLDSTAR_TVv2_l.glcd
index 75f6b4b..75f6b4b 100644
--- a/graphlcd/logos/GOLDSTAR_TVv2_l.glcd
+++ b/graphlcd/logos/channels/GOLDSTAR_TVv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/GOLDSTAR_TVv2_m.glcd b/graphlcd/logos/channels/GOLDSTAR_TVv2_m.glcd
index bdc8533..bdc8533 100644
--- a/graphlcd/logos/GOLDSTAR_TVv2_m.glcd
+++ b/graphlcd/logos/channels/GOLDSTAR_TVv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/GO_TV_l.glcd b/graphlcd/logos/channels/GO_TV_l.glcd
index bcecb6d..bcecb6d 100644
--- a/graphlcd/logos/GO_TV_l.glcd
+++ b/graphlcd/logos/channels/GO_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/GO_TV_m.glcd b/graphlcd/logos/channels/GO_TV_m.glcd
index 9df3abe..9df3abe 100644
--- a/graphlcd/logos/GO_TV_m.glcd
+++ b/graphlcd/logos/channels/GO_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/GO_TVv2_l.glcd b/graphlcd/logos/channels/GO_TVv2_l.glcd
index 8550f77..8550f77 100644
--- a/graphlcd/logos/GO_TVv2_l.glcd
+++ b/graphlcd/logos/channels/GO_TVv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/GUTE_LAUNE_TV_l.glcd b/graphlcd/logos/channels/GUTE_LAUNE_TV_l.glcd
index afdc9d8..afdc9d8 100644
--- a/graphlcd/logos/GUTE_LAUNE_TV_l.glcd
+++ b/graphlcd/logos/channels/GUTE_LAUNE_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/GUTE_LAUNE_TV_m.glcd b/graphlcd/logos/channels/GUTE_LAUNE_TV_m.glcd
index c3fe4f2..c3fe4f2 100644
--- a/graphlcd/logos/GUTE_LAUNE_TV_m.glcd
+++ b/graphlcd/logos/channels/GUTE_LAUNE_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HALLMARK_l.glcd b/graphlcd/logos/channels/HALLMARK_l.glcd
index 820f67c..820f67c 100644
--- a/graphlcd/logos/HALLMARK_l.glcd
+++ b/graphlcd/logos/channels/HALLMARK_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HALLMARK_m.glcd b/graphlcd/logos/channels/HALLMARK_m.glcd
index 7d8ecda..7d8ecda 100644
--- a/graphlcd/logos/HALLMARK_m.glcd
+++ b/graphlcd/logos/channels/HALLMARK_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HARMONY_FM_l.glcd b/graphlcd/logos/channels/HARMONY_FM_l.glcd
index c7c061e..c7c061e 100644
--- a/graphlcd/logos/HARMONY_FM_l.glcd
+++ b/graphlcd/logos/channels/HARMONY_FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HARMONY_FM_m.glcd b/graphlcd/logos/channels/HARMONY_FM_m.glcd
index 8829b03..8829b03 100644
--- a/graphlcd/logos/HARMONY_FM_m.glcd
+++ b/graphlcd/logos/channels/HARMONY_FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HARMONY_FM_v2_m.glcd b/graphlcd/logos/channels/HARMONY_FM_v2_m.glcd
index c32ec0f..c32ec0f 100644
--- a/graphlcd/logos/HARMONY_FM_v2_m.glcd
+++ b/graphlcd/logos/channels/HARMONY_FM_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HARMONY_FMv2_m.glcd b/graphlcd/logos/channels/HARMONY_FMv2_m.glcd
index c32ec0f..c32ec0f 100644
--- a/graphlcd/logos/HARMONY_FMv2_m.glcd
+++ b/graphlcd/logos/channels/HARMONY_FMv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HD_TEST_ARD_ZDF_l.glcd b/graphlcd/logos/channels/HD_TEST_ARD_ZDF_l.glcd
index 4bce386..4bce386 100644
--- a/graphlcd/logos/HD_TEST_ARD_ZDF_l.glcd
+++ b/graphlcd/logos/channels/HD_TEST_ARD_ZDF_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HD_TEST_ARD_ZDF_m.glcd b/graphlcd/logos/channels/HD_TEST_ARD_ZDF_m.glcd
index 8f66e73..8f66e73 100644
--- a/graphlcd/logos/HD_TEST_ARD_ZDF_m.glcd
+++ b/graphlcd/logos/channels/HD_TEST_ARD_ZDF_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HEIMATKANAL_l.glcd b/graphlcd/logos/channels/HEIMATKANAL_l.glcd
index 8c0161f..8c0161f 100644
--- a/graphlcd/logos/HEIMATKANAL_l.glcd
+++ b/graphlcd/logos/channels/HEIMATKANAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HEIMATKANAL_m.glcd b/graphlcd/logos/channels/HEIMATKANAL_m.glcd
index f1224e4..f1224e4 100644
--- a/graphlcd/logos/HEIMATKANAL_m.glcd
+++ b/graphlcd/logos/channels/HEIMATKANAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HEIMATKANAL_v2_l.glcd b/graphlcd/logos/channels/HEIMATKANAL_v2_l.glcd
index 643d68a..643d68a 100644
--- a/graphlcd/logos/HEIMATKANAL_v2_l.glcd
+++ b/graphlcd/logos/channels/HEIMATKANAL_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HEIMATKANALv2_l.glcd b/graphlcd/logos/channels/HEIMATKANALv2_l.glcd
index 643d68a..643d68a 100644
--- a/graphlcd/logos/HEIMATKANALv2_l.glcd
+++ b/graphlcd/logos/channels/HEIMATKANALv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HESSEN_FERNSEHEN_l.glcd b/graphlcd/logos/channels/HESSEN_FERNSEHEN_l.glcd
index c2df34e..c2df34e 100644
--- a/graphlcd/logos/HESSEN_FERNSEHEN_l.glcd
+++ b/graphlcd/logos/channels/HESSEN_FERNSEHEN_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HESSEN_FERNSEHEN_m.glcd b/graphlcd/logos/channels/HESSEN_FERNSEHEN_m.glcd
index 24ed6bc..24ed6bc 100644
--- a/graphlcd/logos/HESSEN_FERNSEHEN_m.glcd
+++ b/graphlcd/logos/channels/HESSEN_FERNSEHEN_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HESSEN_FERNSEHEN_v2_l.glcd b/graphlcd/logos/channels/HESSEN_FERNSEHEN_v2_l.glcd
index afb1d56..afb1d56 100644
--- a/graphlcd/logos/HESSEN_FERNSEHEN_v2_l.glcd
+++ b/graphlcd/logos/channels/HESSEN_FERNSEHEN_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HISTOIRE_m.glcd b/graphlcd/logos/channels/HISTOIRE_m.glcd
index 7343fc8..7343fc8 100644
--- a/graphlcd/logos/HISTOIRE_m.glcd
+++ b/graphlcd/logos/channels/HISTOIRE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HISTORY_CHANNEL_l.glcd b/graphlcd/logos/channels/HISTORY_CHANNEL_l.glcd
index e175a6a..e175a6a 100644
--- a/graphlcd/logos/HISTORY_CHANNEL_l.glcd
+++ b/graphlcd/logos/channels/HISTORY_CHANNEL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HISTORY_HD_l.glcd b/graphlcd/logos/channels/HISTORY_HD_l.glcd
index 7f0d64b..7f0d64b 100644
--- a/graphlcd/logos/HISTORY_HD_l.glcd
+++ b/graphlcd/logos/channels/HISTORY_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HITRADIO_FFH_l.glcd b/graphlcd/logos/channels/HITRADIO_FFH_l.glcd
index b5fd57e..b5fd57e 100644
--- a/graphlcd/logos/HITRADIO_FFH_l.glcd
+++ b/graphlcd/logos/channels/HITRADIO_FFH_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HITRADIO_FFH_m.glcd b/graphlcd/logos/channels/HITRADIO_FFH_m.glcd
index 3701543..3701543 100644
--- a/graphlcd/logos/HITRADIO_FFH_m.glcd
+++ b/graphlcd/logos/channels/HITRADIO_FFH_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HITRADIO_OE3_l.glcd b/graphlcd/logos/channels/HITRADIO_OE3_l.glcd
index 06655c5..06655c5 100644
--- a/graphlcd/logos/HITRADIO_OE3_l.glcd
+++ b/graphlcd/logos/channels/HITRADIO_OE3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HITRADIO_OE3_m.glcd b/graphlcd/logos/channels/HITRADIO_OE3_m.glcd
index 6f6619e..6f6619e 100644
--- a/graphlcd/logos/HITRADIO_OE3_m.glcd
+++ b/graphlcd/logos/channels/HITRADIO_OE3_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HOERZU_DIGITAL_l.glcd b/graphlcd/logos/channels/HOERZU_DIGITAL_l.glcd
index 703c47b..703c47b 100644
--- a/graphlcd/logos/HOERZU_DIGITAL_l.glcd
+++ b/graphlcd/logos/channels/HOERZU_DIGITAL_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HOERZU_DIGITAL_m.glcd b/graphlcd/logos/channels/HOERZU_DIGITAL_m.glcd
index fefd209..fefd209 100644
--- a/graphlcd/logos/HOERZU_DIGITAL_m.glcd
+++ b/graphlcd/logos/channels/HOERZU_DIGITAL_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HOPE_CHANNEL_RADIO_l.glcd b/graphlcd/logos/channels/HOPE_CHANNEL_RADIO_l.glcd
index b4e8ca3..b4e8ca3 100644
--- a/graphlcd/logos/HOPE_CHANNEL_RADIO_l.glcd
+++ b/graphlcd/logos/channels/HOPE_CHANNEL_RADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HOPE_CHANNEL_RADIO_m.glcd b/graphlcd/logos/channels/HOPE_CHANNEL_RADIO_m.glcd
index 0f88c92..0f88c92 100644
--- a/graphlcd/logos/HOPE_CHANNEL_RADIO_m.glcd
+++ b/graphlcd/logos/channels/HOPE_CHANNEL_RADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_1_l.glcd b/graphlcd/logos/channels/HR_1_l.glcd
index 952f1b7..952f1b7 100644
--- a/graphlcd/logos/HR_1_l.glcd
+++ b/graphlcd/logos/channels/HR_1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_1_m.glcd b/graphlcd/logos/channels/HR_1_m.glcd
index 6ef4da1..6ef4da1 100644
--- a/graphlcd/logos/HR_1_m.glcd
+++ b/graphlcd/logos/channels/HR_1_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_2_l.glcd b/graphlcd/logos/channels/HR_2_l.glcd
index 54b049d..54b049d 100644
--- a/graphlcd/logos/HR_2_l.glcd
+++ b/graphlcd/logos/channels/HR_2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_2_m.glcd b/graphlcd/logos/channels/HR_2_m.glcd
index 11cf851..11cf851 100644
--- a/graphlcd/logos/HR_2_m.glcd
+++ b/graphlcd/logos/channels/HR_2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_3_l.glcd b/graphlcd/logos/channels/HR_3_l.glcd
index 5eb21c8..5eb21c8 100644
--- a/graphlcd/logos/HR_3_l.glcd
+++ b/graphlcd/logos/channels/HR_3_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_3_m.glcd b/graphlcd/logos/channels/HR_3_m.glcd
index 7ba39c1..7ba39c1 100644
--- a/graphlcd/logos/HR_3_m.glcd
+++ b/graphlcd/logos/channels/HR_3_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_4_l.glcd b/graphlcd/logos/channels/HR_4_l.glcd
index 7ae3529..7ae3529 100644
--- a/graphlcd/logos/HR_4_l.glcd
+++ b/graphlcd/logos/channels/HR_4_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_4_m.glcd b/graphlcd/logos/channels/HR_4_m.glcd
index dee66cd..dee66cd 100644
--- a/graphlcd/logos/HR_4_m.glcd
+++ b/graphlcd/logos/channels/HR_4_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_CHRONOS_l.glcd b/graphlcd/logos/channels/HR_CHRONOS_l.glcd
index 67d8418..67d8418 100644
--- a/graphlcd/logos/HR_CHRONOS_l.glcd
+++ b/graphlcd/logos/channels/HR_CHRONOS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_INFO_PLUS_l.glcd b/graphlcd/logos/channels/HR_INFO_PLUS_l.glcd
index 9b7ed86..9b7ed86 100644
--- a/graphlcd/logos/HR_INFO_PLUS_l.glcd
+++ b/graphlcd/logos/channels/HR_INFO_PLUS_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_INFO_PLUS_m.glcd b/graphlcd/logos/channels/HR_INFO_PLUS_m.glcd
index 3d68d12..3d68d12 100644
--- a/graphlcd/logos/HR_INFO_PLUS_m.glcd
+++ b/graphlcd/logos/channels/HR_INFO_PLUS_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_INFO_l.glcd b/graphlcd/logos/channels/HR_INFO_l.glcd
index 383db0e..383db0e 100644
--- a/graphlcd/logos/HR_INFO_l.glcd
+++ b/graphlcd/logos/channels/HR_INFO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_INFO_m.glcd b/graphlcd/logos/channels/HR_INFO_m.glcd
index cacbe8c..cacbe8c 100644
--- a/graphlcd/logos/HR_INFO_m.glcd
+++ b/graphlcd/logos/channels/HR_INFO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_KLASSIK_l.glcd b/graphlcd/logos/channels/HR_KLASSIK_l.glcd
index 8e992a9..8e992a9 100644
--- a/graphlcd/logos/HR_KLASSIK_l.glcd
+++ b/graphlcd/logos/channels/HR_KLASSIK_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_KLASSIK_m.glcd b/graphlcd/logos/channels/HR_KLASSIK_m.glcd
index 4712db5..4712db5 100644
--- a/graphlcd/logos/HR_KLASSIK_m.glcd
+++ b/graphlcd/logos/channels/HR_KLASSIK_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_KLASSIKv2_m.glcd b/graphlcd/logos/channels/HR_KLASSIKv2_m.glcd
index 36e403c..36e403c 100644
--- a/graphlcd/logos/HR_KLASSIKv2_m.glcd
+++ b/graphlcd/logos/channels/HR_KLASSIKv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_SKYLINE_l.glcd b/graphlcd/logos/channels/HR_SKYLINE_l.glcd
index 593a856..593a856 100644
--- a/graphlcd/logos/HR_SKYLINE_l.glcd
+++ b/graphlcd/logos/channels/HR_SKYLINE_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_SKYLINE_m.glcd b/graphlcd/logos/channels/HR_SKYLINE_m.glcd
index 96bb038..96bb038 100644
--- a/graphlcd/logos/HR_SKYLINE_m.glcd
+++ b/graphlcd/logos/channels/HR_SKYLINE_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_SKYLINEv2_m.glcd b/graphlcd/logos/channels/HR_SKYLINEv2_m.glcd
index 1661dfc..1661dfc 100644
--- a/graphlcd/logos/HR_SKYLINEv2_m.glcd
+++ b/graphlcd/logos/channels/HR_SKYLINEv2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HR_l.glcd b/graphlcd/logos/channels/HR_l.glcd
index 5af17bd..5af17bd 100644
--- a/graphlcd/logos/HR_l.glcd
+++ b/graphlcd/logos/channels/HR_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HSE24_EXTRA_l.glcd b/graphlcd/logos/channels/HSE24_EXTRA_l.glcd
index 38810cd..38810cd 100644
--- a/graphlcd/logos/HSE24_EXTRA_l.glcd
+++ b/graphlcd/logos/channels/HSE24_EXTRA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HSE24_EXTRA_m.glcd b/graphlcd/logos/channels/HSE24_EXTRA_m.glcd
index 4376eb0..4376eb0 100644
--- a/graphlcd/logos/HSE24_EXTRA_m.glcd
+++ b/graphlcd/logos/channels/HSE24_EXTRA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HSE24_l.glcd b/graphlcd/logos/channels/HSE24_l.glcd
index ab516b9..ab516b9 100644
--- a/graphlcd/logos/HSE24_l.glcd
+++ b/graphlcd/logos/channels/HSE24_l.glcd
Binary files differ
diff --git a/graphlcd/logos/HSE24_m.glcd b/graphlcd/logos/channels/HSE24_m.glcd
index f4a8e35..f4a8e35 100644
--- a/graphlcd/logos/HSE24_m.glcd
+++ b/graphlcd/logos/channels/HSE24_m.glcd
Binary files differ
diff --git a/graphlcd/logos/HSE24v2_m.glcd b/graphlcd/logos/channels/HSE24v2_m.glcd
index 374a9cb..374a9cb 100644
--- a/graphlcd/logos/HSE24v2_m.glcd
+++ b/graphlcd/logos/channels/HSE24v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/INFORADIO_l.glcd b/graphlcd/logos/channels/INFORADIO_l.glcd
index 39bfa9e..39bfa9e 100644
--- a/graphlcd/logos/INFORADIO_l.glcd
+++ b/graphlcd/logos/channels/INFORADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/INFORADIO_m.glcd b/graphlcd/logos/channels/INFORADIO_m.glcd
index 09da732..09da732 100644
--- a/graphlcd/logos/INFORADIO_m.glcd
+++ b/graphlcd/logos/channels/INFORADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/INSELRADIO_l.glcd b/graphlcd/logos/channels/INSELRADIO_l.glcd
index cfb5060..cfb5060 100644
--- a/graphlcd/logos/INSELRADIO_l.glcd
+++ b/graphlcd/logos/channels/INSELRADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/INSELRADIO_m.glcd b/graphlcd/logos/channels/INSELRADIO_m.glcd
index 681e0f1..681e0f1 100644
--- a/graphlcd/logos/INSELRADIO_m.glcd
+++ b/graphlcd/logos/channels/INSELRADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/I_MUSIC_TV_l.glcd b/graphlcd/logos/channels/I_MUSIC_TV_l.glcd
index 902bb08..902bb08 100644
--- a/graphlcd/logos/I_MUSIC_TV_l.glcd
+++ b/graphlcd/logos/channels/I_MUSIC_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/I_MUSIC_TV_m.glcd b/graphlcd/logos/channels/I_MUSIC_TV_m.glcd
index 85ba0f5..85ba0f5 100644
--- a/graphlcd/logos/I_MUSIC_TV_m.glcd
+++ b/graphlcd/logos/channels/I_MUSIC_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/I_MUSIC_l.glcd b/graphlcd/logos/channels/I_MUSIC_l.glcd
index 23f9512..23f9512 100644
--- a/graphlcd/logos/I_MUSIC_l.glcd
+++ b/graphlcd/logos/channels/I_MUSIC_l.glcd
Binary files differ
diff --git a/graphlcd/logos/I_MUSIC_m.glcd b/graphlcd/logos/channels/I_MUSIC_m.glcd
index 85ba0f5..85ba0f5 100644
--- a/graphlcd/logos/I_MUSIC_m.glcd
+++ b/graphlcd/logos/channels/I_MUSIC_m.glcd
Binary files differ
diff --git a/graphlcd/logos/JML_SHOP_l.glcd b/graphlcd/logos/channels/JML_SHOP_l.glcd
index dfc924b..dfc924b 100644
--- a/graphlcd/logos/JML_SHOP_l.glcd
+++ b/graphlcd/logos/channels/JML_SHOP_l.glcd
Binary files differ
diff --git a/graphlcd/logos/JML_SHOP_m.glcd b/graphlcd/logos/channels/JML_SHOP_m.glcd
index 67b7958..67b7958 100644
--- a/graphlcd/logos/JML_SHOP_m.glcd
+++ b/graphlcd/logos/channels/JML_SHOP_m.glcd
Binary files differ
diff --git a/graphlcd/logos/JUMP_l.glcd b/graphlcd/logos/channels/JUMP_l.glcd
index 981cb59..981cb59 100644
--- a/graphlcd/logos/JUMP_l.glcd
+++ b/graphlcd/logos/channels/JUMP_l.glcd
Binary files differ
diff --git a/graphlcd/logos/JUMP_m.glcd b/graphlcd/logos/channels/JUMP_m.glcd
index 2bf8ed7..2bf8ed7 100644
--- a/graphlcd/logos/JUMP_m.glcd
+++ b/graphlcd/logos/channels/JUMP_m.glcd
Binary files differ
diff --git a/graphlcd/logos/JUNIOR_l.glcd b/graphlcd/logos/channels/JUNIOR_l.glcd
index 8981830..8981830 100644
--- a/graphlcd/logos/JUNIOR_l.glcd
+++ b/graphlcd/logos/channels/JUNIOR_l.glcd
Binary files differ
diff --git a/graphlcd/logos/JUNIOR_m.glcd b/graphlcd/logos/channels/JUNIOR_m.glcd
index 9fd377b..9fd377b 100644
--- a/graphlcd/logos/JUNIOR_m.glcd
+++ b/graphlcd/logos/channels/JUNIOR_m.glcd
Binary files differ
diff --git a/graphlcd/logos/JUNIOR_v2_l.glcd b/graphlcd/logos/channels/JUNIOR_v2_l.glcd
index 26c3666..26c3666 100644
--- a/graphlcd/logos/JUNIOR_v2_l.glcd
+++ b/graphlcd/logos/channels/JUNIOR_v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/JUWELO_TV_l.glcd b/graphlcd/logos/channels/JUWELO_TV_l.glcd
index 9ce22c9..9ce22c9 100644
--- a/graphlcd/logos/JUWELO_TV_l.glcd
+++ b/graphlcd/logos/channels/JUWELO_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/JUWELO_TV_m.glcd b/graphlcd/logos/channels/JUWELO_TV_m.glcd
index 4099d7b..4099d7b 100644
--- a/graphlcd/logos/JUWELO_TV_m.glcd
+++ b/graphlcd/logos/channels/JUWELO_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_AUSTRIA_l.glcd b/graphlcd/logos/channels/KABEL_1_AUSTRIA_l.glcd
index 628df5e..628df5e 100644
--- a/graphlcd/logos/KABEL_1_AUSTRIA_l.glcd
+++ b/graphlcd/logos/channels/KABEL_1_AUSTRIA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_AUSTRIA_m.glcd b/graphlcd/logos/channels/KABEL_1_AUSTRIA_m.glcd
index b57f2bd..b57f2bd 100644
--- a/graphlcd/logos/KABEL_1_AUSTRIA_m.glcd
+++ b/graphlcd/logos/channels/KABEL_1_AUSTRIA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_HD_l.glcd b/graphlcd/logos/channels/KABEL_1_HD_l.glcd
index ee1eaba..ee1eaba 100644
--- a/graphlcd/logos/KABEL_1_HD_l.glcd
+++ b/graphlcd/logos/channels/KABEL_1_HD_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_SCHWEIZ_l.glcd b/graphlcd/logos/channels/KABEL_1_SCHWEIZ_l.glcd
index 063c594..063c594 100644
--- a/graphlcd/logos/KABEL_1_SCHWEIZ_l.glcd
+++ b/graphlcd/logos/channels/KABEL_1_SCHWEIZ_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_SCHWEIZ_m.glcd b/graphlcd/logos/channels/KABEL_1_SCHWEIZ_m.glcd
index 97ad2c7..97ad2c7 100644
--- a/graphlcd/logos/KABEL_1_SCHWEIZ_m.glcd
+++ b/graphlcd/logos/channels/KABEL_1_SCHWEIZ_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_l.glcd b/graphlcd/logos/channels/KABEL_1_l.glcd
index 032c5fe..032c5fe 100644
--- a/graphlcd/logos/KABEL_1_l.glcd
+++ b/graphlcd/logos/channels/KABEL_1_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1_m.glcd b/graphlcd/logos/channels/KABEL_1_m.glcd
index 667579c..667579c 100644
--- a/graphlcd/logos/KABEL_1_m.glcd
+++ b/graphlcd/logos/channels/KABEL_1_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1v2_l.glcd b/graphlcd/logos/channels/KABEL_1v2_l.glcd
index e83f38b..e83f38b 100644
--- a/graphlcd/logos/KABEL_1v2_l.glcd
+++ b/graphlcd/logos/channels/KABEL_1v2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KABEL_1v2_m.glcd b/graphlcd/logos/channels/KABEL_1v2_m.glcd
index 5be531b..5be531b 100644
--- a/graphlcd/logos/KABEL_1v2_m.glcd
+++ b/graphlcd/logos/channels/KABEL_1v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KIKA_l.glcd b/graphlcd/logos/channels/KIKA_l.glcd
index 4cba709..4cba709 100644
--- a/graphlcd/logos/KIKA_l.glcd
+++ b/graphlcd/logos/channels/KIKA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KIKA_m.glcd b/graphlcd/logos/channels/KIKA_m.glcd
index 96f71c9..96f71c9 100644
--- a/graphlcd/logos/KIKA_m.glcd
+++ b/graphlcd/logos/channels/KIKA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KINK_FM_l.glcd b/graphlcd/logos/channels/KINK_FM_l.glcd
index d1b9e99..d1b9e99 100644
--- a/graphlcd/logos/KINK_FM_l.glcd
+++ b/graphlcd/logos/channels/KINK_FM_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KINK_FM_m.glcd b/graphlcd/logos/channels/KINK_FM_m.glcd
index f9ddd52..f9ddd52 100644
--- a/graphlcd/logos/KINK_FM_m.glcd
+++ b/graphlcd/logos/channels/KINK_FM_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KINOWELT_l.glcd b/graphlcd/logos/channels/KINOWELT_l.glcd
index e0f4f33..e0f4f33 100644
--- a/graphlcd/logos/KINOWELT_l.glcd
+++ b/graphlcd/logos/channels/KINOWELT_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KINOWELT_m.glcd b/graphlcd/logos/channels/KINOWELT_m.glcd
index a53866c..a53866c 100644
--- a/graphlcd/logos/KINOWELT_m.glcd
+++ b/graphlcd/logos/channels/KINOWELT_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KIRAKA_l.glcd b/graphlcd/logos/channels/KIRAKA_l.glcd
index 8b52850..8b52850 100644
--- a/graphlcd/logos/KIRAKA_l.glcd
+++ b/graphlcd/logos/channels/KIRAKA_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KIRAKA_m.glcd b/graphlcd/logos/channels/KIRAKA_m.glcd
index 9f1afa9..9f1afa9 100644
--- a/graphlcd/logos/KIRAKA_m.glcd
+++ b/graphlcd/logos/channels/KIRAKA_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KLASSIK_RADIO_l.glcd b/graphlcd/logos/channels/KLASSIK_RADIO_l.glcd
index 808e6da..808e6da 100644
--- a/graphlcd/logos/KLASSIK_RADIO_l.glcd
+++ b/graphlcd/logos/channels/KLASSIK_RADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KLASSIK_RADIO_m.glcd b/graphlcd/logos/channels/KLASSIK_RADIO_m.glcd
index a6440b3..a6440b3 100644
--- a/graphlcd/logos/KLASSIK_RADIO_m.glcd
+++ b/graphlcd/logos/channels/KLASSIK_RADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KLASSIK_RADIOv2_l.glcd b/graphlcd/logos/channels/KLASSIK_RADIOv2_l.glcd
index b945bf9..b945bf9 100644
--- a/graphlcd/logos/KLASSIK_RADIOv2_l.glcd
+++ b/graphlcd/logos/channels/KLASSIK_RADIOv2_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KRIMICO_l.glcd b/graphlcd/logos/channels/KRIMICO_l.glcd
index 20d6a99..20d6a99 100644
--- a/graphlcd/logos/KRIMICO_l.glcd
+++ b/graphlcd/logos/channels/KRIMICO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KRIMICO_m.glcd b/graphlcd/logos/channels/KRIMICO_m.glcd
index cdff586..cdff586 100644
--- a/graphlcd/logos/KRIMICO_m.glcd
+++ b/graphlcd/logos/channels/KRIMICO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KTO_l.glcd b/graphlcd/logos/channels/KTO_l.glcd
index a6c3170..a6c3170 100644
--- a/graphlcd/logos/KTO_l.glcd
+++ b/graphlcd/logos/channels/KTO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KTO_m.glcd b/graphlcd/logos/channels/KTO_m.glcd
index 4222646..4222646 100644
--- a/graphlcd/logos/KTO_m.glcd
+++ b/graphlcd/logos/channels/KTO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/KULTURRADIO_l.glcd b/graphlcd/logos/channels/KULTURRADIO_l.glcd
index 7d6e881..7d6e881 100644
--- a/graphlcd/logos/KULTURRADIO_l.glcd
+++ b/graphlcd/logos/channels/KULTURRADIO_l.glcd
Binary files differ
diff --git a/graphlcd/logos/KULTURRADIO_m.glcd b/graphlcd/logos/channels/KULTURRADIO_m.glcd
index 645a358..645a358 100644
--- a/graphlcd/logos/KULTURRADIO_m.glcd
+++ b/graphlcd/logos/channels/KULTURRADIO_m.glcd
Binary files differ
diff --git a/graphlcd/logos/K_TV_l.glcd b/graphlcd/logos/channels/K_TV_l.glcd
index b22e83c..b22e83c 100644
--- a/graphlcd/logos/K_TV_l.glcd
+++ b/graphlcd/logos/channels/K_TV_l.glcd
Binary files differ
diff --git a/graphlcd/logos/K_TV_m.glcd b/graphlcd/logos/channels/K_TV_m.glcd
index 42a98f0..42a98f0 100644
--- a/graphlcd/logos/K_TV_m.glcd
+++ b/graphlcd/logos/channels/K_TV_m.glcd
Binary files differ
diff --git a/graphlcd/logos/K_TV_v2_m.glcd b/graphlcd/logos/channels/K_TV_v2_m.glcd
index 9e07882..9e07882 100644
--- a/graphlcd/logos/K_TV_v2_m.glcd
+++ b/graphlcd/logos/channels/K_TV_v2_m.glcd
Binary files differ
diff --git a/graphlcd/logos/L1MBURG_l.glcd b/graphlcd/logos/channels/L1MBURG_l.glcd
index 0e50e3a..0e50e3a 100644
--- a/graphlcd/logos/L1MBURG_l.glcd
+++ b/graphlcd/logos/channels/L1MBURG_l.glcd
Binary files differ
diff --git a/graphlcd/logos/L1MBURG_m.glcd b/graphlcd/logos/channels/L1MBURG_m.glcd
index 984a117..984a117 100644
--- a/graphlcd/logos/L1MBURG_m.glcd
+++ b/graphlcd/logos/channels/L1MBURG_m.glcd
Binary files diffe