/* $Id: drv_USBLCD.c,v 1.1 2004/02/15 08:22:47 reinelt Exp $ * * new style driver for USBLCD displays * * Copyright 1999-2004 Michael Reinelt * Copyright 2004 The LCD4Linux Team * * based on the old-style USBLCD driver which is * Copyright 2002 Robin Adams, Adams IT Services * * This file is part of LCD4Linux. * * LCD4Linux is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * LCD4Linux is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * * $Log: drv_USBLCD.c,v $ * Revision 1.1 2004/02/15 08:22:47 reinelt * ported USBLCD driver to NextGeneration * added drv_M50530.c (I forgot yesterday, sorry) * removed old drivers M50530.c and USBLCD.c * */ /* * * exported fuctions: * * struct DRIVER drv_USBLCD * */ #include "config.h" #include #include #include #include #include #include #include #include #include #include "debug.h" #include "cfg.h" #include "udelay.h" #include "plugin.h" #include "widget.h" #include "widget_text.h" #include "widget_icon.h" #include "widget_bar.h" #include "drv.h" #include "drv_generic_text.h" #define IOC_GET_HARD_VERSION 1 #define IOC_GET_DRV_VERSION 2 static char Name[]="USBLCD"; static char *Port=NULL; static int usblcd_file; static unsigned char *Buffer; static unsigned char *BufPtr; // **************************************** // *** hardware dependant functions *** // **************************************** static void drv_UL_send () { #if 0 struct timeval now, end; gettimeofday (&now, NULL); #endif write(usblcd_file,Buffer,BufPtr-Buffer); #if 0 gettimeofday (&end, NULL); debug ("send %d bytes in %d msec (%d usec/byte)", BufPtr-Buffer, (1000000*(end.tv_sec-now.tv_sec)+end.tv_usec-now.tv_usec)/1000, (1000000*(end.tv_sec-now.tv_sec)+end.tv_usec-now.tv_usec)/(BufPtr-Buffer)); #endif BufPtr=Buffer; } static void drv_UL_command (unsigned char cmd) { *BufPtr++='\0'; *BufPtr++=cmd; } static void drv_UL_write (unsigned char *string, int len) { while (len--) { if(*string==0) *BufPtr++=*string; *BufPtr++=*string++; } drv_UL_send(); } static void drv_UL_goto (int row, int col) { int pos=(row%2)*64+(row/2)*20+col; drv_UL_command (0x80|pos); } static void drv_UL_defchar (int ascii, unsigned char *buffer) { drv_UL_command (0x40|8*ascii); drv_UL_write (buffer, 8); // drv_UL_write() will call drv_UL_send(), so don't call it here! } static int drv_UL_start (char *section) { int rows=-1, cols=-1; int major, minor; char *port, *s; char buf[128]; if (Port) { free(Port); Port=NULL; } if ((port=cfg_get(section, "Port", NULL))==NULL || *port=='\0') { error ("%s: no '%s.Port' entry from %s", Name, section, cfg_source()); return -1; } if (port[0]=='/') { Port=strdup(port); } else { Port=malloc(5+strlen(port)+1); sprintf(Port,"/dev/%s",port); } debug ("using device %s ", Port); s=cfg_get(section, "Size", NULL); if (s==NULL || *s=='\0') { error ("%s: no '%s.Size' entry from %s", Name, section, cfg_source()); return -1; } if (sscanf(s,"%dx%d",&cols,&rows)!=2 || rows<1 || cols<1) { error ("%s: bad size '%s'", Name, s); retu
# Rega Sense, Switzerland
# freq sr fec mod

# Pay TV
C 434000000 6900000 NONE QAM64 # Teleclub
C 714000000 6900000 NONE QAM64
C 722000000 6900000 NONE QAM64

# Basis offer
C 125000000 6900000 NONE QAM64
C 450000000 6900000 NONE QAM64
C 458000000 6900000 NONE QAM64
C 466000000 6900000 NONE QAM64
C 474000000 6900000 NONE QAM64
C 482000000 6900000 NONE QAM64
C 514000000 6900000 NONE QAM64
C 522000000 6900000 NONE QAM64
C 578000000 6900000 NONE QAM64
C 586000000 6900000 NONE QAM64
C 634000000 6900000 NONE QAM64
C 642000000 6900000 NONE QAM64
C 650000000 6900000 NONE QAM64
C 658000000 6900000 NONE QAM64
C 666000000 6900000 NONE QAM64
C 682000000 6900000 NONE QAM64
C 698000000 6900000 NONE QAM64
C 730000000 6900000 NONE QAM64

C 618000000 6900000 NONE QAM256
C 674000000 6900000 NONE QAM256

# HDTV
C 642000000 6900000 NONE QAM256
C 690000000 6900000 NONE QAM256