--- lirc-0.8.3~pre1.orig/debian/po/templates.pot +++ lirc-0.8.3~pre1/debian/po/templates.pot @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" --- lirc-0.8.3~pre1.orig/debian/po/da.po +++ lirc-0.8.3~pre1/debian/po/da.po @@ -0,0 +1,437 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc 0.6.6-12\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2005-12-12 20:41+0100\n" +"Last-Translator: Morten Brix Pedersen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +#, fuzzy +msgid "Create LIRC device nodes if they are not there?" +msgstr "Skal jeg oprette LIRC-enheds noder hvis de ikke eksisterer?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC kræver nogle filer under /dev/ for at det virker:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc /dev/lircd og /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Vil du rekonfigurere LIRC?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"LIRC er allerede sat op, at rekonfigurere vil måske ødelægge noget af din " +"håndlavede opsætning i /etc/lirc/hardware.conf." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" +"Men kommentarer, LIRC_ARGS og andre ukendte koder vil blive holdt intakt." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +#, fuzzy +msgid "You should take care of old configuration files" +msgstr "Du bør tage dig af gamle opsætningsfiler." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Tidligere versioner af denne pakke inkluderede ikke nogle opsætningsfiler og " +"forventede at brugeren lavede sin egen /etc/lircd.conf og /etc/lircmd.conf" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "Den nye placering for disse filer er /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Jeg vil prøve at om-arrangere disse ting, men i nogle tilfælde kan jeg ikke. " +"Gør rede for at ingen af LIRC-opsætningsfilerne er tilbage direkte i /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd skal bruge IntelliMouse protokol istedet for IMPS/2" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"Metoden som lircmd bruger til at simulere en mus er ikke kompatibel med " +"IMPS/2 protokollen, så IntelliMouse-understøttelse er blevet tilfølet og er " +"nu den anbefalede protokol." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Du bruger LIGE NU lircmd med IMPS/2 protokollen, og det anbefales stærkt at " +"du opdaterer /etc/lirc/lircmd.conf og opsætningen af de programmer som " +"bruger lircmd som mus, til at bruge IntelliMouse-protokollen." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "BEMÆRK: gpm vil nægte at bruge lircmd som en mus med IMPS/2 protokol." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +#, fuzzy +msgid "Delete /var/log/lircd?" +msgstr "Skal jeg slette /var/log/lircd?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC bruger nu syslog som logningssystem. Dette betyder at /var/log/lircd " +"ikke bruges mere." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Hvis du svarer nej til dette spørgsmål, vil /var/log/lircd blive liggende og " +"du skal tage dig af det selv." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#, fuzzy +#~ msgid "Drivers to build:" +#~ msgstr "Vælg drivere der skal bygges." + +#, fuzzy +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "Skal jeg prøve automatisk at vælge understøttelse for din hardware?" + +#, fuzzy +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "Du har installeret og konfigureret LIRC. Jeg kan prøve at gætte hvilke " +#~ "kernemoduler der er krævede og deres parametre fra dine tidligere svar." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Du behøver ikke nogle yderligere kernemoduler." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "Medmindre du vil bygge LIRC kernemoduler til andre systemer, kan du " +#~ "sikkert fjerne denne pakke." + +#, fuzzy +#~ msgid "How to build the binary modules package" +#~ msgstr "Hvordan man bygger den binære modulpakke." + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "For instruktioner på hvordan du bygger den binære modul Debianpakke, så " +#~ "læs: /usr/share/doc/lirc-modules-source/README.Debian" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "Den følgende liste inkluderer korte beskrivelser af de forskellige " +#~ "muligheder:" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Andet" + +#, fuzzy +#~ msgid "Type of serial device to support" +#~ msgstr "Hvilken type af serial-enhed skal understøttes?" + +#, fuzzy +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ "Hvis du ikke ved hvad de andre enheder er, bør du nok vælge \"Andet\"." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "Er din seriale-IR enhed en sender?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Skal signalet genereres af software?" + +#, fuzzy +#~ msgid "IO port of your IR serial device:" +#~ msgstr "Hvilken IO-port bruger din IR-seriel enhed?" + +#, fuzzy +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Hvilken IRQ bruger din IR-seriel enhed?" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Andet" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Hvilken type SIR-enhed skal understøttes?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "Det følgende er korte beskrivelser af mulighederne, for at vise hvad de " +#~ "betyder." + +#, fuzzy +#~ msgid "IO port of your SIR device:" +#~ msgstr "Hvilken IO-port bruger din SIR-enhed?" + +#, fuzzy +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Hvilken IRQ bruger din SIR-enhed?" + +#, fuzzy +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "Hvilken IO-port bruger din parellele IR-enhed?" + +#, fuzzy +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Hvilken IRQ bruger din parellele IR-enhed?" + +#, fuzzy +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "Hvilken 'timer' skal bruges til din parellele IR-enhed?" + +#, fuzzy +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Skal jeg prøve automatisk at bygge modulerne?" + +#, fuzzy +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Jeg kan prøve at bygge og installere dine lirc kernemoduler, sålænge din " +#~ "nuværende kernes kildekode (og gcc) er tilstede på systemet." + +#, fuzzy +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Selvom du svarer ja her, skal du bygge og installere en binær " +#~ "'kernemodul' pakke så pakkehåndteringsprogrammet kan holde styr på " +#~ "filerne." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Hvor er dine kernes kildekode?" + +#, fuzzy +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "For at bygge lirc kernemoduler, skal jeg bruge kildekoden på kernen, som " +#~ "du planlægger at bygge dem med." + +#, fuzzy +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} er ikke et gyldigt træ med kernekildekode." + +#~ msgid "" +#~ "i2c: TV cards from Hauppauge and PixelView. Needs the new I2C stack " +#~ "(present on 2.4 kernels). You can get it at:" +#~ msgstr "" +#~ "i2c: TV-kort fra Hauppauge og PixelView. Kræver den nye I2C-stak " +#~ "(tilstede i 2.4-kerner). Du kan få den på:" + +#~ msgid "http://www2.lm-sensors.nu/~lm78/." +#~ msgstr "http://www2.lm-sensors.nu/~lm78/." + +#~ msgid "" +#~ "gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others. Needs " +#~ "bttv version 0.7.45 or higher (present on 2.4 kernels). If you are using " +#~ "the bttv tarball, copy it to the kernel." +#~ msgstr "" +#~ "gpio: TV-kort fra FlyVideo98, Avermedia, MiRO og mange andre. Kræver bttv " +#~ "version 0.7.45 eller højere (tilstede i 2.4-kerner). Hvis du bruger bttv " +#~ "kildekoden, så kopier den til kernen." + +#~ msgid "parallel: Custom parallel-port receiver." +#~ msgstr "parallel: En parallel-port modtager." + +#~ msgid "serial: Serial-port driver." +#~ msgstr "serial: Serial-port driver." + +#~ msgid "sir: Serial InfraRed (IRDA)." +#~ msgstr "sir: Serial-Infrarød (IRDA)." + +#~ msgid "it87: ITE IT8705 and IT8712 CIR ports (e.g. on the ECS K7S5A)." +#~ msgstr "it87: ITE IT8705 og IT8712 CIR porte (f.eks. ECS K7S5A)." + +#~ msgid "bt829: Tekram M230 Mach64" +#~ msgstr "bt829: Tekram M230 Mach64" + +#~ msgid "Quick walktrough:" +#~ msgstr "Hurtig gennemgang:" + +#~ msgid "cd /usr/src/" +#~ msgstr "cd /usr/src/" + +#~ msgid "tar -xzf lirc-modules.tar.gz" +#~ msgstr "tar -xzf lirc-modules.tar.gz" + +#~ msgid "cd modules/lirc" +#~ msgstr "cd modules/lirc" + +#~ msgid "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" +#~ msgstr "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" + +#~ msgid "dpkg -i ../../irc-modules-*.deb" +#~ msgstr "dpkg -i ../../lirc-modules-*.deb" + +#~ msgid "ANIMAX: Anir Multimedia Magic" +#~ msgstr "ANIMAX: Anir Multimedia Magic" + +#~ msgid "IRDEO: IRdeo" +#~ msgstr "IRDEO: IRdeo" + +#~ msgid "ACTISYS_ACT200L: Actisys Act200L dongle." +#~ msgstr "ACTISYS_ACT200L: Actisys Act200L dongle." + +#~ msgid "TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)" +#~ msgstr "TEKRAM: Tekram Irmate 210 (16x50 UART kompatibel seriel port)" + +#~ msgid "Other: Any other supported device." +#~ msgstr "Andet: Any other supported device." --- lirc-0.8.3~pre1.orig/debian/po/de.po +++ lirc-0.8.3~pre1/debian/po/de.po @@ -0,0 +1,449 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc 0.7\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-05-18 16:34+0200\n" +"Last-Translator: Franz Pletz \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "" +"Sollen die LIRC-Gertedateien, sofern nicht vorhanden, erstellt werden?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC bentigt einige neue Gertedateien im Verzeichnis /dev:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc, /dev/lircd und /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Soll LIRC neu konfiguriert werden?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"LIRC ist schon konfiguriert, eine Neukonfiguration knnte ihre von Hand " +"angepasste Konfiguration in /etc/lirc/hardware.conf zerstren." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" +"Jedoch werden Kommentare, LIRC_ARGS und anderer unbekannter Code beibehalten" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +#, fuzzy +msgid "You should take care of old configuration files" +msgstr "Sie sollten sich um ihre alten Konfigurationsdateien kmmern." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Vorhergehende Versionen dieses Pakets beinhalteten keine " +"Konfigurationsdateien und erwarteten vom Benutzer eigene in /etc/lircd.conf " +"und /etc/lircmd.conf anzulegen." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "Der neue Ort dieser Dateien ist /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Es wird nun versucht dieses Dateien an ihrem neuen Ort zu installieren. " +"Falls dies fehlschlgt, bitte sicherstellen, dass keine der LIRC " +"Konfigurationsdateien in /etc verbleiben." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "" +"lircmd sollte anstatt des IMPS/2 Protokoll das IntelliMouse Protokoll " +"benutzen" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"Die Methode, die lircmd benutzt um eine Maus zu simulieren ist nicht " +"kompatibel mit dem IMPS/2 Protokoll, also ist IntelliMouse nun das " +"bevorzugte Protokoll." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Sie *benutzen* zur Zeit lircmd mit dem IMPS/2 Protokoll and sollten /etc/" +"lirc/lircmd.conf sowie die Konfiguration aller anderen Programme, die lircdm " +"als Maus benutzen, auf das IntelliMouse Protokoll umstellen." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" +"Hinweis: gpm wird sich weigern lircmd als Maus mit dem IMPS/2 Protokoll zu " +"benutzen." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +#, fuzzy +msgid "Delete /var/log/lircd?" +msgstr "Soll /var/log/lircd gelscht werden?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC benutzt nun syslog als Logmechanismus. Dies bedeutet, dass /var/log/" +"lircd nicht mehr benutzt wird." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Falls sie diese Frage mit 'Nein' beantworten wird /var/log/lircd nicht " +"gelscht and sie mssen sich selbst darum kmmern." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "Zu kompilierende Treiber:" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV Karten von FlyVideo98, Avermedia, MiRO und vielen " +#~ "anderen\n" +#~ " i2c: TV Karten von Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Ceskos USB IR Empfnger\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (z.B. auf ECS K7S5A oder Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (alte Version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (neue Version, Philips usw.)\n" +#~ " parallel: Selbstgebauter Parallel-Port Empfnger\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Modul\n" +#~ " serial: Selbstgebauter Treiber fr den seriellen Port\n" +#~ " sir: Serielles Infrarot (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "" +#~ "Versuchen automatisch die Untersttzung fr die Hardware zu erkennen?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "LIRC ist installiert und konfiguriert. Nun knnen die Kernelmodule und " +#~ "ihre Parameter durch die folgendenden Angaben bestimmt werden." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Keine weiteren Kernelmodule ntig." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "Sofern sie nicht LIRC Kernelmodule fr andere Systeme kompilieren wollen, " +#~ "knnen sie vermutlich dieses Paket entfernen." + +#~ msgid "How to build the binary modules package" +#~ msgstr "Wie man das Paket fr die Binrmodule erzeugt" + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Fr Instruktionen wie man das Debian-Binrmodulpaket baut, siehe: /usr/" +#~ "share/doc/lirc-modules-source/README.Debian" + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "Schelldurchgang:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "Standard, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "Typ des zu untersttzenden ITE8705/12 CIR Anschlusses:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "Die folgende Liste beinhaltet kurze Beschreibungen der verschiedenen " +#~ "verfgbaren Optionen:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " Standard: Normaler Chip\n" +#~ " DigiMatrix: integrierter Chip Asus DigiMatrix" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Andere" + +#~ msgid "Type of serial device to support" +#~ msgstr "Welche seriellen Gerte sollen untersttzt werden?" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Andere: Jedes andere untersttzte Gert.\n" +#~ "\n" +#~ "Falls sie die anderen Gerte nicht kennen, sollten sie vermutlich \"Andere" +#~ "\" whlen." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "Ist ihr serielles Infrarotgert ein Sender?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Soll das carrier-Signal von der Software generiert werden?" + +#, fuzzy +#~ msgid "IO port of your IR serial device:" +#~ msgstr "Welchen IO Port benutzt ihr serielles Infrarotgert?" + +#, fuzzy +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Welchen IRQ benutzt ihr serielles Infrarotgert?" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Andere" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Typ der untersttzten seriellen Infrarotgerte (SIR):" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "Die folgenden Listen sind kurze Beschreibungen der Optionen um zu zeigen " +#~ "was sie bedeuten." + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART kompatibler serieller " +#~ "Port)\n" +#~ " Andere: Jedes andere untersttzte Gert." + +#, fuzzy +#~ msgid "IO port of your SIR device:" +#~ msgstr "Welcher IO Port wird vom seriellen Infrarotgert (SIR) benutzt?" + +#, fuzzy +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Welcher IRQ wird vom seriellen Infrarotgert (SIR) benutzt?" + +#, fuzzy +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "Welcher IO Port wird vom parallelen Infrarotgert (IR) benutzt?" + +#, fuzzy +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Welcher IRQ wird vom parallelen Infrarotgert (IR) benutzt?" + +#, fuzzy +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "" +#~ "Welcher Timer soll fr das parallele Infrarotgert (IR) benutzt werden?" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Soll versucht werden die Module automatisch zu erzeugen?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Die lirc Kernelmodule knnen erzeugt werden wenn der Quelltext des " +#~ "aktuellen Kernels (und gcc) auf ihrem Computer installiert sind." + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Auch wenn sie \"Ja\" whlen sollten sie das Binrmodulpaket erzeugt und " +#~ "installiert haben, so dass der Paketmanager die Dateien beobachten kann." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Wo sind die Kernelquellen?" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Um die lirc Kernelmodule zu erzeugen, mssen die die Kernelquellen " +#~ "vorfgbar sein." + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} beinhaltet keine gltigen Kernelquellen" --- lirc-0.8.3~pre1.orig/debian/po/cs.po +++ lirc-0.8.3~pre1/debian/po/cs.po @@ -0,0 +1,429 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-09-26 11:34+0200\n" +"Last-Translator: Miroslav Jezbera \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "Vytvoit soubory LIRC zazen pokud jet neexistuj?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC potebuje nkter soubory v /dev/ pro svou innost:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc /dev/lircd a /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Chcete penastavit LIRC?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"LIRC je ji nastaveno, penastaven me pepsat vae osobn pravy v " +"souboru /etc/lirc/hardware.conf." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "Jakkoliv komente, LIRC_ARGS a ostatn neznm kd bude zachovn." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "Mli byste si dt pozor na star konfiguran soubory" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Pedchoz verze tohoto balku neobsahovaly dn konfiguran soubor a " +"oekvaly, e uivatel vytvo vlastn /etc/lircd.conf a /etc/lircmd.conf" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "Nov umstn pro tyto soubory je /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Pokusm se dt ve do podku, ale pro ppad, e se mi to nepoda, " +"ujistte se, e dn z konfiguranch soubor LIRC nen pmo v /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "Ml by lircmd pouvat IntelliMouse protokol msto IMP2/2" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"Metoda, kterou lircmd pouv, aby simuloval my, nen kompatibiln s IMPS/2 " +"protokolem, a proto byla pidna podpora pro protokol IntelliMouse, kter je " +"nyn upednostovan." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"V souasnosti POUVTE lircmd s protokolem IMPS/2, a proto vs vyzvm, " +"abyste aktualizovali /etc/lirc/lircmd.cond a konfiguraci programu, kter " +"pouv lircmd jako my s protokolem IntelliMouse." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "POZNMKA: gpm odmtne pouvat lircmd jako my s protokolem IMPS/2." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "Smazat /var/log/lircd?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC nyn pouv syslog pro zaznamenvn udlost. To znamen, e /var/log/" +"lircd u nem smysl." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Pokud odpovte 'ne' na tuto otzku /var/log/lircd zstane zachovn a budete " +"se muset o nj postarat sami." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "Peloit ovladae:" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: Dlkov ovldn ATI/NVidia/X10 I & II RF\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB vysla\n" +#~ " gpio: TV karty FlyVideo98, Avermedia, MiRO a mnoho dalch\n" +#~ " i2c: TV karty Hauppauge a PixelView\n" +#~ " igorplugusb: USB IR pijma od Igora Ceska\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR porty (nap. na desce ECS K7S5A nebo Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Dlkov ovldn pro Windows Media Center (star verze, " +#~ "MicroSoft USB ID)\n" +#~ " mceusb2: Dlkov ovldn pro Windows Media Center (novj verze, " +#~ "Philips aj.)\n" +#~ " parallel: Podomcku vyroben IR pijma pipojen na paraleln port\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Modul\n" +#~ " serial: Podomcku vyroben IR pijma pipojen na sriov port\n" +#~ " sir: Infraerven port (IRDA)\n" +#~ " streamzap: Dlkov ovldn Streamzap PC" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "Pokusit se automaticky zvolit podporu pro v hardware?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "Nainstaloval jste a nastavil jste LIRC. Je mon odhadnout jak jadern " +#~ "moduly jsou poteba a jak maj bt jejich parametry z vaich pedchozch " +#~ "odpovd." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Nepotebujete dn dal jadern moduly." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "Pokud nechcete vytvet jadern moduly pro njak jin systm, mete " +#~ "pravdpodobn odebrat tento balk." + +#~ msgid "How to build the binary modules package" +#~ msgstr "Jak vytvoit balk s binrnmi moduly" + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Pro nvod jak vytvoit debian balk s binrnmi moduly tte: /usr/share/" +#~ "doc/lirc-modules-source/README.Debian" + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "Krtk nvod:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "Standard, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "Podporovat nsledujc typ ITE8705/12 CIR portu:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "Nsledujc seznam obsahuje krtk popis rznch dostupnch monost:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " Standard: Standardn nastaven ipu\n" +#~ " DigiMatrix: Nastaven pro integrovan ip Asus DigiMatrix" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Ostatn" + +#~ msgid "Type of serial device to support" +#~ msgstr "Jak typ sriovho zazen by ml bt podporovn?" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Zbyl podporovan zazen.\n" +#~ "\n" +#~ "Pokud nevte jak jsou ostatn zazen, mli byste pravdpodobn zvolit " +#~ "\"Ostatn\"." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "Je vae sriov infraerven zazen vysla?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "M bt nosn signl generovn softwarem?" + +#~ msgid "IO port of your IR serial device:" +#~ msgstr "IO port vaeho infraervenho zazen:" + +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Peruen piazen vaemu infraervenmu zazen:" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Ostatn" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Kter typ sriovho infraervenho zazen by ml bt podporovn?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "Nsledujc seznam obsahuje krtk popisy monost, kter ukazuj co tyto " +#~ "monosti znamenaj." + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Zbyl podporovan zazen." + +#~ msgid "IO port of your SIR device:" +#~ msgstr "IO port vaeho sriovho infraervenho zazen:" + +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Peruen piazen vaemu sriovmu infraervenmu zazen:" + +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "IO port vaeho paralelnho infraervenho zazen:" + +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Peruen piazen vaemu paralelnmu infraervenmu zazen:" + +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "asova pro vae paraleln infraerven zazen:" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Pokusit se automaticky peloit moduly?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Je mon vytvoit a nainstalovat vmi zvolen jadern moduly pro LIRC, " +#~ "dokud na tomto potai jsou nainstalovny zdrojov kdy souasnho jdra " +#~ "(a peklada gcc)." + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "I kdy se takto rozhodnete, mli byste vytvet a instalovat balk s " +#~ "binrnmi 'jadernmi moduly', tak aby sprvce balk ml pehled nad " +#~ "soubory." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Kde jsou vae zdrojov kdy jdra?" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "Pro vytvoen jadernch modul potebuji zdrojov kdy jdra." + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} nen cesta ke zdrojovm kdm jdra" --- lirc-0.8.3~pre1.orig/debian/po/es.po +++ lirc-0.8.3~pre1/debian/po/es.po @@ -0,0 +1,504 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: 0.8.0\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-09-28 19:10+0200\n" +"Last-Translator: Héctor García Álvarez \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "¿Crear los nodos de dispositivo para LIRC si aún no existen?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC necesita algunos ficheros en /dev/ para funcionar:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc /dev/lircd y /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "¿Desea reconfigurar LIRC?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"Ya se ha configurado LIRC. Reconfigurarlo puede arruinar parte de su " +"configuración manual en /etc/lirc/hardware.conf." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" +"Sin embargo, se preservarán los comentarios, LIRC_ARGS y cualquier otro " +"código desconocido." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "Tenga cuidado con los ficheros de configuración antiguos." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Versiones anteriores de este paquete no incluían ningún fichero de " +"configuración y esperaban que el usuario escribiera su propio /etc/lircd." +"conf y /etc/lircmd.conf." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "La nueva ubicación de estos ficheros es /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Trataré de organizar las cosas apropiadamente pero, en caso de que no pueda, " +"por favor asegúrese de no dejar ningún fichero de configuración de LIRC " +"directamente en /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd debería usar el protocolo IntelliMouse en vez de IMPS/2" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"El método que usa lircmd para simular un ratón no es compatible con IMPS/2 " +"así que se ha añadido soporte para IntelliMouse y es ahora el protocolo " +"preferido." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Ahora se está usando lircmd con el protocolo IMPS/2 y debería actualizar /" +"etc/lirc/lircmd.conf y la configuración de cualquier programa que use lircmd " +"como ratón para que use el protocolo IntelliMouse en su lugar." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "NOTA: gpm se negará a usar lircmd como ratón con el protocolo IMPS/2." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "¿Borrar /var/log/lircd?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC ahora usa syslog como mecanismo de registro. Esto significa que /var/" +"log/lircdya no es pertinente." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Si contesta 'no' a esta pregunta, /var/log/lircd quedará en su sitio y " +"tendrá que encargarse usted mismo de él." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "Seleccione los controladores que desea compilar:" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: Mando ATI/NVidia/X10 I & II RF\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: Transceptor COMMANDIR USB\n" +#~ " gpio: Tarjetas TV de FlyVideo98, Avermedia, MiRO y muchas otras\n" +#~ " i2c: Tarjetas TV de Hauppauge y PixelView\n" +#~ " igorplugusb: Receptor USB IR de Igor Cesko\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: Puertos ITE IT8705/12 CIR (ej. en la ECS K7S5A o Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Mandos de Windows Media Center (versión antigua, MicroSoft " +#~ "USB ID)\n" +#~ " mceusb2: Mandos de Windows Media Center (versión nueva, Philips y " +#~ "otros)\n" +#~ " parallel: Receptor casero por puerto paralelo\n" +#~ " sasem: Módulo Dign HV5 HTPC IR/VFD\n" +#~ " serial: Receptor casero por puerto serie\n" +#~ " sir: Infrarojos por puerto serie (IRDA)\n" +#~ " streamzap: Mando Streamzap PC" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "¿Trato de incluir automágicamente soporte para su hardware?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "Ha instalado y configurado LIRC. Puedo tratar de averiguar que módulos " +#~ "del núcleo son necesarios y sus respectivos parámetros a partir de sus " +#~ "respuestas anteriores." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "No necesita ningún módulo adicional para el núcleo." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "A no ser que quiera compilar los módulos del núcleo de LIRC para otro " +#~ "sistema, es probable que pueda borrar este paquete." + +#~ msgid "How to build the binary modules package" +#~ msgstr "Cómo compilar usted mismo el paquete de módulos binarios." + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Puede encontrar instrucciones sobre cómo compilar manualmente el paquete " +#~ "debian con los módulos binarios en /usr/share/doc/lirc-modules-source/" +#~ "README.Debian" + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "Guía rápida:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "Estandar, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "Tipo de puerto ITE8705/12 CIR a soportar:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "En la siguiente lista se describen escuetamente las diferentes opciones " +#~ "disponibles:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " Standard: Chip de configuración estandar\n" +#~ " DigiMatrix: Configuraciuón para el chip Asus DigiMatrix" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Otro" + +#~ msgid "Type of serial device to support" +#~ msgstr "Tipo de dispositivo serie a soportar" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Otro: Cualquier otro dispositivo soportado.\n" +#~ "\n" +#~ "Si no sabe qué son los otros dispositivos, posiblemente debera escoger " +#~ "\"Otro\"." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "¿Su dispositivo infrarrojo es un emisor?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "¿Quiere generar la señal portadora por software?" + +#~ msgid "IO port of your IR serial device:" +#~ msgstr "Puerto de entrada/salida de su dispositivo infrarrojo:" + +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Interrupción del dispositivo serie:" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Otro" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "¿Para qué tipo de dispositivo SIR desea incluir soporte?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "Las siguientes listas son descripciones cortas de las opciones para " +#~ "mostrar lo que significan." + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (ipuerto serie compatible 16x50 " +#~ "UART)\n" +#~ " Otro: Cualquier otro dispositivo soportado." + +#~ msgid "IO port of your SIR device:" +#~ msgstr "Puerto de entrada/salida de su dispositivo SIR:" + +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Interrupción de su dispositivo SIR:" + +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "Puerto de entrada/salida de su dispositivo de puerto paralelo" + +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Interrupción de su dispositivo de puerto paralelo:" + +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "Temporizador usado por su dispositivo de puerto paralelo:" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "¿Trato de compilar automáticamente los módulos?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Es posible compilar e instalar lo módulos de lirc, siempre y cuando " +#~ "tengalos fuentes (y el gcc) de su kernel actual." + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Sin embargo, aunque haga esto, debería instalar un paquete de «módulos del " +#~ "kernel»para que el gestor de paquetes pueda tratar adecuadamente los " +#~ "ficheros." + +#~ msgid "Where is your kernel source?" +#~ msgstr "¿Dónde se encuentran las fuentes del núcleo?" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Para compilar los módulos de lirc, son necesarios los fuentes del núcleo." + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} no es un árbol de fuentes del núcleo válido." + +#~ msgid "" +#~ "i2c: TV cards from Hauppauge and PixelView. Needs the new I2C stack " +#~ "(present on 2.4 kernels). You can get it at:" +#~ msgstr "" +#~ "i2c: tarjetas de televisión de Hauppauge y PixelView. Se necesita la " +#~ "nueva pila I2C que únicamente se encuentra en núcleos de la serie 2.4. " +#~ "Puede obtenerla de " + +#~ msgid "http://www2.lm-sensors.nu/~lm78/." +#~ msgstr "http://www2.lm-sensors.nu/~lm78/." + +#~ msgid "" +#~ "gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others. Needs " +#~ "bttv version 0.7.45 or higher (present on 2.4 kernels). If you are using " +#~ "the bttv tarball, copy it to the kernel." +#~ msgstr "" +#~ "gpio: tarjetas de televisión de FlyVideo98, Avermedia, MiRO y otros " +#~ "muchos. Necesita el controlador bttv versión 0.7.45 (que se encuentra en " +#~ "núcleos 2.4). Si usa el tarball de bttv, cópielo en el núcleo." + +#~ msgid "parallel: Custom parallel-port receiver." +#~ msgstr "paralelo: Receptor personalizado para el puerto paralelo." + +#~ msgid "serial: Serial-port driver." +#~ msgstr "serie: Controlador para el puerto serie." + +#~ msgid "sir: Serial InfraRed (IRDA)." +#~ msgstr "sir: Infrarrojos a través del puerto serie (IRDA)." + +#~ msgid "it87: ITE IT8705 and IT8712 CIR ports (e.g. on the ECS K7S5A)." +#~ msgstr "it87: Puertos ITE IT8705 y IT8712 CIR (por ej. en el ECS K7S5A)." + +#~ msgid "bt829: Tekram M230 Mach64" +#~ msgstr "bt829: Tekram M230 Mach64" + +#~ msgid "Quick walktrough:" +#~ msgstr "A modo de resumen:" + +#~ msgid "cd /usr/src/" +#~ msgstr "cd /usr/src/" + +#~ msgid "tar -xzf lirc-modules.tar.gz" +#~ msgstr "tar -xzf lirc-modules.tar.gz" + +#~ msgid "cd modules/lirc" +#~ msgstr "cd modules/lirc" + +#~ msgid "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" +#~ msgstr "make binary-modules KSRC=/ruta/de/mis/fuentes/del/núcleo/" + +#~ msgid "dpkg -i ../../irc-modules-*.deb" +#~ msgstr "dpkg -i ../../lirc-modules-*.deb" + +#~ msgid "ANIMAX: Anir Multimedia Magic" +#~ msgstr "ANIMAX: Anir Multimedia Magic" + +#~ msgid "IRDEO: IRdeo" +#~ msgstr "IRDEO: IRdeo" + +#~ msgid "ACTISYS_ACT200L: Actisys Act200L dongle." +#~ msgstr "ACTISYS_ACT200L: Actisys Act200L dongle." + +#~ msgid "TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)" +#~ msgstr "TEKRAM: Tekram Irmate 210 (16x50 UART puerto serie compatible)" + +#~ msgid "Other: Any other supported device." +#~ msgstr "Otro: Cualquier otro dispositivo soportado." --- lirc-0.8.3~pre1.orig/debian/po/fr.po +++ lirc-0.8.3~pre1/debian/po/fr.po @@ -0,0 +1,445 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: lirc 0.8.0\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-08-20 20:42+0200\n" +"Last-Translator: Jean-Luc Coulon (f5ibh) \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "Crer ces fichiers de priphriques s'ils n'existent pas dj?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "" +"Les fichiers de priphriques suivants sont ncessaires au fonctionnement de " +"LIRC:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc, /dev/lircd et /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Faut-il reconfigurer LIRC?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"Une configuration antrieure de LIRC existe dj. Reconfigurer le paquet " +"peut corrompre la configuration que vous auriez faite vous-mme dans /etc/" +"lirc/hardware.conf." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" +"Cependant, les commentaires, LIRC_ARGS et les parties inconnues seront " +"conservs." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "" +"Il est recommand de sauvegarder vos fichiers de configuration actuels." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Les versions antrieures de ce paquet ne comportaient aucun fichier de " +"configuration. L'utilisateur devait crer lui-mme les fichiers de " +"configuration /etc/lircd.conf et /etc/lircmd.conf." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "Ces fichiers se trouvent maintenant dans le rpertoire /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Ce script va tenter d'installer les fichiers de configuration de LIRC leur " +"emplacement correct. En cas d'chec, assurez-vous qu'aucun de ces fichiers " +"ne subsiste directement sous /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd devrait utiliser le protocole IntelliMouse la place d'IMPS/2." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"La mthode employe par lircmd pour simuler une souris n'est pas compatible " +"avec le protocole IMPS/2. Le protocole IntelliMouse a donc t ajout et il " +"est recommand de l'utiliser." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Lircmd *est* actuellement utilis avec le protocole IMPS/2. Vous devriez " +"mettre jour /etc/lirc/lircmd.conf, ainsi que la configuration des " +"programmes utilisant lircmd comme souris. Veillez ce qu'IntelliMouse soit " +"le protocole utilis." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" +"Note: lircmd ne pourra pas tre utilis comme souris par gpm si vous " +"choisissez IMPS/2." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "Faut-il effacer /var/log/lircd?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC utilise maintenant syslog pour grer ses journaux. Cela signifie que le " +"fichier /var/log/lircd n'est plus utilis." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Si vous ne choisissez pas cette option, le fichier /var/log/lircd sera " +"conserv et vous devrez le grer vous-mme." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "Pilotes construire:" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: commande hautes frquences ATI/NVidia/X10 I et II\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: transceiver USB COMMANDIR\n" +#~ " gpio: cartes TV de FlyVideo98, Avermedia, MiRO et beaucoup\n" +#~ " d'autres\n" +#~ " i2c: cartes TV de Hauppauge et PixelView\n" +#~ " igorplugusb: rcepteur infrarouge USB de Cesko\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (p. ex. sur ECS K7S5A\n" +#~ " ou Digimatrix d'Asus\n" +#~ " mceusb: Windows Media Center Remotes (ancienne version,\n" +#~ " ID USB MicroSoft)\n" +#~ " mceusb2: Windows Media Center Remotes (nouvelle version,\n" +#~ " Philips et al.)\n" +#~ " parallel: rcepteur de fabrication personnelle sur le port\n" +#~ " parallle\n" +#~ " sasem: module HV5 HTPC IR/VFD de Dign\n" +#~ " serial: pilote pour ralisation personnelle sur le port srie\n" +#~ " sir: infrarouge srie (IRDA)\n" +#~ " streamzap: tlcommande de PC Streamzap" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "Dtecter automatiquement le mode de gestion de votre matriel?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "LIRC a t install et configur. Les modules du noyau et leurs " +#~ "paramtres peuvent tre dtermins automatiquement partir des rponses " +#~ "aux questions prcdentes." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Aucun module supplmentaire du noyau n'est ncessaire." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ " moins que vous ne dsiriez construire les modules LIRC du noyau pour un " +#~ "autre systme, ce paquet peut maintenant tre retir." + +#~ msgid "How to build the binary modules package" +#~ msgstr "Mthode de construction du paquet de modules binaires" + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Les instructions concernant la faon de construire le paquet Debian de " +#~ "modules binaires se trouvent dans le fichier /usr/share/doc/lirc-modules-" +#~ "source/README.Debian." + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "Mthode concise:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "Standard, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "Type de port CIR ITE8705/12 CIR devant tre gr:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "La liste suivante donne une courte description des diffrentes options " +#~ "disponibles:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " Standard: puces paramtrage standard\n" +#~ " DigiMatrix: paramtrage pour les puces Asus DigiMatrix sur la carte" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Autre" + +#~ msgid "Type of serial device to support" +#~ msgstr "Type de priphrique srie devant tre gr:" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Autre: tout autre priphrique gr.\n" +#~ "\n" +#~ "Si vous ne savez pas ce que sont les autres priphriques, vous devriez " +#~ "probablement choisir Autre." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "Le priphrique infrarouge (IR) srie est-il un metteur?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Crer le signal de porteuse de faon logicielle?" + +#~ msgid "IO port of your IR serial device:" +#~ msgstr "Port d'entres-sorties du priphrique IR srie:" + +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Interruption (IRQ) du priphrique IR srie:" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Autre" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Type de priphrique infrarouge srie (SIR) devant tre gr:" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "La liste suivante donne une courte description des diffrentes options " +#~ "ainsi que leur signification." + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: dongle Actisys Act200L.\n" +#~ " TEKRAM: Tekram Irmate 210 (port srie compatible avec un UART\n" +#~ " compatible 16x50)\n" +#~ " Autre: tout autre priphrique gr." + +#~ msgid "IO port of your SIR device:" +#~ msgstr "Port d'entres-sorties du priphrique SIR:" + +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Interruption (IRQ) du priphrique SIR:" + +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "Port d'entres-sorties du priphrique IR parallle:" + +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Interruption (IRQ) du priphrique IR parallle:" + +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "Temporisateur (timer) du priphrique IR parallle:" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Essayer de construire les modules automatiquement?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Il est possible de construire et d'installer les modules lirc du noyau " +#~ "la condition que les sources du noyau (et gcc) soient installes sur " +#~ "votre ordinateur." + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Mme si vous choisissez cette option, il est recommand de construire et " +#~ "d'installer un paquet binaire de modules du noyau de faon que ces " +#~ "fichiers puissent tre grs par le gestionnaire de paquets." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Emplacement des sources du noyau:" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Pour construire les modules lirc du noyau, il est ncessaire d'avoir les " +#~ "sources du noyau avec lequel ils seront utiliss." + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "Les sources du noyau ne semblent pas se trouver dans ${ksrc}." --- lirc-0.8.3~pre1.orig/debian/po/ja.po +++ lirc-0.8.3~pre1/debian/po/ja.po @@ -0,0 +1,424 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-07-26 22:00+0900\n" +"Last-Translator: Kenshi Muto \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "存在しない場合、LIRC デバイスノードを作成しますか?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC は動作のために /dev/ 以下にいくつかのファイルを必要とします:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc、/dev/lircd、/dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "LIRC を再設定しますか?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"LIRC はすでに設定されており、これを再設定すると、あなたが /etc/lirc/hardware." +"conf に手動で行った設定を失う可能性があります。" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "ただし、LIRC_ARGS およびその他の未知のコードは残されます。" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "古い設定ファイルには注意してください" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"このパッケージの以前のバージョンでは、設定ファイルを含んでおらず、ユーザが" +"ユーザ自身で /etc/lircd.conf および /etc/lircmd.conf を置くことを期待していま" +"した。" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "これらのファイルの新しい場所は、/etc/lirc/ です。" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"正しく整えようとはしますが、LIRC 設定ファイルが /etc/ ディレクトリに残されて" +"いないか確認してください。" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd は IMPS/2 の代わりに IntelliMouse プロトコルを使います" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"マウスをシミュレーションする lircmd メソッドは IMPS/2 プロトコル互換ではあり" +"ません。IntelliMouse サポートが追加され、現在はこのプロトコルが使われていま" +"す。" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"あなたは現在 IMPS/2 プロトコルで lircmd を使っています。/etc/lirc/lircmd." +"conf および lircmd をマウスとして使う各プログラムの設定を、IntelliMouse プロ" +"トコルを使うように更新するよう推奨します。" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" +"注意: gpm は lircmd を IMPS/2 プロトコルのマウスとして使うのを許しません。" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "/var/log/lircd を削除しますか?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC は現在、ログ機構として syslog を使います。/var/log/lircd はもはや関係し" +"ないことになります。" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"この質問に「いいえ」と答えると、/var/log/lircd は残され、あなた自身でその面倒" +"を見る必要があります。" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "構築するドライバ:" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: FlyVideo98, Avermedia, MiRO およびその他多くの TV カード\n" +#~ " i2c: Hauppauge および PixelView の TV カード\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ポート (ECS K7S5A や Asus DigiMatrix な" +#~ "ど)\n" +#~ " mceusb: Windows Media Center Remotes (旧バージョン, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (新バージョン, Philips など)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "ハードウェアサポートの自動選択を試行しますか?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "LIRC がインストールおよび設定済みです。必要とされるカーネルモジュールが何" +#~ "か、および以前に答えたパラメータの推測を試みることができます。" + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "追加のカーネルモジュールは必要ありません。" + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "ほかのシステム向けに LIRC カーネルモジュールを構築しないのであれば、この" +#~ "パッケージを恐らく削除できます。" + +#~ msgid "How to build the binary modules package" +#~ msgstr "バイナリモジュールパッケージの構築方法" + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "バイナリモジュール Debian パッケージをどのように構築するかの手引きについて" +#~ "は、/usr/share/doc/lirc-modules-source/README.Debian を読んでください。" + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "クイック手順:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "標準, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "サポートする ITE8705/12 CIR ポートのタイプ:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "以下のリストはそれぞれの利用可能な選択肢についての短い説明です:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " 標準: 標準のチップセットアップ\n" +#~ " DigiMatrix: Asus DigiMatrix オンボードチップのセットアップ" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, その他" + +#~ msgid "Type of serial device to support" +#~ msgstr "サポートするシリアルデバイスのタイプ" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " その他: それ以外のサポート済みデバイス。\n" +#~ "\n" +#~ "デバイスが何かよくわからなければ、おそらく \"その他\" を選ぶのがよいでしょ" +#~ "う。" + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "シリアル IR デバイスはトランスミッタですか?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "ソフトウェアでキャリア信号を生成しますか?" + +#~ msgid "IO port of your IR serial device:" +#~ msgstr "IR シリアルデバイスが使う IO ポート:" + +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "IR シリアルデバイスが使う IRQ:" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, その他" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "どのタイプの SIR デバイスをサポートしますか?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "以下のリストは各選択肢が何を意味しているかの短い説明です。" + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: Actisys Act200L ドングル\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART 互換シリアルポート)\n" +#~ " その他: その他のサポート済みデバイス" + +#~ msgid "IO port of your SIR device:" +#~ msgstr "SIR デバイスが使う IO ポート:" + +#~ msgid "IRQ of your SIR device:" +#~ msgstr "SIR デバイスが使う IRQ:" + +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "パラレル IR デバイスが使う IO ポート:" + +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "パラレル IR デバイスが使う IRQ:" + +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "パラレル IR デバイスに使うタイマー:" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "モジュールの自動構築を試行しますか?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "現在のカーネルのソース (および gcc) がコンピュータで提供されているなら、" +#~ "lirc カーネルモジュールの構築およびインストールを試行できます。" + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "\"はい\" を選ぶにせよ、パッケージマネージャがファイルを追跡できるよう、バ" +#~ "イナリ 'カーネルモジュール' パッケージを構築してインストールすべきです。" + +#~ msgid "Where is your kernel source?" +#~ msgstr "カーネルソースはどこにありますか?" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "lirc カーネルモジュールを構築するために、カーネルソースが必要です。" + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} は有効なカーネルソースツリーではありません" --- lirc-0.8.3~pre1.orig/debian/po/nl.po +++ lirc-0.8.3~pre1/debian/po/nl.po @@ -0,0 +1,442 @@ +# translation of lirc_0.8.0-5_templates.po to dutch +# This file is distributed under the same license as the lirc package. +# +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc_0.8.0-5_nl\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-06-15 20:03+0100\n" +"Last-Translator: Kurt De Bree \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "Wilt u LIRC-apparaatbestanden aanmaken wanneer deze ontbreken?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC heeft een aantal bestanden onder /dev/ nodig om te werken:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc /dev/lircd en /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Wilt u LIRC opnieuw configureren?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"LIRC is reeds geconfigureerd, herconfigureren kan ertoe leiden dat uw " +"handmatige aanpassingen in /etc/lirc/hardware.conf niet meer werken." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" +"Nochtans zullen de commentaren, LIRC_ARGS en andere onbekende code worden " +"bewaard." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "De oude configuratiebestanden dienen verder door u beheerd te worden." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"De vorige versies van dit pakket bevatten geen configuratiebestanden en " +"verwachtten dat de gebruiker zijn eigen /etc/lircd.conf en /etc/lircmd.conf " +"zou aanmaken." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "De nieuwe locatie van deze bestanden is /etc/lirc." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Er wordt geprobeerd om alles automatisch te herschikken. Als dit niet goed " +"gaat, gelieve ervoor te zorgen dat er zich geen LIRC-configuratiebestanden " +"bevinden onder /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd zou het IntelliMouse-protocol i.p.v. IMPS/2 moeten gebruiken." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"De door lircmd gebruikte methode voor het nabootsen van een muis is " +"incompatibel met het IMPS/2-protocol. Ondersteuning voor het IntelliMouse-" +"protocol is daarom toegevoegd, en is nu het te verkiezen protocol." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"U gebruikt momenteel lircmd met IMPS/2-protocol. Aanbevolen wordt om /etc/" +"lirc/lircmd.conf (en de configuratie van programma's die lircmd als muis " +"gebruiken) te wijzigen naar gebruik van het IntelliMouse-protocol." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" +"MERK OP: gpm zal weigeren om lircmd met het IMPS/2-protocol te gebruiken als " +"muis." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "Wilt u dat /var/log/lircd verwijderd wordt?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC gebruikt nu syslog voor het logboek. Dit betekent dat /var/log/lircd " +"niet meer relevant is." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Als u deze vraag met \"nee\" beantwoordt, zal /var/log/lircd niet worden " +"verwijderd en zult u dit bestand zelf moeten beheren." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "Selecteer de te bouwen stuurprogramma's:" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV-kaarten van FlyVideo98, Avermedia, MiRO en vele anderen\n" +#~ " i2c: TV-kaarten van Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A of Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (oude versie, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (nieuwe versie, Philips et " +#~ "al.)\n" +#~ " parallel: Zelfgemaakte parallelle poortontvanger\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Zelfgemaakt stuurprogramma voor seriële poort\n" +#~ " sir: Seriële Infrarood (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "" +#~ "Wilt u de de benodigde ondersteuning voor uw hardware automatisch laten " +#~ "detecteren?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "U heeft LIRC geïnstalleerd en geconfigureerd. Er kan geprobeerd worden om " +#~ "de benodigde kernelmodules en bijbehorende parameters uit uw vorige " +#~ "antwoorden af te leiden." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "U heeft geen extra kernelmodules nodig." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "Tenzij u kernelmodules met LIRC-ondersteuning voor een ander systeem wilt " +#~ "bouwen, kunt u dit pakket waarschijnlijk verwijderen." + +#~ msgid "How to build the binary modules package" +#~ msgstr "Hoe het binaire modulepakket te bouwen." + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Instructies voor het bouwen van binaire modules als debian-pakket vindt u " +#~ "in /usr/share/doc/lirc-module-source/README.Debian" + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "Te volgen procedure:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "Standaard, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "Te ondersteunen type ITE8705/12 CIR-poort:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "De volgende lijst omvat korte beschrijvingen van de beschikbare opties:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " Standaard: Standaard installatie-chip\n" +#~ " DigiMatrix: Installatie voor Asus DigiMatrix onboard chip" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Andere" + +#~ msgid "Type of serial device to support" +#~ msgstr "Welk type serieel apparaat moet worden ondersteund?" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Andere: Elk ander ondersteund apparaat.\n" +#~ "\n" +#~ "Kies \"Andere\" als u niet weet wat voor apparaten de andere zijn." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "Is uw seriële IR-apparaat een zender?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Moet de signaaldrager softwarematig geproduceerd worden?" + +#~ msgid "IO port of your IR serial device:" +#~ msgstr "IO-poort van uw seriële IR-apparaat:" + +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "IRQ van uw seriële IR-apparaat:" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Andere" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Welk type SIR-apparaat moet worden ondersteund?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "De volgende lijsten zijn korte beschrijvingen van de opties om hun " +#~ "betekenis te tonen." + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatibele seriële " +#~ "poort)\n" +#~ " Andere: Elk ander ondersteund apparaat." + +#~ msgid "IO port of your SIR device:" +#~ msgstr "IO-poort van uw SIR-apparaat:" + +#~ msgid "IRQ of your SIR device:" +#~ msgstr "IRQ van uw SIR-apparaat:" + +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "IO-poort van uw parallelle IR-apparaat:" + +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "IRQ van uw parallelle IR-apparaat:" + +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "Timer die voor uw parallelle IR-apparaat gebruikt wordt:" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Wilt u proberen om de modules automatisch te bouwen?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Wanneer de broncode van de huidige kernel (en gcc) op uw systeem aanwezig " +#~ "zijn, kan geprobeerd worden om de voor lirc benodigde kernelmodules " +#~ "automatisch te bouwen en te installeren." + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Zelfs wanneer u \"ja\" selecteert, kunt u best een pakket met de binaire " +#~ "kernelmodules installeren, omdat dit de programmatuur voor pakketbeheer " +#~ "in staat stelt bij te houden welke bestanden geïnstalleerd zijn." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Waar is de broncode van uw kernel?" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Om kernelmodules met lirc-ondersteuning te bouwen, is de broncode nodig " +#~ "van de kernel die u van plan bent te gebruiken." + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} bevat geen geldige kernel broncode." --- lirc-0.8.3~pre1.orig/debian/po/pt.po +++ lirc-0.8.3~pre1/debian/po/pt.po @@ -0,0 +1,425 @@ +# Portuguese translation of lirc. +# This file is distributed under the same license as the lirc package. +# Rui Branco , 2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: lirc 0.8.0-4\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2006-06-12 23:34+0100\n" +"Last-Translator: Rui Branco \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "Create LIRC device nodes if they are not there?" +msgstr "Criar os dispositivos do LIRC se não estiverem presentes?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "O LIRC precisa de alguns ficheiros em /dev/ para funcionar:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc /dev/lircd e /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Deseja reconfigurar o LIRC?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"O LIRC já se encontra configurado, reconfigurá-lo novamente pode estragar " +"alguma configuração manual em /etc/lirc/hardware.conf." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "" +"Comentários existentes, LIRC_ARGS e outro código desconhecido será " +"preservado." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "You should take care of old configuration files" +msgstr "Deverá ter cuidado com ficheiros de configuração antigos" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Versões anteriores deste pacotes não incluíam qualquer ficheiro de " +"configuração sendo esperado que o utilizador colocasse o seu em /etc/lircd." +"conf·e·/etc/lircmd.conf" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "A nova localização para estes ficheiros é /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Tudo será instalado apropriadamente, no entanto em caso contrário, por favor " +"certifique-se que nenhum dos ficheiros de configuração é deixado " +"directamente em /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "O lircmd deverá usar o protocolo IntelliMouse·em vez do IMPS/2" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"O método que o lircmd utiliza para simular o rato não é compatível com o " +"protocolo IMPS/2, assim o suporte ao IntelliMouse foi adicionado e é agora o " +"protocolo preferido." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Está actualmente a usar o lircmd com o protocolo IMPS/2, é encorajado a " +"actualizar o /etc/lirc/lircmd.conf e a configuração de qualquer programa que " +"utilize o lircmd como um rato para que use o protocolo IntelliMouse." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" +"Nota: o gpm recusará utilizar o lircmd como um rato com o protocolo IMPS/2." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "Delete /var/log/lircd?" +msgstr "Apagar /var/log/lircd?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"O LIRC usa agora o syslog como mecanismo de registo. Isto significa que o /" +"var/log/lircd já não faz sentido." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Se respondeu 'não' a esta questão o /var/log/lircd·será deixado no local e " +"terá que o controlar voçê mesmo." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#~ msgid "Drivers to build:" +#~ msgstr "Controladores a usar :" + +#, fuzzy +#~ msgid "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " pvr150: Hauppaugge PVR-150 IR Transmitter\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" +#~ msgstr "" +#~ " atiusb: ATI/NVidia/X10 I & II RF Remote\n" +#~ " bt829: Tekram M230 Mach64\n" +#~ " cmdir: COMMANDIR USB Transceiver\n" +#~ " gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others\n" +#~ " i2c: TV cards from Hauppauge and PixelView\n" +#~ " igorplugusb: Igor Cesko's USB IR Receiver\n" +#~ " imon: Soundgraph iMON MultiMedian IR/VFD\n" +#~ " it87: ITE IT8705/12 CIR ports (e.g. on the ECS K7S5A or Asus " +#~ "DigiMatrix)\n" +#~ " mceusb: Windows Media Center Remotes (old version, MicroSoft USB " +#~ "ID)\n" +#~ " mceusb2: Windows Media Center Remotes (new version, Philips et al.)\n" +#~ " parallel: Home-brew parallel-port receiver\n" +#~ " sasem: Dign HV5 HTPC IR/VFD Module\n" +#~ " serial: Home-brew serial-port driver\n" +#~ " sir: Serial InfraRed (IRDA)\n" +#~ " streamzap: Streamzap PC Remote" + +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "Tentar seleccionar automaticamente o suporte para o seu hardware?" + +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "Instalou e configurou o LIRC. É possível adivinhar que módulos o kernel " +#~ "irá precisar e os seus parâmetros a partir das suas respostas anteriores." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Não necessita de quaisquer módulos de kernel adicionais" + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "A menos que queira compilar módulos de kernel LIRC para outro sistema, " +#~ "poderá provavelmente remover este pacote." + +#~ msgid "How to build the binary modules package" +#~ msgstr "Como construir o pacote de módulos binário" + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Para instruções sobre como construir o pacote debian dos módulos binários " +#~ "leia: /usr/share/doc/lirc-modules-source/README.Debian" + +#~ msgid "" +#~ "Quick walkthrough:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" +#~ msgstr "" +#~ "Ajuda rápida:\n" +#~ " cd /usr/src/\n" +#~ " tar -xzf lirc-modules.tar.gz\n" +#~ " cd modules/lirc\n" +#~ " debian/rules binary-modules KSRC=/path/of/my/kernel/source/\n" +#~ " dpkg -i ../../irc-modules-*.deb" + +#~ msgid "Standard, DigiMatrix" +#~ msgstr "Standard, DigiMatrix" + +#~ msgid "Type of ITE8705/12 CIR port to support:" +#~ msgstr "Tipo de porta ITE8705/12 CIR a suportar:" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "A lista seguinte inclui pequenas descrições de diferentes opções " +#~ "disponíveis:" + +#~ msgid "" +#~ " Standard: Standard setup chip\n" +#~ " DigiMatrix: Setup for Asus DigiMatrix onboard chip" +#~ msgstr "" +#~ " Standard: Configuração de chip standard \n" +#~ " DigiMatrix: Configuração para o chip onboard Asus DigiMatrix" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Outro" + +#~ msgid "Type of serial device to support" +#~ msgstr "Tipo de dispositivo série a suportar" + +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Qualquer outro dispositivo disponível.\n" +#~ "\n" +#~ "Se não souber quais os outros dispositivos, deverá escolher \"Other\"." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "O seu dispositivo série IR é um transmissor?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Deverá o sinal de transporte ser gerado por software?" + +#~ msgid "IO port of your IR serial device:" +#~ msgstr "Porta IO do seu dispositivo série IR:" + +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "IRQ do seu dispositivo série IR:" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Other" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Que tipo de dispositivo SIR deverá ser suportado?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "A lista seguinte contém pequenas descrições do significado das opções." + +#~ msgid "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Any other supported device." +#~ msgstr "" +#~ " ACTISYS_ACT200L: Actisys Act200L dongle.\n" +#~ " TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)\n" +#~ " Other: Qualquer outro dispositivo suportado." + +#~ msgid "IO port of your SIR device:" +#~ msgstr "Porta IO do seu dispositivo SIR:" + +#~ msgid "IRQ of your SIR device:" +#~ msgstr "IRQ do seu dispositivo SIR:" + +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "Porta IO do seu dispositivo paralelo IR:" + +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "IRQ do seu dispositivo paralelo IR:" + +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "Temporizador utilizado pelo seu dispositivo IR:" + +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Tentar construir automaticamente os módulos?" + +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "É possível construir e instalar os módulos do lirc para o kernel contando " +#~ "que a fonte do seu kernel actual (e o gcc) estejam presentes no seu " +#~ "computador." + +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Mesmo que tenha escolhido esta opção, deverá construir e instalar um " +#~ "pacote de 'kernel modules' binário para que o gestor de pacotes possa " +#~ "manter um registo dos ficheiros." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Onde se encontra a sua fonte do kernel?" + +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Para construir os módulos de kernel do lirc, as fontes do kernel serão " +#~ "necessárias." + +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} não é uma árvore(pasta) fonte do kernel válida" --- lirc-0.8.3~pre1.orig/debian/po/sv.po +++ lirc-0.8.3~pre1/debian/po/sv.po @@ -0,0 +1,441 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc 0.7.1pre2-9\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2005-11-17 02:25+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: sv\n" +"X-Poedit-Country: sv\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +#, fuzzy +msgid "Create LIRC device nodes if they are not there?" +msgstr "Ska jag skapa enhetsnoder fr LIRC om de inte redan finns?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC behver ngra filer under /dev/ fr att den ska fungera:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "/dev/lirc /dev/lircd och /dev/lircm" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Vill du konfigurera om LIRC?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"LIRC r redan konfigurerad, att konfigurera om den kan frstra delar av din " +"hopsnickrade konfiguration i /etc/lirc/hardware.conf." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "Dock kommer kommentarer, LIRC_ARGS och annan oknd kod att behllas." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +#, fuzzy +msgid "You should take care of old configuration files" +msgstr "Du br ta hand om gamla konfigurationsfiler." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Tidigare versioner av detta paket inkluderade inte ngon konfigurationsfil " +"och frvntade sig att anvndaren skapade sina egna /etc/lircd.conf och /etc/" +"lircmd.conf" + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "Den nya platsen fr dessa filer r /etc/lirc/." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Jag kommer att frska arrangera saker rtt men om jag inte kan br du " +"kontrollera att ingen av LIRCs konfigurationsfiler lmnas direkt under /etc/." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd br anvnda IntelliMouse-protokollet istllet fr IMPS/2." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"Metoden som lircmd anvnder fr att simulera en mus r inte kompatibel med " +"IMPS/2-protokollet s att std fr IntelliMouse har lagts till och r nu det " +"fredragna protokollet." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Du ANVNDER fr nrvarande lircmd med IMPS/2-protokollet och det " +"rekommenderas att du uppdaterar /etc/lirc/lircmd.conf och konfigurationen " +"fr de program som anvnder lircmd som en mus med IntelliMouse-protokollet." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "" +"NOTERA: gpm kommer att vgra anvnda lircmd som en mus med IMPS/2-" +"protokollet." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +#, fuzzy +msgid "Delete /var/log/lircd?" +msgstr "Ska jag ta bort /var/log/lircd?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"LIRC anvnder numera syslog som en loggmekanism. Detta betyder att /var/log/" +"lircd inte lngre r relevant." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "" +"Om du svarar \"nej\" till denna frga kommer /var/log/lircd att lmnas kvar " +"och du mste ta hand om den sjlv." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#, fuzzy +#~ msgid "Drivers to build:" +#~ msgstr "Vlj drivare att bygga." + +#, fuzzy +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "Ska jag frska att automatiskt vlja std fr din hrdvara?" + +#, fuzzy +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "Du har installerat och konfigurerat LIRC. Jag kan frska att gissa vilka " +#~ "krnmoduler som behvs och deras parametrar frn dina tidigare svar." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Du behver inga ytterligare krnmoduler." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "Om du inte vill bygga krnmoduler fr LIRC fr ngra andra system kan du " +#~ "antagligen ta bort detta paket." + +#, fuzzy +#~ msgid "How to build the binary modules package" +#~ msgstr "Hur man bygger binra modulpaket." + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Fr instruktioner om hur man bygger det binra modulpaketet fr Debian, " +#~ "ls: /usr/share/doc/lirc-modules-source/README.Debian" + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "" +#~ "Fljande lista inkluderar korta beskrivningar av de olika valen som r " +#~ "tillgngliga:" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Annan" + +#, fuzzy +#~ msgid "Type of serial device to support" +#~ msgstr "Vilken typ av seriellenhet ska stdas?" + +#, fuzzy +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ "Om du inte vet vad de andra enheterna r br du antagligen vlja \"Annan" +#~ "\"." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "r din seriella IR-enhet en sndare?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Ska brarsignalen genereras av en programvara?" + +#, fuzzy +#~ msgid "IO port of your IR serial device:" +#~ msgstr "Vilken IO-port anvnder din IR-seriellenhet?" + +#, fuzzy +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Vilken IRQ anvnder din IR-seriellenhet?" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Annan" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Vilken typ av SIR-enhet ska stdas?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "" +#~ "Fljande listor r korta beskrivningar av valen fr att visa vad de " +#~ "betyder." + +#, fuzzy +#~ msgid "IO port of your SIR device:" +#~ msgstr "Vilken IO-port anvnder din SIR-enhet?" + +#, fuzzy +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Vilken IRQ anvnder din SIR-enhet?" + +#, fuzzy +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "Vilken IO-port anvnder din parallella IR-enhet?" + +#, fuzzy +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Vilken IRQ anvnder din parallella IR-enhet?" + +#, fuzzy +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "Vilken timer ska anvndas fr din parallella IR-enhet?" + +#, fuzzy +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Ska jag frska att bygga modulerna automatiskt?" + +#, fuzzy +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Jag kan frska att bygga och installera din lirc-krnmodul s lnge som " +#~ "kllkoden fr din nuvarande krna (och gcc) finns p din dator." + +#, fuzzy +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "ven om du vljer \"ja\" br du bygga och installera ett binrt " +#~ "\"krnmodul\"-paket s att pakethanteraren kan hlla koll p filerna. " + +#~ msgid "Where is your kernel source?" +#~ msgstr "Var finns kllkoden fr krnan?" + +#, fuzzy +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Fr att bygga krnmoduler behver jag kllkoden fr den krna du planerar " +#~ "att anvnda dom med." + +#, fuzzy +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} r inte ett giltigt krnkllkodstrd." + +#~ msgid "" +#~ "i2c: TV cards from Hauppauge and PixelView. Needs the new I2C stack " +#~ "(present on 2.4 kernels). You can get it at:" +#~ msgstr "" +#~ "i2c: TV-kort frn Hauppauge och PixelView. Behver den nya I2C-stacken " +#~ "(finns i 2.4-krnor). Du kan hmta den hr:" + +#~ msgid "http://www2.lm-sensors.nu/~lm78/." +#~ msgstr "http://www2.lm-sensors.nu/~lm78/." + +#~ msgid "" +#~ "gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others. Needs " +#~ "bttv version 0.7.45 or higher (present on 2.4 kernels). If you are using " +#~ "the bttv tarball, copy it to the kernel." +#~ msgstr "" +#~ "gpio: TV-kort frn FlyVideo98, Avermedia, MiRO och mnga andra. Behver " +#~ "bttv version 0.7.45 eller hgre (finns i 2.4-krnor). Om du anvnder en " +#~ "bttv-tarboll, kopiera den till krnan." + +#~ msgid "parallel: Custom parallel-port receiver." +#~ msgstr "parallel: Anpassad parallellportsmottagare." + +#~ msgid "serial: Serial-port driver." +#~ msgstr "serial: Seriellportsdrivare." + +#~ msgid "sir: Serial InfraRed (IRDA)." +#~ msgstr "sir: Seriell infrard (IRDA)." + +#~ msgid "it87: ITE IT8705 and IT8712 CIR ports (e.g. on the ECS K7S5A)." +#~ msgstr "it87: ITE IT8705 och IT8712 CIR-portar (exempelvis p ECS K7S5A)." + +#~ msgid "bt829: Tekram M230 Mach64" +#~ msgstr "bt829: Tekram M230 Mach64" + +#~ msgid "Quick walktrough:" +#~ msgstr "Snabb genomgng:" + +#~ msgid "cd /usr/src/" +#~ msgstr "cd /usr/src/" + +#~ msgid "tar -xzf lirc-modules.tar.gz" +#~ msgstr "tar -xzf lirc-modules.tar.gz" + +#~ msgid "cd modules/lirc" +#~ msgstr "cd modules/lirc" + +#~ msgid "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" +#~ msgstr "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" + +#~ msgid "dpkg -i ../../lirc-modules-*.deb" +#~ msgstr "dpkg -i ../../lirc-modules-*.deb" + +#~ msgid "ANIMAX: Anir Multimedia Magic" +#~ msgstr "ANIMAX: Anir Multimedia Magic" + +#~ msgid "IRDEO: IRdeo" +#~ msgstr "IRDEO: IRdeo" + +#~ msgid "ACTISYS_ACT200L: Actisys Act200L dongle." +#~ msgstr "ACTISYS_ACT200L: Actisys Act200L dongle." + +#~ msgid "TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)" +#~ msgstr "TEKRAM: Tekram Irmate 210 (16x50 UART kompatibel seriellport)" + +#~ msgid "Other: Any other supported device." +#~ msgstr "Annan: Alla andra enheter som stds." --- lirc-0.8.3~pre1.orig/debian/po/vi.po +++ lirc-0.8.3~pre1/debian/po/vi.po @@ -0,0 +1,429 @@ +# Vietnamese Translation for lirc. +# Copyright © 2005 Free Software Foundation, Inc. +# Clytie Siddall , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: lirc 0.7.1pre2-6\n" +"Report-Msgid-Bugs-To: Source: lirc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-10 15:04-0600\n" +"PO-Revision-Date: 2005-12-12 20:44+0100\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +#, fuzzy +msgid "Create LIRC device nodes if they are not there?" +msgstr "Bạn có muốn gói này tạo nút thiết bị LIRC nếu không có điều ấy không?" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "LIRC needs some files under /dev/ for it to work:" +msgstr "LIRC cần có một số dưới «/dev/» để chức năng được:" + +#. Type: boolean +#. Description +#: ../lirc.templates:1001 +msgid "/dev/lirc /dev/lircd and /dev/lircm" +msgstr "«/dev/lirc» «/dev/lircd» và «/dev/lircm»" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "Do you want to reconfigure LIRC?" +msgstr "Bạn có muốn cấu hình lại LIRC không?" + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "" +"LIRC is already configured, reconfiguring it may spoil some of your " +"handcrafted configuration in /etc/lirc/hardware.conf." +msgstr "" +"Đã cấu hình LIRC rồi. Cấu hình lại nó có lẽ sẽ ngắt một phần cấu hình thủ " +"công của bạn trong «/etc/lirc/hardware.conf»." + +#. Type: boolean +#. Description +#: ../lirc.templates:2001 +msgid "However comments, LIRC_ARGS and other unknown code will be preserved." +msgstr "Tuy nhiên, sẽ giữ chú thích, LIRC_ARGS và mã lạ khác." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +#, fuzzy +msgid "You should take care of old configuration files" +msgstr "Bạn nên quản lý tập tin cấu hình cũ." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Previous versions of this package didn't include any configuration file and " +"expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf" +msgstr "" +"Phiên bản trước của gói tin này không chứa tập tin cấu hình và nhờ người " +"dùng chèn «/etc/lircd.conf» và «/etc/lircmd.conf» của mình." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "The new location for these files is /etc/lirc/." +msgstr "Địa điểm mới cho tập tin này là «/etc/lirc/»." + +#. Type: note +#. Description +#: ../lirc.templates:3001 +msgid "" +"Things will be arranged properly but, in case they can't be, please make " +"sure that none of LIRC configuration files are left directly under /etc/." +msgstr "" +"Gói này sẽ cố quản lý hết, nhưng mà trong trường hợp không thể, bạn hãy đảm " +"bảo không có tập tin cấu hình LIRC còn lại dưới «/etc/» một cách trực tiếp. " + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "lircmd should use the IntelliMouse protocol instead of IMPS/2" +msgstr "lircmd nên dùng giao thức IntelliMouse thay vào IMPS/2" + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"The method lircmd uses to simulate a mouse is not compatible with IMPS/2 " +"protocol, so the IntelliMouse support has been added and is now the " +"preferred protocol." +msgstr "" +"lircmd dùng một phương pháp mô phỏng con chuột mà không tương thích với giao " +"thức IMPS/2, thì đã thêm cách hỗ trợ IntelliMouse mà là giao thức đã muốn." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "" +"You ARE currently using lircmd with IMPS/2 protocol and are encouraged to " +"update /etc/lirc/lircmd.conf and the configuration of any program which uses " +"lircmd as a mouse to use IntelliMouse protocol." +msgstr "" +"Bạn hiện thời có phải sử dụng lircmd với giao thức IMPS/2, thì đệ nghị bạn " +"cập nhật «/etc/lirc/lircmd.conf» và cấu hình của bất cứ chương trình nào dùng " +"lircmd là con chuột để dùng giao thức IntelliMouse." + +#. Type: note +#. Description +#: ../lirc.templates:18001 +msgid "NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol." +msgstr "Ghi chú: gpm sẽ từ chối dùng lircmd là con chuột với giao thức IMPS/2." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +#, fuzzy +msgid "Delete /var/log/lircd?" +msgstr "Bạn có muốn xóa bỏ «/var/log/lircd» không?" + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"LIRC now uses syslog as a logging mechanism. This means that /var/log/lircd " +"is not anymore pertinent." +msgstr "" +"Hiện thời LIRC dùng syslog là cơ chế ghi lưu. Vì vậy «/var/log/lircd» không " +"còn hữu ích lại." + +#. Type: boolean +#. Description +#: ../lirc.templates:19001 +msgid "" +"If you answer 'no' to this question /var/log/lircd will be left there and " +"you will have to take care of it yourself." +msgstr "Nếu bạn trả lời «Không» thì sẽ phải tự loại bỏ «/var/log/lircd»." + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "Choose a remote if you would like to preload a configuration:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:20001 +msgid "" +"If you choose a remote, but already have a configuration file in /etc/lirc/" +"lircd.conf, the existing file will be renamed to /etc/lirc/lircd.conf.dpkg-" +"old and the community configurations loaded into /etc/lirc/lircd.conf. " +"This process will only happen once, and subsequent instantiations of this " +"configuration will not overwrite your /etc/lirc/lircd.conf file again." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "If you need to use an IR transmitter, please select it:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:21001 +msgid "" +"IR transmitters can be used for controlling external devices. Some devices " +"are considered transceivers, with the ability to both send and receive. " +"Other devices require separate hardware to accomplish these tasks." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "Select your custom event interface for your dev/input device:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:22001 +msgid "" +"Many remotes that were previously supported by the lirc_gpio interface now " +"need to be set up via the dev/input interface. You will need to custom " +"select your remote's event character device. This can be determined by " +"'cat /proc/bus/input/devices'." +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "Choose the port that your serial device is attached to:" +msgstr "" + +#. Type: select +#. Description +#: ../lirc.templates:24001 +msgid "" +"The UART (serial) driver is a low level driver that takes advantage of bit " +"banging a character device. This means that you can only use it with " +"hardware serial devices. It unfortunately does not work with USB serial " +"devices." +msgstr "" + +#, fuzzy +#~ msgid "Drivers to build:" +#~ msgstr "Hãy chọn những trình hỗ trợ thiết bị cần xây dụng." + +#, fuzzy +#~ msgid "Try to automagically select support for your hardware?" +#~ msgstr "" +#~ "Bạn có muốn trình này cố tự động chọn cách hỗ trợ phần cứng bạn không?" + +#, fuzzy +#~ msgid "" +#~ "You have installed and configured LIRC. It is possible to guess what " +#~ "kernel modules are needed and their parameters from your previous answers." +#~ msgstr "" +#~ "Bạn đã cài đặt và cấu hình LIRC rồi. Gói tin này có thể cố đoán cần những " +#~ "mô-đun hạt nhân nào, và lập những tham số nào, từ các trả lời trước của " +#~ "bạn." + +#~ msgid "You don't need any additional kernel modules" +#~ msgstr "Lúc này bạn không cần mô-đun hạt nhân thêm nào." + +#~ msgid "" +#~ "Unless you want to build LIRC kernel modules for some other system, you " +#~ "can probably remove this package." +#~ msgstr "" +#~ "Trừ bạn muốn xây dụng mô-đun hạt nhân LIRC cho một hệ thống khác, bạn rất " +#~ "có thể loại bỏ gói tin này." + +#, fuzzy +#~ msgid "How to build the binary modules package" +#~ msgstr "Cách xây dụng gói tin mô-đun nhị phân." + +#~ msgid "" +#~ "For instructions on how to build the binary modules debian package read: /" +#~ "usr/share/doc/lirc-modules-source/README.Debian" +#~ msgstr "" +#~ "Để tìm hướng dẫn về xây dụng gói tin Debian môđụn nhị phân, hãy đọc tập " +#~ "tin «/usr/share/doc/lirc-modules-source/README.Debian»." + +#~ msgid "" +#~ "The following list includes short descriptions of the different options " +#~ "available:" +#~ msgstr "Danh sách này gồm mô tả vắn tắt của những tùy chọn khác sẵn sàng:" + +#~ msgid "ANIMAX, IRDEO, Other" +#~ msgstr "ANIMAX, IRDEO, Khác" + +#, fuzzy +#~ msgid "Type of serial device to support" +#~ msgstr "Bạn cần hỗ trợ thiết bị nối tiếp loại nào?" + +#, fuzzy +#~ msgid "" +#~ " ANIMAX: Anir Multimedia Magic\n" +#~ " IRDEO: IRdeo\n" +#~ " Other: Any other supported device.\n" +#~ "\n" +#~ "If you don't know what the other devices are, you should probably choose " +#~ "\"Other\"." +#~ msgstr "" +#~ "Nếu bạn không biết những thiết bị khác là gì, thì bạn nên chọn «Khác»." + +#~ msgid "Is your serial IR device a transmitter?" +#~ msgstr "Thiết bị hồng ngoại nối tiếp của bạn có truyền không?" + +#~ msgid "Should the carrier signal be generated by software?" +#~ msgstr "Phần mềm sẽ tạo ra tín hiệu truyền sóng phải không?" + +#, fuzzy +#~ msgid "IO port of your IR serial device:" +#~ msgstr "" +#~ "Thiết bị hồng ngoại nối tiếp của bạn có dùng cổng I/O (gõ/xuất) nào?" + +#, fuzzy +#~ msgid "IRQ of your IR serial device:" +#~ msgstr "Thiết bị hồng ngoại nối tiếp của bạn có dùng IRQ nào?" + +#~ msgid "ACTISYS_ACT200L, TEKRAM, Other" +#~ msgstr "ACTISYS_ACT200L, TEKRAM, Khác" + +#~ msgid "What type of SIR device should be supported?" +#~ msgstr "Bạn cần hỗ trợ thiết bị hồng ngoại nối tiếp nào?" + +#~ msgid "" +#~ "The following lists are short descriptions of the options to show what " +#~ "they mean." +#~ msgstr "Danh sách chứa mô tả vắn tắt." + +#, fuzzy +#~ msgid "IO port of your SIR device:" +#~ msgstr "" +#~ "Thiết bị hồng ngoại nối tiếp của bạn có dùng cổng I/O (gõ/xuất) nào?" + +#, fuzzy +#~ msgid "IRQ of your SIR device:" +#~ msgstr "Thiết bị hồng ngoại nối tiếp của bạn có dùng IRQ nào?" + +#, fuzzy +#~ msgid "IO port of your parallel IR device:" +#~ msgstr "" +#~ "Thiết bị hồng ngoại song song của bạn có dùng cổng I/O (gõ/xuất) nào?" + +#, fuzzy +#~ msgid "IRQ of your parallel IR device:" +#~ msgstr "Thiết bị hồng ngoại song song của bạn có dùng IRQ nào?" + +#, fuzzy +#~ msgid "Timer used for your parallel IR device:" +#~ msgstr "" +#~ "Thiết bị hồng ngoại song song của bạn nền dùng bộ đếm thời gian nào?" + +#, fuzzy +#~ msgid "Try to automatically build the modules?" +#~ msgstr "Bạn có muốn gói này cố tự động xây dụng những mô-đun ấy không?" + +#, fuzzy +#~ msgid "" +#~ "It is possible to build and install your lirc kernel modules, as long as " +#~ "your current kernel's source (and gcc) are present on your computer." +#~ msgstr "" +#~ "Gói này có thể cố xây dụng và cài đặt những mô-đun hạt nhân LIRC của bạn, " +#~ "với điều kiện là mã nguồn của hạt nhân hiện thời, và gcc, có trong máy " +#~ "tính này." + +#, fuzzy +#~ msgid "" +#~ "Even if you choose to dos so, you should build and install a binary " +#~ "'kernel modules' package so that the package manager can keep track of " +#~ "the files." +#~ msgstr "" +#~ "Dù nếu bạn chọn «Có», bạn còn nên xây dụng và cài đặt một gói tin «kernel " +#~ "modules» (mô-đun hạt nhân) để cho phép trình quản lý gói tin theo dõi các " +#~ "tập tin ấy." + +#~ msgid "Where is your kernel source?" +#~ msgstr "Mã nguồn hạt nhân của bạn ở đâu?" + +#, fuzzy +#~ msgid "To build lirc kernel modules, kernel sources are needed." +#~ msgstr "" +#~ "Để xây dụng mô-đun hạt nhân LIRC, gói này cần mã nguồn của hạt nhân mà " +#~ "bạn định dùng với những mô-đụn ấy." + +#, fuzzy +#~ msgid "${ksrc} is not a valid kernel source tree" +#~ msgstr "${ksrc} không phải là một cây nguồn hạt nhân hợp lệ." + +#~ msgid "" +#~ "i2c: TV cards from Hauppauge and PixelView. Needs the new I2C stack " +#~ "(present on 2.4 kernels). You can get it at:" +#~ msgstr "" +#~ "i2c: thẻ TV từ Hauppauge và PixelView. Cần đến đống I2C mới (có trong hạt " +#~ "nhân 2.4). Bạn có thể lấy nó tại:" + +#~ msgid "http://www2.lm-sensors.nu/~lm78/." +#~ msgstr "http://www2.lm-sensors.nu/~lm78/." + +#~ msgid "" +#~ "gpio: TV cards from FlyVideo98, Avermedia, MiRO and many others. Needs " +#~ "bttv version 0.7.45 or higher (present on 2.4 kernels). If you are using " +#~ "the bttv tarball, copy it to the kernel." +#~ msgstr "" +#~ "gpio: thẻ TV từ FlyVideo98, Avermedia, MiRO và nhiều công ty khác. Cần " +#~ "đến bttv phiên bản 0.7.45 hay sau (có trong hạt nhân 2.4). Nếu bạn đang " +#~ "sử dụng quả bóng tarbttv thì hãy sao chép nó vào hạt nhân." + +#~ msgid "parallel: Custom parallel-port receiver." +#~ msgstr "parallel: bộ nhận qua cổng song song tự chọn." + +#~ msgid "serial: Serial-port driver." +#~ msgstr "serial: trình hỗ trợ cổng nối tiếp." + +#~ msgid "sir: Serial InfraRed (IRDA)." +#~ msgstr "sir: hồng ngoại nối tiếp (Serial InfraRed: IRDA)." + +#~ msgid "it87: ITE IT8705 and IT8712 CIR ports (e.g. on the ECS K7S5A)." +#~ msgstr "it87: cổng CIR ITE IT8705 và IT8712 (v.d. trên ECS K7S5A)." + +#~ msgid "bt829: Tekram M230 Mach64" +#~ msgstr "bt829: Tekram M230 Mach64" + +#~ msgid "Quick walktrough:" +#~ msgstr "Tóm tắt:" + +#~ msgid "cd /usr/src/" +#~ msgstr "cd /usr/src/" + +#~ msgid "tar -xzf lirc-modules.tar.gz" +#~ msgstr "tar -xzf lirc-modules.tar.gz" + +#~ msgid "cd modules/lirc" +#~ msgstr "cd modules/lirc" + +#~ msgid "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" +#~ msgstr "debian/rules binary-modules KSRC=/path/of/my/kernel/source/" + +#~ msgid "dpkg -i ../../irc-modules-*.deb" +#~ msgstr "dpkg -i ../../lirc-modules-*.deb" + +#~ msgid "ANIMAX: Anir Multimedia Magic" +#~ msgstr "ANIMAX: Anir Multimedia Magic" + +#~ msgid "IRDEO: IRdeo" +#~ msgstr "IRDEO: IRdeo" + +#~ msgid "ACTISYS_ACT200L: Actisys Act200L dongle." +#~ msgstr "ACTISYS_ACT200L: khóa tiếp hợp Actisys Act200L." + +#~ msgid "TEKRAM: Tekram Irmate 210 (16x50 UART compatible serial port)" +#~ msgstr "" +#~ "TEKRAM: Tekram Irmate 210 (cổng nối tiếp tương thích với 16x50 UART)" + +#~ msgid "Other: Any other supported device." +#~ msgstr "Khác: thiết bị được hỗ trợ khác nào" --- lirc-0.8.3~pre1.orig/debian/po/POTFILES.in +++ lirc-0.8.3~pre1/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] lirc.templates --- lirc-0.8.3~pre1.orig/debian/lirc.config.md5sum +++ lirc-0.8.3~pre1/debian/lirc.config.md5sum @@ -0,0 +1,2 @@ +a079a695c3c882b470c0c4668b6bb59c configure.in +e717bcbc8270805b5ed9ec30b737e9d5 setup.sh --- lirc-0.8.3~pre1.orig/debian/TODO +++ lirc-0.8.3~pre1/debian/TODO @@ -0,0 +1,26 @@ +Apply sed-segfaults patch from CVS. + +Improve package descriptions. + +Improbe --version and --help messages for help2man generation. + +use MAKEDEV when a mayor number is officialy assigned to LIRC. + +Make sure that lircd daemonizes properly. + +Find out what to do with sample configuration files. + probably move them to /usr/share/lirc + +lirc-modules-source: needs lirc to be configured for automagical configuration. + but a Pre-Depends sounds as too much, as it doesn't + even Depend on lirc. + Apt seams to do it right. + +Ask lirc/install_devices only if they are not there? + +use install instead of cp in debian/rules. + Should I realy? debhelper takes care of permisions anyway. + How about dh_install? + +Make lirc_sir type runtime selectable, so module binary packages can be +included in debian mirrors. --- lirc-0.8.3~pre1.orig/debian/doc-base.lirc +++ lirc-0.8.3~pre1/debian/doc-base.lirc @@ -0,0 +1,10 @@ +Document: lirc +Title: LIRC (Linux Infrared Remote Control) +Author: Christoph Bartelmus , Karsten Scheibler +Abstract: +Section: misc + +Format: HTML +Index: /usr/share/doc/lirc/html/index.html +Files: /usr/share/doc/lirc/html/*.html + --- lirc-0.8.3~pre1.orig/debian/control +++ lirc-0.8.3~pre1/debian/control @@ -0,0 +1,76 @@ +Source: lirc +Section: utils +Priority: extra +Maintainer: Ubuntu Core Developers +XSBC-Original-Maintainer: lirc Maintainer Team +Build-Depends: debhelper (>= 5), libusb-dev, libasound2-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], libice-dev, libsm-dev, libx11-dev, libirman-dev, autotools-dev, devscripts, dpatch, libxt-dev, po-debconf +Standards-Version: 3.7.3 +Uploaders: Hector Garcia , Julien Danjou , Aurelien Jarno , Amaya Rodrigo Sastre + +Package: lirc +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, setserial +Pre-Depends: dialog +Recommends: udev +Suggests: lirc-modules-source, lirc-x +Description: Linux Infra-red Remote Control support + This package provides the daemons and some utilities to support infra-red + remote controls under Linux. + +Package: lirc-x +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, lirc (= ${source:Version}) +Replaces: lirc (<< 0.6.4-8) +Recommends: xfonts-75dpi +Description: Linux Infra-red Remote Control support (X dependent parts) + This package provides those parts of lirc which depend on the XWindow system. + . + Currently: + . + irxevent: Allows you to control your X applications with your remote control. + . + xmode2: shows the IR waveform of the remote controller without an expensive + oscilloscope (through an X window). This is not needed for TV cards or the + Irman. + . + You ***MUST*** <--- (really!) have the xfonts-75dpi package available on the + X server, whether via files or via a font server like xfs. The lirc-x package + only Recommends: these packages because it's possible to have them served + remotely, but you really should install them. :) + +Package: lirc-modules-source +Architecture: all +Depends: ${misc:Depends}, dkms +Recommends: make, dpkg-dev (>= 1.13), gcc | c-compiler, kernel-package +Suggests: kernel-source +Conflicts: lirc (<<0.6.3-1) +Description: Linux Infra-red Remote Control support (kernel modules) + This package provides the source for the kernel modules to support + infra-red remote controls under Linux. + . + Please note that the kernel sources must be installed to compile these + modules. + . + Also, note that this package is not necessary for usage on Ubuntu since + the modules are shipped in linux-ubuntu-modules. It is soley here in + the case that a local patch needs to be applied. + +Package: liblircclient-dev +Architecture: any +Section: libdevel +Depends: ${misc:Depends}, liblircclient0 (= ${source:Version}), libc6-dev +Description: development files for LIRC client library + This package contains the static library and headers for + the LIRC client library. + . + LIRC is Linux Infra-red Remote Control support. + +Package: liblircclient0 +Priority: optional +Architecture: any +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: lirc +Description: LIRC client library + This library provides functions so that other programs (eg xawtv) + can support remote controls via LIRC. --- lirc-0.8.3~pre1.orig/debian/conf.placeholder +++ lirc-0.8.3~pre1/debian/conf.placeholder @@ -0,0 +1,5 @@ +#UNCONFIGURED +# +# To find out how to get a proper configuration file please read: +# +# /usr/share/doc/lirc/README.Debian --- lirc-0.8.3~pre1.orig/debian/irman2lirc.1 +++ lirc-0.8.3~pre1/debian/irman2lirc.1 @@ -0,0 +1,18 @@ +.TH irman2lirc "1" "November 2001" "irman2lirc" FSF +.SH NAME +irman2lirc - converts irman.conf to lirc config file +.SH SYNOPSIS +.B irman2lirc +[\fIfile\fR] +.SH DESCRIPTION + +If you already have a propper configuration file (irman.conf) for the libirman +package, irman2lirc will convert it to lirc syntax with irman2lirc. +.TP +\fB\-\-help\fR +display usage summary +.SH "SEE ALSO" +The documentation for +.B lirc +is maintained as a html pages. They are located under html/ in the +documentadion directory. --- lirc-0.8.3~pre1.orig/debian/rules +++ lirc-0.8.3~pre1/debian/rules @@ -0,0 +1,258 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# This file is public domain software, originally written by Joey Hess. + +# dpatch support +include /usr/share/dpatch/dpatch.make + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +ifneq ($(findstring debug,$(DEB_BUILD_OPTIONS)),) +CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) +INSTALL_PROGRAM += -s +endif + +# shared library versions, option 1 +version=0.0.0 +major=0 +# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so +#version=`ls src/.libs/lib*.so.* | \ +# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'` +#major=`ls src/.libs/lib*.so.* | \ +# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'` + +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +CVERSION := $(shell dpkg-parsechangelog | grep '^Version:' | cut -d' ' -f2 | cut -d- -f1) + +clean: unpatch + dh_testdir + dh_testroot + rm -f debian/po/messages.mo + rm -f configure-stamp build-stamp + debconf-updatepo + # Add here commands to clean up after the build process. + [ ! -f Makefile ] || $(MAKE) distclean +# rm -f tools/smode2 tools/smode2.o config.log config.status + + dh_clean + +configure: patch configure-stamp +configure-stamp: + set -e + dh_testdir + + ./configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + --prefix=/usr \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --libdir=\$${prefix}/lib \ + --sysconfdir=/etc/lirc/ \ + --with-driver=userspace \ + --with-syslog=LOG_DAEMON \ + --enable-sandboxed + + touch configure-stamp + +build: configure build-stamp +build-stamp: + set -e + dh_testdir + + # Add here commands to compile the package. + #$(MAKE) CFLAGS="$(CFLAGS)" + $(MAKE) + #$(MAKE) smode2 -C tools + + touch build-stamp + +install: build-stamp + + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/lirc. + $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp + #Rename 'rc' into 'irsend' to prevent clash with 'rc' package. + #mv debian/tmp/usr/share/man/man1/rc.1 \ + # debian/tmp/usr/share/man/man1/irsend.1 + #mv debian/tmp/usr/bin/rc debian/tmp/usr/bin/irsend + + install --mode=755 contrib/irman2lirc debian/tmp/usr/bin/ + + #Allow building evenif vgalib is not available + if [ -e tools/smode2 ]; then \ + install --mode=755 tools/smode2 debian/tmp/usr/bin/ ; \ + fi + + mkdir -p debian/tmp/etc/lirc/ + mkdir -p debian/tmp/usr/share/lirc/ + mkdir -p debian/tmp/etc/udev/rules.d/ + install --mode=644 debian/conf.placeholder \ + debian/tmp/etc/lirc/lircd.conf + install --mode=644 debian/conf.placeholder \ + debian/tmp/etc/lirc/lircmd.conf + install --mode=644 debian/hardware.conf debian/tmp/etc/lirc/ + install --mode=644 debian/udev.rules \ + debian/tmp/etc/udev/rules.d/85-lirc.rules + #rm debian/lirc/usr/lib/liblirc_client.la + mkdir -p debian/tmp/usr/src/lirc-${CVERSION} + cp -dpR drivers debian/tmp/usr/src/lirc-${CVERSION}/ + #rm -f debian/tmp/usr/src/lirc/drivers/Makefile* + find debian/tmp/usr/src/lirc-${CVERSION} -name "*.o" -o -name Makefile.in \ + -o -name Makefile.am -o -name "*.ko"| xargs rm + + for file in `find debian/tmp/usr/src/lirc-${CVERSION} -name Makefile`; \ + do sed -e 's/^Makefile:.*/Makefile:/g' \ + -e'/^CC *=/d' -e '/^KERNEL_LOCATION *=/d' \ + $$file > $$file.tmp && \ + mv $$file.tmp $$file; \ + done + + #cp config.h debian/tmp/usr/src/lirc-${CVERSION}/ + sed -n \ + -e'/define *DEV_LIRC\>/p' \ + -e'/define *LIRC_MAJOR\>/p' \ + config.h > debian/tmp/usr/src/lirc-${CVERSION}/config.h + + #Create dkms.conf + echo "PACKAGE_NAME=\"lirc\"" > debian/modules-source/dkms.conf + echo "PACKAGE_VERSION=\"${CVERSION}\"" >> debian/modules-source/dkms.conf + echo "CLEAN=\"rm -f *.*o\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[0]=\"lirc_atiusb\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[0]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[1]=\"lirc_bt829\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[1]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[2]=\"lirc_cmdir\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[2]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[3]=\"lirc_dev\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[3]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[4]=\"lirc_i2c\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[4]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[5]=\"lirc_igorplugusb\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[5]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[6]=\"lirc_imon\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[6]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[7]=\"lirc_it87\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[7]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[8]=\"lirc_mceusb2\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[8]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[9]=\"lirc_mceusb\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[9]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[10]=\"lirc_pvr150\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[10]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[11]=\"lirc_sasem\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[11]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[12]=\"lirc_serial\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[12]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[13]=\"lirc_sir\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[13]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[14]=\"lirc_streamzap\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[14]=\"modules\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_NAME[15]=\"commandir\"" >> debian/modules-source/dkms.conf + echo "BUILT_MODULE_LOCATION[15]=\"modules\"" >> debian/modules-source/dkms.conf + echo "MAKE[0]=\"pushd \$${dkms_tree}/lirc/${CVERSION}/build; make debconf KSRC=\$$kernel_source_dir KVER=\$$kernelver; popd\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[0]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[1]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[2]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[3]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[4]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[5]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[6]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[7]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[8]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[9]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[10]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[11]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[12]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[13]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[14]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "DEST_MODULE_LOCATION[15]=\"/kernel/drivers/input/misc\"" >> debian/modules-source/dkms.conf + echo "AUTOINSTALL=\"yes\"" >> debian/modules-source/dkms.conf + + cp -dpR debian/modules-source/* debian/tmp/usr/src/lirc-${CVERSION}/ + mkdir -p debian/liblircclient-dev/usr/share/aclocal + cp contrib/lirc.m4 debian/liblircclient-dev/usr/share/aclocal/ + + #install logcheck files + install -d debian/tmp/etc/logcheck/ignore.d.paranoid + install -o root -g root -m 644 debian/logcheck.ignore \ + debian/tmp/etc/logcheck/ignore.d.paranoid/lirc + install -d debian/tmp/etc/logcheck/ignore.d.server + install -o root -g root -m 644 debian/logcheck.ignore \ + debian/tmp/etc/logcheck/ignore.d.server/lirc + install -d debian/tmp/etc/logcheck/ignore.d.workstation + install -o root -g root -m 644 debian/logcheck.ignore \ + debian/tmp/etc/logcheck/ignore.d.workstation/lirc + +# Build architecture-independent files here. +binary-indep: build install + + dh_installdocs -i + dh_installchangelogs -i + dh_install -i --sourcedir=debian/tmp --list-missing + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs -s ChangeLog + # + # build liblirc${major} package by moving files from lirc-dev + # + #rm -fr debian/lirc/usr/include + + dh_installdocs -s + cp -dpR doc/html doc/images doc/irxevent.keys \ + debian/lirc/usr/share/doc/lirc/ + mkdir debian/lirc/usr/share/lirc + cp -dpR remotes debian/lirc/usr/share/lirc/remotes + cp -dpR transmitters debian/lirc/usr/share/lirc/transmitters + cp -dpR doc/lirc.hwdb debian/lirc/usr/share/lirc + cp -dpR doc/transmitter.hwdb debian/lirc/usr/share/lirc + dh_installexamples -s + dh_install -s --sourcedir=debian/tmp --list-missing + dh_installmenu -s +# dh_installdebconf + dh_installdebconf -plirc +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime + dh_installinit -s --update-rcd-params="defaults 51" + dh_installcron -s + dh_installinfo -s + dh_installmodules -s +# dh_undocumented -s + dh_installman -s + @for i in lirc-x lirc-svga; \ + do \ + rm -rf debian/$${i}/usr/share/doc/$${i} ;\ + done + dh_link -s + dh_strip -s + dh_compress -s -X irxevent.keys + dh_fixperms -s +# dh_perl +# dh_python + dh_makeshlibs -s + dh_installdeb -s + dh_shlibdeps -s + dh_gencontrol -s + dh_md5sums -s + dh_builddeb -s + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install autotools --- lirc-0.8.3~pre1.orig/debian/lircd.conf +++ lirc-0.8.3~pre1/debian/lircd.conf @@ -0,0 +1,18 @@ +# +# LIRCd configuration file. +# + +# Put here the arguments to run the daemon with. + +# --driver +# selects the user-land driver to use (use "default", or don't set this if +# you have a kernel driver for your interface) +# --device +# selects the device file to use for drivers which use the normal kernel +# serial or parallel-port drivers + +# eg +#LIRCD_ARGS="--driver=logitech --device=/dev/ttyS1" +LIRCD_ARGS="" + +# End of file. --- lirc-0.8.3~pre1.orig/debian/lirc.examples +++ lirc-0.8.3~pre1/debian/lirc.examples @@ -0,0 +1 @@ +contrib/{lircrc,lircd.conf,lircmd.conf} --- lirc-0.8.3~pre1.orig/debian/hardware.conf +++ lirc-0.8.3~pre1/debian/hardware.conf @@ -0,0 +1,38 @@ +# /etc/lirc/hardware.conf +# +#Chosen Remote Control +REMOTE="None" +REMOTE_MODULES="" +REMOTE_DRIVER="" +REMOTE_DEVICE="" +REMOTE_LIRCD_CONF="" +REMOTE_LIRCD_ARGS="" + +#Chosen IR Transmitter +TRANSMITTER="None" +TRANSMITTER_MODULES="" +TRANSMITTER_DRIVER="" +TRANSMITTER_DEVICE="" +TRANSMITTER_LIRCD_CONF="" +TRANSMITTER_LIRCD_ARGS="" + +#Enable lircd +START_LIRCD="false" + +#Don't start lircmd even if there seems to be a good config file +#START_LIRCMD="false" + +#Try to load appropriate kernel modules +LOAD_MODULES="true" + +# Default configuration files for your hardware if any +LIRCMD_CONF="" + +#Forcing noninteractive reconfiguration +#If lirc is to be reconfigured by an external application +#that doesn't have a debconf frontend available, the noninteractive +#frontend can be invoked and set to parse REMOTE and TRANSMITTER +#It will then populate all other variables without any user input +#If you would like to configure lirc via standard methods, be sure +#to leave this set to "false" +FORCE_NONINTERACTIVE_RECONFIGURATION="false" --- lirc-0.8.3~pre1.orig/debian/lirc.docs +++ lirc-0.8.3~pre1/debian/lirc.docs @@ -0,0 +1,5 @@ +NEWS +README +ANNOUNCE +TODO +doc/irxevent.keys --- lirc-0.8.3~pre1.orig/debian/lirc.templates +++ lirc-0.8.3~pre1/debian/lirc.templates @@ -0,0 +1,184 @@ +Template: lirc/install_devices +Type: boolean +Default: true +_Description: Create LIRC device nodes if they are not there? + LIRC needs some files under /dev/ for it to work: + . + /dev/lirc /dev/lircd and /dev/lircm + +Template: lirc/reconfigure +Type: boolean +Default: false +_Description: Do you want to reconfigure LIRC? + LIRC is already configured, reconfiguring it may spoil some of your + handcrafted configuration in /etc/lirc/hardware.conf. + . + However comments, LIRC_ARGS and other unknown code will be preserved. + +Template: lirc/take_care_of_old_config +Type: note +_Description: You should take care of old configuration files + Previous versions of this package didn't include any configuration file + and expected the user to put his own /etc/lircd.conf and /etc/lircmd.conf + . + The new location for these files is /etc/lirc/. + . + Things will be arranged properly but, in case they can't be, please make + sure that none of LIRC configuration files are left directly under /etc/. + +Template: lirc/remote_driver +Type: string +Description: Driver name for lircd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/remote_modules +Type: string +Description: Needed kernel modules for LIRC to work: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/remote_device +Type: string +Description: Device node for lircd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/remote_lircd_conf +Type: string +Description: Recommended configuration file for lircd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/transmitter_driver +Type: string +Description: Driver name for lircd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/transmitter_modules +Type: string +Description: Needed kernel modules for LIRC to work: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/transmitter_device +Type: string +Description: Device node for lircd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/transmitter_lircd_conf +Type: string +Description: Recommended configuration file for lircd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/lircmd_conf +Type: string +Description: Recommended configuration file for lircmd: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/port +Type: string +Description: Hint for lirc-modules-source: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/irq +Type: string +Description: Hint for lirc-modules-source: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/timer +Type: string +Description: Hint for lirc-modules-source: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/blacklist +Type: string +Description: blacklisted kernel modules: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/cflags +Type: string +Description: Hint for lirc-modules-source: + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/should-use-IntelliMouse +Type: note +_Description: lircmd should use the IntelliMouse protocol instead of IMPS/2 + The method lircmd uses to simulate a mouse is not compatible with IMPS/2 + protocol, so the IntelliMouse support has been added and is now the + preferred protocol. + . + You ARE currently using lircmd with IMPS/2 protocol and are encouraged to + update /etc/lirc/lircmd.conf and the configuration of any program which + uses lircmd as a mouse to use IntelliMouse protocol. + . + NOTE: gpm will refuse to use lircmd as a mouse with IMPS/2 protocol. + +Template: lirc/remove_var-log-lircd +Type: boolean +Default: true +_Description: Delete /var/log/lircd? + LIRC now uses syslog as a logging mechanism. This means that + /var/log/lircd is not anymore pertinent. + . + If you answer 'no' to this question /var/log/lircd will be left there and + you will have to take care of it yourself. + +Template: lirc/remote +Type: select +Choices: None, Custom${REMOTES} +Default: None +_Description: Choose a remote if you would like to preload a configuration: + If you choose a remote, but already have a configuration file + in /etc/lirc/lircd.conf, the existing file will be renamed + to /etc/lirc/lircd.conf.dpkg-old and the community + configurations loaded into /etc/lirc/lircd.conf. This + process will only happen once, and subsequent instantiations + of this configuration will not overwrite your + /etc/lirc/lircd.conf file again. + +Template: lirc/transmitter +Type: select +Choices: None, Custom${TRANSMITTERS} +Default: None +_Description: If you need to use an IR transmitter, please select it: + IR transmitters can be used for controlling external devices. Some + devices are considered transceivers, with the ability to both send + and receive. Other devices require separate hardware to accomplish + these tasks. + +Template: lirc/dev_input_device +Type: select +Choices: /dev/lirc0${EVENTS} +Default: /dev/lirc0 +_Description: Select your custom event interface for your dev/input device: + Many remotes that were previously supported by the lirc_gpio interface now + need to be set up via the dev/input interface. You will need to custom + select your remote's event character device. This can be determined by + 'cat /proc/bus/input/devices'. + +Template: lirc/start_lircd +Type: string +Default: true +Description: Hint for lirc + You should not see this template as it is used internally by the + maintainer scripts, please report this as a bug. + +Template: lirc/serialport +Type: select +Choices: /dev/ttyS0, /dev/ttyS1 +Default: /dev/ttyS0 +_Description: Choose the port that your serial device is attached to: + The UART (serial) driver is a low level driver that takes advantage + of bit banging a character device. This means that you can only use it + with hardware serial devices. It unfortunately does not work with USB + serial devices. --- lirc-0.8.3~pre1.orig/debian/help2man.inc +++ lirc-0.8.3~pre1/debian/help2man.inc @@ -0,0 +1,6 @@ +[see also] +The documentation for +.B lirc +is maintained as a html pages. And in debian they are distribured in: + + /usr/share/doc/lirc/html/ --- lirc-0.8.3~pre1.orig/debian/shlibs.local +++ lirc-0.8.3~pre1/debian/shlibs.local @@ -0,0 +1 @@ +liblirc_client 0 liblircclient0 (>= 0.6.4) --- lirc-0.8.3~pre1.orig/debian/changelog +++ lirc-0.8.3~pre1/debian/changelog @@ -0,0 +1,1414 @@ +lirc (0.8.3~pre1-0ubuntu7.1) hardy-proposed; urgency=low + + * debian/{modules-source/Makefile,rules}: + - Allow the kernel version to be passed as an argument. + prevents broken upgrades when the kernel ABI revs (LP: #218955) + * debian/lirc-modules-source.prerm: + - Check for both remove and upgrade. + + -- Mario Limonciello Wed, 04 Jun 2008 01:48:18 -0500 + +lirc (0.8.3~pre1-0ubuntu7) hardy; urgency=low + + [ Mario Limonciello ] + * Fix a logical error in the init script related + to udev preventing it from working. (LP: #176616) + * Fix race conditions with udev (LP: #204672) + * Backup hardware.conf before changing. (LP: #198903) + * Add support for the Medion MD1-NBC remote. (LP: #192392) + - Thanks Florian Fahr + * Add support for the Hauppauge HVR-1100 remote (LP: #203493) + - Thanks Lucas + * Flag repeat events on apple mac mini (LP: #179608) + - Thanks Don Mahurin + * Add support for Radioshack 15-2116 remote (LP: #193568) + - Thanks Scott D + * Add support for ASUS MyCinema P7131 remote (LP: #190018) + - Thanks Gianfranco Liporace + + [ Mathias Hasselmann ] + * Add 28_irrecord_resume_support for resume support to + irrecord. (LP: #197493) + + [ Andrew Barbaccia ] + * Fix typo in lirc init script preventing transmitter + arguments from properly being built. (LP: #204664) + * Update Scientific Atlanta config in 26_transmitter_lircd.conf.dpatch + to better naming convention. (LP: #204342) + + -- Mario Limonciello Sun, 23 Mar 2008 23:25:36 -0500 + +lirc (0.8.3~pre1-0ubuntu6) hardy; urgency=low + + * "Include" proper URL for transmitters in lircd.conf. + * debian/control: + - lirc-modules-source depends on dkms. + - Update standards version to 3.7.3 + - Drop ucf, debianutils, debhelper from lirc-modules-source depends. + - Update lirc-modules-source description. + * Update lirc-modules-source behavior to automatically build + modules using dkms as necessary. (LP: #181871) + * Drop old lirc-svga stuff. + * Update 12_pvr150_transmit_support.dpatch with patch from author. + + -- Mario Limonciello Sun, 10 Feb 2008 15:04:13 -0600 + +lirc (0.8.3~pre1-0ubuntu5) hardy; urgency=low + + * debian/hardware.conf: + - Add a variable to only force noninteracive reconfiguration + when requested by user. + * debian/lirc.postinst: + - Add support for "Custom" remote type which will not overwrite + chosen options when reconfiguring (even noninteractively). + * debian/templates: + - Add "Custom" remote and transmitter. + * Update 13_warning_cleanup, 16-lirc-gpio, and 24_freecom_dvbt + to update lirc.hwdb from extraneous equals signs and information. + + -- Mario Limonciello Thu, 03 Jan 2008 11:47:14 -0600 + +lirc (0.8.3~pre1-0ubuntu4) hardy; urgency=low + + * Add 25_upstream_2_6_24 to fix lirc_dev,lirc_serial,lirc_sir + on 2.6.24. + * Add 26_transmitter_lircd.conf for pre-shipped cable/satellite + receiver lircd.conf's as well as a transmitter.hwdb + * Add 27_multiple_include for allowing lircd.conf's via + an 'include' directive. + * Update 16_lirc-gpio, 22_hauppauge_novat_500, 24_freecom_dvbt + for upstream driver name change from dev/input to devinput. + * Drop 17_devinput since it is no longer necessary due to + upstream driver name change. + * Update 12_lirc_pvr150 for 2.6.24. + * Update 20_lirc_serial_igor for 2.6.24. + * Update 13-warning-cleanup for more cleanup on sir + * Update 03_extra_files, 04_manpages, 12_pvr150_transmit_support, + 13-warning-cleanup, 16_lirc-gpio, 20_serial-igor, 21_atiusb, + 22_hauppauge_novat_500, 23_pad2keys, 24_freecom_dvbt + to give a description of the patches. + * debian/control: + - Have lirc depend on setserial, so that lirc.postinst can + customize things. (LP: #152871) + * debian/lirc.links: + - Add symlink from /etc/lirc/lircd.conf -> /etc/lircd.conf + to prevent confusion for users coming from different distros. + - Add symlink for transmitter.hwdb to different share directories. + * debian/hardware.conf + - Change top level remotes, drivers, etc to be remote specific. + - Add support for transmitters. + - Default to having lircd off until the maintainer scripts have + updated things. + * debian/lirc.init.d: + - Reorder checking for hardware.conf, to make sure it occurs earlier. + - Update init script to use LSB output. + - Update init script to have the ability to spawn multiple lirc + processes. + * Drop devfs.conf and devfs.devices since devfs is no longer used + in Ubuntu. + * debian/rules: + - No longer install devfs.conf and devfs.devices. + - Install transmitter.hwdb + - Install usr/share/lirc/transmitters + * debian/lirc.templates: + - Add extra templates for our chosen transmitter, device, driver, + modules, and lircd_conf + - Update all old device, driver, modules, and lircd_conf templates + to be for remote only. + - Remove extra space from remote template. + - Add template for whether to enable/disable lircd. + - Add a template for serial port selection (LP: 152871) + * debian/lirc.postinst: + - Unload all modules when issuing a reconfigure command. + - In check_hardware_conf, don't write UNCONFIGURED, just write + empty quotes to make sure we don't throw things off. + - In check_hardware_conf, write out all our new modules as + necessary. + - In Save & DebconfLoad, read and store all new transmitter + variables. + - In ChooseRemote, read old values from hardware.conf rather than + debconf, since debconf is not designed to be used as a database, + but rather an intermediatary storage method. + - In ChooseRemote, add transmitter support. + - In ChooseRemote, define what lirc device we are using for + dev/input as described in: + https://blueprints.launchpad.net/mythbuntu/+spec/lirc-gpio-alternative + - Remove clause to mv /etc/lircd.conf to /etc/lirc + - Write out START_LIRCD, depending on whether we have remotes/transmitters + enabled or disabled. + - Check for REMOTE_DRIVER entitled 'none' and set it to ''. + - Write out a lircd.conf with include directives and a description of how + to update rather than copying the single file over. + - Add support to customize serial port (LP: #152871) + - No longer setup modutils (only applicable for kernel 2.4) + * debian/lirc.preinst: + - Migrate old hardware.conf over to new syntax in case user does not + replace it upon package installation. + + -- Mario Limonciello Thu, 27 Dec 2007 23:16:40 -0600 + +lirc (0.8.3~pre1-0ubuntu3) hardy; urgency=low + + * Fix -x call. + + -- Scott James Remnant Fri, 14 Dec 2007 16:53:50 +0000 + +lirc (0.8.3~pre1-0ubuntu2) hardy; urgency=low + + * debian/lirc.init.d: call udevadm instead of udevsettle + + -- Scott James Remnant Fri, 14 Dec 2007 16:30:11 +0000 + +lirc (0.8.3~pre1-0ubuntu1) hardy; urgency=low + + * New upstream version. + - Includes Iguanaworks IR Support (LP: #153457) + * Update 03_extrafiles patch for gpio changes. + * Update 05_fix_cmdir patch for command IR lirc.hwdb update. + * Update 12_lirc_pvr150 patch for transmitting support under + kernel 2.6.22. + * Update 13-warning-cleanup patch for items that were already + cleaned up upstream. + * Drop 14_mceusb2 patch since now included upstream. + * Drop 14_lirc-i2c patch since now included upstream. + * Drop 15_macmini patch since now included upstream. + * Update 16_lirc-gpio patch for added changes upstream. + * Update 17_devinput patch for added changes upstream. + * Drop 18_irman-fix patch since now included upstream. + * Drop 19_serial_support patch since now included upstream. + * Update 20_serial_igor patch for new serial support upstream. + * Update 22_hauppauge_novat_500 patch for new support upstream. + * Add 23_pad2keys patch for pad2keys imon support (LP: #153184). + * Add 24_freecom_dvbt patch for NovaT 500 Remote (LP: #152539). + * Clean up lintian warning for -$(MAKE). + * Clean up lintian warning for ${source:Version}. + + -- Mario Limonciello Tue, 30 Oct 2007 09:44:55 -0400 + +lirc (0.8.2-0ubuntu8) gutsy; urgency=low + + * Add 22_hauppauge_novat_500.dpatch for more complete + novat-500 support. (LP: #145847) + * Update 16_lirc-gpio.dpatch to make all lirc_gpio remotes + use the dev/input interface instead. (LP: #148756) + * Update 21_atiusb.dpatch to make Snapstream remotes + have their own item. (LP: #140060) + * Update 12_pvr150_transmit_support.dpatch to fix a + m-a related FTBFS. (LP: #147440) + + -- Mario Limonciello Mon, 08 Oct 2007 02:35:50 -0500 + +lirc (0.8.2-0ubuntu7) gutsy; urgency=low + + * Be sure to rmmod ati_remote.ko if necessary (LP: #140940) + + -- Mario Limonciello Thu, 20 Sep 2007 10:06:20 -0500 + +lirc (0.8.2-0ubuntu6) gutsy; urgency=low + + * Add 20_serial_igor.dpatch for additional serial kernel module + that is built with Igor Cesko support. (LP: #138247) + * debian/patches/21_atiusb.dpatch: + - for support of first generation ATI RF remote. (LP: #139238) + - snapstream firefly support. (LP: #140060) + * debian/lirc.postinst, debian/lirc.postrm, debian/lirc.templates: + - Blacklist lirc_atiusb.ko when necessary (LP: #139961) + * debian/rules, debian/lirc.preinst: + - Update the service to start after alsa-utils (LP: #123557) + + -- Mario Limonciello Mon, 17 Sep 2007 01:56:54 -0500 + +lirc (0.8.2-0ubuntu5) gutsy; urgency=low + + [ Mario Limonciello ] + * Add a udev script to automatically reload or stop lirc + if /dev/lirc[0-9] devices are added/removed. + * Modify lirc init script to work with udev script. + * Update 14_lircmceusb2.dpatch to add support for + HP MCEUSB2 remotes. (LP: #134949) + * Add 19_serial_support.dpatch from lirc CVS + to fix broken serial support. + * debian/control: + - Add udev to Recommends. + * debian/lirc.postinst: + - Add udev reloading. + + [ Tristan Hill ] + * Fix irman support with dpatch from lirc CVS. (LP: #132011) + + -- Mario Limonciello Mon, 27 Aug 2007 21:11:49 -0500 + +lirc (0.8.2-0ubuntu4) gutsy; urgency=low + + * Clarify the intentions of choosing a remote (LP: #129038) + * Add 17_devinput.dpatch to show correct DEVICE + in doc/lirc.hwdb. (LP: #129689) + * Write out REMOTE="" to lircd.conf as well to allow + external apps to parse this information. + + -- Mario Limonciello Sun, 29 Jul 2007 13:39:17 -0500 + +lirc (0.8.2-0ubuntu3) gutsy; urgency=low + + * Add 14_lirc_i2c.dpatch to fix lirc-i2c on 2.6.22 kernel + for PVR-150 and HVR-1300. (LP: #128650) + * Add 15_macmini.dpatch to fix macmini support. (LP: #126955) + * Add 16_lirc-gpio.dpatch to fix GPIO by backporting deprecated + functions, until sysfs support is added to GPIO module. + * debian/lirc.postinst & debian/lirc.templates: + Add functionality to choose your remote. Automatically load this + information into /etc/lirc/hardware.conf and choose a /etc/lirc/lircd.conf + for your remote. (LP: #65174) + + -- Mario Limonciello Thu, 26 Jul 2007 19:47:03 -0700 + +lirc (0.8.2-0ubuntu2) gutsy; urgency=low + + * Make sure lirc_gpio is buildable by adding extra_2.6.22 + to 03_extra_files.dpatch. (LP: #125384) + * Add 05_fix_cmdir.dpatch from lirc CVS to fix cmdir linking + issues. + * Add a symbolic link in case /usr/share/doc/lirc/lirc.hwdb + is being used. + * Add 13_warning_cleanup.dpatch to cleanup all compilation warnings + encountered before submitting to the ubuntu kernel team. + + -- Mario Limonciello Wed, 11 Jul 2007 21:18:46 -0500 + +lirc (0.8.2-0ubuntu1) gutsy; urgency=low + + * New upstream version. (LP: #124842) + * Drop 01_irxevent.dpatch. Most of it is included upstream now. + * Update 12_pvr150_transmit_support.dpatch for new configure script. + * debian/rules: + - Add lirc.hwdb to lirc binary package. + * debian/lirc.postinst. + - Remove all mknods. This is handled when modprobing. + * debian/lirc.init.d + - Add LSB block. + + -- Mario Limonciello Sun, 8 Jul 2007 20:55:36 -0500 + +lirc (0.8.1+cvs20070310-0ubuntu2) feisty; urgency=low + + [ Mario Limonciello ] + * Add 12_pvr150_transmit_support.dpatch for pvr-150 ir transmitter + support (Closes: #95768) + * debian/lirc-modules-source.templates: add pvr150 module option here. + * debian/modules-source/Makefile: add pvr150 build options. + + [ Kees Cook ] + * debian/modules-source/Makefile: don't limit cleaning action, this causes + rebuilds to fail when a kernel version gets bumped. + * debian/patches: clean up unused patches. + + -- Kees Cook Wed, 4 Apr 2007 11:27:06 -0700 + +lirc (0.8.1+cvs20070310-0ubuntu1) feisty; urgency=low + + * New upstream release -- required for 2.6.20 kernels. + * Dropping unneeded patches. + + -- Kees Cook Sat, 10 Mar 2007 12:25:58 -0800 + +lirc (0.8.0-9ubuntu2) feisty; urgency=low + + * Rebuild for changes in the amd64 toolchain. + * Set Ubuntu maintainer address. + + -- Matthias Klose Mon, 5 Mar 2007 01:22:16 +0000 + +lirc (0.8.0-9ubuntu1) feisty; urgency=low + + * Merge from debian unstable, remaining changes: + - drop svgalib support + + -- Scott James Remnant Tue, 28 Nov 2006 15:10:00 +0000 + +lirc (0.8.0-9) unstable; urgency=low + + * Rebuilding to fix and erroneous depend. (Closes: #393316, #393297, #393351) + + -- Hector Garcia Mon, 16 Oct 2006 11:18:21 +0200 + +lirc (0.8.0-8) unstable; urgency=low + + [ Hector Garcia ] + * Added 09_lirc_drivers_2.6.18_compatibility patch by Thomas Creutz + (Closes: #387715) + * Fixed 03_extra_files to support 2.6.17 and 2.6.18. By Thomas Creutz + (Closes: #387715, #378395) + * Updated cs.po by Miroslav Jezbera. (Closes: #389248) + * Added patch to lirc_i2c from upstream CVS. By Jim Heck + * Added patch 11_cheklib_fix to remove extra depends. + * Updated po/es.po + + [ Amaya Rodrigo Sastre ] + * Use debian/compat instead of DH_COMPAT=4 in debian/rules. Thanks Guillem + Jover for pointing this out. + + -- Amaya Rodrigo Sastre Tue, 10 Oct 2006 10:31:48 +0200 + +lirc (0.8.0-7) unstable; urgency=low + + * Update french debconf template (Closes: #384619) + * Update logcheck file (Closes: #385025) + + -- Julien Danjou Mon, 18 Sep 2006 14:00:57 +0200 + +lirc (0.8.0-6) unstable; urgency=low + + [ Amaya Rodrigo Sastre ] + * Added debconf templates translation update: + - French (Closes: #370479). + - Portuguese (Closes: #373129). + - Dutch (Closes: #373828). + - Japanese (Closes: #379937). + * Use DH_COMPAT=4 in debian/rules. Got rid of debian/compat. + * Added debconf-updatepo to de debian/rules clean target (Closes: 372911). + + [ Hector Garcia ] + * Updated debian/patches/04_man_pages.dpatch + + -- Hector Garcia Fri, 18 Aug 2006 22:23:46 +0200 + +lirc (0.8.0-5ubuntu1) edgy; urgency=low + + * Merge from debian unstable, remaining changes: + - drop dependency on svgalib. + + -- Scott James Remnant Mon, 10 Jul 2006 15:45:44 +0100 + +lirc (0.8.0-5) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/modules-source/debian/rules: simplify the call to + dpkg-architecture. + * debian/modules-source/debian/rules: take account of old dpkg-architecture + output. (Closes: #371050). + * debian/control: Recommends dpkg-dev (>= 1.13). Drop the recommends on + dpkg (>= 1.13). + + [ Julien Danjou ] + * Don't create udev queue in init script (Closes: #370745) + + -- Julien Danjou Sun, 11 Jun 2006 14:18:07 +0200 + +lirc (0.8.0-4) unstable; urgency=low + + * Wait for devices to be up using udevsettle (Closes: #362217) + * Updated dutch po-debconf translation (Closes: #370218) + * Fix lintian warning about lirc and lirc-modules-source templates + + -- Julien Danjou Sun, 4 Jun 2006 16:44:13 +0200 + +lirc (0.8.0-3) unstable; urgency=low + + [ Cyril Lacoux ] + * Added 08_min_code_repeat.dpatch, to allow proper interpretation of repeat + signals for Creative RM-900 (Closes: #367521). + + [ Aurelien Jarno ] + * Updated German debconf templates translation. Thanks to Franz Pletz + (Closes: #367874). + + -- Julien Danjou Tue, 23 May 2006 11:01:08 +0200 + +lirc (0.8.0-2) unstable; urgency=low + + [ Julien Danjou ] + * Include etc/lirc in lirc-modules-source.dirs (Closes: #342568) + * Fix compilation for non-root users (Closes: #297170) + + [ Aurelien Jarno ] + * Updated German debconf templates translation. Thanks to Franz Pletz + (Closes: #367274). + * Fixed typos in debconf templates (Closes: #312498). + + -- Julien Danjou Tue, 16 May 2006 12:45:59 +0200 + +lirc (0.8.0-1) experimental; urgency=low + + [ Hector Garcia ] + * New upstream release. (Closes: #349641, #352573) + - Added support up to for 2.6.15 kernels. + - dvico driver is enabled by default (Closes: #348753) + * Removed 02_aclocal.dpatch, not needed anymore. + * Ported 04_man_pages to this release. + * Ported 01_irxevent.dpatch to this release. + * Changed with-drivers to userspace to build only the userspace drivers + and keep only the kernel-space on the modules package. + * Added 02_Makefile.in.dpatch, to prevent autotools from getting run on + every build. + * Recompile with driver=userspace (Closes: #352767, #351723, #348390) + + [ Julien Danjou ] + * Add lirc_dev dependency to it87 + * Fix build-depends on libsvga1-dev rather than svgalibg1-dev + (Closes: #350791) + * Add lircrcd + * Add a patch to allow some drivers to compile with linux 2.6.16 + * Add patches from Cyril Lacoux + - Compile all modules + - Support 2 flavors for it87 (standard/digimatrix) + - Improve debconf template + - module-assistant works fine + - Add missing files for gpio + + [ Aurelien Jarno ] + * Added Swedish debconf templates translation. Thanks to Daniel Nylander + (Closes: #339544) + * Added Dutch debconf templates translation. Thanks to Kurt De Bree + (Closes: #364033) + * Enable lirc-svga on amd64. + * Added support for non-Linux architectures: + - Don't build-depends on libasound2-dev on hurd-i386, kfreebsd-i386 and + kfreebsd-amd64. + - Added 05_non_linux.dpatch, to make lirc buildable on non-Linux + architectures. + - Added 06_libtool_kfreebsd.dpatch, to update libtool for GNU/kFreeBSD. + * Changed lirc-modules-source from Arch: any to Arch: all. + + -- Julien Danjou Wed, 10 May 2006 13:40:57 +0200 + +lirc (0.7.2-2) unstable; urgency=low + + * Ready for unstable. + + -- Hector Garcia Sun, 15 Jan 2006 03:58:59 +0100 + +lirc (0.7.2-1) experimental; urgency=low + + * New upstream release. (Closes: #310133) + - support for KeySym and KeyCode in key definition + - updated udev support for 2.6.13 kernels + - added support for new version of Windows Media Center Remotes + - Use all 8 bytes of IR code + - Rewritten Sasem driver + - added support for Asus Digimatrix + - added support for Remotec Multimedia PC Remote BW6130 + - Added support for iMON-PAD and iMON-RSC + - Man page for lircd doesn't talk about the wrond -D flag + (Closes: #301688) + * Change build-depend to kernel-source. + * Change configure option --with-drivers to none on debian/rules. + * Separated build and configure stages. + * Deleted useless patch 01_configure-duplicates.dpatch + * Deleted obsolete patch 02_forgotten-files.dpatch + * Rewrite of 03_irxevent.dpatch to new version and renamed to 01_... + * Rename 04_aclocal.dpatch to 02_aclocal.dpatch + * Changed mv to cp on modules-source/Makefile + * Updated po/es.po + * Runned debconf-updatepo. (Closes: #329200) + * Updated cs.po, da.po, es.po, de.po (not all, only fuzzy), fr.po, ja.po and + vi.po + * Created 03_extra_files.dpatch so module compilation only depends on + kernel-headers. (Only 2.6.12 currently since is the only one for 2.6.x in + debian that is supported upstream. Custom kernels should still use + kernel-source). + * Deleted build-depend on kernel-source. + * Added depend on ucf. + * Added myself to uploaders and cleaned control file a bit. + * Make dpkg-reconfigure work even when no /etc/lirc/lirc-modules.conf found + (Closes: #342027) + * Added support for udev. Applied patch from dann frazier. (Closes: #303494) + * Added patch 04_man_pages.dpatch to fix hyphen-used-as-minus-sign problem. + I should send this upstream soon. + * Cleaned a few lintian warnings on maintainer scripts. + + -- Hector Garcia Thu, 5 Jan 2006 11:13:54 +0100 + +lirc (0.7.1pre2-11ubuntu1) dapper; urgency=low + + * Resynchronise with Debian. + + -- Michael Vogt Fri, 11 Nov 2005 00:15:47 +0100 + +lirc (0.7.1pre2-11) unstable; urgency=low + + * This upload sponsored by The Spanish Public Administration Department. + * Debian Policy 10.7.3. ("[Conffiles] must not be modified by the maintainer + scripts during installation (or at any other time). Apply wonderful patch + from Nicolas Boullis . (Closes #334170). + + -- Amaya Rodrigo Sastre Mon, 17 Oct 2005 16:30:37 +0200 + +lirc (0.7.1pre2-10) unstable; urgency=low + + * The "Follow the white rabbit" Release. + * Temporarily include upstream's complete setup-driver.sh into + debian/lirc.config.in so as to temporarily fix this issue. Another + temporary workaround is to install lirc-modules-source. See #329897. + I suck. + + -- Amaya Rodrigo Sastre Mon, 10 Oct 2005 17:39:02 +0200 + +lirc (0.7.1pre2-9) unstable; urgency=low + + * Changed priority from optional to extra, learn to read, now change + liblircclient's priority to optional. Hopefully end this absurd loop. + + -- Amaya Rodrigo Sastre Mon, 19 Sep 2005 18:19:06 +0200 + +lirc (0.7.1pre2-8) unstable; urgency=low + + * Changed priority from extra to optional, to get rid of override + disparities. + * Apply patch from zapdvb to irxevent, that also contains patch from + #326703, making lirc more stable when used with cpu intensive applications + like mplayer (Closes: #328697). + * Apply japanese debconf translation (Closes: #302487). + * Fixed fuzzy string in debconf .po files (Closes: #302430). Also updated + es.po. + * Corrected lirc-modules-source.conf so that it documents the right way to + separate the list of drivers (should be space separated, not comma + separated). (Closes: #312102). + * libusb-dev is already listed in Build-Depends, so this bug should have + been already fixed (Closes: #317158). + * Find the kernel source by testing for $KSRC/include/linux/version.h. + (Closes: #301590). + + -- Amaya Rodrigo Sastre Sun, 18 Sep 2005 11:55:30 +0200 + +lirc (0.7.1pre2-7) unstable; urgency=low + + * The "Kicked out from the MIA Team, by Debconf5 and RL meetings" Release. + * Acknowledge bugs closed by previous NMU. Thanks Blars! + (Closes: #315579, #318268, #312497, #301639, #302141). + * Applied patch from Agustin Martin , fixing: + - Get rid of unknown symbols when inserting lirc_sir.ko + - Build when two drivers requiring lirc_dev are selected + - Build the atiusb driver properly + (Closes: #303663, #304609, #300989). + * Apply patch supplied by Juergen Pfennig, making irxevent send keys to the + right application. (Closes: #326703). + * Apply patch from Robert Bihlmeyer to partially take + care of #303078, while a more elegant solution is found. + * Apply patch from Alban to correct spurious + warning with aclocal >= 1.8. (Closes: #305291). + * And last, but not least, make litian happy: + - Get rid of some bashisms with help from Guillem Jover + - Avoid deprecated use of chown (ie. s/root.root/root:root/). + * Special thanks to J. Carlos Garcia Sogo for the quick tutorial on dpatch. + + -- Amaya Rodrigo Sastre Sat, 17 Sep 2005 20:47:15 +0200 + +lirc (0.7.1pre2-6.1) unstable; urgency=low + + * 0 day NMU for RC bug durring bug squishing party + * remove unportable -v option from md5sum command in debian/rules + (only one of the two md5sum programs in debian has it) + (closes: #315579) + * standards version 3.6.2 (no changes) + * fix lirc-modules-source for dpkg 1.13, add versioned dpkg dependancy + (closes: #318268) + * Vietnamese debconf translation (closes: #312497) + * add build-dependency on libxt-dev (closes: #301639, #302141) + + -- Blars Blarson Sat, 3 Sep 2005 00:12:27 +0000 + +lirc (0.7.1pre2-6) unstable; urgency=low + + * back to priority optional. I am really confused now :) + + -- Amaya Rodrigo Sastre Mon, 28 Mar 2005 23:10:45 +0200 + +lirc (0.7.1pre2-5) unstable; urgency=low + + * Now really close (Closes: #301570), instead of closing 301589 twice, now + instead of looking for Rules.make or Makefile, we test for + $KSRC/include/linux/version.h. Also (Closes: #199869). + * Leave debian/liblircclient-dev.install alone (Closes: #301723). + * Add french debconf template (Closes: #301825). + + -- Amaya Rodrigo Sastre Sun, 27 Mar 2005 23:12:16 +0200 + +lirc (0.7.1pre2-4) unstable; urgency=low + + * Remove liblirc_client.so.0.0.0 from debian/liblircclient-dev.install + (Closes: #301589). + * Do not look for Rules.make while building lirc-modules, as it is no longer + shipped with kernels above 2.6.1x (Closes: #301589). + * Changed priority optional from extra. + + -- Amaya Rodrigo Sastre Sun, 27 Mar 2005 01:45:14 +0100 + +lirc (0.7.1pre2-3) unstable; urgency=low + + * The "I love to do some lirc housekeeping now that we're really going to + release Sarge" Release. + * Make /etc/init.d/lirc point to more useful doc regarding howto configure + lircd (Closes: #239196). + * Fix makefile for lirc-modules-source so that ati_usb is properly built. + Thanks to James Stark for the patch (Closes: #300989). + * lirc 0.7.1 is now in testing and does build with 2.6 (Closes: #300587). + * Fixed installatation tutorial typo mistake (Closes: #299647). + * Lirc has been logging to syslog properly identifying itself probably for + some time now (Closes: #164536). + * Build depend on libusb-dev so that the userspace driver for ATI USB + remotes (amongst others) is supported (Closes: #294248). + * If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be + automatically used instead (Closes: #197306). + * s/auido/audio/g in debian/lirc.config, ChangeLog, setup.data and setup.sh. + * Maybe (Closes: #290903) in debian/lirc.config. + * Fixed manpage-section-mismatch in doc/man/lircd.8 and doc/man/lircmd.8. + + -- Amaya Rodrigo Sastre Fri, 25 Mar 2005 23:48:33 +0100 + +lirc (0.7.1pre2-2) unstable; urgency=low + + * Applied patch from Thomas Schmidt, thanks!. (Closes: #294720). + + -- Amaya Rodrigo Sastre Sat, 12 Mar 2005 00:01:46 +0100 + +lirc (0.7.1pre2-1) unstable; urgency=low + + * New upstream release (Closes: #294174). + * s/serial_CFLAGS/SERIAL_CFLAGS/a in Makefile (Closes: #294689). + * Added support for ati_usb modules (Closes: #297243). + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Thu, 10 Mar 2005 00:27:20 +0100 + +lirc (0.7.1pre1-2) unstable; urgency=low + + * The "And when it rains, it poures" Release. + * Fixed the nasty "setup-driver.sh not found" bug, again. This fix also + should fix the debconf freeze (Closes: #269833, #292637, #293091) + Thanks to Chris Boyle for spotting the fix. + * Included patch from "Eloy A. Paris" (Closes: #292043) + so that lirc_dev gets shipped. + * Partially included patch for Makefile from Yann Rouillard + (Closes: #246112, #287328, ) so that correct + modules and symbols get installed for 2.6.x kernels. + * Improved paths in README.Debian (Closes: #218888). + * Suggest just kernel-source and not headers (Closes: #250570). + * It now builds with 2.6 kernels (Closes: #221023). I'm terrible with lirc + bugs housekeeping :) + * Newewst upstream versions fix i2c build problems (Closes: #256986). More + housekeeping here. + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Tue, 25 Jan 2005 22:29:15 +0100 + +lirc (0.7.1pre1-1) unstable; urgency=low + + * New upstream release. + + -- Amaya Rodrigo Sastre Sun, 23 Jan 2005 02:51:59 +0100 + +lirc (0.7.0.1-2) unstable; urgency=low + + * The "I can't believe nobody reported a RC bug yet!" release. + * Changed section from optional to extra to make installer@ftp-master happy. + * Change short decriptions in order to comply with new lintian check. + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Sun, 23 Jan 2005 02:51:48 +0100 + +lirc (0.7.0.1-1ubuntu3) breezy; urgency=low + + * Build-Depends: libusb-dev (Bugzilla #14513) + * GNU config automated update: config.sub (20041130 to 20050422), + config.guess (20041112 to 20050422) + + -- root Tue, 20 Sep 2005 11:01:35 -0700 + +lirc (0.7.0.1-1ubuntu2) breezy; urgency=low + + * md5sum from coreutils doesn't have -v, so drop that for now. + + -- LaMont Jones Sat, 23 Jul 2005 13:33:16 -0600 + +lirc (0.7.0.1-1ubuntu1) hoary; urgency=low + + * remove svgalib1 Dependency completely. + + -- LaMont Jones Mon, 17 Jan 2005 14:05:26 -0700 + +lirc (0.7.1pre2-11) unstable; urgency=low + + * This upload sponsored by The Spanish Public Administration Department. + * Debian Policy 10.7.3. ("[Conffiles] must not be modified by the maintainer + scripts during installation (or at any other time). Apply wonderful patch + from Nicolas Boullis . (Closes #334170). + + -- Amaya Rodrigo Sastre Mon, 17 Oct 2005 16:30:37 +0200 + +lirc (0.7.1pre2-10) unstable; urgency=low + + * The "Follow the white rabbit" Release. + * Temporarily include upstream's complete setup-driver.sh into + debian/lirc.config.in so as to temporarily fix this issue. Another + temporary workaround is to install lirc-modules-source. See #329897. + I suck. + + -- Amaya Rodrigo Sastre Mon, 10 Oct 2005 17:39:02 +0200 + +lirc (0.7.1pre2-9) unstable; urgency=low + + * Changed priority from optional to extra, learn to read, now change + liblircclient's priority to optional. Hopefully end this absurd loop. + + -- Amaya Rodrigo Sastre Mon, 19 Sep 2005 18:19:06 +0200 + +lirc (0.7.1pre2-8) unstable; urgency=low + + * Changed priority from extra to optional, to get rid of override + disparities. + * Apply patch from zapdvb to irxevent, that also contains patch from + #326703, making lirc more stable when used with cpu intensive applications + like mplayer (Closes: #328697). + * Apply japanese debconf translation (Closes: #302487). + * Fixed fuzzy string in debconf .po files (Closes: #302430). Also updated + es.po. + * Corrected lirc-modules-source.conf so that it documents the right way to + separate the list of drivers (should be space separated, not comma + separated). (Closes: #312102). + * libusb-dev is already listed in Build-Depends, so this bug should have + been already fixed (Closes: #317158). + * Find the kernel source by testing for $KSRC/include/linux/version.h. + (Closes: #301590). + + -- Amaya Rodrigo Sastre Sun, 18 Sep 2005 11:55:30 +0200 + +lirc (0.7.1pre2-7) unstable; urgency=low + + * The "Kicked out from the MIA Team, by Debconf5 and RL meetings" Release. + * Acknowledge bugs closed by previous NMU. Thanks Blars! + (Closes: #315579, #318268, #312497, #301639, #302141). + * Applied patch from Agustin Martin , fixing: + - Get rid of unknown symbols when inserting lirc_sir.ko + - Build when two drivers requiring lirc_dev are selected + - Build the atiusb driver properly + (Closes: #303663, #304609, #300989). + * Apply patch supplied by Juergen Pfennig, making irxevent send keys to the + right application. (Closes: #326703). + * Apply patch from Robert Bihlmeyer to partially take + care of #303078, while a more elegant solution is found. + * Apply patch from Alban to correct spurious + warning with aclocal >= 1.8. (Closes: #305291). + * And last, but not least, make litian happy: + - Get rid of some bashisms with help from Guillem Jover + - Avoid deprecated use of chown (ie. s/root.root/root:root/). + * Special thanks to J. Carlos Garcia Sogo for the quick tutorial on dpatch. + + -- Amaya Rodrigo Sastre Sat, 17 Sep 2005 20:47:15 +0200 + +lirc (0.7.1pre2-6.1) unstable; urgency=low + + * 0 day NMU for RC bug durring bug squishing party + * remove unportable -v option from md5sum command in debian/rules + (only one of the two md5sum programs in debian has it) + (closes: #315579) + * standards version 3.6.2 (no changes) + * fix lirc-modules-source for dpkg 1.13, add versioned dpkg dependancy + (closes: #318268) + * Vietnamese debconf translation (closes: #312497) + * add build-dependency on libxt-dev (closes: #301639, #302141) + + -- Blars Blarson Sat, 3 Sep 2005 00:12:27 +0000 + +lirc (0.7.1pre2-6) unstable; urgency=low + + * back to priority optional. I am really confused now :) + + -- Amaya Rodrigo Sastre Mon, 28 Mar 2005 23:10:45 +0200 + +lirc (0.7.1pre2-5) unstable; urgency=low + + * Now really close (Closes: #301570), instead of closing 301589 twice, now + instead of looking for Rules.make or Makefile, we test for + $KSRC/include/linux/version.h. Also (Closes: #199869). + * Leave debian/liblircclient-dev.install alone (Closes: #301723). + * Add french debconf template (Closes: #301825). + + -- Amaya Rodrigo Sastre Sun, 27 Mar 2005 23:12:16 +0200 + +lirc (0.7.1pre2-4) unstable; urgency=low + + * Remove liblirc_client.so.0.0.0 from debian/liblircclient-dev.install + (Closes: #301589). + * Do not look for Rules.make while building lirc-modules, as it is no longer + shipped with kernels above 2.6.1x (Closes: #301589). + * Changed priority optional from extra. + + -- Amaya Rodrigo Sastre Sun, 27 Mar 2005 01:45:14 +0100 + +lirc (0.7.1pre2-3) unstable; urgency=low + + * The "I love to do some lirc housekeeping now that we're really going to + release Sarge" Release. + * Make /etc/init.d/lirc point to more useful doc regarding howto configure + lircd (Closes: #239196). + * Fix makefile for lirc-modules-source so that ati_usb is properly built. + Thanks to James Stark for the patch (Closes: #300989). + * lirc 0.7.1 is now in testing and does build with 2.6 (Closes: #300587). + * Fixed installatation tutorial typo mistake (Closes: #299647). + * Lirc has been logging to syslog properly identifying itself probably for + some time now (Closes: #164536). + * Build depend on libusb-dev so that the userspace driver for ATI USB + remotes (amongst others) is supported (Closes: #294248). + * If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be + automatically used instead (Closes: #197306). + * s/auido/audio/g in debian/lirc.config, ChangeLog, setup.data and setup.sh. + * Maybe (Closes: #290903) in debian/lirc.config. + * Fixed manpage-section-mismatch in doc/man/lircd.8 and doc/man/lircmd.8. + + -- Amaya Rodrigo Sastre Fri, 25 Mar 2005 23:48:33 +0100 + +lirc (0.7.1pre2-2) unstable; urgency=low + + * Applied patch from Thomas Schmidt, thanks!. (Closes: #294720). + + -- Amaya Rodrigo Sastre Sat, 12 Mar 2005 00:01:46 +0100 + +lirc (0.7.1pre2-1) unstable; urgency=low + + * New upstream release (Closes: #294174). + * s/serial_CFLAGS/SERIAL_CFLAGS/a in Makefile (Closes: #294689). + * Added support for ati_usb modules (Closes: #297243). + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Thu, 10 Mar 2005 00:27:20 +0100 + +lirc (0.7.1pre1-2) unstable; urgency=low + + * The "And when it rains, it poures" Release. + * Fixed the nasty "setup-driver.sh not found" bug, again. This fix also + should fix the debconf freeze (Closes: #269833, #292637, #293091) + Thanks to Chris Boyle for spotting the fix. + * Included patch from "Eloy A. Paris" (Closes: #292043) + so that lirc_dev gets shipped. + * Partially included patch for Makefile from Yann Rouillard + (Closes: #246112, #287328, ) so that correct + modules and symbols get installed for 2.6.x kernels. + * Improved paths in README.Debian (Closes: #218888). + * Suggest just kernel-source and not headers (Closes: #250570). + * It now builds with 2.6 kernels (Closes: #221023). I'm terrible with lirc + bugs housekeeping :) + * Newewst upstream versions fix i2c build problems (Closes: #256986). More + housekeeping here. + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Tue, 25 Jan 2005 22:29:15 +0100 + +lirc (0.7.1pre1-1) unstable; urgency=low + + * New upstream release. + + -- Amaya Rodrigo Sastre Sun, 23 Jan 2005 02:51:59 +0100 + +lirc (0.7.0.1-2) unstable; urgency=low + + * The "I can't believe nobody reported a RC bug yet!" release. + * Changed section from optional to extra to make installer@ftp-master happy. + * Change short decriptions in order to comply with new lintian check. + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Sun, 23 Jan 2005 02:51:48 +0100 + +lirc (0.7.0.1-1) unstable; urgency=low + + * The "let's try to fix the versioning mistake" release. I mistakenly took + 0.7.0pre8 as later than 0.7.0, so this is actually upstream latest + tarball, 0.7.0, with a made up version number. + * Not try to build /dev/lirc during build (Closes: #287559). Thanks to Lars + Wirzenius . + * Include setup-driver.sh (Closes: #287370). Thanks to Lars Wirzenius + . + * This upstream version really closes (Closes: #236573, #255383, #280548). + * The Danish debconf po is included! (Closes: #276699). + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Sat, 15 Jan 2005 14:41:42 +0100 + +lirc (0.7.0pre8-1) unstable; urgency=low + + * New upstream release. + * GNU config automated update: config.sub (20020307 to 20041130), + config.guess (20020320 to 20041112) + + -- Amaya Rodrigo Sastre Sun, 26 Dec 2004 07:48:16 +0100 + +lirc (0.7.0-1) unstable; urgency=low + + * New upstream release (Closes: #236573, #280548, #236573). + * Now builds with 2.6.x (Closes: #255383, #221023). + * GNU config automated update: config.sub (20020307 to 20040624), + config.guess (20020320 to 20040813) + * Added Danish po-debconf translation for lirc (Closes: #276699). + * Removed Ian Murdock from Uploaders. + * GNU config automated update: config.sub (20040624 to 20041130), + config.guess (20040813 to 20041112) + + -- Amaya Rodrigo Sastre Tue, 28 Dec 2004 04:44:30 +0100 + +lirc (0.6.6-13) unstable; urgency=low + + * The "Happy birthday Ranty" release (Sept 24th). + * The "Happy birthday Amaya" release (Sept 25th). + * The "Pierre, we are so glad you are back home and feeling better" release. + * Fixed path in README.Debian (Closes: #218888) + * Fix debconf prompt freeze (Closes: #269833) + * debian/modules-source/README: s/WARMING/WARNING/ + + -- Amaya Rodrigo Sastre Sat, 25 Sep 2004 19:57:49 +0200 + +lirc (0.6.6-12) unstable; urgency=low + + * The "Ranty is missed everyday" release. + Happy hacking in Heaven, our friend+brother (Closes: #252156). + * 4 new maintainers (Closes: #248767). + * Added Pierre Machard, Riku Voipio and Ian Murdock to the Uploaders field. + * GNU config automated update: config.sub (20040312 to 20040624), + config.guess (20040312 to 20040813) + * Get rid of config.log and config.status in the clean target. + * Included French Debconf Translation (Closes: #262379). + * Included Czech Debconf Translation (Closes: #261285). + * Added support for CFLAGS in the build target. + + -- Amaya Rodrigo Sastre Fri, 27 Aug 2004 20:21:00 +0200 + +lirc (0.6.6-11) unstable; urgency=low + + * Apply patch from : Goswin von Brederlow (closes: #259978) + - lirc-svga is only build for i386 + + -- Pierre Machard Sun, 18 Jul 2004 01:06:08 +0200 + +lirc (0.6.6-10) unstable; urgency=low + + * Add a test to know if smode2 is available for the target arch + (thanks to mrvn) + * Change priority to optional (closes: #236481) + * Swith to po-debconf format (closes: #232283) + + -- Pierre Machard Sat, 17 Jul 2004 19:10:45 +0200 + +lirc (0.6.6-9) unstable; urgency=low + + * QA Upload + * Add depends on svgalib only for i386 to fix building on arch !i386 + + -- Pierre Machard Sat, 17 Jul 2004 16:53:55 +0200 + +lirc (0.6.6-8) unstable; urgency=low + + * QA Upload + * Set Maintainer to packages@qa.debian.org + * Fix svgalib Build-Deps. (Closes: #243195) + * GNU config automated update: config.sub (20031007 to 20040312), + config.guess (20031007 to 20040312) + + -- Pierre Machard Sat, 17 Jul 2004 14:52:28 +0200 + +lirc (0.6.6-7) unstable; urgency=low + + * Set Architecture: properly for lirc-modules-KVERS packages. (Closes:#218881) + courtesy of Helge Kreutzmann + * GNU config automated update: config.sub (20030717 to 20031007), + config.guess (20030702 to 20031007) + * Build-Depend on debhelper >= 4.0.18 for dh_install's --list-missing. + (Closes:#187712) + * Fix "quick walkthrough" instructions it is "debian/rules" not "make". + (Closes:#202622) + * Recommend xfonts-75dpi and copy from the gimp's package description the + explanation on why it is only recommended. (Closes:#215168) + * Use ACTISYS_ACT200L instead of ACTISYS_200L to match driver sources. + (Closes:#204724) + * Remove "Depends: ${shlibs:Depends}, ${misc:Depends}" from binary module + packages as it may cause an empty Depends: line which then confuses apt. + (Closes:#210477) + * Fix spelling in hardware.conf. (Closes:#218887) + * Add a comment about /dev/lirc/0 to hardware.conf. (Improves:#197306) + * Make sure this changelog is UTF-8. + + -- Manuel Estrada Sainz Sat, 22 Nov 2003 22:07:51 +0100 + +lirc (0.6.6-6) unstable; urgency=low + + * Changed liblircclient-dev section to libdevel. + * Added "Source: lirc" to modules-source's debian/control. (Closes: #213819) + * GNU config automated update: config.sub (20030103 to 20030717), + config.guess (20030110 to 20030702) + + -- Manuel Estrada Thu, 2 Oct 2003 23:45:36 +0200 + +lirc (0.6.6-5) unstable; urgency=low + + * Use dpatch. + * Use ACTISYS_200L instead of ACT200L to properly configure SIR kernel + module. (closes: Bug#182647) + + -- Manuel Estrada Sainz Sat, 8 Mar 2003 20:15:56 +0100 + +lirc (0.6.6-4) unstable; urgency=low + + * Add kdist_configure target to lirc-modules-source. (closes: Bug#169364) + * GNU config automated update: config.sub (20020905 to 20021130), + config.guess (20020903 to 20021130) + * use DH_COMPAT 4 + * GNU config automated update: config.sub (20021130 to 20030103), + config.guess (20021130 to 20030110) + * Load kernel modules modules with autoclean (closes: Bug#176421) + * Move configuration files for the different remotes from share/doc/lirc/ to + share/lirc/. + + -- Manuel Estrada Sainz Wed, 22 Jan 2003 21:20:32 +0100 + +lirc (0.6.6-3) unstable; urgency=low + + * Include logcheck support as suggested by Blars Blarson + (closes: Bug#164510) + * GNU config automated update: config.sub (20020703 to 20020905), + config.guess (20020709 to 20020903) + * 'sed' was segfaulting on 'configure', use 'sort -u' instead + (closes: Bug#166264). + + -- Manuel Estrada Sainz Fri, 25 Oct 2002 21:44:45 +0200 + +lirc (0.6.6-2) unstable; urgency=low + + * Fixed modutils file setup on postinst (closes: Bug#164200). + Thanks to "Aaron M. Ucko" for diagnostic and fix. + * Temporarly renamed 'rc' into 'irsend' to prevent name clash with 'rc' + package, if upstream uses something different, I'll follow. + (closes: Bug#164196). + + -- Manuel Estrada Sainz Fri, 11 Oct 2002 11:16:50 +0200 + +lirc (0.6.6-1) unstable; urgency=low + + * New upstream release. + * added rc tool for sending IR commands (previously included in xrc package) + * bugfix for Winfast TV2000 card + * added SIR support for Actisys Act200L dongle (Karl Bongers) + * added UDP network driver for use with the IPC@Chip (Jim Paris) + * added support for hardware connected to soundcard input (Pavel Machek) + * added support for Tekram M230 Mach64 (Froenchenko Leonid) + * add debhelper dependency to lirc-modules-source (closes: Bug#163974). + * GNU config automated update: config.sub (20020621 to 20020703), + config.guess (20020529 to 20020709) + * Improved sanity checking when building kernel modules (closes: Bug#153491). + * Fixed a typo that prevented "automatic" configuration of lirc_parallel + driver. + * Use /etc/modutils/lirc to set kernel module parameters (closes: Bug#154476). + * Add a note about the need of 'setserial /dev/ttySX uart none' when using + lirc_serial or lirc_sir to README.Debian. + * lirc.config is now "POSIX Shell" compatible, use /bin/sh instead of + /bin/bash. + + -- Manuel Estrada Sainz Thu, 10 Oct 2002 18:53:57 +0200 + +lirc (0.6.5-6) unstable; urgency=low + + * Took the upstream fix for the compilation problem with 2.4.19-rc1 kernels. + (closes: Bug#152982) + + -- Manuel Estrada Sainz Thu, 8 Aug 2002 13:58:48 +0200 + +lirc (0.6.5-5) unstable; urgency=low + + * Patch by Andy Mortimer to include network + only support. (closes: Bug#151414) + + -- Manuel Estrada Sainz Tue, 9 Jul 2002 17:03:47 +0200 + +lirc (0.6.5-4) unstable; urgency=low + + * Applied a patch from CVS to remove the restricted licence on files + generated with irrecord. (closes: Bug#152074) + + -- Manuel Estrada Sainz Sun, 7 Jul 2002 02:12:57 +0200 + +lirc (0.6.5-3) unstable; urgency=low + + * Hacked around a problem with kernel 2.4.19-rc1. + + -- Manuel Estrada Sainz Thu, 4 Jul 2002 23:36:10 +0200 + +lirc (0.6.5-2) unstable; urgency=low + + * Fixed a typo in README.Debian + * Tell how to get a list of supported drivers in /etc/lirc/hardware.conf + (closes: Bug#141318). + * Changed section to "utils". (closes: Bug#145100) + * GNU config automated update: config.sub (20020102 to 20020307), + config.guess (20020102 to 20020320) + * GNU config automated update: config.sub (20020307 to 20020621), + config.guess (20020320 to 20020529) + + -- Manuel Estrada Thu, 4 Jul 2002 21:50:25 +0200 + +lirc (0.6.5-1) unstable; urgency=low + + * New upstream release. + * Updated debian/rules based on /usr/share/doc/autotools-dev/README.Debian.gz + + Use DEB_HOST_GNU_TYPE and DEB_BUILD_GNU_TYPE + + Update config.{sub,guess} automatically + + touch every single file in 'clean' to prevent timestamp skews + * GNU config automated update: config.sub (20011130 to 20020102), + config.guess (20011126 to 20020102) + * Use syslog and offer to remove /var/log/lircd (closes: Bug#131774) + * Integrate it87 kernel driver with the packing. + + updated debian/modules-source/{Makefile,README.make}, + lirc-modules-source.templates and lirc-modules-source.config + + -- Manuel Estrada Sainz Fri, 1 Feb 2002 21:04:49 +0100 + +lirc (0.6.4-10) unstable; urgency=high + + * The urgency is because: + + 0.6.4-9: may be uninstalable. + + reduces user frustration on module building by giving a verbose + error message. + + Complies with policy by not restoring deleted conffiles on the users + back. + + Secures device permisions. + + There is no new feature. + * /etc/lirc/lircmd.conf may not be there (closes: Bug#126279). + * Don't create /etc/lirc/* files unless they are there, they should be moved + from /etc/ or the user chooses to reconfigure the package. + * Add MODULE_LICENSE to kernel modules, patch by Ingo Saitz + This was already fixed upstream, but oh well, lets not wait to the next + release. (closes: Bug#128074) + * Cry out if IRQ, PORT or TIMER are not set when compiling kernel modules. + (closes: Bug#108131) + * Tell devfsd to create /dev/lirc/0 unconditionaly. (works around: #128072) + The proper fix should come soon from upstream. + * Changed permisions of kernel devices from "root.video 660" to + "root.root 660" since only lircd should use them and it runs as root. + By writting to this devices you may confuse kernel code and that kind + of thing should be reserved to root. If someone feels that read-only + access should be allowed to to other users or groups go ahead and file + a bug. + + -- Manuel Estrada Sainz Sun, 13 Jan 2002 20:27:00 +0100 + +lirc (0.6.4-9) unstable; urgency=low + + * Added IntelliMouse support to lircmd. (closes: Bug#122300) + * Fixed html comments on the documentation which prevented some text from + showing up in a browser, so if you were looking for something and it + wasn't there go back and make sure it is still not there. + + -- Manuel Estrada Sainz Sat, 15 Dec 2001 20:04:48 +0100 + +lirc (0.6.4-8) unstable; urgency=low + + * Took X dependent parts and svgalib parts to their own packages, and have + lirc Suggest them. (closes: Bug#121543) + * ispelled README.Debian. + * Applied patch to handle epochs properly on lirc-modules-source by + Dwayne C. Litzenberger" (closes: Bug#123019). + * Enabled Irman support (closes: Bug#103951). + I don't have an Irman and don't realy know how the hell it works, so + if there is any problem please report and I will try to fix it. + * Updated config.sub and config.guess from ftp://ftp.gnu.org/pub/gnu/config/ + + -- Manuel Estrada Sainz Mon, 10 Dec 2001 23:46:29 +0100 + +lirc (0.6.4-7) unstable; urgency=low + + * I forgot to protect a couple of db_input's with "|| true". + (closes: Bug#121006) + * Make sure lirc-modules-source/kernel-source-not-found gets shown when + needed. + + -- Manuel Estrada Sainz Sun, 25 Nov 2001 03:32:58 +0100 + +lirc (0.6.4-6) unstable; urgency=low + + * Build-dep on svgalib-dummyg1[!i386] and svgalibg1-dev [i386] so it can + build on architectures where svgalib is not available. + + -- Manuel Estrada Sainz Wed, 21 Nov 2001 13:17:22 +0100 + +lirc (0.6.4-5) unstable; urgency=low + + * call db_stop in lirc.postrm. + * modified lirc-modules-source.postinst a bit hopefully to make it + more portable, infact it now works with zsh. + * Updated README.Debian on regards to irman2lirc. + * Updated manpages and added manpages for all binaries (closes: Bug#85217). + * Build smode2 which makes lirc depend on svgalibg1. Please file a wishlist + bug suggesting an alternative if that is inconvenient. + + -- Manuel Estrada Sainz Sun, 4 Nov 2001 20:39:50 +0100 + +lirc (0.6.4-4) unstable; urgency=low + + * lirc was not building on powerpc because of the time difference with + voltaire.debian.org. I was 'touch'ing configure.in to prevent rebuilding + too much stuff and the time difference broke that. Now I am a bit more + aggressive with the time change. + * Use forkpty from libc, so I don't have to worry about devfs or devpts. + closes: #115870 or at least makes it a libc problem :) + + -- Manuel Estrada Sainz Mon, 29 Oct 2001 15:40:23 +0100 + +lirc (0.6.4-3) unstable; urgency=low + + * Updated config.sub and config.guess from ftp://ftp.gnu.org/pub/gnu/config/ + so lirc may build on more architectures (closes: #115964). + + -- Manuel Estrada Sainz Wed, 17 Oct 2001 16:19:56 +0200 + +lirc (0.6.4-2) unstable; urgency=low + + * Fixed problem with not existing configure.in.stamp (closes: #114494) + * Put lirc-modules-source debs in $(KSRC)/.. as suggested by + Christian Ohm + * Depend on debconf (>= 0.5.00) to use seen flag. + + -- Manuel Estrada Sainz Mon, 15 Oct 2001 19:29:53 +0200 + +lirc (0.6.4-1) unstable; urgency=low + + * Sorry for those 2 months of inactivity, I just came back from Colombia + where I didn't have a SID system to work on. + * New upstream release (closes: #112549) + * Call update-devfsd on postrm when purging. (closes: #104446) + * Change daemons/Makefile.in insted of daemons/Makefile.am to prevent + creating of devices nodes. This way we don't have to run automake and we + don't need to Build-depend on automake and libtool. + * Properly use MOD_DIR on lirc-modules-source (closes: #105784). + * Check for devfs device nodes after loading modules to make sure that they + are there (closes: #114284) + * Updated lirc-modules-source/do-build description, it should be more + readable now (closes: #107765) + * Added kdist_clean target to lirc-modules-source debian/rules. + + -- Manuel Estrada Sainz Thu, 4 Oct 2001 14:35:33 +0200 + +lirc (0.6.3-3) unstable; urgency=low + + * include doc/irxevent.keys as it is referenced from within the + documentation. + * Mising variables will be restored in /etc/lirc/hardware.conf. + * Installation won't fail if a conffile is missing (closes: #103326) + * Maintainer script cleanups, removed bashisms but some shell script + extracted from upstream needs bash :( + * Don't manually call ldconfig on liblircclient0 postinst, debhelper does it + already. + * Make sure that debian/rules is executable on lirc-modules-source package. + (closes: #103607) + * Build lirc-modules-x.x.x.deb in MODDIR as set by make-kpkg and by default + on ".." (closes: #103797) + + -- Manuel Estrada Sainz Wed, 4 Jul 2001 13:10:14 +0200 + +lirc (0.6.3-2) unstable; urgency=low + + * Kernel module building cleanups: it now works for 2.2 kernels, but + keep in mind that not all modules support all kernels. + * Debconf German translation thanks to Sebastian Feltel + (closes: #101171) + * Parallel port kernel module now compiles on 2.4 kernels thanks to + Santiago Garcia Mantinan + * Don't unpack the source into /usr/src/modules directly; instead, + build a tarball in /usr/src/lirc-modules.tar.gz + * lirc-modules-source is now a kernel-package compliant modules package. + * Kernel modules configuration is automated with debconf. + * lirc-modules-source:Recommends: make, dpkg-dev, c-compiler, kernel-package + * lirc-modules-source:Suggests: kernel-source | kernel-headers + * Extracted upstream configuration scripts and integrated them with debconf. + * If there is not a valid configuration try to get it from the previous + location or from upstream sample files. (closes: #102258) + * Added support for devfsd. + * Debconf Spanish translation thanks to + Carlos Valdivia Yagüe (closes: #102158) + * init.d script tries to load appropriate kernel modules. + * lirc-modules-source: Added descriptions of ANIMAX, IRDEO and TEKRAM. + * Loading kernel modules from init.d script is now optional + (See /etc/lirc/hardware.conf ) + * init.d script cryes out loud and refuses to launch daemons if it tries to + load kernel modules and they are not there. + * Resurrected automatic informal module building. + * Register html documentation with doc-base. + * Updated README.Debian, lirc-modules-source.README.Debian + modules-source/README and modules-source/README.make to reflect latest + changes. + + -- Manuel Estrada Sainz Wed, 27 Jun 2001 05:43:29 +0200 + +lirc (0.6.3-1) unstable; urgency=low + + * New Maintainer. + * New upstream release. (closes: #71643, #90129, #90130, #99405, #94686, + #97373, #73023, #85214, #90258) + * /etc/rc?.d/S??lirc priority is now 19 so it starts before gpm + and creates /dev/lircm for devfs users. (closes: #76958) + * Pass the kernel version correctly to configure. (closes: #85215) + * Moved kernel modules source to it's own package. + * lirc: Suggests lirc-modules-source + * Adjusted de descriptions for the package. + * moved irman2lirc to /usr/bin + * Moved config files to /etc/lirc/ and added hardware.conf so editing + /etc/init.d/lirc is not needed + * Explained a bit more how to make all this work in README.Debian + * Added some manpages. + + -- Manuel Estrada Sainz Thu, 7 Jun 2001 00:45:11 +0200 + +lirc (0.6.1-1.2) unstable; urgency=low + + * Added libtool build-dependency. Should fix 90258 + * Non-maintainer upload + + -- Gopal Narayanan Fri, 13 Apr 2001 17:09:21 +0000 + +lirc (0.6.1-1.1) unstable; urgency=low + + * Non-maintainer Upload + * Took out the install-exec-local target from daemons/Makefile.am and + added automake before configure in rules + * mknod stuff commented out in init.d + * Moved mknod to postinst + * above fixes are for bug 85214 + + -- Gopal Narayanan Fri, 16 Mar 2001 23:02:39 -0500 + +lirc (0.6.1-1) unstable; urgency=low + + * New upstream version. + * New makefile system for the kernel modules (Closes: #69028). + + -- Tom Lees Sun, 27 Aug 2000 12:30:57 +0100 + +lirc (0.6.0.final-2) unstable; urgency=low + + * Build the Makefile for /usr/src/lirc/lirc_aver. + * Remove the /usr/src/lirc/Makefile* files, they're useless. + * Add a README to /usr/src/lirc about building the drivers. + + -- Tom Lees Tue, 2 May 2000 09:33:14 +0100 + +lirc (0.6.0.final-1) unstable; urgency=low + + * New upstream release. + * Fix a small bug which caused lircd to crash. + * Make the drivers buildable. + * Add AverMedia driver, thanks to Santiago Garcia Mantinan . + * Remove the device nodes on purge. + + -- Tom Lees Thu, 20 Apr 2000 00:18:24 +0100 + +lirc (0.6.0pre6-1) unstable; urgency=low + + * Initial Release. + + -- Tom Lees Thu, 30 Mar 2000 19:30:57 +0100 + +Local variables: +mode: debian-changelog +End: + --- lirc-0.8.3~pre1.orig/debian/liblircclient-dev.install +++ lirc-0.8.3~pre1/debian/liblircclient-dev.install @@ -0,0 +1,3 @@ +usr/lib/liblirc_client.so +usr/lib/liblirc_client.a +usr/include/lirc --- lirc-0.8.3~pre1.orig/debian/lirc-modules-source.README.Debian +++ lirc-0.8.3~pre1/debian/lirc-modules-source.README.Debian @@ -0,0 +1,11 @@ +LIRC kernel modules source for DEBIAN +===================================== + +In the Debian packaging of LIRC, kernel module sources are installed in +/usr/src/lirc-modules.tar.gz. In order to build them, you should: + + cd /usr/src + tar -xzf lirc-modules.tar.gz + +You will now have a directory called lirc under /usr/src/modules, please read +/usr/src/modules/lirc/README for further instructions. --- lirc-0.8.3~pre1.orig/debian/lirc-modules-source.install +++ lirc-0.8.3~pre1/debian/lirc-modules-source.install @@ -0,0 +1 @@ +usr/src/* --- lirc-0.8.3~pre1.orig/debian/lirc-x.install +++ lirc-0.8.3~pre1/debian/lirc-x.install @@ -0,0 +1,4 @@ +usr/bin/xmode2 +usr/bin/irxevent +usr/share/man/man1/xmode2.1 +usr/share/man/man1/irxevent.1 --- lirc-0.8.3~pre1.orig/debian/lirc.modules +++ lirc-0.8.3~pre1/debian/lirc.modules @@ -0,0 +1,6 @@ +#This file is modified by lirc's maintainer scripts. +#Any 'options' line asociated with the selected hardware will be replaced. +#However 'add options' lines will be left alone, so you can use that for +#additional module parameters. +# ej: +# add options lirc_serial sense=0 --- lirc-0.8.3~pre1.orig/debian/compat +++ lirc-0.8.3~pre1/debian/compat @@ -0,0 +1 @@ +4 --- lirc-0.8.3~pre1.orig/debian/lirc.config.in +++ lirc-0.8.3~pre1/debian/lirc.config.in @@ -0,0 +1,409 @@ +#!/bin/sh -e + +AC_DEFINE () +{ + CFLAGS="-D$1 $CFLAGS" +} + +SetupDriver() +{ + + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 18 74 11 \ + \ + 1 "Home-brew (16x50 UART compatible serial port)" \ + 2 "Home-brew (parallel port)" \ + 3 "Home-brew (soundcard input)" \ + 4 "Other serial port devices" \ + 5 "TV card" \ + 6 "IrDA hardware" \ + 7 "PDAs" \ + 8 "USB devices" \ + 9 "Network (UDP)" \ + 0 "Other (MIDI, Bluetooth, etc.)" \ + a "None (network connections only)" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=serial; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "2"; then LIRC_DRIVER=parallel; DRIVER_PARAMETER=lpt1; DRIVER_PARAM_TYPE=lpt; + elif test "$1" = "3"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 10 74 3 \ + \ + 1 "Simple IR diode (EXPERIMENTAL)" \ + 2 "IR receiver IC connected to auido input (EXPERIMENTAL)" \ + 3 "IR receiver IC connected to auido input using ALSA (EXPERIMENTAL)" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=dsp; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "2"; then LIRC_DRIVER=audio; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "3"; then LIRC_DRIVER=audio_alsa; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + fi + } + else + return; + fi; + elif test "$1" = "4"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 19 74 12 \ + \ + 1 "Anir Multimedia Magic" \ + 2 "CARACA" \ + 3 "Creative Infra Receiver/CIMR100" \ + 4 "IRdeo" \ + 5 "IRdeo Remote" \ + 6 "Irman / UIR" \ + 7 "Logitech/AST" \ + 8 "PCMAK serial receiver" \ + 9 "Miro PCTV receiver" \ + 0 "Packard Bell receiver" \ + a "Pinnacle Systems PCTV (pro) receiver" \ + b "PixelView RemoteMaster RC2000/RC3000" \ + c "REALmagic (bundled with Hollywood Plus DVD card)" \ + d "Slink-e (receive only)" \ + e "Silitek SM-1000" \ + f "Tekram Irmate 210 (16x50 UART compatible serial port)" \ + g "UIRT2 (receive only, UIR mode)" \ + h "UIRT2 (receive and transmit)" \ + i "X10 MouseRemote RF Receiver (Serial)" \ + j "X10 MouseRemote RF Receiver (PS/2)" \ + k "X10 MP3 Anywhere RF Receiver" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=animax; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "2"; then LIRC_DRIVER=caraca; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "3"; then LIRC_DRIVER=creative; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "4"; then LIRC_DRIVER=irdeo; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "5"; then LIRC_DRIVER=irdeo_remote; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "6"; then LIRC_DRIVER=irman; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "7"; then LIRC_DRIVER=logitech; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "8"; then LIRC_DRIVER=pcmak; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "9"; then LIRC_DRIVER=pctv; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "0"; then LIRC_DRIVER=packard_bell; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "a"; then LIRC_DRIVER=pctv; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "b"; then LIRC_DRIVER=remotemaster; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "c"; then LIRC_DRIVER=realmagic; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "d"; then LIRC_DRIVER=slinke; DRIVER_PARAMETER=tty3; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "e"; then LIRC_DRIVER=silitek; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "f"; then LIRC_DRIVER=tekram; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "g"; then LIRC_DRIVER=uirt2; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "h"; then LIRC_DRIVER=uirt2_raw; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "i"; then LIRC_DRIVER=mouseremote; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "j"; then LIRC_DRIVER=mouseremote_ps2; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "k"; then LIRC_DRIVER=mp3anywhere; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + fi + } + else + return; + fi; + elif test "$1" = "5"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 19 74 12 \ + \ + 1 "Askey Magic TView CPH03x (card=1)" \ + 2 "Askey/Typhoon/Anubis Magic TView CPH051/061 (bt878) (card=24)" \ + 3 "Asus TV-Box" \ + 4 "AverMedia TV card (TVCapture, TVPhone) (card=6)" \ + 5 "AverMedia TV card (TVCapture98, TVPhone98) (card=13/41)" \ + 6 "AverMedia TV card (VDOMATE) (use card=13)" \ + 7 "BestBuy Easy TV (BT848) (card=55)" \ + 8 "BestBuy Easy TV (BT878) (card=62)" \ + 9 "Chronos Video Shuttle II (card=35)" \ + 0 "Creative BreakOut-Box" \ + a "Dynalink Magic TView (card=48)" \ + b "FlyVideo II (card=8)" \ + c "FlyVideo 98 (card=30)" \ + d "FlyVideo 98/FM /2000S (card=56)" \ + e "Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card=36)" \ + f "Hauppauge TV card (new I2C layer required)" \ + g "Hauppauge DVB-s card (ver. 2.1)" \ + h "Hercules Smart TV Stereo (card=100)" \ + i "I-O Data Co. GV-BCTV5/PCI (card=81)" \ + j "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF (card=78)" \ + k "KNC ONE TV Station (-/SE/PRO/RDS)" \ + l "Lenco MXTV-9578 CP (card=50)" \ + m "Miro PCTV serial port receiver" \ + n "Phoebe Tv Master + FM (card=22)" \ + o "PixelView PlayTV PAK (card=50)" \ + p "Pixelview PlayTV pro (card=37)" \ + q "Pixelview PlayTV (bt878) (Prolink PV-BT878P+, card=16)" \ + r "Prolink Pixelview PV-BT878P+ (Rev.4C,8E, card=70)" \ + s "Prolink PV-BT878P+4E (card=50)" \ + t "Prolink PV-BT878P+9B (PlayTV Pro rev.9B FM+NICAM) (card=72)" \ + u "ProVideo PV951 (card=42)" \ + v "Technisat MediaFocus I" \ + w "Tekram M230 Mach64 (and others bt829 based)" \ + x "TriTan Technology TView95 CPH03x (card=1)" \ + y "TView99 CPH063 (card=38)" \ + z "Typhoon TView RDS / FM Stereo (card=53)" \ + A "Winfast PVR2000 (Linux kernel >=2.6.11 required)" \ + B "Winfast TV2000/XP (card=34)" \ + C "WinView 601 (card=17)" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=cph03x; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "2"; then LIRC_DRIVER=cph06x; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "3"; then LIRC_DRIVER=tvbox; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "4"; then LIRC_DRIVER=avermedia; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "5"; then LIRC_DRIVER=avermedia98; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "6"; then LIRC_DRIVER=avermedia_vdomate; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "7"; then LIRC_DRIVER=bestbuy; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "8"; then LIRC_DRIVER=bestbuy2; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "9"; then LIRC_DRIVER=chronos; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "0"; then LIRC_DRIVER=breakoutbox; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "a"; then LIRC_DRIVER=cph03x; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "b"; then LIRC_DRIVER=flyvideo; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "c"; then LIRC_DRIVER=flyvideo; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "d"; then LIRC_DRIVER=flyvideo; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "e"; then LIRC_DRIVER=flyvideo; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "f"; then LIRC_DRIVER=hauppauge; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "g"; then LIRC_DRIVER=hauppauge_dvb; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "h"; then LIRC_DRIVER=hercules_smarttv_stereo; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "i"; then LIRC_DRIVER=gvbctv5pci; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "j"; then LIRC_DRIVER=kworld; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "k"; then LIRC_DRIVER=knc_one; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "l"; then LIRC_DRIVER=pixelview_pak; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "m"; then LIRC_DRIVER=pctv; DRIVER_PARAMETER=tty1; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "n"; then LIRC_DRIVER=cph06x; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "o"; then LIRC_DRIVER=pixelview_pak; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "p"; then LIRC_DRIVER=pixelview_pro; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "q"; then LIRC_DRIVER=pixelview_bt878; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "r"; then LIRC_DRIVER=pixelview_pro; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "s"; then LIRC_DRIVER=pixelview_pak; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "t"; then LIRC_DRIVER=pixelview_pro; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "u"; then LIRC_DRIVER=provideo; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "v"; then LIRC_DRIVER=mediafocusI; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "w"; then LIRC_DRIVER=tekram_bt829; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "x"; then LIRC_DRIVER=cph03x; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "y"; then LIRC_DRIVER=cph06x; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "z"; then LIRC_DRIVER=knc_one; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "A"; then LIRC_DRIVER=leadtek_pvr2000; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "B"; then LIRC_DRIVER=leadtek_0010; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "C"; then LIRC_DRIVER=leadtek_0007; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + fi + } + else + return; + fi; + elif test "$1" = "6"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 11 74 4 \ + \ + 1 "SIR IrDA (built-in IR ports)" \ + 2 "Tekram Irmate 210 (16x50 UART compatible serial port)" \ + 3 "ITE IT8712/IT8705 CIR port (experimental, 2.4.x required)" \ + 4 "Actisys Act200L SIR driver support" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=sir; DRIVER_PARAMETER=com3; DRIVER_PARAM_TYPE=com; + elif test "$1" = "2"; then LIRC_DRIVER=tekram; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + elif test "$1" = "3"; then LIRC_DRIVER=it87; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "4"; then LIRC_DRIVER=act200l; DRIVER_PARAMETER=com1; DRIVER_PARAM_TYPE=com; + fi + } + else + return; + fi; + elif test "$1" = "7"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 9 74 2 \ + \ + 1 "HP iPAQ" \ + 2 "Sharp Zaurus" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=sa1100; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "2"; then LIRC_DRIVER=sa1100; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + fi + } + else + return; + fi; + elif test "$1" = "8"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 18 74 11 \ + \ + 1 "ATI/NVidia/X10 I & II RF Remote" \ + 2 "ATI/NVidia/X10 RF Remote (userspace)" \ + 3 "Dign HV5 HTPC IR/VFD Module" \ + 4 "Home Electronics Tira USB device" \ + 5 "Igor Cesko's USB IR Receiver" \ + 6 "PCMAK USB receiver" \ + 7 "Sasem OnAir Remocon-V" \ + 8 "Sound Blaster Extigy USB sound card" \ + 9 "Soundgraph iMON MultiMedian IR/VFD" \ + 0 "Streamzap PC Remote" \ + a "Windows Media Center Remotes" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=atiusb; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "2"; then LIRC_DRIVER=atilibusb; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "3"; then LIRC_DRIVER=sasem; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "4"; then LIRC_DRIVER=tira; DRIVER_PARAMETER=ttyUSB1; DRIVER_PARAM_TYPE=ttyUSB; + elif test "$1" = "5"; then LIRC_DRIVER=igorplugusb; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "6"; then LIRC_DRIVER=pcmak_usb; DRIVER_PARAMETER=ttyUSB1; DRIVER_PARAM_TYPE=ttyUSB; + elif test "$1" = "7"; then LIRC_DRIVER=sasem; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "8"; then LIRC_DRIVER=exaudio; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "9"; then LIRC_DRIVER=imon; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "0"; then LIRC_DRIVER=streamzap; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "a"; then LIRC_DRIVER=mceusb; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + fi + } + else + return; + fi; + elif test "$1" = "9"; then LIRC_DRIVER=udp; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "0"; then + dialog --clear --backtitle "$BACKTITLE" \ + --title "Select your driver" \ + --menu "$CONFIG_DRIVER_TEXT" 13 74 6 \ + \ + 1 "AOpen XC Cube EA65, EA65-II" \ + 2 "Creative LiveDrive midi" \ + 3 "Creative LiveDrive sequencer" \ + 4 "Creative iNFRA CDROM" \ + 5 "Ericsson mobile phone via Bluetooth" \ + 6 "Linux input layer (/dev/input/eventX)" 2> $TEMP + if test "$?" = "0"; then + { + set `cat $TEMP` + if false; then : + elif test "$1" = "1"; then LIRC_DRIVER=ea65; DRIVER_PARAMETER=tty2; DRIVER_PARAM_TYPE=tty; + elif test "$1" = "2"; then LIRC_DRIVER=livedrive_midi; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "3"; then LIRC_DRIVER=livedrive_seq; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "4"; then LIRC_DRIVER=creative_infracd; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + elif test "$1" = "5"; then LIRC_DRIVER=bte; DRIVER_PARAMETER=btty; DRIVER_PARAM_TYPE=none; + elif test "$1" = "6"; then LIRC_DRIVER=devinput; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + fi + } + else + return; + fi; + elif test "$1" = "a"; then LIRC_DRIVER=none; DRIVER_PARAMETER=none; DRIVER_PARAM_TYPE=none; + fi + } + else + return; + fi; + +} + +ponder () +{ + driver=$1 + + #UPSTREAM HEURISTICS# + + lircd_driver=`expr $HW_DEFAULT : 'hw_\(.*\)'` + if [ "$IRTTY" != "none" ];then + DEVICE=$IRTTY + else + DEVICE="/dev/lirc" + fi + MODULES=`echo -n $lirc_driver | sed -n -e '/lirc_/p'`; + + [ "$SOFT_CARRIER" = "on" ] && AC_DEFINE LIRC_SERIAL_SOFTCARRIER + [ "$TRANSMITTER" = "on" ] && AC_DEFINE LIRC_SERIAL_TRANSMITTER + +} + +DebconfSave () +{ + db_set lirc/driver "$lircd_driver" + db_set lirc/modules "$MODULES" + db_set lirc/device "$DEVICE" + db_set lirc/lircd_conf "$lircd_conf" + db_set lirc/lircmd_conf "$lircmd_conf" + db_set lirc/port "$LIRC_PORT" + db_set lirc/irq "$LIRC_IRQ" + db_set lirc/timer "$TIMER" + db_set lirc/cflags "$CFLAGS" +} + +# Source debconf library. +. /usr/share/debconf/confmodule + +# Tell users to use IntelliMouse instead of IMPS/2 +if \ + [ -f /etc/lirc/lircmd.conf ] && \ + grep -q -i "^[^#]*PROTOCOL[\t ]*IMPS/2" /etc/lirc/lircmd.conf +then + db_input medium lirc/should-use-IntelliMouse || true +fi + +# Should I install device nodes? +db_input medium lirc/install_devices || true +db_go + +db_fget lirc/reconfigure configured +CONFIGURED=$RET + +if $CONFIGURED; then + db_input medium lirc/reconfigure || true + db_go +fi +db_get lirc/reconfigure + +if ! $CONFIGURED || $RET; then + TEMP=`mktemp /tmp/lirc.XXXXXX` + CONFIG=`mktemp /tmp/lirc.XXXXXX` + START=`mktemp /tmp/lirc.XXXXXX` + + db_set lirc/reconfigure false + db_fset lirc/reconfigure seen true + + ConfigDriver || true + + #TEMP is the output of the last invocation of dialog, which dumps the + #selected choice or nothing if cancelled + + if [ -n "`cat $TEMP`" ];then + ponder $LIRC_DRIVER || true + DebconfSave + db_fset lirc/reconfigure configured true + db_fset lirc/reconfigure config_changed true + else + #Canceled + echo CANCELED; + fi + + rm -f $TEMP $CONFIG $START +fi + +# Tell the user to take care of old configuration files if they are +# still there +if [ -f /etc/lircmd.conf ] || [ -f /etc/lircd.conf ];then + db_reset lirc/take_care_of_old_config + db_input high lirc/take_care_of_old_config || true + db_go +fi + +# Tell the user about the old /var/log/lirc log file +if [ -f /var/log/lircd ] +then + db_fset lirc/remove_var-log-lircd seen false + db_input medium lirc/remove_var-log-lircd || true + db_go +fi + --- lirc-0.8.3~pre1.orig/debian/lirc.links +++ lirc-0.8.3~pre1/debian/lirc.links @@ -0,0 +1,4 @@ +etc/lirc/lircd.conf etc/lircd.conf +usr/share/lirc/remotes usr/share/doc/lirc/remotes +usr/share/lirc/lirc.hwdb usr/share/doc/lirc/lirc.hwdb +usr/share/lirc/transmitter.hwdb usr/share/doc/lirc/transmitter.hwdb --- lirc-0.8.3~pre1.orig/debian/README.Debian +++ lirc-0.8.3~pre1/debian/README.Debian @@ -0,0 +1,46 @@ +Debianization README for LIRC notes +=================================== + +If you need irxevent or xmode2 they can be found in lirc-x package. And if you +need smode2 it can be found in lirc-svga package. This split has been done to +prevent dependencies on xlibs and svgalib for the main lirc package. + +You will probably need some kernel modules for your hardware to work, those +are distributed separately in lirc-modules-source package. You will find some +notes and instruction on how to build and install them in +/usr/share/doc/lirc-modules-source/README.Debian and +/usr/src/modules/lirc/README once you install it. + +If you use lirc_sir or lirc_serial kernel modules you should either remove +the official serial driver or use 'setserial /dev/ttySX uart none' so it +releases the serial port for use with lirc. + +For fine tuning you should look at /etc/lirc/hardware.conf + +If you already have a proper configuration file for the libirman package, you +may convert it to lirc syntax with irman2lirc. For more information take a +look at html/configure.html. + + +TROUBLE SHOOTING +---------------- + +We currently try to do it all automatically but if we miss the target there +are ways to solve this: + +If you configure lircmd to use IMPS/2 protocol gpm will refuse to work with +it, you will have to use IntelliMouse or MouseSystems for gpm to work. You can +find detailed information on how to configure lircmd in: + + /usr/share/doc/lirc/html/configure.html + +If the installation can't find proper configuration files for your hardware or +you have special needs, you may find one under the remotes/ directory or at +least a sample to start with. Or you can make your own from scratch with +irrecord. Read the documentation under html/ for more details. + +If you need to use a different device or driver, you can select them manually in +/etc/lirc/hardware.conf. Running lircd --driver=blah will give a list of +supported drivers. + +-- Manuel Estrada Sainz Sat, 9 Jun 2001 18:40:00 +0100 --- lirc-0.8.3~pre1.orig/debian/lirc-x.links +++ lirc-0.8.3~pre1/debian/lirc-x.links @@ -0,0 +1 @@ +usr/share/doc/lirc usr/share/doc/lirc-x --- lirc-0.8.3~pre1.orig/debian/lirc-modules-source.prerm +++ lirc-0.8.3~pre1/debian/lirc-modules-source.prerm @@ -0,0 +1,16 @@ +#!/bin/sh +# Copyright (C) 2007-2008 Mario Limonciello + +#DEBHELPER# + +CVERSION=`dpkg-query -W -f='${Version}' lirc-modules-source | awk -F "-" '{print $1}'` + +case "$1" in + remove|upgrade) + echo "Removing all DKMS Modules" + dkms remove -m lirc -v $CVERSION --all > /dev/null + echo "Done." + ;; +esac + + --- lirc-0.8.3~pre1.orig/debian/patches/22_hauppauge_novat_500.dpatch +++ lirc-0.8.3~pre1/debian/patches/22_hauppauge_novat_500.dpatch @@ -0,0 +1,93 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 22_hauppauge_novat_500.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Provide support for Hauppauge Nova T 500 + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2007-10-30 15:54:22.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2007-10-30 15:55:23.000000000 -0400 +@@ -72,6 +72,7 @@ + FlyVideo 98/FM /2000S (card=56);devinput;none;hw_default;life-view/lircd.conf.flyvideo; + Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card=36);dev/input;none;hw_default;life-view/lircd.conf.flyvideo; + Hauppauge TV card;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; ++Hauppauge Nova-T 500;devinput;none;hw_devinput;hauppauge/lircd.conf.hauppauge_novat500; + Hauppauge HVR-1300;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge DVB-s card (ver. 2.1);hauppauge_dvb;lirc_dev;hw_default;hauppauge/lircd.conf.hauppauge; + Hercules Smart TV Stereo (card=100);hercules_smarttv_stereo;lirc_dev lirc_i2c;hw_default;hercules/lircd.conf.smarttv_stereo; +diff -urNad lirc-0.8.3~pre1~/remotes/hauppauge/lircd.conf.hauppauge_novat500 lirc-0.8.3~pre1/remotes/hauppauge/lircd.conf.hauppauge_novat500 +--- lirc-0.8.3~pre1~/remotes/hauppauge/lircd.conf.hauppauge_novat500 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/remotes/hauppauge/lircd.conf.hauppauge_novat500 2007-10-30 15:54:22.000000000 -0400 +@@ -0,0 +1,71 @@ ++# ++# brand: Hauppauge NOVA-T-500 ++# model no. of remote control: Hauppage Nova-T-500 Snowboard Shape Silver over Black ++# ++ ++begin remote ++ ++ name NOVA-T500 ++ bits 16 ++ eps 30 ++ aeps 100 ++ ++ one 0 0 ++ zero 0 0 ++ pre_data_bits 16 ++ pre_data 0x1 ++ gap 199999 ++ toggle_bit 0 ++ ++ ++ begin codes ++ Go 0x0162 ++ Power 0x0074 ++ TV 0x0179 ++ Videos 0x0189 ++ Music 0x0188 ++ Pictures 0x00E2 ++ Guide 0x016D ++ Radio 0x0181 ++ ArrowUp 0x0067 ++ ArrowLeft 0x0069 ++ OK 0x0160 ++ ArrowRight 0x006A ++ ArrowDown 0x006C ++ BackExit 0x009E ++ Menu 0x008B ++ VolumeUp 0x0073 ++ VolumeDown 0x0072 ++ PrevCh 0x016B ++ Mute 0x0071 ++ ChannelUp 0x0192 ++ ChannelDown 0x0193 ++ Record 0x00A7 ++ Rewind 0x00A8 ++ SkipBack 0x0195 ++ Play 0x00CF ++ Pause 0x0077 ++ Stop 0x0080 ++ Fwdwind 0x00D0 ++ SkipFwd 0x0197 ++ 1 0x0002 ++ 2 0x0003 ++ 3 0x0004 ++ 4 0x0005 ++ 5 0x0006 ++ 6 0x0007 ++ 7 0x0008 ++ 8 0x0009 ++ 9 0x000A ++ * 0x0037 ++ 0 0x000B ++ # 0x0029 ++ Red 0x018E ++ Green 0x018F ++ Yellow 0x0190 ++ Blue 0x0191 ++ end codes ++ ++end remote ++ ++ --- lirc-0.8.3~pre1.orig/debian/patches/32_radioshack_15_2116_remote.dpatch +++ lirc-0.8.3~pre1/debian/patches/32_radioshack_15_2116_remote.dpatch @@ -0,0 +1,109 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 32_radioshack_15_2116_remote.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2008-03-24 01:21:36.000000000 -0500 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2008-03-24 01:22:13.000000000 -0500 +@@ -11,6 +11,7 @@ + # + Home-brew (16x50 UART compatible serial port);serial;lirc_dev lirc_serial;hw_default;; + Home-brew (Igor Cesko's variant)(16x50 UART compatible serial port);serial;lirc_dev lirc_serial_igor;hw_default;; ++Radio Shack 15-2116;serial;lirc_dev lirc_serial;hw_default;radioshack/radioshack.conf; + Home-brew (parallel port);parallel;lirc_dev lirc_parallel;hw_default;; + Network (UDP);udp;none;hw_udp;; + +diff -urNad lirc-0.8.3~pre1~/remotes/radioshack/radioshack.conf lirc-0.8.3~pre1/remotes/radioshack/radioshack.conf +--- lirc-0.8.3~pre1~/remotes/radioshack/radioshack.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/remotes/radioshack/radioshack.conf 2008-03-24 01:21:36.000000000 -0500 +@@ -0,0 +1,87 @@ ++# this config file was generated ++# using lirc-0.7.0pre2(hauppauge) on Thu Jan 1 00:35:50 2004 ++# ++# contributed by Jarod Wilson ++#------------------------------------------------------------------------------ ++# ++# filename: RadioShack_15-2116-vcr0081.lirc ++# encoding: RC-5 ++# brand: RadioShack Universal (and others) ++# model: 15-2116, set as VCR type 0081 ++# supported devices: all ++# ++# note: requires quite a bit of key reassignment w/keymover and EFCs... ++# see http://wilsonet.com/mythtv/rs15-2116.html for HOWTO ++# ++#------------------------------------------------------------------------------ ++ ++begin remote ++ ++ name rs15-2116-vcr0081 ++ bits 11 ++ flags RC5|CONST_LENGTH ++ eps 20 ++ aeps 0 ++ header 0 0 ++ one 889 889 ++ zero 889 889 ++ plead 889 ++ ptrail 0 ++ foot 0 0 ++ repeat 0 0 ++ pre_data_bits 2 ++ pre_data 0x02 ++ post_data_bits 0 ++ post_data 0x0 ++ pre 0 0 ++ post 0 0 ++ gap 113792 ++ toggle_bit 2 ++ frequency 36000 ++ duty_cycle 50 ++ ++ begin codes ++ 0 0x0000000000000140 ++ 1 0x0000000000000141 ++ 2 0x0000000000000142 ++ 3 0x0000000000000143 ++ 4 0x0000000000000144 ++ 5 0x0000000000000145 ++ 6 0x0000000000000146 ++ 7 0x0000000000000147 ++ 8 0x0000000000000148 ++ 9 0x0000000000000149 ++ INFO 0x000000000000014a ++ SELECT 0x000000000000014b ++ POWER 0x000000000000014c ++ MUTE 0x000000000000014d ++ MOVE 0x000000000000014e ++ VOL+ 0x0000000000000150 ++ VOL- 0x0000000000000151 ++ RIGHT 0x000000000000015a ++ LEFT 0x000000000000015b ++ ENTER 0x000000000000015c ++ MENU 0x000000000000015d ++ CH+ 0x0000000000000160 ++ CH- 0x0000000000000161 ++ PIP 0x0000000000000162 ++ SWAP 0x0000000000000163 ++ SLEEP 0x0000000000000166 ++ FREEZE 0x0000000000000168 ++ PAUSE 0x0000000000000169 ++ SKIP 0x000000000000016a ++ EXIT 0x0000000000000171 ++ REW 0x0000000000000172 ++ REPLAY 0x0000000000000173 ++ FFWD 0x0000000000000174 ++ PLAY 0x0000000000000175 ++ STOP 0x0000000000000176 ++ REC 0x0000000000000177 ++ SKIP 0x0000000000000178 ++ +100 0x0000000000000179 ++ LAST 0x000000000000017b ++ GUIDE 0x000000000000017c ++ TV/VIDEO 0x000000000000017e ++ end codes ++ ++end remote --- lirc-0.8.3~pre1.orig/debian/patches/05_fix_cmdir.dpatch +++ lirc-0.8.3~pre1/debian/patches/05_fix_cmdir.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 05_fix_cmdir.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add correct driver requirements for Command IR + +@DPATCH@ +diff -urNad lirc-0.8.2~/doc/lirc.hwdb lirc-0.8.2/doc/lirc.hwdb +--- lirc-0.8.2~/doc/lirc.hwdb 2007-06-09 14:38:18.000000000 -0500 ++++ lirc-0.8.2/doc/lirc.hwdb 2007-07-12 17:53:01.000000000 -0500 +@@ -113,7 +113,7 @@ + ATI/NVidia/X10 I & II RF Remote;atiusb;lirc_dev lirc_atiusb;hw_default;atiusb/lircd.conf.atiusb; + ATI/NVidia/X10 RF Remote (userspace);atilibusb;none;hw_atilibusb;atiusb/lircd.conf.atilibusb; + Creative USB IR Receiver (SB0540);sb0540;none;hw_sb0540;creative/lircd.conf.alsa_usb; +-COMMANDIR USB Transceiver;cmdir;lirc_dev lirc_cmdir;hw_default;; ++COMMANDIR USB Transceiver;cmdir;lirc_dev commandir lirc_cmdir;hw_default;; + Dign HV5 HTPC IR/VFD Module;sasem;lirc_dev lirc_sasem;hw_default;sasem/lircd.conf.sasem; + DViCO USB Remote;dvico;none;hw_dvico;dvico/lircd.conf.fusionHDTV; + Home Electronics Tira USB device;tira;none;hw_tira;; --- lirc-0.8.3~pre1.orig/debian/patches/29_macmini_repeat.dpatch +++ lirc-0.8.3~pre1/debian/patches/29_macmini_repeat.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 29_macmini_repeat.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Flag repeat events on macmini (LP: #179608). + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/daemons/hw_hiddev.c lirc-0.8.3~pre1/daemons/hw_hiddev.c +--- lirc-0.8.3~pre1~/daemons/hw_hiddev.c 2007-10-13 10:41:28.000000000 -0500 ++++ lirc-0.8.3~pre1/daemons/hw_hiddev.c 2008-03-24 00:29:22.000000000 -0500 +@@ -543,6 +543,11 @@ + pre_code = 0; + main_code = (ev[0].value << 24) + (ev[1].value << 16) + + (ev[2].value << 8) + (ev[3].value << 0); ++ if (main_code == 0) ++ { ++ /* some variants seem to send 0 to indicate repeats */ ++ main_code = old_main_code; ++ } + if (old_main_code == main_code) + { + repeat_flag = 1; --- lirc-0.8.3~pre1.orig/debian/patches/20_serial_igor.dpatch +++ lirc-0.8.3~pre1/debian/patches/20_serial_igor.dpatch @@ -0,0 +1,1823 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## serial_igor.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Create a new kernel module for igor serial, based upon old serial module + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2007-12-20 01:39:52.000000000 -0600 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2007-12-20 01:39:53.000000000 -0600 +@@ -10,6 +10,7 @@ + # + # + Home-brew (16x50 UART compatible serial port);serial;lirc_dev lirc_serial;hw_default;; ++Home-brew (Igor Cesko's variant)(16x50 UART compatible serial port);serial;lirc_dev lirc_serial_igor;hw_default;; + Home-brew (parallel port);parallel;lirc_dev lirc_parallel;hw_default;; + Network (UDP);udp;none;hw_udp;; + +diff -urNad lirc-0.8.3~pre1~/drivers/Makefile.am lirc-0.8.3~pre1/drivers/Makefile.am +--- lirc-0.8.3~pre1~/drivers/Makefile.am 2007-12-20 01:39:52.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/Makefile.am 2007-12-20 01:39:53.000000000 -0600 +@@ -22,6 +22,7 @@ + lirc_pvr150 \ + lirc_sasem \ + lirc_serial \ ++ lirc_serial_igor \ + lirc_sir \ + lirc_streamzap \ + lirc_ttusbir +diff -urNad lirc-0.8.3~pre1~/drivers/Makefile.in lirc-0.8.3~pre1/drivers/Makefile.in +--- lirc-0.8.3~pre1~/drivers/Makefile.in 2007-12-20 01:39:52.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/Makefile.in 2007-12-20 01:39:53.000000000 -0600 +@@ -210,6 +210,7 @@ + lirc_pvr150 \ + lirc_sasem \ + lirc_serial \ ++ lirc_serial_igor \ + lirc_sir \ + lirc_streamzap \ + lirc_ttusbir +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_serial_igor/Makefile.am lirc-0.8.3~pre1/drivers/lirc_serial_igor/Makefile.am +--- lirc-0.8.3~pre1~/drivers/lirc_serial_igor/Makefile.am 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_serial_igor/Makefile.am 2007-12-20 01:39:53.000000000 -0600 +@@ -0,0 +1,13 @@ ++## $Id: Makefile.am,v 5.14 2004/04/25 16:29:27 lirc Exp $ ++ ++## Process this file with automake to produce Makefile.in ++ ++## this is so that Automake includes the C compiling definitions, and ++## includes the source files in the distribution. ++EXTRA_PROGRAMS = automake_dummy ++automake_dummy_SOURCES = lirc_serial_igor.c ++ ++## there is no *just* object file support in automake. This is close enough ++module_DATA = lirc_serial_igor.o ++ ++include ../Makefile.common +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_serial_igor/Makefile.in lirc-0.8.3~pre1/drivers/lirc_serial_igor/Makefile.in +--- lirc-0.8.3~pre1~/drivers/lirc_serial_igor/Makefile.in 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_serial_igor/Makefile.in 2007-12-20 01:39:53.000000000 -0600 +@@ -0,0 +1,417 @@ ++# Makefile.in generated by automake 1.6.3 from Makefile.am. ++# @configure_input@ ++ ++# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 ++# Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++# $Id: Makefile.common,v 5.4 2007/01/17 08:50:31 lirc Exp $ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++top_builddir = ../.. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_DATA = @INSTALL_DATA@ ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = @program_transform_name@ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++ ++EXEEXT = @EXEEXT@ ++OBJEXT = @OBJEXT@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++AMTAR = @AMTAR@ ++AR = @AR@ ++AS = @AS@ ++AWK = @AWK@ ++CC = @CC@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EGREP = @EGREP@ ++F77 = @F77@ ++GCJ = @GCJ@ ++GCJFLAGS = @GCJFLAGS@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LIBTOOL = @LIBTOOL@ ++LIBUSB_CONFIG = @LIBUSB_CONFIG@ ++LN_S = @LN_S@ ++OBJDUMP = @OBJDUMP@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++RC = @RC@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++X_CFLAGS = @X_CFLAGS@ ++X_EXTRA_LIBS = @X_EXTRA_LIBS@ ++X_LIBS = @X_LIBS@ ++X_PRE_LIBS = @X_PRE_LIBS@ ++ac_pkss_mktemp = @ac_pkss_mktemp@ ++alsa_lib = @alsa_lib@ ++am__include = @am__include@ ++am__quote = @am__quote@ ++atilibusb_lib = @atilibusb_lib@ ++caraca_lib = @caraca_lib@ ++daemon = @daemon@ ++depmod = @depmod@ ++devdir = @devdir@ ++driver = @driver@ ++forkpty = @forkpty@ ++hw_module = @hw_module@ ++iguanaIR_lib = @iguanaIR_lib@ ++install_sh = @install_sh@ ++irman_lib = @irman_lib@ ++irtty = @irtty@ ++kernelcc = @kernelcc@ ++kerneldir = @kerneldir@ ++kernelext = @kernelext@ ++lirc_driver = @lirc_driver@ ++lirc_major = @lirc_major@ ++lircd_conf = @lircd_conf@ ++lircmd_conf = @lircmd_conf@ ++maintmode_daemons_extra = @maintmode_daemons_extra@ ++mkfifo = @mkfifo@ ++mknod = @mknod@ ++moduledir = @moduledir@ ++portaudio_lib = @portaudio_lib@ ++vga_progs = @vga_progs@ ++x_progs = @x_progs@ ++ ++EXTRA_PROGRAMS = automake_dummy ++automake_dummy_SOURCES = lirc_serial_igor.c ++ ++module_DATA = lirc_serial_igor.o ++ ++# where the kernel sources are located ++KERNEL_LOCATION = @kerneldir@ ++ ++LIRC_DEVDIR = $(shell pwd) ++ ++# some magic for using linux kernel settings ++# when compiling module(s) ++KBUILD_VERBOSE = 1 ++LIRC_EXTRA_CFLAGS = -DIRCTL_DEV_MAJOR=$(lirc_major) -DEXPORT_SYMTAB $(DEFS) \ ++ $(DEFAULT_INCLUDES) -I$(LIRC_DEVDIR)/../.. \ ++ -I$(KERNEL_LOCATION)/include/ \ ++ -I$(KERNEL_LOCATION)/drivers/media/video/ ++ ++ ++CLEANFILES = $(module_DATA) .$(module_DATA).flags $(module_DATA:.o=.mod.c) $(module_DATA:.o=.@kernelext@) *~ ++subdir = drivers/lirc_serial_igor ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++EXTRA_PROGRAMS = automake_dummy$(EXEEXT) ++am_automake_dummy_OBJECTS = lirc_serial_igor.$(OBJEXT) ++automake_dummy_OBJECTS = $(am_automake_dummy_OBJECTS) ++automake_dummy_LDADD = $(LDADD) ++automake_dummy_DEPENDENCIES = ++automake_dummy_LDFLAGS = ++ ++DEFS = @DEFS@ ++DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/lirc_serial_igor.Po ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ ++ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++CFLAGS = @CFLAGS@ ++DIST_SOURCES = $(automake_dummy_SOURCES) ++DATA = $(module_DATA) ++ ++DIST_COMMON = Makefile.am Makefile.in ++SOURCES = $(automake_dummy_SOURCES) ++ ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: Makefile.am $(srcdir)/../Makefile.common $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu drivers/lirc_serial_igor/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) ++automake_dummy$(EXEEXT): $(automake_dummy_OBJECTS) $(automake_dummy_DEPENDENCIES) ++ @rm -f automake_dummy$(EXEEXT) ++ $(LINK) $(automake_dummy_LDFLAGS) $(automake_dummy_OBJECTS) $(automake_dummy_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) core *.core ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lirc_serial_igor.Po@am__quote@ ++ ++distclean-depend: ++ -rm -rf ./$(DEPDIR) ++ ++.c.o: ++@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< ++ ++.c.obj: ++@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++ $(COMPILE) -c `cygpath -w $<` ++ ++.c.lo: ++@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< ++CCDEPMODE = @CCDEPMODE@ ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ -rm -f libtool ++uninstall-info-am: ++moduleDATA_INSTALL = $(INSTALL_DATA) ++ ++ETAGS = etags ++ETAGSFLAGS = ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ mkid -fID $$unique ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$tags$$unique" \ ++ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$tags $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && cd $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) $$here ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ ++top_distdir = ../.. ++distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) ++ ++distdir: $(DISTFILES) ++ @list='$(DISTFILES)'; for file in $$list; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ ++ dir="/$$dir"; \ ++ $(mkinstalldirs) "$(distdir)$$dir"; \ ++ else \ ++ dir=''; \ ++ fi; \ ++ if test -d $$d/$$file; then \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ ++ fi; \ ++ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || cp -p $$d/$$file $(distdir)/$$file \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(DATA) ++ ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(moduledir) ++ ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-am ++ ++distclean-am: clean-am distclean-compile distclean-depend \ ++ distclean-generic distclean-libtool distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-data-local install-moduleDATA ++ ++install-exec-am: install-exec-local ++ ++install-info: install-info-am ++ ++install-man: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++uninstall-am: uninstall-info-am uninstall-local uninstall-moduleDATA ++ ++.PHONY: GTAGS all all-am check check-am clean clean-generic \ ++ clean-libtool distclean distclean-compile distclean-depend \ ++ distclean-generic distclean-libtool distclean-tags distdir dvi \ ++ dvi-am info info-am install install-am install-data \ ++ install-data-am install-data-local install-exec install-exec-am \ ++ install-exec-local install-info install-info-am install-man \ ++ install-moduleDATA install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool tags uninstall uninstall-am \ ++ uninstall-info-am uninstall-local uninstall-moduleDATA ++ ++export LIRC_EXTRA_CFLAGS KERNEL_LOCATION module_DATA ++ ++$(module_DATA): $(automake_dummy_SOURCES) $(top_srcdir)/config.h ../lirc.h ++ mv Makefile Makefile.automake ++ cp ../Makefile.kernel Makefile ++ $(MAKE) -C $(KERNEL_LOCATION) SUBDIRS=$(LIRC_DEVDIR) modules \ ++ KBUILD_VERBOSE=$(KBUILD_VERBOSE) ++ mv Makefile.automake Makefile ++ ++install-moduleDATA: $(module_DATA) ++ $(mkinstalldirs) $(DESTDIR)$(moduledir) ++ @list='$(module_DATA:.o=.@kernelext@)'; for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ f="`echo $$p | sed -e 's|^.*/||'`"; \ ++ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(moduledir)/$$f"; \ ++ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(moduledir)/$$f; \ ++ done ++ ++uninstall-moduleDATA: ++ @list='$(module_DATA:.o=.@kernelext@)'; for p in $$list; do \ ++ f="`echo $$p | sed -e 's|^.*/||'`"; \ ++ echo " rm -f $(DESTDIR)$(moduledir)/$$f"; \ ++ rm -f $(DESTDIR)$(moduledir)/$$f; \ ++ done ++ ++@SANDBOXED_FALSE@install-exec-local: mkdev ++@SANDBOXED_FALSE@uninstall-local: rmdev ++ ++mkdev: ++ test -e $(DESTDIR)$(devdir)/lirc || ($(mkinstalldirs) $(DESTDIR)$(devdir) && @mknod@ $(DESTDIR)$(devdir)/lirc c @lirc_major@ 0) ++ ++rmdev: ++ -test -c $(DESTDIR)$(devdir)/lirc && $(RM) $(DESTDIR)$(devdir)/lirc ++ ++@SANDBOXED_FALSE@install-data-local: install-moduleDATA ++@SANDBOXED_FALSE@ -@depmod@ -a ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_serial_igor/lirc_serial_igor.c lirc-0.8.3~pre1/drivers/lirc_serial_igor/lirc_serial_igor.c +--- lirc-0.8.3~pre1~/drivers/lirc_serial_igor/lirc_serial_igor.c 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_serial_igor/lirc_serial_igor.c 2007-12-20 01:40:07.000000000 -0600 +@@ -0,0 +1,1341 @@ ++/* $Id: lirc_serial.c,v 5.87 2007/12/15 17:28:01 lirc Exp $ */ ++ ++/**************************************************************************** ++ ** lirc_serial.c *********************************************************** ++ **************************************************************************** ++ * ++ * lirc_serial - Device driver that records pulse- and pause-lengths ++ * (space-lengths) between DDCD event on a serial port. ++ * ++ * Copyright (C) 1996,97 Ralph Metzler ++ * Copyright (C) 1998 Trent Piepho ++ * Copyright (C) 1998 Ben Pfaff ++ * Copyright (C) 1999 Christoph Bartelmus ++ * Copyright (C) 2007 Andrei Tanas (suspend/resume support) ++ * Copyright (C) 2007 Mario Limonciello Compile for Ubuntu with igor support ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++/* Steve's changes to improve transmission fidelity: ++ - for systems with the rdtsc instruction and the clock counter, a ++ send_pule that times the pulses directly using the counter. ++ This means that the LIRC_SERIAL_TRANSMITTER_LATENCY fudge is ++ not needed. Measurement shows very stable waveform, even where ++ PCI activity slows the access to the UART, which trips up other ++ versions. ++ - For other system, non-integer-microsecond pulse/space lengths, ++ done using fixed point binary. So, much more accurate carrier ++ frequency. ++ - fine tuned transmitter latency, taking advantage of fractional ++ microseconds in previous change ++ - Fixed bug in the way transmitter latency was accounted for by ++ tuning the pulse lengths down - the send_pulse routine ignored ++ this overhead as it timed the overall pulse length - so the ++ pulse frequency was right but overall pulse length was too ++ long. Fixed by accounting for latency on each pulse/space ++ iteration. ++ ++ Steve Davies July 2001 ++*/ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 18) ++#error "**********************************************************" ++#error " Sorry, this driver needs kernel version 2.2.18 or higher " ++#error "**********************************************************" ++#endif ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) ++#include ++#endif ++ ++#include ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18) ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++ ++#if defined(LIRC_SERIAL_NSLU2) ++#include ++/* From Intel IXP42X Developer's Manual (#252480-005): */ ++/* ftp://download.intel.com/design/network/manuals/25248005.pdf */ ++#define UART_IE_IXP42X_UUE 0x40 /* IXP42X UART Unit enable */ ++#define UART_IE_IXP42X_RTOIE 0x10 /* IXP42X Receiver Data Timeout int.enable */ ++#ifndef NSLU2_LED_GRN_GPIO ++/* added in 2.6.22 */ ++#define NSLU2_LED_GRN_GPIO NSLU2_LED_GRN ++#endif ++#endif ++ ++#include "drivers/lirc.h" ++#include "drivers/kcompat.h" ++#include "drivers/lirc_dev/lirc_dev.h" ++ ++#if defined(LIRC_SERIAL_SOFTCARRIER) && !defined(LIRC_SERIAL_TRANSMITTER) ++#warning "Software carrier only affects transmitting" ++#endif ++ ++#if defined(rdtscl) ++ ++#define USE_RDTSC ++#warning "Note: using rdtsc instruction" ++#endif ++ ++#ifdef LIRC_SERIAL_ANIMAX ++#ifdef LIRC_SERIAL_TRANSMITTER ++#warning "******************************************" ++#warning " This receiver does not have a " ++#warning " transmitter diode " ++#warning "******************************************" ++#endif ++#endif ++ ++#define LIRC_DRIVER_NAME "lirc_serial_igor" ++ ++struct lirc_serial_igor ++{ ++ int signal_pin; ++ int signal_pin_change; ++ int on; ++ int off; ++ long (*send_pulse)(unsigned long length); ++ void (*send_space)(long length); ++ int features; ++}; ++ ++#define LIRC_HOMEBREW 0 ++#define LIRC_IRDEO 1 ++#define LIRC_IRDEO_REMOTE 2 ++#define LIRC_ANIMAX 3 ++#define LIRC_IGOR 4 ++#define LIRC_NSLU2 5 ++ ++static int type = LIRC_IGOR; ++ ++/* Set defaults for NSLU2 */ ++#if defined(LIRC_SERIAL_NSLU2) ++#ifndef LIRC_IRQ ++#define LIRC_IRQ IRQ_IXP4XX_UART2 ++#endif ++#ifndef LIRC_PORT ++#define LIRC_PORT (IXP4XX_UART2_BASE_VIRT + REG_OFFSET) ++#endif ++#ifndef LIRC_IOMMAP ++#define LIRC_IOMMAP IXP4XX_UART2_BASE_PHYS ++#endif ++#ifndef LIRC_IOSHIFT ++#define LIRC_IOSHIFT 2 ++#endif ++#ifndef LIRC_ALLOW_MMAPPED_IO ++#define LIRC_ALLOW_MMAPPED_IO ++#endif ++#endif ++ ++#if defined(LIRC_ALLOW_MMAPPED_IO) ++#ifndef LIRC_IOMMAP ++#define LIRC_IOMMAP 0 ++#endif ++#ifndef LIRC_IOSHIFT ++#define LIRC_IOSHIFT 0 ++#endif ++static int iommap = LIRC_IOMMAP; ++static int ioshift = LIRC_IOSHIFT; ++#endif ++ ++static int softcarrier; ++ ++static int share_irq; ++static int debug; ++ ++#define dprintk(fmt, args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \ ++ fmt, ## args); \ ++ } while (0) ++ ++/* forward declarations */ ++static long send_pulse_irdeo(unsigned long length); ++static long send_pulse_homebrew(unsigned long length); ++static void send_space_irdeo(long length); ++static void send_space_homebrew(long length); ++ ++static struct lirc_serial_igor hardware[] = { ++ /* home-brew receiver/transmitter */ ++ { ++ UART_MSR_DCD, ++ UART_MSR_DDCD, ++ UART_MCR_RTS|UART_MCR_OUT2|UART_MCR_DTR, ++ UART_MCR_RTS|UART_MCR_OUT2, ++ send_pulse_homebrew, ++ send_space_homebrew, ++ ( ++#ifdef LIRC_SERIAL_TRANSMITTER ++ LIRC_CAN_SET_SEND_DUTY_CYCLE| ++ LIRC_CAN_SET_SEND_CARRIER| ++ LIRC_CAN_SEND_PULSE| ++#endif ++ LIRC_CAN_REC_MODE2) ++ }, ++ ++ /* IRdeo classic */ ++ { ++ UART_MSR_DSR, ++ UART_MSR_DDSR, ++ UART_MCR_OUT2, ++ UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2, ++ send_pulse_irdeo, ++ send_space_irdeo, ++ (LIRC_CAN_SET_SEND_DUTY_CYCLE| ++ LIRC_CAN_SEND_PULSE| ++ LIRC_CAN_REC_MODE2) ++ }, ++ ++ /* IRdeo remote */ ++ { ++ UART_MSR_DSR, ++ UART_MSR_DDSR, ++ UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2, ++ UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2, ++ send_pulse_irdeo, ++ send_space_irdeo, ++ (LIRC_CAN_SET_SEND_DUTY_CYCLE| ++ LIRC_CAN_SEND_PULSE| ++ LIRC_CAN_REC_MODE2) ++ }, ++ ++ /* AnimaX */ ++ { ++ UART_MSR_DCD, ++ UART_MSR_DDCD, ++ 0, ++ UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2, ++ NULL, ++ NULL, ++ LIRC_CAN_REC_MODE2 ++ }, ++ ++ /* home-brew receiver/transmitter (Igor Cesko's variation) */ ++ { ++ UART_MSR_DSR, ++ UART_MSR_DDSR, ++ UART_MCR_RTS|UART_MCR_OUT2|UART_MCR_DTR, ++ UART_MCR_RTS|UART_MCR_OUT2, ++ send_pulse_homebrew, ++ send_space_homebrew, ++ ( ++#ifdef LIRC_SERIAL_TRANSMITTER ++ LIRC_CAN_SET_SEND_DUTY_CYCLE| ++ LIRC_CAN_SET_SEND_CARRIER| ++ LIRC_CAN_SEND_PULSE| ++#endif ++ LIRC_CAN_REC_MODE2) ++ }, ++ ++#if defined(LIRC_SERIAL_NSLU2) ++ /* Modified Linksys Network Storage Link USB 2.0 (NSLU2): ++ We receive on CTS of the 2nd serial port (R142,LHS), we ++ transmit with a IR diode between GPIO[1] (green status LED), ++ and ground (Matthias Goebl ). ++ See also http://www.nslu2-linux.org for this device */ ++ { ++ UART_MSR_CTS, ++ UART_MSR_DCTS, ++ UART_MCR_RTS|UART_MCR_OUT2|UART_MCR_DTR, ++ UART_MCR_RTS|UART_MCR_OUT2, ++ send_pulse_homebrew, ++ send_space_homebrew, ++ ( ++#ifdef LIRC_SERIAL_TRANSMITTER ++ LIRC_CAN_SET_SEND_DUTY_CYCLE| ++ LIRC_CAN_SET_SEND_CARRIER| ++ LIRC_CAN_SEND_PULSE| ++#endif ++ LIRC_CAN_REC_MODE2) ++ }, ++#endif ++ ++}; ++ ++#define RS_ISR_PASS_LIMIT 256 ++ ++/* A long pulse code from a remote might take upto 300 bytes. The ++ daemon should read the bytes as soon as they are generated, so take ++ the number of keys you think you can push before the daemon runs ++ and multiply by 300. The driver will warn you if you overrun this ++ buffer. If you have a slow computer or non-busmastering IDE disks, ++ maybe you will need to increase this. */ ++ ++/* This MUST be a power of two! It has to be larger than 1 as well. */ ++ ++#define RBUF_LEN 256 ++#define WBUF_LEN 256 ++ ++static int sense = -1; /* -1 = auto, 0 = active high, 1 = active low */ ++static int txsense; /* 0 = active high, 1 = active low */ ++ ++#ifndef LIRC_IRQ ++#define LIRC_IRQ 4 ++#endif ++#ifndef LIRC_PORT ++#define LIRC_PORT 0x3f8 ++#endif ++ ++static int io = LIRC_PORT; ++static int irq = LIRC_IRQ; ++ ++static struct timeval lasttv = {0, 0}; ++ ++static struct lirc_buffer rbuf; ++ ++static lirc_t wbuf[WBUF_LEN]; ++ ++static unsigned int freq = 38000; ++static unsigned int duty_cycle = 50; ++ ++/* Initialized in init_timing_params() */ ++static unsigned long period; ++static unsigned long pulse_width; ++static unsigned long space_width; ++ ++#if defined(__i386__) ++/* ++ From: ++ Linux I/O port programming mini-HOWTO ++ Author: Riku Saikkonen ++ v, 28 December 1997 ++ ++ [...] ++ Actually, a port I/O instruction on most ports in the 0-0x3ff range ++ takes almost exactly 1 microsecond, so if you're, for example, using ++ the parallel port directly, just do additional inb()s from that port ++ to delay. ++ [...] ++*/ ++/* transmitter latency 1.5625us 0x1.90 - this figure arrived at from ++ * comment above plus trimming to match actual measured frequency. ++ * This will be sensitive to cpu speed, though hopefully most of the 1.5us ++ * is spent in the uart access. Still - for reference test machine was a ++ * 1.13GHz Athlon system - Steve ++ */ ++ ++/* changed from 400 to 450 as this works better on slower machines; ++ faster machines will use the rdtsc code anyway */ ++ ++#define LIRC_SERIAL_TRANSMITTER_LATENCY 450 ++ ++#else ++ ++/* does anybody have information on other platforms ? */ ++/* 256 = 1<<8 */ ++#define LIRC_SERIAL_TRANSMITTER_LATENCY 256 ++ ++#endif /* __i386__ */ ++ ++static inline unsigned int sinp(int offset) ++{ ++#if defined(LIRC_ALLOW_MMAPPED_IO) ++ if (iommap != 0) { /* the register is memory-mapped */ ++ offset <<= ioshift; ++ return readb(io + offset); ++ } ++#endif ++ return inb(io + offset); ++} ++ ++static inline void soutp(int offset, int value) ++{ ++#if defined(LIRC_ALLOW_MMAPPED_IO) ++ if (iommap != 0) { /* the register is memory-mapped */ ++ offset <<= ioshift; ++ writeb(value, io + offset); ++ } ++#endif ++ outb(value, io + offset); ++} ++ ++static inline void on(void) ++{ ++#if defined(LIRC_SERIAL_NSLU2) ++ /* On NSLU2, we put the transmit diode between the output of the green ++ status LED and ground */ ++ if (type == LIRC_NSLU2) { ++ gpio_line_set(NSLU2_LED_GRN_GPIO, IXP4XX_GPIO_LOW); ++ return; ++ } ++#endif ++ if (txsense) ++ soutp(UART_MCR, hardware[type].off); ++ else ++ soutp(UART_MCR, hardware[type].on); ++} ++ ++static inline void off(void) ++{ ++#if defined(LIRC_SERIAL_NSLU2) ++ if (type == LIRC_NSLU2) { ++ gpio_line_set(NSLU2_LED_GRN_GPIO, IXP4XX_GPIO_HIGH); ++ return; ++ } ++#endif ++ if (txsense) ++ soutp(UART_MCR, hardware[type].on); ++ else ++ soutp(UART_MCR, hardware[type].off); ++} ++ ++#ifndef MAX_UDELAY_MS ++#define MAX_UDELAY_US 5000 ++#else ++#define MAX_UDELAY_US (MAX_UDELAY_MS*1000) ++#endif ++ ++static inline void safe_udelay(unsigned long usecs) ++{ ++ while (usecs > MAX_UDELAY_US) { ++ udelay(MAX_UDELAY_US); ++ usecs -= MAX_UDELAY_US; ++ } ++ udelay(usecs); ++} ++ ++#ifdef USE_RDTSC ++/* This is an overflow/precision juggle, complicated in that we can't ++ do long long divide in the kernel */ ++ ++/* When we use the rdtsc instruction to measure clocks, we keep the ++ * pulse and space widths as clock cycles. As this is CPU speed ++ * dependent, the widths must be calculated in init_port and ioctl ++ * time ++ */ ++ ++/* So send_pulse can quickly convert microseconds to clocks */ ++static unsigned long conv_us_to_clocks; ++ ++static inline int init_timing_params(unsigned int new_duty_cycle, ++ unsigned int new_freq) ++{ ++ unsigned long long loops_per_sec, work; ++ ++ duty_cycle = new_duty_cycle; ++ freq = new_freq; ++ ++ loops_per_sec = current_cpu_data.loops_per_jiffy; ++ loops_per_sec *= HZ; ++ ++ /* How many clocks in a microsecond?, avoiding long long divide */ ++ work = loops_per_sec; ++ work *= 4295; /* 4295 = 2^32 / 1e6 */ ++ conv_us_to_clocks = (work>>32); ++ ++ /* Carrier period in clocks, approach good up to 32GHz clock, ++ gets carrier frequency within 8Hz */ ++ period = loops_per_sec>>3; ++ period /= (freq>>3); ++ ++ /* Derive pulse and space from the period */ ++ ++ pulse_width = period*duty_cycle/100; ++ space_width = period - pulse_width; ++ dprintk("in init_timing_params, freq=%d, duty_cycle=%d, " ++ "clk/jiffy=%ld, pulse=%ld, space=%ld, " ++ "conv_us_to_clocks=%ld\n", ++ freq, duty_cycle, current_cpu_data.loops_per_jiffy, ++ pulse_width, space_width, conv_us_to_clocks); ++ return 0; ++} ++#else /* ! USE_RDTSC */ ++static inline int init_timing_params(unsigned int new_duty_cycle, ++ unsigned int new_freq) ++{ ++/* period, pulse/space width are kept with 8 binary places - ++ * IE multiplied by 256. */ ++ if (256*1000000L/new_freq*new_duty_cycle/100 <= ++ LIRC_SERIAL_TRANSMITTER_LATENCY) ++ return(-EINVAL); ++ if (256*1000000L/new_freq*(100-new_duty_cycle)/100 <= ++ LIRC_SERIAL_TRANSMITTER_LATENCY) ++ return(-EINVAL); ++ duty_cycle = new_duty_cycle; ++ freq = new_freq; ++ period = 256*1000000L/freq; ++ pulse_width = period*duty_cycle/100; ++ space_width = period-pulse_width; ++ dprintk("in init_timing_params, freq=%d pulse=%ld, " ++ "space=%ld\n", freq, pulse_width, space_width); ++ return 0; ++} ++#endif /* USE_RDTSC */ ++ ++ ++/* return value: space length delta */ ++ ++static long send_pulse_irdeo(unsigned long length) ++{ ++ long rawbits; ++ int i; ++ unsigned char output; ++ unsigned char chunk, shifted; ++ ++ /* how many bits have to be sent ? */ ++ rawbits = length*1152/10000; ++ if (duty_cycle > 50) ++ chunk = 3; ++ else ++ chunk = 1; ++ for (i = 0, output = 0x7f; rawbits > 0; rawbits -= 3) { ++ shifted = chunk<<(i*3); ++ shifted >>= 1; ++ output &= (~shifted); ++ i++; ++ if (i == 3) { ++ soutp(UART_TX, output); ++ while (!(sinp(UART_LSR) & UART_LSR_THRE)); ++ output = 0x7f; ++ i = 0; ++ } ++ } ++ if (i != 0) { ++ soutp(UART_TX, output); ++ while (!(sinp(UART_LSR) & UART_LSR_TEMT)); ++ } ++ ++ if (i == 0) ++ return ((-rawbits)*10000/1152); ++ else ++ return ((3-i)*3*10000/1152+(-rawbits)*10000/1152); ++} ++ ++#ifdef USE_RDTSC ++/* Version that uses Pentium rdtsc instruction to measure clocks */ ++ ++/* This version does sub-microsecond timing using rdtsc instruction, ++ * and does away with the fudged LIRC_SERIAL_TRANSMITTER_LATENCY ++ * Implicitly i586 architecture... - Steve ++ */ ++ ++static inline long send_pulse_homebrew_softcarrier(unsigned long length) ++{ ++ int flag; ++ unsigned long target, start, now; ++ ++ /* Get going quick as we can */ ++ rdtscl(start); on(); ++ /* Convert length from microseconds to clocks */ ++ length *= conv_us_to_clocks; ++ /* And loop till time is up - flipping at right intervals */ ++ now = start; ++ target = pulse_width; ++ flag = 1; ++ while ((now-start) < length) { ++ /* Delay till flip time */ ++ do ++ rdtscl(now); ++ while ((now-start) < target); ++ ++ /* flip */ ++ if (flag) { ++ rdtscl(now); off(); ++ target += space_width; ++ } else { ++ rdtscl(now); on(); ++ target += pulse_width; ++ } ++ flag = !flag; ++ } ++ rdtscl(now); ++ return (((now-start)-length)/conv_us_to_clocks); ++} ++#else /* ! USE_RDTSC */ ++/* Version using udelay() */ ++ ++/* here we use fixed point arithmetic, with 8 ++ fractional bits. that gets us within 0.1% or so of the right average ++ frequency, albeit with some jitter in pulse length - Steve */ ++ ++/* To match 8 fractional bits used for pulse/space length */ ++ ++static inline long send_pulse_homebrew_softcarrier(unsigned long length) ++{ ++ int flag; ++ unsigned long actual, target, d; ++ length <<= 8; ++ ++ actual = 0; target = 0; flag = 0; ++ while (actual < length) { ++ if (flag) { ++ off(); ++ target += space_width; ++ } else { ++ on(); ++ target += pulse_width; ++ } ++ d = (target-actual-LIRC_SERIAL_TRANSMITTER_LATENCY+128)>>8; ++ /* Note - we've checked in ioctl that the pulse/space ++ widths are big enough so that d is > 0 */ ++ udelay(d); ++ actual += (d<<8)+LIRC_SERIAL_TRANSMITTER_LATENCY; ++ flag = !flag; ++ } ++ return ((actual-length)>>8); ++} ++#endif /* USE_RDTSC */ ++ ++static long send_pulse_homebrew(unsigned long length) ++{ ++ if (length <= 0) ++ return 0; ++ ++ if (softcarrier) ++ return send_pulse_homebrew_softcarrier(length); ++ else { ++ on(); ++ safe_udelay(length); ++ return 0; ++ } ++} ++ ++static void send_space_irdeo(long length) ++{ ++ if (length <= 0) ++ return; ++ ++ safe_udelay(length); ++} ++ ++static void send_space_homebrew(long length) ++{ ++ off(); ++ if (length <= 0) ++ return; ++ safe_udelay(length); ++} ++ ++static inline void rbwrite(lirc_t l) ++{ ++ if (lirc_buffer_full(&rbuf)) { /* no new signals will be accepted */ ++ dprintk("Buffer overrun\n"); ++ return; ++ } ++ _lirc_buffer_write_1(&rbuf, (void *)&l); ++} ++ ++static inline void frbwrite(lirc_t l) ++{ ++ /* simple noise filter */ ++ static lirc_t pulse = 0L, space = 0L; ++ static unsigned int ptr; ++ ++ if (ptr > 0 && (l&PULSE_BIT)) { ++ pulse += l&PULSE_MASK; ++ if (pulse > 250) { ++ rbwrite(space); ++ rbwrite(pulse|PULSE_BIT); ++ ptr = 0; ++ pulse = 0; ++ } ++ return; ++ } ++ if (!(l&PULSE_BIT)) { ++ if (ptr == 0) { ++ if (l > 20000) { ++ space = l; ++ ptr++; ++ return; ++ } ++ } else { ++ if (l > 20000) { ++ space += pulse; ++ if (space > PULSE_MASK) ++ space = PULSE_MASK; ++ space += l; ++ if (space > PULSE_MASK) ++ space = PULSE_MASK; ++ pulse = 0; ++ return; ++ } ++ rbwrite(space); ++ rbwrite(pulse|PULSE_BIT); ++ ptr = 0; ++ pulse = 0; ++ } ++ } ++ rbwrite(l); ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19) ++static irqreturn_t irq_handler(int i, void *blah) ++#else ++static irqreturn_t irq_handler(int i, void *blah, struct pt_regs *regs) ++#endif ++{ ++ struct timeval tv; ++ int status, counter, dcd; ++ long deltv; ++ lirc_t data; ++ static int last_dcd = -1; ++ ++ if ((sinp(UART_IIR) & UART_IIR_NO_INT)) { ++ /* not our interrupt */ ++ return IRQ_RETVAL(IRQ_NONE); ++ } ++ ++ counter = 0; ++ do { ++ counter++; ++ status = sinp(UART_MSR); ++ if (counter > RS_ISR_PASS_LIMIT) { ++ printk(KERN_WARNING LIRC_DRIVER_NAME ": AIEEEE: " ++ "We're caught!\n"); ++ break; ++ } ++ if ((status&hardware[type].signal_pin_change) && sense != -1) { ++ /* get current time */ ++ do_gettimeofday(&tv); ++ ++ /* New mode, written by Trent Piepho ++ . */ ++ ++ /* The old format was not very portable. ++ We now use the type lirc_t to pass pulses ++ and spaces to user space. ++ ++ If PULSE_BIT is set a pulse has been ++ received, otherwise a space has been ++ received. The driver needs to know if your ++ receiver is active high or active low, or ++ the space/pulse sense could be ++ inverted. The bits denoted by PULSE_MASK are ++ the length in microseconds. Lengths greater ++ than or equal to 16 seconds are clamped to ++ PULSE_MASK. All other bits are unused. ++ This is a much simpler interface for user ++ programs, as well as eliminating "out of ++ phase" errors with space/pulse ++ autodetection. */ ++ ++ /* calculate time since last interrupt in ++ microseconds */ ++ dcd = (status & hardware[type].signal_pin) ? 1:0; ++ ++ if (dcd == last_dcd) { ++ printk(KERN_WARNING LIRC_DRIVER_NAME ++ ": ignoring spike: %d %d %lx %lx %lx %lx\n", ++ dcd, sense, ++ tv.tv_sec, lasttv.tv_sec, ++ tv.tv_usec, lasttv.tv_usec); ++ continue; ++ } ++ ++ deltv = tv.tv_sec-lasttv.tv_sec; ++ if (tv.tv_sec < lasttv.tv_sec || ++ (tv.tv_sec == lasttv.tv_sec && ++ tv.tv_usec < lasttv.tv_usec)) { ++ printk(KERN_WARNING LIRC_DRIVER_NAME ++ ": AIEEEE: your clock just jumped " ++ "backwards\n"); ++ printk(KERN_WARNING LIRC_DRIVER_NAME ++ ": %d %d %lx %lx %lx %lx\n", ++ dcd, sense, ++ tv.tv_sec, lasttv.tv_sec, ++ tv.tv_usec, lasttv.tv_usec); ++ data = PULSE_MASK; ++ } else if (deltv > 15) { ++ data = PULSE_MASK; /* really long time */ ++ if (!(dcd^sense)) { /* sanity check */ ++ printk(KERN_WARNING LIRC_DRIVER_NAME ++ ": AIEEEE: " ++ "%d %d %lx %lx %lx %lx\n", ++ dcd, sense, ++ tv.tv_sec, lasttv.tv_sec, ++ tv.tv_usec, lasttv.tv_usec); ++ /* detecting pulse while this ++ MUST be a space! */ ++ sense = sense ? 0:1; ++ } ++ } else ++ data = (lirc_t) (deltv*1000000 + ++ tv.tv_usec - ++ lasttv.tv_usec); ++ frbwrite(dcd^sense ? data : (data|PULSE_BIT)); ++ lasttv = tv; ++ last_dcd = dcd; ++ wake_up_interruptible(&rbuf.wait_poll); ++ } ++ } while (!(sinp(UART_IIR) & UART_IIR_NO_INT)); /* still pending ? */ ++ return IRQ_RETVAL(IRQ_HANDLED); ++} ++ ++static void hardware_init_port(void) ++{ ++ unsigned long flags; ++ local_irq_save(flags); ++ ++ /* Set DLAB 0. */ ++ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); ++ ++ /* First of all, disable all interrupts */ ++ soutp(UART_IER, sinp(UART_IER) & ++ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); ++ ++ /* Clear registers. */ ++ sinp(UART_LSR); ++ sinp(UART_RX); ++ sinp(UART_IIR); ++ sinp(UART_MSR); ++ ++#if defined(LIRC_SERIAL_NSLU2) ++ if (type == LIRC_NSLU2) { /* Setup NSLU2 UART */ ++ /* Enable UART */ ++ soutp(UART_IER, sinp(UART_IER) | UART_IE_IXP42X_UUE); ++ /* Disable Receiver data Time out interrupt */ ++ soutp(UART_IER, sinp(UART_IER) & ~UART_IE_IXP42X_RTOIE); ++ /* set out2 = interupt unmask; off() doesn't set MCR ++ on NSLU2 */ ++ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2); ++ } ++#endif ++ ++ /* Set line for power source */ ++ off(); ++ ++ /* Clear registers again to be sure. */ ++ sinp(UART_LSR); ++ sinp(UART_RX); ++ sinp(UART_IIR); ++ sinp(UART_MSR); ++ ++ switch (type) { ++ case LIRC_IRDEO: ++ case LIRC_IRDEO_REMOTE: ++ /* setup port to 7N1 @ 115200 Baud */ ++ /* 7N1+start = 9 bits at 115200 ~ 3 bits at 38kHz */ ++ ++ /* Set DLAB 1. */ ++ soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB); ++ /* Set divisor to 1 => 115200 Baud */ ++ soutp(UART_DLM, 0); ++ soutp(UART_DLL, 1); ++ /* Set DLAB 0 + 7N1 */ ++ soutp(UART_LCR, UART_LCR_WLEN7); ++ /* THR interrupt already disabled at this point */ ++ break; ++ default: ++ break; ++ } ++ ++ local_irq_restore(flags); ++} ++ ++static int init_port(void) ++{ ++ int i, nlow, nhigh; ++ ++ /* Reserve io region. */ ++#if defined(LIRC_ALLOW_MMAPPED_IO) ++ /* Future MMAP-Developers: Attention! ++ For memory mapped I/O you *might* need to use ioremap() first, ++ for the NSLU2 it's done in boot code. */ ++ if (((iommap != 0) ++ && (request_mem_region(iommap, 8<= nhigh ? 1 : 0); ++ printk(KERN_INFO LIRC_DRIVER_NAME ": auto-detected active " ++ "%s receiver\n", sense ? "low":"high"); ++ } else ++ printk(KERN_INFO LIRC_DRIVER_NAME ": Manually using active " ++ "%s receiver\n", sense ? "low":"high"); ++ ++ return 0; ++} ++ ++static int set_use_inc(void *data) ++{ ++ int result; ++ unsigned long flags; ++ ++ /* Init read buffer. */ ++ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0) ++ return -ENOMEM; ++ ++ /* initialize timestamp */ ++ do_gettimeofday(&lasttv); ++ ++ result = request_irq(irq, irq_handler, ++ IRQF_DISABLED | (share_irq ? IRQF_SHARED:0), ++ LIRC_DRIVER_NAME, (void *)&hardware); ++ ++ switch (result) { ++ case -EBUSY: ++ printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq); ++ lirc_buffer_free(&rbuf); ++ return -EBUSY; ++ case -EINVAL: ++ printk(KERN_ERR LIRC_DRIVER_NAME ++ ": Bad irq number or handler\n"); ++ lirc_buffer_free(&rbuf); ++ return -EINVAL; ++ default: ++ dprintk("Interrupt %d, port %04x obtained\n", irq, io); ++ break; ++ }; ++ ++ local_irq_save(flags); ++ ++ /* Set DLAB 0. */ ++ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); ++ ++ soutp(UART_IER, sinp(UART_IER)|UART_IER_MSI); ++ ++ local_irq_restore(flags); ++ ++ MOD_INC_USE_COUNT; ++ return 0; ++} ++ ++static void set_use_dec(void *data) ++{ unsigned long flags; ++ ++ local_irq_save(flags); ++ ++ /* Set DLAB 0. */ ++ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); ++ ++ /* First of all, disable all interrupts */ ++ soutp(UART_IER, sinp(UART_IER) & ++ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); ++ local_irq_restore(flags); ++ ++ free_irq(irq, (void *)&hardware); ++ ++ dprintk("freed IRQ %d\n", irq); ++ lirc_buffer_free(&rbuf); ++ ++ MOD_DEC_USE_COUNT; ++} ++ ++static ssize_t lirc_write(struct file *file, const char *buf, ++ size_t n, loff_t *ppos) ++{ ++ int i, count; ++ unsigned long flags; ++ long delta = 0; ++ ++ if (!(hardware[type].features&LIRC_CAN_SEND_PULSE)) ++ return(-EBADF); ++ ++ if (n%sizeof(lirc_t)) return(-EINVAL); ++ count = n/sizeof(lirc_t); ++ if (count > WBUF_LEN || count%2 == 0) return(-EINVAL); ++ if (copy_from_user(wbuf, buf, n)) return -EFAULT; ++ local_irq_save(flags); ++ if (type == LIRC_IRDEO) { ++ /* DTR, RTS down */ ++ on(); ++ } ++ for (i = 0; i < count; i++) { ++ if (i%2) ++ hardware[type].send_space(wbuf[i]-delta); ++ else ++ delta = hardware[type].send_pulse(wbuf[i]); ++ } ++ off(); ++ local_irq_restore(flags); ++ return(n); ++} ++ ++static int lirc_ioctl(struct inode *node, struct file *filep, unsigned int cmd, ++ unsigned long arg) ++{ ++ int result; ++ unsigned long value; ++ unsigned int ivalue; ++ ++ switch (cmd) { ++ case LIRC_GET_SEND_MODE: ++ if (!(hardware[type].features&LIRC_CAN_SEND_MASK)) ++ return(-ENOIOCTLCMD); ++ ++ result = put_user(LIRC_SEND2MODE ++ (hardware[type].features&LIRC_CAN_SEND_MASK), ++ (unsigned long *) arg); ++ if (result) ++ return result; ++ break; ++ ++ case LIRC_SET_SEND_MODE: ++ if (!(hardware[type].features&LIRC_CAN_SEND_MASK)) ++ return(-ENOIOCTLCMD); ++ ++ result = get_user(value, (unsigned long *) arg); ++ if (result) ++ return result; ++ /* only LIRC_MODE_PULSE supported */ ++ if (value != LIRC_MODE_PULSE) ++ return -ENOSYS; ++ break; ++ ++ case LIRC_GET_LENGTH: ++ return -ENOSYS; ++ break; ++ ++ case LIRC_SET_SEND_DUTY_CYCLE: ++ dprintk("SET_SEND_DUTY_CYCLE\n"); ++ if (!(hardware[type].features&LIRC_CAN_SET_SEND_DUTY_CYCLE)) ++ return -ENOIOCTLCMD; ++ ++ result = get_user(ivalue, (unsigned int *) arg); ++ if (result) ++ return result; ++ if (ivalue <= 0 || ivalue > 100) ++ return -EINVAL; ++ return init_timing_params(ivalue, freq); ++ break; ++ ++ case LIRC_SET_SEND_CARRIER: ++ dprintk("SET_SEND_CARRIER\n"); ++ if (!(hardware[type].features&LIRC_CAN_SET_SEND_CARRIER)) ++ return -ENOIOCTLCMD; ++ ++ result = get_user(ivalue, (unsigned int *) arg); ++ if (result) ++ return result; ++ if (ivalue > 500000 || ivalue < 20000) ++ return -EINVAL; ++ return init_timing_params(duty_cycle, ivalue); ++ break; ++ ++ default: ++ return -ENOIOCTLCMD; ++ } ++ return 0; ++} ++ ++static struct file_operations lirc_fops = { ++ .write = lirc_write, ++}; ++ ++static struct lirc_plugin plugin = { ++ .name = LIRC_DRIVER_NAME, ++ .minor = -1, ++ .code_length = 1, ++ .sample_rate = 0, ++ .data = NULL, ++ .add_to_buf = NULL, ++ .get_queue = NULL, ++ .rbuf = &rbuf, ++ .set_use_inc = set_use_inc, ++ .set_use_dec = set_use_dec, ++ .ioctl = lirc_ioctl, ++ .fops = &lirc_fops, ++ .dev = NULL, ++ .owner = THIS_MODULE, ++}; ++ ++#ifdef MODULE ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) ++static struct platform_device *lirc_serial_igor_dev; ++ ++static int __devinit lirc_serial_igor_probe(struct platform_device *dev) ++{ ++ return 0; ++} ++ ++static int __devexit lirc_serial_igor_remove(struct platform_device * dev) ++{ ++ return 0; ++} ++ ++static int lirc_serial_igor_suspend(struct platform_device *dev, ++ pm_message_t state) ++{ ++ /* Set DLAB 0. */ ++ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB)); ++ ++ /* Disable all interrupts */ ++ soutp(UART_IER, sinp(UART_IER) & ++ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI))); ++ ++ /* Clear registers. */ ++ sinp(UART_LSR); ++ sinp(UART_RX); ++ sinp(UART_IIR); ++ sinp(UART_MSR); ++ ++ return 0; ++} ++ ++static int lirc_serial_igor_resume(struct platform_device *dev) ++{ ++ unsigned long flags; ++ ++ hardware_init_port(); ++ ++ local_irq_save(flags); ++ /* Enable Interrupt */ ++ do_gettimeofday(&lasttv); ++ soutp(UART_IER, sinp(UART_IER)|UART_IER_MSI); ++ off(); ++ ++ lirc_buffer_clear(&rbuf); ++ ++ local_irq_restore(flags); ++ ++ return 0; ++} ++ ++static struct platform_driver lirc_serial_igor_driver = { ++ .probe = lirc_serial_igor_probe, ++ .remove = __devexit_p(lirc_serial_igor_remove), ++ .suspend = lirc_serial_igor_suspend, ++ .resume = lirc_serial_igor_resume, ++ .driver = { ++ .name = "lirc_serial_igor", ++ .owner = THIS_MODULE, ++ }, ++}; ++ ++static int __init lirc_serial_igor_init(void) ++{ ++ int result; ++ ++ result = platform_driver_register(&lirc_serial_igor_driver); ++ if (result) { ++ printk("lirc register returned %d\n", result); ++ return result; ++ } ++ ++ lirc_serial_igor_dev = platform_device_alloc("lirc_serial_igor", 0); ++ if (!lirc_serial_igor_dev) { ++ result = -ENOMEM; ++ goto exit_driver_unregister; ++ } ++ ++ result = platform_device_add(lirc_serial_igor_dev); ++ if (result) ++ goto exit_device_put; ++ ++ return 0; ++ ++exit_device_put: ++ platform_device_put(lirc_serial_igor_dev); ++exit_driver_unregister: ++ platform_driver_unregister(&lirc_serial_igor_driver); ++ return result; ++} ++ ++static void __exit lirc_serial_igor_exit(void) ++{ ++ platform_device_unregister(lirc_serial_igor_dev); ++ platform_driver_unregister(&lirc_serial_igor_driver); ++} ++#endif ++ ++int __init init_module(void) ++{ ++ int result; ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) ++ result = lirc_serial_igor_init(); ++ if (result) ++ return result; ++#endif ++ switch (type) { ++ case LIRC_HOMEBREW: ++ case LIRC_IRDEO: ++ case LIRC_IRDEO_REMOTE: ++ case LIRC_ANIMAX: ++ case LIRC_IGOR: ++#if defined(LIRC_SERIAL_NSLU2) ++ case LIRC_NSLU2: ++#endif ++ break; ++ default: ++ result = -EINVAL; ++ goto exit_serial_exit; ++ } ++ if (!softcarrier) { ++ switch (type) { ++ case LIRC_HOMEBREW: ++ case LIRC_IGOR: ++ case LIRC_NSLU2: ++ hardware[type].features &= ++ ~(LIRC_CAN_SET_SEND_DUTY_CYCLE| ++ LIRC_CAN_SET_SEND_CARRIER); ++ break; ++ } ++ } ++ result = init_port(); ++ if (result < 0) ++ goto exit_serial_exit; ++ plugin.features = hardware[type].features; ++ plugin.minor = lirc_register_plugin(&plugin); ++ if (plugin.minor < 0) { ++ printk(KERN_ERR LIRC_DRIVER_NAME ++ ": register_chrdev failed!\n"); ++ result = -EIO; ++ goto exit_release; ++ } ++ return 0; ++exit_release: ++ release_region(io, 8); ++exit_serial_exit: ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) ++ lirc_serial_igor_exit(); ++#endif ++ return result; ++} ++ ++void __exit cleanup_module(void) ++{ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18) ++ lirc_serial_igor_exit(); ++#endif ++#if defined(LIRC_ALLOW_MMAPPED_IO) ++ if (iommap != 0) ++ release_mem_region(iommap, 8< +## +## All lines beginning with `## DP:' are a description of the patch. +## DP:Provides extra headers for compiling lirc_gpio + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/bt848.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/bt848.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/bt848.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/bt848.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,366 @@ ++/* ++ bt848.h - Bt848 register offsets ++ ++ Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BT848_H_ ++#define _BT848_H_ ++ ++#ifndef PCI_VENDOR_ID_BROOKTREE ++#define PCI_VENDOR_ID_BROOKTREE 0x109e ++#endif ++#ifndef PCI_DEVICE_ID_BT848 ++#define PCI_DEVICE_ID_BT848 0x350 ++#endif ++#ifndef PCI_DEVICE_ID_BT849 ++#define PCI_DEVICE_ID_BT849 0x351 ++#endif ++#ifndef PCI_DEVICE_ID_BT878 ++#define PCI_DEVICE_ID_BT878 0x36e ++#endif ++#ifndef PCI_DEVICE_ID_BT879 ++#define PCI_DEVICE_ID_BT879 0x36f ++#endif ++ ++ ++/* Brooktree 848 registers */ ++ ++#define BT848_DSTATUS 0x000 ++#define BT848_DSTATUS_PRES (1<<7) ++#define BT848_DSTATUS_HLOC (1<<6) ++#define BT848_DSTATUS_FIELD (1<<5) ++#define BT848_DSTATUS_NUML (1<<4) ++#define BT848_DSTATUS_CSEL (1<<3) ++#define BT848_DSTATUS_PLOCK (1<<2) ++#define BT848_DSTATUS_LOF (1<<1) ++#define BT848_DSTATUS_COF (1<<0) ++ ++#define BT848_IFORM 0x004 ++#define BT848_IFORM_HACTIVE (1<<7) ++#define BT848_IFORM_MUXSEL (3<<5) ++#define BT848_IFORM_MUX0 (2<<5) ++#define BT848_IFORM_MUX1 (3<<5) ++#define BT848_IFORM_MUX2 (1<<5) ++#define BT848_IFORM_XTSEL (3<<3) ++#define BT848_IFORM_XT0 (1<<3) ++#define BT848_IFORM_XT1 (2<<3) ++#define BT848_IFORM_XTAUTO (3<<3) ++#define BT848_IFORM_XTBOTH (3<<3) ++#define BT848_IFORM_NTSC 1 ++#define BT848_IFORM_NTSC_J 2 ++#define BT848_IFORM_PAL_BDGHI 3 ++#define BT848_IFORM_PAL_M 4 ++#define BT848_IFORM_PAL_N 5 ++#define BT848_IFORM_SECAM 6 ++#define BT848_IFORM_PAL_NC 7 ++#define BT848_IFORM_AUTO 0 ++#define BT848_IFORM_NORM 7 ++ ++#define BT848_TDEC 0x008 ++#define BT848_TDEC_DEC_FIELD (1<<7) ++#define BT848_TDEC_FLDALIGN (1<<6) ++#define BT848_TDEC_DEC_RAT (0x1f) ++ ++#define BT848_E_CROP 0x00C ++#define BT848_O_CROP 0x08C ++ ++#define BT848_E_VDELAY_LO 0x010 ++#define BT848_O_VDELAY_LO 0x090 ++ ++#define BT848_E_VACTIVE_LO 0x014 ++#define BT848_O_VACTIVE_LO 0x094 ++ ++#define BT848_E_HDELAY_LO 0x018 ++#define BT848_O_HDELAY_LO 0x098 ++ ++#define BT848_E_HACTIVE_LO 0x01C ++#define BT848_O_HACTIVE_LO 0x09C ++ ++#define BT848_E_HSCALE_HI 0x020 ++#define BT848_O_HSCALE_HI 0x0A0 ++ ++#define BT848_E_HSCALE_LO 0x024 ++#define BT848_O_HSCALE_LO 0x0A4 ++ ++#define BT848_BRIGHT 0x028 ++ ++#define BT848_E_CONTROL 0x02C ++#define BT848_O_CONTROL 0x0AC ++#define BT848_CONTROL_LNOTCH (1<<7) ++#define BT848_CONTROL_COMP (1<<6) ++#define BT848_CONTROL_LDEC (1<<5) ++#define BT848_CONTROL_CBSENSE (1<<4) ++#define BT848_CONTROL_CON_MSB (1<<2) ++#define BT848_CONTROL_SAT_U_MSB (1<<1) ++#define BT848_CONTROL_SAT_V_MSB (1<<0) ++ ++#define BT848_CONTRAST_LO 0x030 ++#define BT848_SAT_U_LO 0x034 ++#define BT848_SAT_V_LO 0x038 ++#define BT848_HUE 0x03C ++ ++#define BT848_E_SCLOOP 0x040 ++#define BT848_O_SCLOOP 0x0C0 ++#define BT848_SCLOOP_CAGC (1<<6) ++#define BT848_SCLOOP_CKILL (1<<5) ++#define BT848_SCLOOP_HFILT_AUTO (0<<3) ++#define BT848_SCLOOP_HFILT_CIF (1<<3) ++#define BT848_SCLOOP_HFILT_QCIF (2<<3) ++#define BT848_SCLOOP_HFILT_ICON (3<<3) ++ ++#define BT848_SCLOOP_PEAK (1<<7) ++#define BT848_SCLOOP_HFILT_MINP (1<<3) ++#define BT848_SCLOOP_HFILT_MEDP (2<<3) ++#define BT848_SCLOOP_HFILT_MAXP (3<<3) ++ ++ ++#define BT848_OFORM 0x048 ++#define BT848_OFORM_RANGE (1<<7) ++#define BT848_OFORM_CORE0 (0<<5) ++#define BT848_OFORM_CORE8 (1<<5) ++#define BT848_OFORM_CORE16 (2<<5) ++#define BT848_OFORM_CORE32 (3<<5) ++ ++#define BT848_E_VSCALE_HI 0x04C ++#define BT848_O_VSCALE_HI 0x0CC ++#define BT848_VSCALE_YCOMB (1<<7) ++#define BT848_VSCALE_COMB (1<<6) ++#define BT848_VSCALE_INT (1<<5) ++#define BT848_VSCALE_HI 15 ++ ++#define BT848_E_VSCALE_LO 0x050 ++#define BT848_O_VSCALE_LO 0x0D0 ++#define BT848_TEST 0x054 ++#define BT848_ADELAY 0x060 ++#define BT848_BDELAY 0x064 ++ ++#define BT848_ADC 0x068 ++#define BT848_ADC_RESERVED (2<<6) ++#define BT848_ADC_SYNC_T (1<<5) ++#define BT848_ADC_AGC_EN (1<<4) ++#define BT848_ADC_CLK_SLEEP (1<<3) ++#define BT848_ADC_Y_SLEEP (1<<2) ++#define BT848_ADC_C_SLEEP (1<<1) ++#define BT848_ADC_CRUSH (1<<0) ++ ++#define BT848_WC_UP 0x044 ++#define BT848_WC_DOWN 0x078 ++ ++#define BT848_E_VTC 0x06C ++#define BT848_O_VTC 0x0EC ++#define BT848_VTC_HSFMT (1<<7) ++#define BT848_VTC_VFILT_2TAP 0 ++#define BT848_VTC_VFILT_3TAP 1 ++#define BT848_VTC_VFILT_4TAP 2 ++#define BT848_VTC_VFILT_5TAP 3 ++ ++#define BT848_SRESET 0x07C ++ ++#define BT848_COLOR_FMT 0x0D4 ++#define BT848_COLOR_FMT_O_RGB32 (0<<4) ++#define BT848_COLOR_FMT_O_RGB24 (1<<4) ++#define BT848_COLOR_FMT_O_RGB16 (2<<4) ++#define BT848_COLOR_FMT_O_RGB15 (3<<4) ++#define BT848_COLOR_FMT_O_YUY2 (4<<4) ++#define BT848_COLOR_FMT_O_BtYUV (5<<4) ++#define BT848_COLOR_FMT_O_Y8 (6<<4) ++#define BT848_COLOR_FMT_O_RGB8 (7<<4) ++#define BT848_COLOR_FMT_O_YCrCb422 (8<<4) ++#define BT848_COLOR_FMT_O_YCrCb411 (9<<4) ++#define BT848_COLOR_FMT_O_RAW (14<<4) ++#define BT848_COLOR_FMT_E_RGB32 0 ++#define BT848_COLOR_FMT_E_RGB24 1 ++#define BT848_COLOR_FMT_E_RGB16 2 ++#define BT848_COLOR_FMT_E_RGB15 3 ++#define BT848_COLOR_FMT_E_YUY2 4 ++#define BT848_COLOR_FMT_E_BtYUV 5 ++#define BT848_COLOR_FMT_E_Y8 6 ++#define BT848_COLOR_FMT_E_RGB8 7 ++#define BT848_COLOR_FMT_E_YCrCb422 8 ++#define BT848_COLOR_FMT_E_YCrCb411 9 ++#define BT848_COLOR_FMT_E_RAW 14 ++ ++#define BT848_COLOR_FMT_RGB32 0x00 ++#define BT848_COLOR_FMT_RGB24 0x11 ++#define BT848_COLOR_FMT_RGB16 0x22 ++#define BT848_COLOR_FMT_RGB15 0x33 ++#define BT848_COLOR_FMT_YUY2 0x44 ++#define BT848_COLOR_FMT_BtYUV 0x55 ++#define BT848_COLOR_FMT_Y8 0x66 ++#define BT848_COLOR_FMT_RGB8 0x77 ++#define BT848_COLOR_FMT_YCrCb422 0x88 ++#define BT848_COLOR_FMT_YCrCb411 0x99 ++#define BT848_COLOR_FMT_RAW 0xee ++ ++#define BT848_VTOTAL_LO 0xB0 ++#define BT848_VTOTAL_HI 0xB4 ++ ++#define BT848_COLOR_CTL 0x0D8 ++#define BT848_COLOR_CTL_EXT_FRMRATE (1<<7) ++#define BT848_COLOR_CTL_COLOR_BARS (1<<6) ++#define BT848_COLOR_CTL_RGB_DED (1<<5) ++#define BT848_COLOR_CTL_GAMMA (1<<4) ++#define BT848_COLOR_CTL_WSWAP_ODD (1<<3) ++#define BT848_COLOR_CTL_WSWAP_EVEN (1<<2) ++#define BT848_COLOR_CTL_BSWAP_ODD (1<<1) ++#define BT848_COLOR_CTL_BSWAP_EVEN (1<<0) ++ ++#define BT848_CAP_CTL 0x0DC ++#define BT848_CAP_CTL_DITH_FRAME (1<<4) ++#define BT848_CAP_CTL_CAPTURE_VBI_ODD (1<<3) ++#define BT848_CAP_CTL_CAPTURE_VBI_EVEN (1<<2) ++#define BT848_CAP_CTL_CAPTURE_ODD (1<<1) ++#define BT848_CAP_CTL_CAPTURE_EVEN (1<<0) ++ ++#define BT848_VBI_PACK_SIZE 0x0E0 ++ ++#define BT848_VBI_PACK_DEL 0x0E4 ++#define BT848_VBI_PACK_DEL_VBI_HDELAY 0xfc ++#define BT848_VBI_PACK_DEL_EXT_FRAME 2 ++#define BT848_VBI_PACK_DEL_VBI_PKT_HI 1 ++ ++ ++#define BT848_INT_STAT 0x100 ++#define BT848_INT_MASK 0x104 ++ ++#define BT848_INT_ETBF (1<<23) ++ ++#define BT848_INT_RISCS (0xf<<28) ++#define BT848_INT_RISC_EN (1<<27) ++#define BT848_INT_RACK (1<<25) ++#define BT848_INT_FIELD (1<<24) ++#define BT848_INT_SCERR (1<<19) ++#define BT848_INT_OCERR (1<<18) ++#define BT848_INT_PABORT (1<<17) ++#define BT848_INT_RIPERR (1<<16) ++#define BT848_INT_PPERR (1<<15) ++#define BT848_INT_FDSR (1<<14) ++#define BT848_INT_FTRGT (1<<13) ++#define BT848_INT_FBUS (1<<12) ++#define BT848_INT_RISCI (1<<11) ++#define BT848_INT_GPINT (1<<9) ++#define BT848_INT_I2CDONE (1<<8) ++#define BT848_INT_VPRES (1<<5) ++#define BT848_INT_HLOCK (1<<4) ++#define BT848_INT_OFLOW (1<<3) ++#define BT848_INT_HSYNC (1<<2) ++#define BT848_INT_VSYNC (1<<1) ++#define BT848_INT_FMTCHG (1<<0) ++ ++ ++#define BT848_GPIO_DMA_CTL 0x10C ++#define BT848_GPIO_DMA_CTL_GPINTC (1<<15) ++#define BT848_GPIO_DMA_CTL_GPINTI (1<<14) ++#define BT848_GPIO_DMA_CTL_GPWEC (1<<13) ++#define BT848_GPIO_DMA_CTL_GPIOMODE (3<<11) ++#define BT848_GPIO_DMA_CTL_GPCLKMODE (1<<10) ++#define BT848_GPIO_DMA_CTL_PLTP23_4 (0<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_8 (1<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_16 (2<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_32 (3<<6) ++#define BT848_GPIO_DMA_CTL_PLTP1_4 (0<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_8 (1<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_16 (2<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_32 (3<<4) ++#define BT848_GPIO_DMA_CTL_PKTP_4 (0<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_8 (1<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_16 (2<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_32 (3<<2) ++#define BT848_GPIO_DMA_CTL_RISC_ENABLE (1<<1) ++#define BT848_GPIO_DMA_CTL_FIFO_ENABLE (1<<0) ++ ++#define BT848_I2C 0x110 ++#define BT878_I2C_MODE (1<<7) ++#define BT878_I2C_RATE (1<<6) ++#define BT878_I2C_NOSTOP (1<<5) ++#define BT878_I2C_NOSTART (1<<4) ++#define BT848_I2C_DIV (0xf<<4) ++#define BT848_I2C_SYNC (1<<3) ++#define BT848_I2C_W3B (1<<2) ++#define BT848_I2C_SCL (1<<1) ++#define BT848_I2C_SDA (1<<0) ++ ++#define BT848_RISC_STRT_ADD 0x114 ++#define BT848_GPIO_OUT_EN 0x118 ++#define BT848_GPIO_REG_INP 0x11C ++#define BT848_RISC_COUNT 0x120 ++#define BT848_GPIO_DATA 0x200 ++ ++ ++/* Bt848 RISC commands */ ++ ++/* only for the SYNC RISC command */ ++#define BT848_FIFO_STATUS_FM1 0x06 ++#define BT848_FIFO_STATUS_FM3 0x0e ++#define BT848_FIFO_STATUS_SOL 0x02 ++#define BT848_FIFO_STATUS_EOL4 0x01 ++#define BT848_FIFO_STATUS_EOL3 0x0d ++#define BT848_FIFO_STATUS_EOL2 0x09 ++#define BT848_FIFO_STATUS_EOL1 0x05 ++#define BT848_FIFO_STATUS_VRE 0x04 ++#define BT848_FIFO_STATUS_VRO 0x0c ++#define BT848_FIFO_STATUS_PXV 0x00 ++ ++#define BT848_RISC_RESYNC (1<<15) ++ ++/* WRITE and SKIP */ ++/* disable which bytes of each DWORD */ ++#define BT848_RISC_BYTE0 (1U<<12) ++#define BT848_RISC_BYTE1 (1U<<13) ++#define BT848_RISC_BYTE2 (1U<<14) ++#define BT848_RISC_BYTE3 (1U<<15) ++#define BT848_RISC_BYTE_ALL (0x0fU<<12) ++#define BT848_RISC_BYTE_NONE 0 ++/* cause RISCI */ ++#define BT848_RISC_IRQ (1U<<24) ++/* RISC command is last one in this line */ ++#define BT848_RISC_EOL (1U<<26) ++/* RISC command is first one in this line */ ++#define BT848_RISC_SOL (1U<<27) ++ ++#define BT848_RISC_WRITE (0x01U<<28) ++#define BT848_RISC_SKIP (0x02U<<28) ++#define BT848_RISC_WRITEC (0x05U<<28) ++#define BT848_RISC_JUMP (0x07U<<28) ++#define BT848_RISC_SYNC (0x08U<<28) ++ ++#define BT848_RISC_WRITE123 (0x09U<<28) ++#define BT848_RISC_SKIP123 (0x0aU<<28) ++#define BT848_RISC_WRITE1S23 (0x0bU<<28) ++ ++ ++/* Bt848A and higher only !! */ ++#define BT848_TGLB 0x080 ++#define BT848_TGCTRL 0x084 ++#define BT848_FCAP 0x0E8 ++#define BT848_PLL_F_LO 0x0F0 ++#define BT848_PLL_F_HI 0x0F4 ++ ++#define BT848_PLL_XCI 0x0F8 ++#define BT848_PLL_X (1<<7) ++#define BT848_PLL_C (1<<6) ++ ++#define BT848_DVSIF 0x0FC ++ ++/* Bt878 register */ ++ ++#define BT878_DEVCTRL 0x40 ++#define BT878_EN_TBFX 0x02 ++#define BT878_EN_VSFX 0x04 ++ ++#endif +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/btcx-risc.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/btcx-risc.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/btcx-risc.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/btcx-risc.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,34 @@ ++/* ++ */ ++struct btcx_riscmem { ++ unsigned int size; ++ u32 *cpu; ++ u32 *jmp; ++ dma_addr_t dma; ++}; ++ ++struct btcx_skiplist { ++ int start; ++ int end; ++}; ++ ++int btcx_riscmem_alloc(struct pci_dev *pci, ++ struct btcx_riscmem *risc, ++ unsigned int size); ++void btcx_riscmem_free(struct pci_dev *pci, ++ struct btcx_riscmem *risc); ++ ++int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win, ++ struct v4l2_clip *clips, unsigned int n); ++int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, ++ unsigned int n, int mask); ++void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); ++void btcx_calc_skips(int line, int width, unsigned int *maxy, ++ struct btcx_skiplist *skips, unsigned int *nskips, ++ const struct v4l2_clip *clips, unsigned int nclips); ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/bttv.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/bttv.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/bttv.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/bttv.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,407 @@ ++/* ++ * ++ * bttv - Bt848 frame grabber driver ++ * ++ * card ID's and external interfaces of the bttv driver ++ * basically stuff needed by other drivers (i2c, lirc, ...) ++ * and is supported not to change much over time. ++ * ++ * Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ * (c) 1999,2000 Gerd Knorr ++ * ++ */ ++ ++#ifndef _BTTV_H_ ++#define _BTTV_H_ ++ ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-cards.c */ ++ ++#define BTTV_BOARD_UNKNOWN 0x00 ++#define BTTV_BOARD_MIRO 0x01 ++#define BTTV_BOARD_HAUPPAUGE 0x02 ++#define BTTV_BOARD_STB 0x03 ++#define BTTV_BOARD_INTEL 0x04 ++#define BTTV_BOARD_DIAMOND 0x05 ++#define BTTV_BOARD_AVERMEDIA 0x06 ++#define BTTV_BOARD_MATRIX_VISION 0x07 ++#define BTTV_BOARD_FLYVIDEO 0x08 ++#define BTTV_BOARD_TURBOTV 0x09 ++#define BTTV_BOARD_HAUPPAUGE878 0x0a ++#define BTTV_BOARD_MIROPRO 0x0b ++#define BTTV_BOARD_ADSTECH_TV 0x0c ++#define BTTV_BOARD_AVERMEDIA98 0x0d ++#define BTTV_BOARD_VHX 0x0e ++#define BTTV_BOARD_ZOLTRIX 0x0f ++#define BTTV_BOARD_PIXVIEWPLAYTV 0x10 ++#define BTTV_BOARD_WINVIEW_601 0x11 ++#define BTTV_BOARD_AVEC_INTERCAP 0x12 ++#define BTTV_BOARD_LIFE_FLYKIT 0x13 ++#define BTTV_BOARD_CEI_RAFFLES 0x14 ++#define BTTV_BOARD_CONFERENCETV 0x15 ++#define BTTV_BOARD_PHOEBE_TVMAS 0x16 ++#define BTTV_BOARD_MODTEC_205 0x17 ++#define BTTV_BOARD_MAGICTVIEW061 0x18 ++#define BTTV_BOARD_VOBIS_BOOSTAR 0x19 ++#define BTTV_BOARD_HAUPPAUG_WCAM 0x1a ++#define BTTV_BOARD_MAXI 0x1b ++#define BTTV_BOARD_TERRATV 0x1c ++#define BTTV_BOARD_PXC200 0x1d ++#define BTTV_BOARD_FLYVIDEO_98 0x1e ++#define BTTV_BOARD_IPROTV 0x1f ++#define BTTV_BOARD_INTEL_C_S_PCI 0x20 ++#define BTTV_BOARD_TERRATVALUE 0x21 ++#define BTTV_BOARD_WINFAST2000 0x22 ++#define BTTV_BOARD_CHRONOS_VS2 0x23 ++#define BTTV_BOARD_TYPHOON_TVIEW 0x24 ++#define BTTV_BOARD_PXELVWPLTVPRO 0x25 ++#define BTTV_BOARD_MAGICTVIEW063 0x26 ++#define BTTV_BOARD_PINNACLE 0x27 ++#define BTTV_BOARD_STB2 0x28 ++#define BTTV_BOARD_AVPHONE98 0x29 ++#define BTTV_BOARD_PV951 0x2a ++#define BTTV_BOARD_ONAIR_TV 0x2b ++#define BTTV_BOARD_SIGMA_TVII_FM 0x2c ++#define BTTV_BOARD_MATRIX_VISION2 0x2d ++#define BTTV_BOARD_ZOLTRIX_GENIE 0x2e ++#define BTTV_BOARD_TERRATVRADIO 0x2f ++#define BTTV_BOARD_DYNALINK 0x30 ++#define BTTV_BOARD_GVBCTV3PCI 0x31 ++#define BTTV_BOARD_PXELVWPLTVPAK 0x32 ++#define BTTV_BOARD_EAGLE 0x33 ++#define BTTV_BOARD_PINNACLEPRO 0x34 ++#define BTTV_BOARD_TVIEW_RDS_FM 0x35 ++#define BTTV_BOARD_LIFETEC_9415 0x36 ++#define BTTV_BOARD_BESTBUY_EASYTV 0x37 ++#define BTTV_BOARD_FLYVIDEO_98FM 0x38 ++#define BTTV_BOARD_GRANDTEC 0x39 ++#define BTTV_BOARD_ASKEY_CPH060 0x3a ++#define BTTV_BOARD_ASKEY_CPH03X 0x3b ++#define BTTV_BOARD_MM100PCTV 0x3c ++#define BTTV_BOARD_GMV1 0x3d ++#define BTTV_BOARD_BESTBUY_EASYTV2 0x3e ++#define BTTV_BOARD_ATI_TVWONDER 0x3f ++#define BTTV_BOARD_ATI_TVWONDERVE 0x40 ++#define BTTV_BOARD_FLYVIDEO2000 0x41 ++#define BTTV_BOARD_TERRATVALUER 0x42 ++#define BTTV_BOARD_GVBCTV4PCI 0x43 ++#define BTTV_BOARD_VOODOOTV_FM 0x44 ++#define BTTV_BOARD_AIMMS 0x45 ++#define BTTV_BOARD_PV_BT878P_PLUS 0x46 ++#define BTTV_BOARD_FLYVIDEO98EZ 0x47 ++#define BTTV_BOARD_PV_BT878P_9B 0x48 ++#define BTTV_BOARD_SENSORAY311 0x49 ++#define BTTV_BOARD_RV605 0x4a ++#define BTTV_BOARD_POWERCLR_MTV878 0x4b ++#define BTTV_BOARD_WINDVR 0x4c ++#define BTTV_BOARD_GRANDTEC_MULTI 0x4d ++#define BTTV_BOARD_KWORLD 0x4e ++#define BTTV_BOARD_DSP_TCVIDEO 0x4f ++#define BTTV_BOARD_HAUPPAUGEPVR 0x50 ++#define BTTV_BOARD_GVBCTV5PCI 0x51 ++#define BTTV_BOARD_OSPREY1x0 0x52 ++#define BTTV_BOARD_OSPREY1x0_848 0x53 ++#define BTTV_BOARD_OSPREY101_848 0x54 ++#define BTTV_BOARD_OSPREY1x1 0x55 ++#define BTTV_BOARD_OSPREY1x1_SVID 0x56 ++#define BTTV_BOARD_OSPREY2xx 0x57 ++#define BTTV_BOARD_OSPREY2x0_SVID 0x58 ++#define BTTV_BOARD_OSPREY2x0 0x59 ++#define BTTV_BOARD_OSPREY500 0x5a ++#define BTTV_BOARD_OSPREY540 0x5b ++#define BTTV_BOARD_OSPREY2000 0x5c ++#define BTTV_BOARD_IDS_EAGLE 0x5d ++#define BTTV_BOARD_PINNACLESAT 0x5e ++#define BTTV_BOARD_FORMAC_PROTV 0x5f ++#define BTTV_BOARD_MACHTV 0x60 ++#define BTTV_BOARD_EURESYS_PICOLO 0x61 ++#define BTTV_BOARD_PV150 0x62 ++#define BTTV_BOARD_AD_TVK503 0x63 ++#define BTTV_BOARD_HERCULES_SM_TV 0x64 ++#define BTTV_BOARD_PACETV 0x65 ++#define BTTV_BOARD_IVC200 0x66 ++#define BTTV_BOARD_XGUARD 0x67 ++#define BTTV_BOARD_NEBULA_DIGITV 0x68 ++#define BTTV_BOARD_PV143 0x69 ++#define BTTV_BOARD_VD009X1_MINIDIN 0x6a ++#define BTTV_BOARD_VD009X1_COMBI 0x6b ++#define BTTV_BOARD_VD009_MINIDIN 0x6c ++#define BTTV_BOARD_VD009_COMBI 0x6d ++#define BTTV_BOARD_IVC100 0x6e ++#define BTTV_BOARD_IVC120 0x6f ++#define BTTV_BOARD_PC_HDTV 0x70 ++#define BTTV_BOARD_TWINHAN_DST 0x71 ++#define BTTV_BOARD_WINFASTVC100 0x72 ++#define BTTV_BOARD_TEV560 0x73 ++#define BTTV_BOARD_SIMUS_GVC1100 0x74 ++#define BTTV_BOARD_NGSTV_PLUS 0x75 ++#define BTTV_BOARD_LMLBT4 0x76 ++#define BTTV_BOARD_TEKRAM_M205 0x77 ++#define BTTV_BOARD_CONTVFMI 0x78 ++#define BTTV_BOARD_PICOLO_TETRA_CHIP 0x79 ++#define BTTV_BOARD_SPIRIT_TV 0x7a ++#define BTTV_BOARD_AVDVBT_771 0x7b ++#define BTTV_BOARD_AVDVBT_761 0x7c ++#define BTTV_BOARD_MATRIX_VISIONSQ 0x7d ++#define BTTV_BOARD_MATRIX_VISIONSLC 0x7e ++#define BTTV_BOARD_APAC_VIEWCOMP 0x7f ++#define BTTV_BOARD_DVICO_DVBT_LITE 0x80 ++#define BTTV_BOARD_VGEAR_MYVCD 0x81 ++#define BTTV_BOARD_SUPER_TV 0x82 ++#define BTTV_BOARD_TIBET_CS16 0x83 ++#define BTTV_BOARD_KODICOM_4400R 0x84 ++#define BTTV_BOARD_KODICOM_4400R_SL 0x85 ++#define BTTV_BOARD_ADLINK_RTV24 0x86 ++#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 ++#define BTTV_BOARD_ACORP_Y878F 0x88 ++#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2 0x89 ++#define BTTV_BOARD_PV_BT878P_2E 0x8a ++#define BTTV_BOARD_PV_M4900 0x8b ++#define BTTV_BOARD_OSPREY440 0x8c ++#define BTTV_BOARD_ASOUND_SKYEYE 0x8d ++#define BTTV_BOARD_SABRENT_TVFM 0x8e ++#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f ++#define BTTV_BOARD_MACHTV_MAGICTV 0x90 ++ ++/* i2c address list */ ++#define I2C_TSA5522 0xc2 ++#define I2C_TDA7432 0x8a ++#define I2C_BT832_ALT1 0x88 ++#define I2C_BT832_ALT2 0x8a // alternate setting ++#define I2C_TDA8425 0x82 ++#define I2C_TDA9840 0x84 ++#define I2C_TDA9850 0xb6 /* also used by 9855,9873 */ ++#define I2C_TDA9874 0xb0 /* also used by 9875 */ ++#define I2C_TDA9875 0xb0 ++#define I2C_HAUPEE 0xa0 ++#define I2C_STBEE 0xae ++#define I2C_VHX 0xc0 ++#define I2C_MSP3400 0x80 ++#define I2C_MSP3400_ALT 0x88 ++#define I2C_TEA6300 0x80 /* also used by 6320 */ ++#define I2C_DPL3518 0x84 ++#define I2C_TDA9887 0x86 ++ ++/* more card-specific defines */ ++#define PT2254_L_CHANNEL 0x10 ++#define PT2254_R_CHANNEL 0x08 ++#define PT2254_DBS_IN_2 0x400 ++#define PT2254_DBS_IN_10 0x20000 ++#define WINVIEW_PT2254_CLK 0x40 ++#define WINVIEW_PT2254_DATA 0x20 ++#define WINVIEW_PT2254_STROBE 0x80 ++ ++/* digital_mode */ ++#define DIGITAL_MODE_VIDEO 1 ++#define DIGITAL_MODE_CAMERA 2 ++ ++struct bttv_core { ++ /* device structs */ ++ struct pci_dev *pci; ++ struct i2c_adapter i2c_adap; ++ struct list_head subs; /* struct bttv_sub_device */ ++ ++ /* device config */ ++ unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */ ++ unsigned int type; /* card type (pointer into tvcards[]) */ ++ char name[8]; /* dev name */ ++}; ++ ++struct bttv; ++ ++ ++struct bttv_ir { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ ++ /* Usual gpio signalling */ ++ ++ u32 mask_keycode; ++ u32 mask_keydown; ++ u32 mask_keyup; ++ u32 polling; ++ u32 last_gpio; ++ struct work_struct work; ++ struct timer_list timer; ++ ++ /* RC5 gpio */ ++ u32 rc5_gpio; ++ struct timer_list timer_end; /* timer_end for code completion */ ++ struct timer_list timer_keyup; /* timer_end for key release */ ++ u32 last_rc5; /* last good rc5 code */ ++ u32 last_bit; /* last raw bit seen */ ++ u32 code; /* raw code under construction */ ++ struct timeval base_time; /* time of last seen code */ ++ int active; /* building raw code */ ++}; ++ ++struct tvcard ++{ ++ char *name; ++ unsigned int video_inputs; ++ unsigned int audio_inputs; ++ unsigned int tuner; ++ unsigned int svhs; ++ unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO ++ u32 gpiomask; ++ u32 muxsel[16]; ++ u32 audiomux[6]; /* Tuner, Radio, external, internal, mute, stereo */ ++ u32 gpiomask2; /* GPIO MUX mask */ ++ ++ /* i2c audio flags */ ++ unsigned int no_msp34xx:1; ++ unsigned int no_tda9875:1; ++ unsigned int no_tda7432:1; ++ unsigned int needs_tvaudio:1; ++ unsigned int msp34xx_alt:1; ++ ++ /* flag: video pci function is unused */ ++ unsigned int no_video:1; ++ unsigned int has_dvb:1; ++ unsigned int has_remote:1; ++ unsigned int no_gpioirq:1; ++ ++ /* other settings */ ++ unsigned int pll; ++#define PLL_NONE 0 ++#define PLL_28 1 ++#define PLL_35 2 ++ ++ unsigned int tuner_type; ++ unsigned int tuner_addr; ++ unsigned int radio_addr; ++ ++ unsigned int has_radio; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ void (*muxsel_hook)(struct bttv *btv, unsigned int input); ++}; ++ ++extern struct tvcard bttv_tvcards[]; ++ ++/* identification / initialization of the card */ ++extern void bttv_idcard(struct bttv *btv); ++extern void bttv_init_card1(struct bttv *btv); ++extern void bttv_init_card2(struct bttv *btv); ++ ++/* card-specific funtions */ ++extern void tea5757_set_freq(struct bttv *btv, unsigned short freq); ++extern void bttv_tda9880_setnorm(struct bttv *btv, int norm); ++ ++/* extra tweaks for some chipsets */ ++extern void bttv_check_chipset(void); ++extern int bttv_handle_chipset(struct bttv *btv); ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-if.c */ ++ ++/* this obsolete -- please use the sysfs-based ++ interface below for new code */ ++ ++/* returns card type + card ID (for bt878-based ones) ++ for possible values see lines below beginning with #define BTTV_BOARD_UNKNOWN ++ returns negative value if error occurred ++*/ ++extern int bttv_get_cardinfo(unsigned int card, int *type, ++ unsigned int *cardid); ++extern struct pci_dev* bttv_get_pcidev(unsigned int card); ++ ++/* obsolete, use bttv_get_cardinfo instead */ ++extern int bttv_get_id(unsigned int card); ++ ++/* sets GPOE register (BT848_GPIO_OUT_EN) to new value: ++ data | (current_GPOE_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_gpio_enable(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* fills data with GPDATA register contents ++ returns negative value if error occurred ++*/ ++extern int bttv_read_gpio(unsigned int card, unsigned long *data); ++ ++/* sets GPDATA register to new value: ++ (data & mask) | (current_GPDATA_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_write_gpio(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* returns pointer to task queue which can be used as parameter to ++ interruptible_sleep_on ++ in interrupt handler if BT848_INT_GPINT bit is set - this queue is activated ++ (wake_up_interruptible) and following call to the function bttv_read_gpio ++ should return new value of GPDATA, ++ returns NULL value if error occurred or queue is not available ++ WARNING: because there is no buffer for GPIO data, one MUST ++ process data ASAP ++*/ ++extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); ++ ++/* call i2c clients ++*/ ++extern void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg); ++ ++ ++ ++/* ---------------------------------------------------------- */ ++/* sysfs/driver-moded based gpio access interface */ ++ ++ ++struct bttv_sub_device { ++ struct device dev; ++ struct bttv_core *core; ++ struct list_head list; ++}; ++#define to_bttv_sub_dev(x) container_of((x), struct bttv_sub_device, dev) ++ ++struct bttv_sub_driver { ++ struct device_driver drv; ++ char wanted[BUS_ID_SIZE]; ++ int (*probe)(struct bttv_sub_device *sub); ++ void (*remove)(struct bttv_sub_device *sub); ++ void (*gpio_irq)(struct bttv_sub_device *sub); ++}; ++#define to_bttv_sub_drv(x) container_of((x), struct bttv_sub_driver, drv) ++ ++int bttv_sub_register(struct bttv_sub_driver *drv, char *wanted); ++int bttv_sub_unregister(struct bttv_sub_driver *drv); ++ ++/* gpio access functions */ ++void bttv_gpio_inout(struct bttv_core *core, u32 mask, u32 outbits); ++u32 bttv_gpio_read(struct bttv_core *core); ++void bttv_gpio_write(struct bttv_core *core, u32 value); ++void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits); ++ ++#define gpio_inout(mask,bits) bttv_gpio_inout(&btv->c, mask, bits) ++#define gpio_read() bttv_gpio_read(&btv->c) ++#define gpio_write(value) bttv_gpio_write(&btv->c, value) ++#define gpio_bits(mask,bits) bttv_gpio_bits(&btv->c, mask, bits) ++ ++ ++/* ---------------------------------------------------------- */ ++/* i2c */ ++ ++extern void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg); ++extern int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for); ++extern int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1, ++ unsigned char b2, int both); ++extern void bttv_readee(struct bttv *btv, unsigned char *eedata, int addr); ++ ++extern int bttv_input_init(struct bttv *dev); ++extern void bttv_input_fini(struct bttv *dev); ++extern void bttv_input_irq(struct bttv *dev); ++ ++#endif /* _BTTV_H_ */ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/bttvp.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/bttvp.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.16/bttvp.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.16/bttvp.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,410 @@ ++/* ++ ++ bttv - Bt848 frame grabber driver ++ ++ bttv's *private* header file -- nobody other than bttv itself ++ should ever include this file. ++ ++ (c) 2000-2002 Gerd Knorr ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BTTVP_H_ ++#define _BTTVP_H_ ++ ++#include ++#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,16) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++#include "bt848.h" ++#include "bttv.h" ++#include "btcx-risc.h" ++ ++#ifdef __KERNEL__ ++ ++#define FORMAT_FLAGS_DITHER 0x01 ++#define FORMAT_FLAGS_PACKED 0x02 ++#define FORMAT_FLAGS_PLANAR 0x04 ++#define FORMAT_FLAGS_RAW 0x08 ++#define FORMAT_FLAGS_CrCb 0x10 ++ ++#define RISC_SLOT_O_VBI 4 ++#define RISC_SLOT_O_FIELD 6 ++#define RISC_SLOT_E_VBI 10 ++#define RISC_SLOT_E_FIELD 12 ++#define RISC_SLOT_LOOP 14 ++ ++#define RESOURCE_OVERLAY 1 ++#define RESOURCE_VIDEO 2 ++#define RESOURCE_VBI 4 ++ ++#define RAW_LINES 640 ++#define RAW_BPL 1024 ++ ++#define UNSET (-1U) ++ ++#define clamp(x, low, high) min (max (low, x), high) ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_tvnorm { ++ int v4l2_id; ++ char *name; ++ u32 Fsc; ++ u16 swidth, sheight; /* scaled standard width, height */ ++ u16 totalwidth; ++ u8 adelay, bdelay, iform; ++ u32 scaledtwidth; ++ u16 hdelayx1, hactivex1; ++ u16 vdelay; ++ u8 vbipack; ++ u16 vtotal; ++ int sram; ++ /* ITU-R frame line number of the first VBI line we can ++ capture, of the first and second field. */ ++ u16 vbistart[2]; ++}; ++extern const struct bttv_tvnorm bttv_tvnorms[]; ++ ++struct bttv_format { ++ char *name; ++ int palette; /* video4linux 1 */ ++ int fourcc; /* video4linux 2 */ ++ int btformat; /* BT848_COLOR_FMT_* */ ++ int btswap; /* BT848_COLOR_CTL_* */ ++ int depth; /* bit/pixel */ ++ int flags; ++ int hshift,vshift; /* for planar modes */ ++}; ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_geometry { ++ u8 vtc,crop,comb; ++ u16 width,hscale,hdelay; ++ u16 sheight,vscale,vdelay,vtotal; ++}; ++ ++struct bttv_buffer { ++ /* common v4l buffer stuff -- must be first */ ++ struct videobuf_buffer vb; ++ ++ /* bttv specific */ ++ const struct bttv_format *fmt; ++ int tvnorm; ++ int btformat; ++ int btswap; ++ struct bttv_geometry geo; ++ struct btcx_riscmem top; ++ struct btcx_riscmem bottom; ++}; ++ ++struct bttv_buffer_set { ++ struct bttv_buffer *top; /* top field buffer */ ++ struct bttv_buffer *bottom; /* bottom field buffer */ ++ unsigned int top_irq; ++ unsigned int frame_irq; ++}; ++ ++struct bttv_overlay { ++ int tvnorm; ++ struct v4l2_rect w; ++ enum v4l2_field field; ++ struct v4l2_clip *clips; ++ int nclips; ++ int setup_ok; ++}; ++ ++struct bttv_fh { ++ struct bttv *btv; ++ int resources; ++#ifdef VIDIOC_G_PRIORITY ++ enum v4l2_priority prio; ++#endif ++ enum v4l2_buf_type type; ++ ++ /* video capture */ ++ struct videobuf_queue cap; ++ const struct bttv_format *fmt; ++ int width; ++ int height; ++ ++ /* current settings */ ++ const struct bttv_format *ovfmt; ++ struct bttv_overlay ov; ++ ++ /* video overlay */ ++ struct videobuf_queue vbi; ++ int lines; ++}; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-risc.c */ ++ ++/* risc code generators - capture */ ++int bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc, ++ struct scatterlist *sglist, ++ unsigned int offset, unsigned int bpl, ++ unsigned int pitch, unsigned int lines); ++ ++/* control dma register + risc main loop */ ++void bttv_set_dma(struct bttv *btv, int override); ++int bttv_risc_init_main(struct bttv *btv); ++int bttv_risc_hook(struct bttv *btv, int slot, struct btcx_riscmem *risc, ++ int irqflags); ++ ++/* capture buffer handling */ ++int bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf); ++int bttv_buffer_activate_video(struct bttv *btv, ++ struct bttv_buffer_set *set); ++int bttv_buffer_activate_vbi(struct bttv *btv, ++ struct bttv_buffer *vbi); ++void bttv_dma_free(struct bttv *btv, struct bttv_buffer *buf); ++ ++/* overlay handling */ ++int bttv_overlay_risc(struct bttv *btv, struct bttv_overlay *ov, ++ const struct bttv_format *fmt, ++ struct bttv_buffer *buf); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-vbi.c */ ++ ++void bttv_vbi_try_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_get_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_setlines(struct bttv_fh *fh, struct bttv *btv, int lines); ++ ++extern struct videobuf_queue_ops bttv_vbi_qops; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-gpio.c */ ++ ++ ++extern struct bus_type bttv_sub_bus_type; ++int bttv_sub_add_device(struct bttv_core *core, char *name); ++int bttv_sub_del_devices(struct bttv_core *core); ++void bttv_gpio_irq(struct bttv_core *core); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-driver.c */ ++ ++/* insmod options */ ++extern unsigned int bttv_verbose; ++extern unsigned int bttv_debug; ++extern unsigned int bttv_gpio; ++extern void bttv_gpio_tracking(struct bttv *btv, char *comment); ++extern int init_bttv_i2c(struct bttv *btv); ++extern int fini_bttv_i2c(struct bttv *btv); ++ ++#define bttv_printk if (bttv_verbose) printk ++#define dprintk if (bttv_debug >= 1) printk ++#define d2printk if (bttv_debug >= 2) printk ++ ++#define BTTV_MAX_FBUF 0x208000 ++#define VBIBUF_SIZE (2048*VBI_MAXLINES*2) ++#define BTTV_TIMEOUT (HZ/2) /* 0.5 seconds */ ++#define BTTV_FREE_IDLE (HZ) /* one second */ ++ ++ ++struct bttv_pll_info { ++ unsigned int pll_ifreq; /* PLL input frequency */ ++ unsigned int pll_ofreq; /* PLL output frequency */ ++ unsigned int pll_crystal; /* Crystal used for input */ ++ unsigned int pll_current; /* Currently programmed ofreq */ ++}; ++ ++/* for gpio-connected remote control */ ++struct bttv_input { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ u32 mask_keycode; ++ u32 mask_keydown; ++}; ++ ++struct bttv_suspend_state { ++ u32 gpio_enable; ++ u32 gpio_data; ++ int disabled; ++ int loop_irq; ++ struct bttv_buffer_set video; ++ struct bttv_buffer *vbi; ++}; ++ ++struct bttv { ++ struct bttv_core c; ++ ++ /* pci device config */ ++ unsigned short id; ++ unsigned char revision; ++ unsigned char __iomem *bt848_mmio; /* pointer to mmio */ ++ ++ /* card configuration info */ ++ unsigned int cardid; /* pci subsystem id (bt878 based ones) */ ++ unsigned int tuner_type; /* tuner chip type */ ++ unsigned int tda9887_conf; ++ unsigned int svhs; ++ struct bttv_pll_info pll; ++ int triton1; ++ int gpioirq; ++ int (*custom_irq)(struct bttv *btv); ++ ++ int use_i2c_hw; ++ ++ /* old gpio interface */ ++ wait_queue_head_t gpioq; ++ int shutdown; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ ++ /* new gpio interface */ ++ spinlock_t gpio_lock; ++ ++ /* i2c layer */ ++ struct i2c_algo_bit_data i2c_algo; ++ struct i2c_client i2c_client; ++ int i2c_state, i2c_rc; ++ int i2c_done; ++ wait_queue_head_t i2c_queue; ++ ++ /* video4linux (1) */ ++ struct video_device *video_dev; ++ struct video_device *radio_dev; ++ struct video_device *vbi_dev; ++ ++ /* infrared remote */ ++ int has_remote; ++ struct bttv_ir *remote; ++ ++ /* locking */ ++ spinlock_t s_lock; ++ struct mutex lock; ++ int resources; ++ struct mutex reslock; ++#ifdef VIDIOC_G_PRIORITY ++ struct v4l2_prio_state prio; ++#endif ++ ++ /* video state */ ++ unsigned int input; ++ unsigned int audio; ++ unsigned long freq; ++ int tvnorm,hue,contrast,bright,saturation; ++ struct v4l2_framebuffer fbuf; ++ unsigned int field_count; ++ ++ /* various options */ ++ int opt_combfilter; ++ int opt_lumafilter; ++ int opt_automute; ++ int opt_chroma_agc; ++ int opt_adc_crush; ++ int opt_vcr_hack; ++ int opt_whitecrush_upper; ++ int opt_whitecrush_lower; ++ int opt_uv_ratio; ++ int opt_full_luma_range; ++ int opt_coring; ++ ++ /* radio data/state */ ++ int has_radio; ++ int radio_user; ++ ++ /* miro/pinnacle + Aimslab VHX ++ philips matchbox (tea5757 radio tuner) support */ ++ int has_matchbox; ++ int mbox_we; ++ int mbox_data; ++ int mbox_clk; ++ int mbox_most; ++ int mbox_mask; ++ ++ /* ISA stuff (Terratec Active Radio Upgrade) */ ++ int mbox_ior; ++ int mbox_iow; ++ int mbox_csel; ++ ++ /* risc memory management data ++ - must aquire s_lock before changing these ++ - only the irq handler is supported to touch top + bottom + vcurr */ ++ struct btcx_riscmem main; ++ struct bttv_buffer *screen; /* overlay */ ++ struct list_head capture; /* video capture queue */ ++ struct list_head vcapture; /* vbi capture queue */ ++ struct bttv_buffer_set curr; /* active buffers */ ++ struct bttv_buffer *cvbi; /* active vbi buffer */ ++ int loop_irq; ++ int new_input; ++ ++ unsigned long cap_ctl; ++ unsigned long dma_on; ++ struct timer_list timeout; ++ struct bttv_suspend_state state; ++ ++ /* stats */ ++ unsigned int errors; ++ unsigned int framedrop; ++ unsigned int irq_total; ++ unsigned int irq_me; ++ ++ unsigned int users; ++ struct bttv_fh init; ++}; ++ ++/* our devices */ ++#define BTTV_MAX 16 ++extern unsigned int bttv_num; ++extern struct bttv bttvs[BTTV_MAX]; ++ ++/* private ioctls */ ++#define BTTV_VERSION _IOR('v' , BASE_VIDIOCPRIVATE+6, int) ++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int) ++ ++#endif ++ ++#define btwrite(dat,adr) writel((dat), btv->bt848_mmio+(adr)) ++#define btread(adr) readl(btv->bt848_mmio+(adr)) ++ ++#define btand(dat,adr) btwrite((dat) & btread(adr), adr) ++#define btor(dat,adr) btwrite((dat) | btread(adr), adr) ++#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) ++ ++#endif /* _BTTVP_H_ */ ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/bt848.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/bt848.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/bt848.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/bt848.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,366 @@ ++/* ++ bt848.h - Bt848 register offsets ++ ++ Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BT848_H_ ++#define _BT848_H_ ++ ++#ifndef PCI_VENDOR_ID_BROOKTREE ++#define PCI_VENDOR_ID_BROOKTREE 0x109e ++#endif ++#ifndef PCI_DEVICE_ID_BT848 ++#define PCI_DEVICE_ID_BT848 0x350 ++#endif ++#ifndef PCI_DEVICE_ID_BT849 ++#define PCI_DEVICE_ID_BT849 0x351 ++#endif ++#ifndef PCI_DEVICE_ID_BT878 ++#define PCI_DEVICE_ID_BT878 0x36e ++#endif ++#ifndef PCI_DEVICE_ID_BT879 ++#define PCI_DEVICE_ID_BT879 0x36f ++#endif ++ ++ ++/* Brooktree 848 registers */ ++ ++#define BT848_DSTATUS 0x000 ++#define BT848_DSTATUS_PRES (1<<7) ++#define BT848_DSTATUS_HLOC (1<<6) ++#define BT848_DSTATUS_FIELD (1<<5) ++#define BT848_DSTATUS_NUML (1<<4) ++#define BT848_DSTATUS_CSEL (1<<3) ++#define BT848_DSTATUS_PLOCK (1<<2) ++#define BT848_DSTATUS_LOF (1<<1) ++#define BT848_DSTATUS_COF (1<<0) ++ ++#define BT848_IFORM 0x004 ++#define BT848_IFORM_HACTIVE (1<<7) ++#define BT848_IFORM_MUXSEL (3<<5) ++#define BT848_IFORM_MUX0 (2<<5) ++#define BT848_IFORM_MUX1 (3<<5) ++#define BT848_IFORM_MUX2 (1<<5) ++#define BT848_IFORM_XTSEL (3<<3) ++#define BT848_IFORM_XT0 (1<<3) ++#define BT848_IFORM_XT1 (2<<3) ++#define BT848_IFORM_XTAUTO (3<<3) ++#define BT848_IFORM_XTBOTH (3<<3) ++#define BT848_IFORM_NTSC 1 ++#define BT848_IFORM_NTSC_J 2 ++#define BT848_IFORM_PAL_BDGHI 3 ++#define BT848_IFORM_PAL_M 4 ++#define BT848_IFORM_PAL_N 5 ++#define BT848_IFORM_SECAM 6 ++#define BT848_IFORM_PAL_NC 7 ++#define BT848_IFORM_AUTO 0 ++#define BT848_IFORM_NORM 7 ++ ++#define BT848_TDEC 0x008 ++#define BT848_TDEC_DEC_FIELD (1<<7) ++#define BT848_TDEC_FLDALIGN (1<<6) ++#define BT848_TDEC_DEC_RAT (0x1f) ++ ++#define BT848_E_CROP 0x00C ++#define BT848_O_CROP 0x08C ++ ++#define BT848_E_VDELAY_LO 0x010 ++#define BT848_O_VDELAY_LO 0x090 ++ ++#define BT848_E_VACTIVE_LO 0x014 ++#define BT848_O_VACTIVE_LO 0x094 ++ ++#define BT848_E_HDELAY_LO 0x018 ++#define BT848_O_HDELAY_LO 0x098 ++ ++#define BT848_E_HACTIVE_LO 0x01C ++#define BT848_O_HACTIVE_LO 0x09C ++ ++#define BT848_E_HSCALE_HI 0x020 ++#define BT848_O_HSCALE_HI 0x0A0 ++ ++#define BT848_E_HSCALE_LO 0x024 ++#define BT848_O_HSCALE_LO 0x0A4 ++ ++#define BT848_BRIGHT 0x028 ++ ++#define BT848_E_CONTROL 0x02C ++#define BT848_O_CONTROL 0x0AC ++#define BT848_CONTROL_LNOTCH (1<<7) ++#define BT848_CONTROL_COMP (1<<6) ++#define BT848_CONTROL_LDEC (1<<5) ++#define BT848_CONTROL_CBSENSE (1<<4) ++#define BT848_CONTROL_CON_MSB (1<<2) ++#define BT848_CONTROL_SAT_U_MSB (1<<1) ++#define BT848_CONTROL_SAT_V_MSB (1<<0) ++ ++#define BT848_CONTRAST_LO 0x030 ++#define BT848_SAT_U_LO 0x034 ++#define BT848_SAT_V_LO 0x038 ++#define BT848_HUE 0x03C ++ ++#define BT848_E_SCLOOP 0x040 ++#define BT848_O_SCLOOP 0x0C0 ++#define BT848_SCLOOP_CAGC (1<<6) ++#define BT848_SCLOOP_CKILL (1<<5) ++#define BT848_SCLOOP_HFILT_AUTO (0<<3) ++#define BT848_SCLOOP_HFILT_CIF (1<<3) ++#define BT848_SCLOOP_HFILT_QCIF (2<<3) ++#define BT848_SCLOOP_HFILT_ICON (3<<3) ++ ++#define BT848_SCLOOP_PEAK (1<<7) ++#define BT848_SCLOOP_HFILT_MINP (1<<3) ++#define BT848_SCLOOP_HFILT_MEDP (2<<3) ++#define BT848_SCLOOP_HFILT_MAXP (3<<3) ++ ++ ++#define BT848_OFORM 0x048 ++#define BT848_OFORM_RANGE (1<<7) ++#define BT848_OFORM_CORE0 (0<<5) ++#define BT848_OFORM_CORE8 (1<<5) ++#define BT848_OFORM_CORE16 (2<<5) ++#define BT848_OFORM_CORE32 (3<<5) ++ ++#define BT848_E_VSCALE_HI 0x04C ++#define BT848_O_VSCALE_HI 0x0CC ++#define BT848_VSCALE_YCOMB (1<<7) ++#define BT848_VSCALE_COMB (1<<6) ++#define BT848_VSCALE_INT (1<<5) ++#define BT848_VSCALE_HI 15 ++ ++#define BT848_E_VSCALE_LO 0x050 ++#define BT848_O_VSCALE_LO 0x0D0 ++#define BT848_TEST 0x054 ++#define BT848_ADELAY 0x060 ++#define BT848_BDELAY 0x064 ++ ++#define BT848_ADC 0x068 ++#define BT848_ADC_RESERVED (2<<6) ++#define BT848_ADC_SYNC_T (1<<5) ++#define BT848_ADC_AGC_EN (1<<4) ++#define BT848_ADC_CLK_SLEEP (1<<3) ++#define BT848_ADC_Y_SLEEP (1<<2) ++#define BT848_ADC_C_SLEEP (1<<1) ++#define BT848_ADC_CRUSH (1<<0) ++ ++#define BT848_WC_UP 0x044 ++#define BT848_WC_DOWN 0x078 ++ ++#define BT848_E_VTC 0x06C ++#define BT848_O_VTC 0x0EC ++#define BT848_VTC_HSFMT (1<<7) ++#define BT848_VTC_VFILT_2TAP 0 ++#define BT848_VTC_VFILT_3TAP 1 ++#define BT848_VTC_VFILT_4TAP 2 ++#define BT848_VTC_VFILT_5TAP 3 ++ ++#define BT848_SRESET 0x07C ++ ++#define BT848_COLOR_FMT 0x0D4 ++#define BT848_COLOR_FMT_O_RGB32 (0<<4) ++#define BT848_COLOR_FMT_O_RGB24 (1<<4) ++#define BT848_COLOR_FMT_O_RGB16 (2<<4) ++#define BT848_COLOR_FMT_O_RGB15 (3<<4) ++#define BT848_COLOR_FMT_O_YUY2 (4<<4) ++#define BT848_COLOR_FMT_O_BtYUV (5<<4) ++#define BT848_COLOR_FMT_O_Y8 (6<<4) ++#define BT848_COLOR_FMT_O_RGB8 (7<<4) ++#define BT848_COLOR_FMT_O_YCrCb422 (8<<4) ++#define BT848_COLOR_FMT_O_YCrCb411 (9<<4) ++#define BT848_COLOR_FMT_O_RAW (14<<4) ++#define BT848_COLOR_FMT_E_RGB32 0 ++#define BT848_COLOR_FMT_E_RGB24 1 ++#define BT848_COLOR_FMT_E_RGB16 2 ++#define BT848_COLOR_FMT_E_RGB15 3 ++#define BT848_COLOR_FMT_E_YUY2 4 ++#define BT848_COLOR_FMT_E_BtYUV 5 ++#define BT848_COLOR_FMT_E_Y8 6 ++#define BT848_COLOR_FMT_E_RGB8 7 ++#define BT848_COLOR_FMT_E_YCrCb422 8 ++#define BT848_COLOR_FMT_E_YCrCb411 9 ++#define BT848_COLOR_FMT_E_RAW 14 ++ ++#define BT848_COLOR_FMT_RGB32 0x00 ++#define BT848_COLOR_FMT_RGB24 0x11 ++#define BT848_COLOR_FMT_RGB16 0x22 ++#define BT848_COLOR_FMT_RGB15 0x33 ++#define BT848_COLOR_FMT_YUY2 0x44 ++#define BT848_COLOR_FMT_BtYUV 0x55 ++#define BT848_COLOR_FMT_Y8 0x66 ++#define BT848_COLOR_FMT_RGB8 0x77 ++#define BT848_COLOR_FMT_YCrCb422 0x88 ++#define BT848_COLOR_FMT_YCrCb411 0x99 ++#define BT848_COLOR_FMT_RAW 0xee ++ ++#define BT848_VTOTAL_LO 0xB0 ++#define BT848_VTOTAL_HI 0xB4 ++ ++#define BT848_COLOR_CTL 0x0D8 ++#define BT848_COLOR_CTL_EXT_FRMRATE (1<<7) ++#define BT848_COLOR_CTL_COLOR_BARS (1<<6) ++#define BT848_COLOR_CTL_RGB_DED (1<<5) ++#define BT848_COLOR_CTL_GAMMA (1<<4) ++#define BT848_COLOR_CTL_WSWAP_ODD (1<<3) ++#define BT848_COLOR_CTL_WSWAP_EVEN (1<<2) ++#define BT848_COLOR_CTL_BSWAP_ODD (1<<1) ++#define BT848_COLOR_CTL_BSWAP_EVEN (1<<0) ++ ++#define BT848_CAP_CTL 0x0DC ++#define BT848_CAP_CTL_DITH_FRAME (1<<4) ++#define BT848_CAP_CTL_CAPTURE_VBI_ODD (1<<3) ++#define BT848_CAP_CTL_CAPTURE_VBI_EVEN (1<<2) ++#define BT848_CAP_CTL_CAPTURE_ODD (1<<1) ++#define BT848_CAP_CTL_CAPTURE_EVEN (1<<0) ++ ++#define BT848_VBI_PACK_SIZE 0x0E0 ++ ++#define BT848_VBI_PACK_DEL 0x0E4 ++#define BT848_VBI_PACK_DEL_VBI_HDELAY 0xfc ++#define BT848_VBI_PACK_DEL_EXT_FRAME 2 ++#define BT848_VBI_PACK_DEL_VBI_PKT_HI 1 ++ ++ ++#define BT848_INT_STAT 0x100 ++#define BT848_INT_MASK 0x104 ++ ++#define BT848_INT_ETBF (1<<23) ++ ++#define BT848_INT_RISCS (0xf<<28) ++#define BT848_INT_RISC_EN (1<<27) ++#define BT848_INT_RACK (1<<25) ++#define BT848_INT_FIELD (1<<24) ++#define BT848_INT_SCERR (1<<19) ++#define BT848_INT_OCERR (1<<18) ++#define BT848_INT_PABORT (1<<17) ++#define BT848_INT_RIPERR (1<<16) ++#define BT848_INT_PPERR (1<<15) ++#define BT848_INT_FDSR (1<<14) ++#define BT848_INT_FTRGT (1<<13) ++#define BT848_INT_FBUS (1<<12) ++#define BT848_INT_RISCI (1<<11) ++#define BT848_INT_GPINT (1<<9) ++#define BT848_INT_I2CDONE (1<<8) ++#define BT848_INT_VPRES (1<<5) ++#define BT848_INT_HLOCK (1<<4) ++#define BT848_INT_OFLOW (1<<3) ++#define BT848_INT_HSYNC (1<<2) ++#define BT848_INT_VSYNC (1<<1) ++#define BT848_INT_FMTCHG (1<<0) ++ ++ ++#define BT848_GPIO_DMA_CTL 0x10C ++#define BT848_GPIO_DMA_CTL_GPINTC (1<<15) ++#define BT848_GPIO_DMA_CTL_GPINTI (1<<14) ++#define BT848_GPIO_DMA_CTL_GPWEC (1<<13) ++#define BT848_GPIO_DMA_CTL_GPIOMODE (3<<11) ++#define BT848_GPIO_DMA_CTL_GPCLKMODE (1<<10) ++#define BT848_GPIO_DMA_CTL_PLTP23_4 (0<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_8 (1<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_16 (2<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_32 (3<<6) ++#define BT848_GPIO_DMA_CTL_PLTP1_4 (0<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_8 (1<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_16 (2<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_32 (3<<4) ++#define BT848_GPIO_DMA_CTL_PKTP_4 (0<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_8 (1<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_16 (2<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_32 (3<<2) ++#define BT848_GPIO_DMA_CTL_RISC_ENABLE (1<<1) ++#define BT848_GPIO_DMA_CTL_FIFO_ENABLE (1<<0) ++ ++#define BT848_I2C 0x110 ++#define BT878_I2C_MODE (1<<7) ++#define BT878_I2C_RATE (1<<6) ++#define BT878_I2C_NOSTOP (1<<5) ++#define BT878_I2C_NOSTART (1<<4) ++#define BT848_I2C_DIV (0xf<<4) ++#define BT848_I2C_SYNC (1<<3) ++#define BT848_I2C_W3B (1<<2) ++#define BT848_I2C_SCL (1<<1) ++#define BT848_I2C_SDA (1<<0) ++ ++#define BT848_RISC_STRT_ADD 0x114 ++#define BT848_GPIO_OUT_EN 0x118 ++#define BT848_GPIO_REG_INP 0x11C ++#define BT848_RISC_COUNT 0x120 ++#define BT848_GPIO_DATA 0x200 ++ ++ ++/* Bt848 RISC commands */ ++ ++/* only for the SYNC RISC command */ ++#define BT848_FIFO_STATUS_FM1 0x06 ++#define BT848_FIFO_STATUS_FM3 0x0e ++#define BT848_FIFO_STATUS_SOL 0x02 ++#define BT848_FIFO_STATUS_EOL4 0x01 ++#define BT848_FIFO_STATUS_EOL3 0x0d ++#define BT848_FIFO_STATUS_EOL2 0x09 ++#define BT848_FIFO_STATUS_EOL1 0x05 ++#define BT848_FIFO_STATUS_VRE 0x04 ++#define BT848_FIFO_STATUS_VRO 0x0c ++#define BT848_FIFO_STATUS_PXV 0x00 ++ ++#define BT848_RISC_RESYNC (1<<15) ++ ++/* WRITE and SKIP */ ++/* disable which bytes of each DWORD */ ++#define BT848_RISC_BYTE0 (1U<<12) ++#define BT848_RISC_BYTE1 (1U<<13) ++#define BT848_RISC_BYTE2 (1U<<14) ++#define BT848_RISC_BYTE3 (1U<<15) ++#define BT848_RISC_BYTE_ALL (0x0fU<<12) ++#define BT848_RISC_BYTE_NONE 0 ++/* cause RISCI */ ++#define BT848_RISC_IRQ (1U<<24) ++/* RISC command is last one in this line */ ++#define BT848_RISC_EOL (1U<<26) ++/* RISC command is first one in this line */ ++#define BT848_RISC_SOL (1U<<27) ++ ++#define BT848_RISC_WRITE (0x01U<<28) ++#define BT848_RISC_SKIP (0x02U<<28) ++#define BT848_RISC_WRITEC (0x05U<<28) ++#define BT848_RISC_JUMP (0x07U<<28) ++#define BT848_RISC_SYNC (0x08U<<28) ++ ++#define BT848_RISC_WRITE123 (0x09U<<28) ++#define BT848_RISC_SKIP123 (0x0aU<<28) ++#define BT848_RISC_WRITE1S23 (0x0bU<<28) ++ ++ ++/* Bt848A and higher only !! */ ++#define BT848_TGLB 0x080 ++#define BT848_TGCTRL 0x084 ++#define BT848_FCAP 0x0E8 ++#define BT848_PLL_F_LO 0x0F0 ++#define BT848_PLL_F_HI 0x0F4 ++ ++#define BT848_PLL_XCI 0x0F8 ++#define BT848_PLL_X (1<<7) ++#define BT848_PLL_C (1<<6) ++ ++#define BT848_DVSIF 0x0FC ++ ++/* Bt878 register */ ++ ++#define BT878_DEVCTRL 0x40 ++#define BT878_EN_TBFX 0x02 ++#define BT878_EN_VSFX 0x04 ++ ++#endif +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/btcx-risc.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/btcx-risc.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/btcx-risc.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/btcx-risc.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,34 @@ ++/* ++ */ ++struct btcx_riscmem { ++ unsigned int size; ++ u32 *cpu; ++ u32 *jmp; ++ dma_addr_t dma; ++}; ++ ++struct btcx_skiplist { ++ int start; ++ int end; ++}; ++ ++int btcx_riscmem_alloc(struct pci_dev *pci, ++ struct btcx_riscmem *risc, ++ unsigned int size); ++void btcx_riscmem_free(struct pci_dev *pci, ++ struct btcx_riscmem *risc); ++ ++int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win, ++ struct v4l2_clip *clips, unsigned int n); ++int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, ++ unsigned int n, int mask); ++void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); ++void btcx_calc_skips(int line, int width, unsigned int *maxy, ++ struct btcx_skiplist *skips, unsigned int *nskips, ++ const struct v4l2_clip *clips, unsigned int nclips); ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/bttv.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/bttv.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/bttv.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/bttv.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,390 @@ ++/* ++ * ++ * bttv - Bt848 frame grabber driver ++ * ++ * card ID's and external interfaces of the bttv driver ++ * basically stuff needed by other drivers (i2c, lirc, ...) ++ * and is supported not to change much over time. ++ * ++ * Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ * (c) 1999,2000 Gerd Knorr ++ * ++ */ ++ ++#ifndef _BTTV_H_ ++#define _BTTV_H_ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-cards.c */ ++ ++#define BTTV_BOARD_UNKNOWN 0x00 ++#define BTTV_BOARD_MIRO 0x01 ++#define BTTV_BOARD_HAUPPAUGE 0x02 ++#define BTTV_BOARD_STB 0x03 ++#define BTTV_BOARD_INTEL 0x04 ++#define BTTV_BOARD_DIAMOND 0x05 ++#define BTTV_BOARD_AVERMEDIA 0x06 ++#define BTTV_BOARD_MATRIX_VISION 0x07 ++#define BTTV_BOARD_FLYVIDEO 0x08 ++#define BTTV_BOARD_TURBOTV 0x09 ++#define BTTV_BOARD_HAUPPAUGE878 0x0a ++#define BTTV_BOARD_MIROPRO 0x0b ++#define BTTV_BOARD_ADSTECH_TV 0x0c ++#define BTTV_BOARD_AVERMEDIA98 0x0d ++#define BTTV_BOARD_VHX 0x0e ++#define BTTV_BOARD_ZOLTRIX 0x0f ++#define BTTV_BOARD_PIXVIEWPLAYTV 0x10 ++#define BTTV_BOARD_WINVIEW_601 0x11 ++#define BTTV_BOARD_AVEC_INTERCAP 0x12 ++#define BTTV_BOARD_LIFE_FLYKIT 0x13 ++#define BTTV_BOARD_CEI_RAFFLES 0x14 ++#define BTTV_BOARD_CONFERENCETV 0x15 ++#define BTTV_BOARD_PHOEBE_TVMAS 0x16 ++#define BTTV_BOARD_MODTEC_205 0x17 ++#define BTTV_BOARD_MAGICTVIEW061 0x18 ++#define BTTV_BOARD_VOBIS_BOOSTAR 0x19 ++#define BTTV_BOARD_HAUPPAUG_WCAM 0x1a ++#define BTTV_BOARD_MAXI 0x1b ++#define BTTV_BOARD_TERRATV 0x1c ++#define BTTV_BOARD_PXC200 0x1d ++#define BTTV_BOARD_FLYVIDEO_98 0x1e ++#define BTTV_BOARD_IPROTV 0x1f ++#define BTTV_BOARD_INTEL_C_S_PCI 0x20 ++#define BTTV_BOARD_TERRATVALUE 0x21 ++#define BTTV_BOARD_WINFAST2000 0x22 ++#define BTTV_BOARD_CHRONOS_VS2 0x23 ++#define BTTV_BOARD_TYPHOON_TVIEW 0x24 ++#define BTTV_BOARD_PXELVWPLTVPRO 0x25 ++#define BTTV_BOARD_MAGICTVIEW063 0x26 ++#define BTTV_BOARD_PINNACLE 0x27 ++#define BTTV_BOARD_STB2 0x28 ++#define BTTV_BOARD_AVPHONE98 0x29 ++#define BTTV_BOARD_PV951 0x2a ++#define BTTV_BOARD_ONAIR_TV 0x2b ++#define BTTV_BOARD_SIGMA_TVII_FM 0x2c ++#define BTTV_BOARD_MATRIX_VISION2 0x2d ++#define BTTV_BOARD_ZOLTRIX_GENIE 0x2e ++#define BTTV_BOARD_TERRATVRADIO 0x2f ++#define BTTV_BOARD_DYNALINK 0x30 ++#define BTTV_BOARD_GVBCTV3PCI 0x31 ++#define BTTV_BOARD_PXELVWPLTVPAK 0x32 ++#define BTTV_BOARD_EAGLE 0x33 ++#define BTTV_BOARD_PINNACLEPRO 0x34 ++#define BTTV_BOARD_TVIEW_RDS_FM 0x35 ++#define BTTV_BOARD_LIFETEC_9415 0x36 ++#define BTTV_BOARD_BESTBUY_EASYTV 0x37 ++#define BTTV_BOARD_FLYVIDEO_98FM 0x38 ++#define BTTV_BOARD_GRANDTEC 0x39 ++#define BTTV_BOARD_ASKEY_CPH060 0x3a ++#define BTTV_BOARD_ASKEY_CPH03X 0x3b ++#define BTTV_BOARD_MM100PCTV 0x3c ++#define BTTV_BOARD_GMV1 0x3d ++#define BTTV_BOARD_BESTBUY_EASYTV2 0x3e ++#define BTTV_BOARD_ATI_TVWONDER 0x3f ++#define BTTV_BOARD_ATI_TVWONDERVE 0x40 ++#define BTTV_BOARD_FLYVIDEO2000 0x41 ++#define BTTV_BOARD_TERRATVALUER 0x42 ++#define BTTV_BOARD_GVBCTV4PCI 0x43 ++#define BTTV_BOARD_VOODOOTV_FM 0x44 ++#define BTTV_BOARD_AIMMS 0x45 ++#define BTTV_BOARD_PV_BT878P_PLUS 0x46 ++#define BTTV_BOARD_FLYVIDEO98EZ 0x47 ++#define BTTV_BOARD_PV_BT878P_9B 0x48 ++#define BTTV_BOARD_SENSORAY311 0x49 ++#define BTTV_BOARD_RV605 0x4a ++#define BTTV_BOARD_POWERCLR_MTV878 0x4b ++#define BTTV_BOARD_WINDVR 0x4c ++#define BTTV_BOARD_GRANDTEC_MULTI 0x4d ++#define BTTV_BOARD_KWORLD 0x4e ++#define BTTV_BOARD_DSP_TCVIDEO 0x4f ++#define BTTV_BOARD_HAUPPAUGEPVR 0x50 ++#define BTTV_BOARD_GVBCTV5PCI 0x51 ++#define BTTV_BOARD_OSPREY1x0 0x52 ++#define BTTV_BOARD_OSPREY1x0_848 0x53 ++#define BTTV_BOARD_OSPREY101_848 0x54 ++#define BTTV_BOARD_OSPREY1x1 0x55 ++#define BTTV_BOARD_OSPREY1x1_SVID 0x56 ++#define BTTV_BOARD_OSPREY2xx 0x57 ++#define BTTV_BOARD_OSPREY2x0_SVID 0x58 ++#define BTTV_BOARD_OSPREY2x0 0x59 ++#define BTTV_BOARD_OSPREY500 0x5a ++#define BTTV_BOARD_OSPREY540 0x5b ++#define BTTV_BOARD_OSPREY2000 0x5c ++#define BTTV_BOARD_IDS_EAGLE 0x5d ++#define BTTV_BOARD_PINNACLESAT 0x5e ++#define BTTV_BOARD_FORMAC_PROTV 0x5f ++#define BTTV_BOARD_MACHTV 0x60 ++#define BTTV_BOARD_EURESYS_PICOLO 0x61 ++#define BTTV_BOARD_PV150 0x62 ++#define BTTV_BOARD_AD_TVK503 0x63 ++#define BTTV_BOARD_HERCULES_SM_TV 0x64 ++#define BTTV_BOARD_PACETV 0x65 ++#define BTTV_BOARD_IVC200 0x66 ++#define BTTV_BOARD_XGUARD 0x67 ++#define BTTV_BOARD_NEBULA_DIGITV 0x68 ++#define BTTV_BOARD_PV143 0x69 ++#define BTTV_BOARD_VD009X1_MINIDIN 0x6a ++#define BTTV_BOARD_VD009X1_COMBI 0x6b ++#define BTTV_BOARD_VD009_MINIDIN 0x6c ++#define BTTV_BOARD_VD009_COMBI 0x6d ++#define BTTV_BOARD_IVC100 0x6e ++#define BTTV_BOARD_IVC120 0x6f ++#define BTTV_BOARD_PC_HDTV 0x70 ++#define BTTV_BOARD_TWINHAN_DST 0x71 ++#define BTTV_BOARD_WINFASTVC100 0x72 ++#define BTTV_BOARD_TEV560 0x73 ++#define BTTV_BOARD_SIMUS_GVC1100 0x74 ++#define BTTV_BOARD_NGSTV_PLUS 0x75 ++#define BTTV_BOARD_LMLBT4 0x76 ++#define BTTV_BOARD_TEKRAM_M205 0x77 ++#define BTTV_BOARD_CONTVFMI 0x78 ++#define BTTV_BOARD_PICOLO_TETRA_CHIP 0x79 ++#define BTTV_BOARD_SPIRIT_TV 0x7a ++#define BTTV_BOARD_AVDVBT_771 0x7b ++#define BTTV_BOARD_AVDVBT_761 0x7c ++#define BTTV_BOARD_MATRIX_VISIONSQ 0x7d ++#define BTTV_BOARD_MATRIX_VISIONSLC 0x7e ++#define BTTV_BOARD_APAC_VIEWCOMP 0x7f ++#define BTTV_BOARD_DVICO_DVBT_LITE 0x80 ++#define BTTV_BOARD_VGEAR_MYVCD 0x81 ++#define BTTV_BOARD_SUPER_TV 0x82 ++#define BTTV_BOARD_TIBET_CS16 0x83 ++#define BTTV_BOARD_KODICOM_4400R 0x84 ++#define BTTV_BOARD_KODICOM_4400R_SL 0x85 ++#define BTTV_BOARD_ADLINK_RTV24 0x86 ++#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 ++#define BTTV_BOARD_ACORP_Y878F 0x88 ++#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2 0x89 ++#define BTTV_BOARD_PV_BT878P_2E 0x8a ++#define BTTV_BOARD_PV_M4900 0x8b ++#define BTTV_BOARD_OSPREY440 0x8c ++#define BTTV_BOARD_ASOUND_SKYEYE 0x8d ++#define BTTV_BOARD_SABRENT_TVFM 0x8e ++#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f ++#define BTTV_BOARD_MACHTV_MAGICTV 0x90 ++ ++/* more card-specific defines */ ++#define PT2254_L_CHANNEL 0x10 ++#define PT2254_R_CHANNEL 0x08 ++#define PT2254_DBS_IN_2 0x400 ++#define PT2254_DBS_IN_10 0x20000 ++#define WINVIEW_PT2254_CLK 0x40 ++#define WINVIEW_PT2254_DATA 0x20 ++#define WINVIEW_PT2254_STROBE 0x80 ++ ++/* digital_mode */ ++#define DIGITAL_MODE_VIDEO 1 ++#define DIGITAL_MODE_CAMERA 2 ++ ++struct bttv_core { ++ /* device structs */ ++ struct pci_dev *pci; ++ struct i2c_adapter i2c_adap; ++ struct list_head subs; /* struct bttv_sub_device */ ++ ++ /* device config */ ++ unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */ ++ unsigned int type; /* card type (pointer into tvcards[]) */ ++ char name[8]; /* dev name */ ++}; ++ ++struct bttv; ++ ++ ++struct bttv_ir { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ ++ /* Usual gpio signalling */ ++ ++ u32 mask_keycode; ++ u32 mask_keydown; ++ u32 mask_keyup; ++ u32 polling; ++ u32 last_gpio; ++ struct work_struct work; ++ struct timer_list timer; ++ ++ /* RC5 gpio */ ++ u32 rc5_gpio; ++ struct timer_list timer_end; /* timer_end for code completion */ ++ struct timer_list timer_keyup; /* timer_end for key release */ ++ u32 last_rc5; /* last good rc5 code */ ++ u32 last_bit; /* last raw bit seen */ ++ u32 code; /* raw code under construction */ ++ struct timeval base_time; /* time of last seen code */ ++ int active; /* building raw code */ ++}; ++ ++struct tvcard ++{ ++ char *name; ++ unsigned int video_inputs; ++ unsigned int audio_inputs; ++ unsigned int tuner; ++ unsigned int svhs; ++ unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO ++ u32 gpiomask; ++ u32 muxsel[16]; ++ u32 gpiomux[4]; /* Tuner, Radio, external, internal */ ++ u32 gpiomute; /* GPIO mute setting */ ++ u32 gpiomask2; /* GPIO MUX mask */ ++ ++ /* i2c audio flags */ ++ unsigned int no_msp34xx:1; ++ unsigned int no_tda9875:1; ++ unsigned int no_tda7432:1; ++ unsigned int needs_tvaudio:1; ++ unsigned int msp34xx_alt:1; ++ ++ /* flag: video pci function is unused */ ++ unsigned int no_video:1; ++ unsigned int has_dvb:1; ++ unsigned int has_remote:1; ++ unsigned int no_gpioirq:1; ++ ++ /* other settings */ ++ unsigned int pll; ++#define PLL_NONE 0 ++#define PLL_28 1 ++#define PLL_35 2 ++ ++ unsigned int tuner_type; ++ unsigned int tuner_addr; ++ unsigned int radio_addr; ++ ++ unsigned int has_radio; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ void (*muxsel_hook)(struct bttv *btv, unsigned int input); ++}; ++ ++extern struct tvcard bttv_tvcards[]; ++ ++/* identification / initialization of the card */ ++extern void bttv_idcard(struct bttv *btv); ++extern void bttv_init_card1(struct bttv *btv); ++extern void bttv_init_card2(struct bttv *btv); ++ ++/* card-specific funtions */ ++extern void tea5757_set_freq(struct bttv *btv, unsigned short freq); ++extern void bttv_tda9880_setnorm(struct bttv *btv, int norm); ++ ++/* extra tweaks for some chipsets */ ++extern void bttv_check_chipset(void); ++extern int bttv_handle_chipset(struct bttv *btv); ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-if.c */ ++ ++/* this obsolete -- please use the sysfs-based ++ interface below for new code */ ++ ++/* returns card type + card ID (for bt878-based ones) ++ for possible values see lines below beginning with #define BTTV_BOARD_UNKNOWN ++ returns negative value if error occurred ++*/ ++extern int bttv_get_cardinfo(unsigned int card, int *type, ++ unsigned int *cardid); ++extern struct pci_dev* bttv_get_pcidev(unsigned int card); ++ ++/* obsolete, use bttv_get_cardinfo instead */ ++extern int bttv_get_id(unsigned int card); ++ ++/* sets GPOE register (BT848_GPIO_OUT_EN) to new value: ++ data | (current_GPOE_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_gpio_enable(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* fills data with GPDATA register contents ++ returns negative value if error occurred ++*/ ++extern int bttv_read_gpio(unsigned int card, unsigned long *data); ++ ++/* sets GPDATA register to new value: ++ (data & mask) | (current_GPDATA_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_write_gpio(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* returns pointer to task queue which can be used as parameter to ++ interruptible_sleep_on ++ in interrupt handler if BT848_INT_GPINT bit is set - this queue is activated ++ (wake_up_interruptible) and following call to the function bttv_read_gpio ++ should return new value of GPDATA, ++ returns NULL value if error occurred or queue is not available ++ WARNING: because there is no buffer for GPIO data, one MUST ++ process data ASAP ++*/ ++extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); ++ ++/* call i2c clients ++*/ ++extern void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg); ++ ++ ++ ++/* ---------------------------------------------------------- */ ++/* sysfs/driver-moded based gpio access interface */ ++ ++ ++struct bttv_sub_device { ++ struct device dev; ++ struct bttv_core *core; ++ struct list_head list; ++}; ++#define to_bttv_sub_dev(x) container_of((x), struct bttv_sub_device, dev) ++ ++struct bttv_sub_driver { ++ struct device_driver drv; ++ char wanted[BUS_ID_SIZE]; ++ int (*probe)(struct bttv_sub_device *sub); ++ void (*remove)(struct bttv_sub_device *sub); ++ void (*gpio_irq)(struct bttv_sub_device *sub); ++}; ++#define to_bttv_sub_drv(x) container_of((x), struct bttv_sub_driver, drv) ++ ++int bttv_sub_register(struct bttv_sub_driver *drv, char *wanted); ++int bttv_sub_unregister(struct bttv_sub_driver *drv); ++ ++/* gpio access functions */ ++void bttv_gpio_inout(struct bttv_core *core, u32 mask, u32 outbits); ++u32 bttv_gpio_read(struct bttv_core *core); ++void bttv_gpio_write(struct bttv_core *core, u32 value); ++void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits); ++ ++#define gpio_inout(mask,bits) bttv_gpio_inout(&btv->c, mask, bits) ++#define gpio_read() bttv_gpio_read(&btv->c) ++#define gpio_write(value) bttv_gpio_write(&btv->c, value) ++#define gpio_bits(mask,bits) bttv_gpio_bits(&btv->c, mask, bits) ++ ++ ++/* ---------------------------------------------------------- */ ++/* i2c */ ++ ++extern void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg); ++extern int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for); ++extern int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1, ++ unsigned char b2, int both); ++extern void bttv_readee(struct bttv *btv, unsigned char *eedata, int addr); ++ ++extern int bttv_input_init(struct bttv *dev); ++extern void bttv_input_fini(struct bttv *dev); ++extern void bttv_input_irq(struct bttv *dev); ++ ++#endif /* _BTTV_H_ */ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/bttvp.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/bttvp.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.17/bttvp.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.17/bttvp.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,413 @@ ++/* ++ ++ bttv - Bt848 frame grabber driver ++ ++ bttv's *private* header file -- nobody other than bttv itself ++ should ever include this file. ++ ++ (c) 2000-2002 Gerd Knorr ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BTTVP_H_ ++#define _BTTVP_H_ ++ ++#include ++#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,16) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++#include "bt848.h" ++#include "bttv.h" ++#include "btcx-risc.h" ++ ++#ifdef __KERNEL__ ++ ++#define FORMAT_FLAGS_DITHER 0x01 ++#define FORMAT_FLAGS_PACKED 0x02 ++#define FORMAT_FLAGS_PLANAR 0x04 ++#define FORMAT_FLAGS_RAW 0x08 ++#define FORMAT_FLAGS_CrCb 0x10 ++ ++#define RISC_SLOT_O_VBI 4 ++#define RISC_SLOT_O_FIELD 6 ++#define RISC_SLOT_E_VBI 10 ++#define RISC_SLOT_E_FIELD 12 ++#define RISC_SLOT_LOOP 14 ++ ++#define RESOURCE_OVERLAY 1 ++#define RESOURCE_VIDEO 2 ++#define RESOURCE_VBI 4 ++ ++#define RAW_LINES 640 ++#define RAW_BPL 1024 ++ ++#define UNSET (-1U) ++ ++#define clamp(x, low, high) min (max (low, x), high) ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_tvnorm { ++ int v4l2_id; ++ char *name; ++ u32 Fsc; ++ u16 swidth, sheight; /* scaled standard width, height */ ++ u16 totalwidth; ++ u8 adelay, bdelay, iform; ++ u32 scaledtwidth; ++ u16 hdelayx1, hactivex1; ++ u16 vdelay; ++ u8 vbipack; ++ u16 vtotal; ++ int sram; ++ /* ITU-R frame line number of the first VBI line we can ++ capture, of the first and second field. */ ++ u16 vbistart[2]; ++}; ++extern const struct bttv_tvnorm bttv_tvnorms[]; ++ ++struct bttv_format { ++ char *name; ++ int palette; /* video4linux 1 */ ++ int fourcc; /* video4linux 2 */ ++ int btformat; /* BT848_COLOR_FMT_* */ ++ int btswap; /* BT848_COLOR_CTL_* */ ++ int depth; /* bit/pixel */ ++ int flags; ++ int hshift,vshift; /* for planar modes */ ++}; ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_geometry { ++ u8 vtc,crop,comb; ++ u16 width,hscale,hdelay; ++ u16 sheight,vscale,vdelay,vtotal; ++}; ++ ++struct bttv_buffer { ++ /* common v4l buffer stuff -- must be first */ ++ struct videobuf_buffer vb; ++ ++ /* bttv specific */ ++ const struct bttv_format *fmt; ++ int tvnorm; ++ int btformat; ++ int btswap; ++ struct bttv_geometry geo; ++ struct btcx_riscmem top; ++ struct btcx_riscmem bottom; ++}; ++ ++struct bttv_buffer_set { ++ struct bttv_buffer *top; /* top field buffer */ ++ struct bttv_buffer *bottom; /* bottom field buffer */ ++ unsigned int top_irq; ++ unsigned int frame_irq; ++}; ++ ++struct bttv_overlay { ++ int tvnorm; ++ struct v4l2_rect w; ++ enum v4l2_field field; ++ struct v4l2_clip *clips; ++ int nclips; ++ int setup_ok; ++}; ++ ++struct bttv_fh { ++ struct bttv *btv; ++ int resources; ++#ifdef VIDIOC_G_PRIORITY ++ enum v4l2_priority prio; ++#endif ++ enum v4l2_buf_type type; ++ ++ /* video capture */ ++ struct videobuf_queue cap; ++ const struct bttv_format *fmt; ++ int width; ++ int height; ++ ++ /* current settings */ ++ const struct bttv_format *ovfmt; ++ struct bttv_overlay ov; ++ ++ /* video overlay */ ++ struct videobuf_queue vbi; ++ int lines; ++}; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-risc.c */ ++ ++/* risc code generators - capture */ ++int bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc, ++ struct scatterlist *sglist, ++ unsigned int offset, unsigned int bpl, ++ unsigned int pitch, unsigned int lines); ++ ++/* control dma register + risc main loop */ ++void bttv_set_dma(struct bttv *btv, int override); ++int bttv_risc_init_main(struct bttv *btv); ++int bttv_risc_hook(struct bttv *btv, int slot, struct btcx_riscmem *risc, ++ int irqflags); ++ ++/* capture buffer handling */ ++int bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf); ++int bttv_buffer_activate_video(struct bttv *btv, ++ struct bttv_buffer_set *set); ++int bttv_buffer_activate_vbi(struct bttv *btv, ++ struct bttv_buffer *vbi); ++void bttv_dma_free(struct videobuf_queue *q, struct bttv *btv, ++ struct bttv_buffer *buf); ++ ++/* overlay handling */ ++int bttv_overlay_risc(struct bttv *btv, struct bttv_overlay *ov, ++ const struct bttv_format *fmt, ++ struct bttv_buffer *buf); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-vbi.c */ ++ ++void bttv_vbi_try_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_get_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_setlines(struct bttv_fh *fh, struct bttv *btv, int lines); ++ ++extern struct videobuf_queue_ops bttv_vbi_qops; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-gpio.c */ ++ ++ ++extern struct bus_type bttv_sub_bus_type; ++int bttv_sub_add_device(struct bttv_core *core, char *name); ++int bttv_sub_del_devices(struct bttv_core *core); ++void bttv_gpio_irq(struct bttv_core *core); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-driver.c */ ++ ++/* insmod options */ ++extern unsigned int bttv_verbose; ++extern unsigned int bttv_debug; ++extern unsigned int bttv_gpio; ++extern void bttv_gpio_tracking(struct bttv *btv, char *comment); ++extern int init_bttv_i2c(struct bttv *btv); ++extern int fini_bttv_i2c(struct bttv *btv); ++ ++#define bttv_printk if (bttv_verbose) printk ++#define dprintk if (bttv_debug >= 1) printk ++#define d2printk if (bttv_debug >= 2) printk ++ ++#define BTTV_MAX_FBUF 0x208000 ++#define VBIBUF_SIZE (2048*VBI_MAXLINES*2) ++#define BTTV_TIMEOUT (HZ/2) /* 0.5 seconds */ ++#define BTTV_FREE_IDLE (HZ) /* one second */ ++ ++ ++struct bttv_pll_info { ++ unsigned int pll_ifreq; /* PLL input frequency */ ++ unsigned int pll_ofreq; /* PLL output frequency */ ++ unsigned int pll_crystal; /* Crystal used for input */ ++ unsigned int pll_current; /* Currently programmed ofreq */ ++}; ++ ++/* for gpio-connected remote control */ ++struct bttv_input { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ u32 mask_keycode; ++ u32 mask_keydown; ++}; ++ ++struct bttv_suspend_state { ++ u32 gpio_enable; ++ u32 gpio_data; ++ int disabled; ++ int loop_irq; ++ struct bttv_buffer_set video; ++ struct bttv_buffer *vbi; ++}; ++ ++struct bttv { ++ struct bttv_core c; ++ ++ /* pci device config */ ++ unsigned short id; ++ unsigned char revision; ++ unsigned char __iomem *bt848_mmio; /* pointer to mmio */ ++ ++ /* card configuration info */ ++ unsigned int cardid; /* pci subsystem id (bt878 based ones) */ ++ unsigned int tuner_type; /* tuner chip type */ ++ unsigned int tda9887_conf; ++ unsigned int svhs; ++ struct bttv_pll_info pll; ++ int triton1; ++ int gpioirq; ++ int (*custom_irq)(struct bttv *btv); ++ ++ int use_i2c_hw; ++ ++ /* old gpio interface */ ++ wait_queue_head_t gpioq; ++ int shutdown; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ ++ /* new gpio interface */ ++ spinlock_t gpio_lock; ++ ++ /* i2c layer */ ++ struct i2c_algo_bit_data i2c_algo; ++ struct i2c_client i2c_client; ++ int i2c_state, i2c_rc; ++ int i2c_done; ++ wait_queue_head_t i2c_queue; ++ struct i2c_client *i2c_msp34xx_client; ++ struct i2c_client *i2c_tvaudio_client; ++ ++ /* video4linux (1) */ ++ struct video_device *video_dev; ++ struct video_device *radio_dev; ++ struct video_device *vbi_dev; ++ ++ /* infrared remote */ ++ int has_remote; ++ struct bttv_ir *remote; ++ ++ /* locking */ ++ spinlock_t s_lock; ++ struct mutex lock; ++ int resources; ++ struct mutex reslock; ++#ifdef VIDIOC_G_PRIORITY ++ struct v4l2_prio_state prio; ++#endif ++ ++ /* video state */ ++ unsigned int input; ++ unsigned int audio; ++ unsigned int mute; ++ unsigned long freq; ++ int tvnorm,hue,contrast,bright,saturation; ++ struct v4l2_framebuffer fbuf; ++ unsigned int field_count; ++ ++ /* various options */ ++ int opt_combfilter; ++ int opt_lumafilter; ++ int opt_automute; ++ int opt_chroma_agc; ++ int opt_adc_crush; ++ int opt_vcr_hack; ++ int opt_whitecrush_upper; ++ int opt_whitecrush_lower; ++ int opt_uv_ratio; ++ int opt_full_luma_range; ++ int opt_coring; ++ ++ /* radio data/state */ ++ int has_radio; ++ int radio_user; ++ ++ /* miro/pinnacle + Aimslab VHX ++ philips matchbox (tea5757 radio tuner) support */ ++ int has_matchbox; ++ int mbox_we; ++ int mbox_data; ++ int mbox_clk; ++ int mbox_most; ++ int mbox_mask; ++ ++ /* ISA stuff (Terratec Active Radio Upgrade) */ ++ int mbox_ior; ++ int mbox_iow; ++ int mbox_csel; ++ ++ /* risc memory management data ++ - must aquire s_lock before changing these ++ - only the irq handler is supported to touch top + bottom + vcurr */ ++ struct btcx_riscmem main; ++ struct bttv_buffer *screen; /* overlay */ ++ struct list_head capture; /* video capture queue */ ++ struct list_head vcapture; /* vbi capture queue */ ++ struct bttv_buffer_set curr; /* active buffers */ ++ struct bttv_buffer *cvbi; /* active vbi buffer */ ++ int loop_irq; ++ int new_input; ++ ++ unsigned long cap_ctl; ++ unsigned long dma_on; ++ struct timer_list timeout; ++ struct bttv_suspend_state state; ++ ++ /* stats */ ++ unsigned int errors; ++ unsigned int framedrop; ++ unsigned int irq_total; ++ unsigned int irq_me; ++ ++ unsigned int users; ++ struct bttv_fh init; ++}; ++ ++/* our devices */ ++#define BTTV_MAX 16 ++extern unsigned int bttv_num; ++extern struct bttv bttvs[BTTV_MAX]; ++ ++/* private ioctls */ ++#define BTTV_VERSION _IOR('v' , BASE_VIDIOCPRIVATE+6, int) ++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int) ++ ++#endif ++ ++#define btwrite(dat,adr) writel((dat), btv->bt848_mmio+(adr)) ++#define btread(adr) readl(btv->bt848_mmio+(adr)) ++ ++#define btand(dat,adr) btwrite((dat) & btread(adr), adr) ++#define btor(dat,adr) btwrite((dat) | btread(adr), adr) ++#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) ++ ++#endif /* _BTTVP_H_ */ ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/bt848.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/bt848.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/bt848.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/bt848.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,366 @@ ++/* ++ bt848.h - Bt848 register offsets ++ ++ Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BT848_H_ ++#define _BT848_H_ ++ ++#ifndef PCI_VENDOR_ID_BROOKTREE ++#define PCI_VENDOR_ID_BROOKTREE 0x109e ++#endif ++#ifndef PCI_DEVICE_ID_BT848 ++#define PCI_DEVICE_ID_BT848 0x350 ++#endif ++#ifndef PCI_DEVICE_ID_BT849 ++#define PCI_DEVICE_ID_BT849 0x351 ++#endif ++#ifndef PCI_DEVICE_ID_BT878 ++#define PCI_DEVICE_ID_BT878 0x36e ++#endif ++#ifndef PCI_DEVICE_ID_BT879 ++#define PCI_DEVICE_ID_BT879 0x36f ++#endif ++ ++ ++/* Brooktree 848 registers */ ++ ++#define BT848_DSTATUS 0x000 ++#define BT848_DSTATUS_PRES (1<<7) ++#define BT848_DSTATUS_HLOC (1<<6) ++#define BT848_DSTATUS_FIELD (1<<5) ++#define BT848_DSTATUS_NUML (1<<4) ++#define BT848_DSTATUS_CSEL (1<<3) ++#define BT848_DSTATUS_PLOCK (1<<2) ++#define BT848_DSTATUS_LOF (1<<1) ++#define BT848_DSTATUS_COF (1<<0) ++ ++#define BT848_IFORM 0x004 ++#define BT848_IFORM_HACTIVE (1<<7) ++#define BT848_IFORM_MUXSEL (3<<5) ++#define BT848_IFORM_MUX0 (2<<5) ++#define BT848_IFORM_MUX1 (3<<5) ++#define BT848_IFORM_MUX2 (1<<5) ++#define BT848_IFORM_XTSEL (3<<3) ++#define BT848_IFORM_XT0 (1<<3) ++#define BT848_IFORM_XT1 (2<<3) ++#define BT848_IFORM_XTAUTO (3<<3) ++#define BT848_IFORM_XTBOTH (3<<3) ++#define BT848_IFORM_NTSC 1 ++#define BT848_IFORM_NTSC_J 2 ++#define BT848_IFORM_PAL_BDGHI 3 ++#define BT848_IFORM_PAL_M 4 ++#define BT848_IFORM_PAL_N 5 ++#define BT848_IFORM_SECAM 6 ++#define BT848_IFORM_PAL_NC 7 ++#define BT848_IFORM_AUTO 0 ++#define BT848_IFORM_NORM 7 ++ ++#define BT848_TDEC 0x008 ++#define BT848_TDEC_DEC_FIELD (1<<7) ++#define BT848_TDEC_FLDALIGN (1<<6) ++#define BT848_TDEC_DEC_RAT (0x1f) ++ ++#define BT848_E_CROP 0x00C ++#define BT848_O_CROP 0x08C ++ ++#define BT848_E_VDELAY_LO 0x010 ++#define BT848_O_VDELAY_LO 0x090 ++ ++#define BT848_E_VACTIVE_LO 0x014 ++#define BT848_O_VACTIVE_LO 0x094 ++ ++#define BT848_E_HDELAY_LO 0x018 ++#define BT848_O_HDELAY_LO 0x098 ++ ++#define BT848_E_HACTIVE_LO 0x01C ++#define BT848_O_HACTIVE_LO 0x09C ++ ++#define BT848_E_HSCALE_HI 0x020 ++#define BT848_O_HSCALE_HI 0x0A0 ++ ++#define BT848_E_HSCALE_LO 0x024 ++#define BT848_O_HSCALE_LO 0x0A4 ++ ++#define BT848_BRIGHT 0x028 ++ ++#define BT848_E_CONTROL 0x02C ++#define BT848_O_CONTROL 0x0AC ++#define BT848_CONTROL_LNOTCH (1<<7) ++#define BT848_CONTROL_COMP (1<<6) ++#define BT848_CONTROL_LDEC (1<<5) ++#define BT848_CONTROL_CBSENSE (1<<4) ++#define BT848_CONTROL_CON_MSB (1<<2) ++#define BT848_CONTROL_SAT_U_MSB (1<<1) ++#define BT848_CONTROL_SAT_V_MSB (1<<0) ++ ++#define BT848_CONTRAST_LO 0x030 ++#define BT848_SAT_U_LO 0x034 ++#define BT848_SAT_V_LO 0x038 ++#define BT848_HUE 0x03C ++ ++#define BT848_E_SCLOOP 0x040 ++#define BT848_O_SCLOOP 0x0C0 ++#define BT848_SCLOOP_CAGC (1<<6) ++#define BT848_SCLOOP_CKILL (1<<5) ++#define BT848_SCLOOP_HFILT_AUTO (0<<3) ++#define BT848_SCLOOP_HFILT_CIF (1<<3) ++#define BT848_SCLOOP_HFILT_QCIF (2<<3) ++#define BT848_SCLOOP_HFILT_ICON (3<<3) ++ ++#define BT848_SCLOOP_PEAK (1<<7) ++#define BT848_SCLOOP_HFILT_MINP (1<<3) ++#define BT848_SCLOOP_HFILT_MEDP (2<<3) ++#define BT848_SCLOOP_HFILT_MAXP (3<<3) ++ ++ ++#define BT848_OFORM 0x048 ++#define BT848_OFORM_RANGE (1<<7) ++#define BT848_OFORM_CORE0 (0<<5) ++#define BT848_OFORM_CORE8 (1<<5) ++#define BT848_OFORM_CORE16 (2<<5) ++#define BT848_OFORM_CORE32 (3<<5) ++ ++#define BT848_E_VSCALE_HI 0x04C ++#define BT848_O_VSCALE_HI 0x0CC ++#define BT848_VSCALE_YCOMB (1<<7) ++#define BT848_VSCALE_COMB (1<<6) ++#define BT848_VSCALE_INT (1<<5) ++#define BT848_VSCALE_HI 15 ++ ++#define BT848_E_VSCALE_LO 0x050 ++#define BT848_O_VSCALE_LO 0x0D0 ++#define BT848_TEST 0x054 ++#define BT848_ADELAY 0x060 ++#define BT848_BDELAY 0x064 ++ ++#define BT848_ADC 0x068 ++#define BT848_ADC_RESERVED (2<<6) ++#define BT848_ADC_SYNC_T (1<<5) ++#define BT848_ADC_AGC_EN (1<<4) ++#define BT848_ADC_CLK_SLEEP (1<<3) ++#define BT848_ADC_Y_SLEEP (1<<2) ++#define BT848_ADC_C_SLEEP (1<<1) ++#define BT848_ADC_CRUSH (1<<0) ++ ++#define BT848_WC_UP 0x044 ++#define BT848_WC_DOWN 0x078 ++ ++#define BT848_E_VTC 0x06C ++#define BT848_O_VTC 0x0EC ++#define BT848_VTC_HSFMT (1<<7) ++#define BT848_VTC_VFILT_2TAP 0 ++#define BT848_VTC_VFILT_3TAP 1 ++#define BT848_VTC_VFILT_4TAP 2 ++#define BT848_VTC_VFILT_5TAP 3 ++ ++#define BT848_SRESET 0x07C ++ ++#define BT848_COLOR_FMT 0x0D4 ++#define BT848_COLOR_FMT_O_RGB32 (0<<4) ++#define BT848_COLOR_FMT_O_RGB24 (1<<4) ++#define BT848_COLOR_FMT_O_RGB16 (2<<4) ++#define BT848_COLOR_FMT_O_RGB15 (3<<4) ++#define BT848_COLOR_FMT_O_YUY2 (4<<4) ++#define BT848_COLOR_FMT_O_BtYUV (5<<4) ++#define BT848_COLOR_FMT_O_Y8 (6<<4) ++#define BT848_COLOR_FMT_O_RGB8 (7<<4) ++#define BT848_COLOR_FMT_O_YCrCb422 (8<<4) ++#define BT848_COLOR_FMT_O_YCrCb411 (9<<4) ++#define BT848_COLOR_FMT_O_RAW (14<<4) ++#define BT848_COLOR_FMT_E_RGB32 0 ++#define BT848_COLOR_FMT_E_RGB24 1 ++#define BT848_COLOR_FMT_E_RGB16 2 ++#define BT848_COLOR_FMT_E_RGB15 3 ++#define BT848_COLOR_FMT_E_YUY2 4 ++#define BT848_COLOR_FMT_E_BtYUV 5 ++#define BT848_COLOR_FMT_E_Y8 6 ++#define BT848_COLOR_FMT_E_RGB8 7 ++#define BT848_COLOR_FMT_E_YCrCb422 8 ++#define BT848_COLOR_FMT_E_YCrCb411 9 ++#define BT848_COLOR_FMT_E_RAW 14 ++ ++#define BT848_COLOR_FMT_RGB32 0x00 ++#define BT848_COLOR_FMT_RGB24 0x11 ++#define BT848_COLOR_FMT_RGB16 0x22 ++#define BT848_COLOR_FMT_RGB15 0x33 ++#define BT848_COLOR_FMT_YUY2 0x44 ++#define BT848_COLOR_FMT_BtYUV 0x55 ++#define BT848_COLOR_FMT_Y8 0x66 ++#define BT848_COLOR_FMT_RGB8 0x77 ++#define BT848_COLOR_FMT_YCrCb422 0x88 ++#define BT848_COLOR_FMT_YCrCb411 0x99 ++#define BT848_COLOR_FMT_RAW 0xee ++ ++#define BT848_VTOTAL_LO 0xB0 ++#define BT848_VTOTAL_HI 0xB4 ++ ++#define BT848_COLOR_CTL 0x0D8 ++#define BT848_COLOR_CTL_EXT_FRMRATE (1<<7) ++#define BT848_COLOR_CTL_COLOR_BARS (1<<6) ++#define BT848_COLOR_CTL_RGB_DED (1<<5) ++#define BT848_COLOR_CTL_GAMMA (1<<4) ++#define BT848_COLOR_CTL_WSWAP_ODD (1<<3) ++#define BT848_COLOR_CTL_WSWAP_EVEN (1<<2) ++#define BT848_COLOR_CTL_BSWAP_ODD (1<<1) ++#define BT848_COLOR_CTL_BSWAP_EVEN (1<<0) ++ ++#define BT848_CAP_CTL 0x0DC ++#define BT848_CAP_CTL_DITH_FRAME (1<<4) ++#define BT848_CAP_CTL_CAPTURE_VBI_ODD (1<<3) ++#define BT848_CAP_CTL_CAPTURE_VBI_EVEN (1<<2) ++#define BT848_CAP_CTL_CAPTURE_ODD (1<<1) ++#define BT848_CAP_CTL_CAPTURE_EVEN (1<<0) ++ ++#define BT848_VBI_PACK_SIZE 0x0E0 ++ ++#define BT848_VBI_PACK_DEL 0x0E4 ++#define BT848_VBI_PACK_DEL_VBI_HDELAY 0xfc ++#define BT848_VBI_PACK_DEL_EXT_FRAME 2 ++#define BT848_VBI_PACK_DEL_VBI_PKT_HI 1 ++ ++ ++#define BT848_INT_STAT 0x100 ++#define BT848_INT_MASK 0x104 ++ ++#define BT848_INT_ETBF (1<<23) ++ ++#define BT848_INT_RISCS (0xf<<28) ++#define BT848_INT_RISC_EN (1<<27) ++#define BT848_INT_RACK (1<<25) ++#define BT848_INT_FIELD (1<<24) ++#define BT848_INT_SCERR (1<<19) ++#define BT848_INT_OCERR (1<<18) ++#define BT848_INT_PABORT (1<<17) ++#define BT848_INT_RIPERR (1<<16) ++#define BT848_INT_PPERR (1<<15) ++#define BT848_INT_FDSR (1<<14) ++#define BT848_INT_FTRGT (1<<13) ++#define BT848_INT_FBUS (1<<12) ++#define BT848_INT_RISCI (1<<11) ++#define BT848_INT_GPINT (1<<9) ++#define BT848_INT_I2CDONE (1<<8) ++#define BT848_INT_VPRES (1<<5) ++#define BT848_INT_HLOCK (1<<4) ++#define BT848_INT_OFLOW (1<<3) ++#define BT848_INT_HSYNC (1<<2) ++#define BT848_INT_VSYNC (1<<1) ++#define BT848_INT_FMTCHG (1<<0) ++ ++ ++#define BT848_GPIO_DMA_CTL 0x10C ++#define BT848_GPIO_DMA_CTL_GPINTC (1<<15) ++#define BT848_GPIO_DMA_CTL_GPINTI (1<<14) ++#define BT848_GPIO_DMA_CTL_GPWEC (1<<13) ++#define BT848_GPIO_DMA_CTL_GPIOMODE (3<<11) ++#define BT848_GPIO_DMA_CTL_GPCLKMODE (1<<10) ++#define BT848_GPIO_DMA_CTL_PLTP23_4 (0<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_8 (1<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_16 (2<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_32 (3<<6) ++#define BT848_GPIO_DMA_CTL_PLTP1_4 (0<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_8 (1<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_16 (2<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_32 (3<<4) ++#define BT848_GPIO_DMA_CTL_PKTP_4 (0<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_8 (1<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_16 (2<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_32 (3<<2) ++#define BT848_GPIO_DMA_CTL_RISC_ENABLE (1<<1) ++#define BT848_GPIO_DMA_CTL_FIFO_ENABLE (1<<0) ++ ++#define BT848_I2C 0x110 ++#define BT878_I2C_MODE (1<<7) ++#define BT878_I2C_RATE (1<<6) ++#define BT878_I2C_NOSTOP (1<<5) ++#define BT878_I2C_NOSTART (1<<4) ++#define BT848_I2C_DIV (0xf<<4) ++#define BT848_I2C_SYNC (1<<3) ++#define BT848_I2C_W3B (1<<2) ++#define BT848_I2C_SCL (1<<1) ++#define BT848_I2C_SDA (1<<0) ++ ++#define BT848_RISC_STRT_ADD 0x114 ++#define BT848_GPIO_OUT_EN 0x118 ++#define BT848_GPIO_REG_INP 0x11C ++#define BT848_RISC_COUNT 0x120 ++#define BT848_GPIO_DATA 0x200 ++ ++ ++/* Bt848 RISC commands */ ++ ++/* only for the SYNC RISC command */ ++#define BT848_FIFO_STATUS_FM1 0x06 ++#define BT848_FIFO_STATUS_FM3 0x0e ++#define BT848_FIFO_STATUS_SOL 0x02 ++#define BT848_FIFO_STATUS_EOL4 0x01 ++#define BT848_FIFO_STATUS_EOL3 0x0d ++#define BT848_FIFO_STATUS_EOL2 0x09 ++#define BT848_FIFO_STATUS_EOL1 0x05 ++#define BT848_FIFO_STATUS_VRE 0x04 ++#define BT848_FIFO_STATUS_VRO 0x0c ++#define BT848_FIFO_STATUS_PXV 0x00 ++ ++#define BT848_RISC_RESYNC (1<<15) ++ ++/* WRITE and SKIP */ ++/* disable which bytes of each DWORD */ ++#define BT848_RISC_BYTE0 (1U<<12) ++#define BT848_RISC_BYTE1 (1U<<13) ++#define BT848_RISC_BYTE2 (1U<<14) ++#define BT848_RISC_BYTE3 (1U<<15) ++#define BT848_RISC_BYTE_ALL (0x0fU<<12) ++#define BT848_RISC_BYTE_NONE 0 ++/* cause RISCI */ ++#define BT848_RISC_IRQ (1U<<24) ++/* RISC command is last one in this line */ ++#define BT848_RISC_EOL (1U<<26) ++/* RISC command is first one in this line */ ++#define BT848_RISC_SOL (1U<<27) ++ ++#define BT848_RISC_WRITE (0x01U<<28) ++#define BT848_RISC_SKIP (0x02U<<28) ++#define BT848_RISC_WRITEC (0x05U<<28) ++#define BT848_RISC_JUMP (0x07U<<28) ++#define BT848_RISC_SYNC (0x08U<<28) ++ ++#define BT848_RISC_WRITE123 (0x09U<<28) ++#define BT848_RISC_SKIP123 (0x0aU<<28) ++#define BT848_RISC_WRITE1S23 (0x0bU<<28) ++ ++ ++/* Bt848A and higher only !! */ ++#define BT848_TGLB 0x080 ++#define BT848_TGCTRL 0x084 ++#define BT848_FCAP 0x0E8 ++#define BT848_PLL_F_LO 0x0F0 ++#define BT848_PLL_F_HI 0x0F4 ++ ++#define BT848_PLL_XCI 0x0F8 ++#define BT848_PLL_X (1<<7) ++#define BT848_PLL_C (1<<6) ++ ++#define BT848_DVSIF 0x0FC ++ ++/* Bt878 register */ ++ ++#define BT878_DEVCTRL 0x40 ++#define BT878_EN_TBFX 0x02 ++#define BT878_EN_VSFX 0x04 ++ ++#endif +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/btcx-risc.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/btcx-risc.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/btcx-risc.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/btcx-risc.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,34 @@ ++/* ++ */ ++struct btcx_riscmem { ++ unsigned int size; ++ u32 *cpu; ++ u32 *jmp; ++ dma_addr_t dma; ++}; ++ ++struct btcx_skiplist { ++ int start; ++ int end; ++}; ++ ++int btcx_riscmem_alloc(struct pci_dev *pci, ++ struct btcx_riscmem *risc, ++ unsigned int size); ++void btcx_riscmem_free(struct pci_dev *pci, ++ struct btcx_riscmem *risc); ++ ++int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win, ++ struct v4l2_clip *clips, unsigned int n); ++int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, ++ unsigned int n, int mask); ++void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); ++void btcx_calc_skips(int line, int width, unsigned int *maxy, ++ struct btcx_skiplist *skips, unsigned int *nskips, ++ const struct v4l2_clip *clips, unsigned int nclips); ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/bttv.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/bttv.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/bttv.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/bttv.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,389 @@ ++/* ++ * ++ * bttv - Bt848 frame grabber driver ++ * ++ * card ID's and external interfaces of the bttv driver ++ * basically stuff needed by other drivers (i2c, lirc, ...) ++ * and is supported not to change much over time. ++ * ++ * Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ * (c) 1999,2000 Gerd Knorr ++ * ++ */ ++ ++#ifndef _BTTV_H_ ++#define _BTTV_H_ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-cards.c */ ++ ++#define BTTV_BOARD_UNKNOWN 0x00 ++#define BTTV_BOARD_MIRO 0x01 ++#define BTTV_BOARD_HAUPPAUGE 0x02 ++#define BTTV_BOARD_STB 0x03 ++#define BTTV_BOARD_INTEL 0x04 ++#define BTTV_BOARD_DIAMOND 0x05 ++#define BTTV_BOARD_AVERMEDIA 0x06 ++#define BTTV_BOARD_MATRIX_VISION 0x07 ++#define BTTV_BOARD_FLYVIDEO 0x08 ++#define BTTV_BOARD_TURBOTV 0x09 ++#define BTTV_BOARD_HAUPPAUGE878 0x0a ++#define BTTV_BOARD_MIROPRO 0x0b ++#define BTTV_BOARD_ADSTECH_TV 0x0c ++#define BTTV_BOARD_AVERMEDIA98 0x0d ++#define BTTV_BOARD_VHX 0x0e ++#define BTTV_BOARD_ZOLTRIX 0x0f ++#define BTTV_BOARD_PIXVIEWPLAYTV 0x10 ++#define BTTV_BOARD_WINVIEW_601 0x11 ++#define BTTV_BOARD_AVEC_INTERCAP 0x12 ++#define BTTV_BOARD_LIFE_FLYKIT 0x13 ++#define BTTV_BOARD_CEI_RAFFLES 0x14 ++#define BTTV_BOARD_CONFERENCETV 0x15 ++#define BTTV_BOARD_PHOEBE_TVMAS 0x16 ++#define BTTV_BOARD_MODTEC_205 0x17 ++#define BTTV_BOARD_MAGICTVIEW061 0x18 ++#define BTTV_BOARD_VOBIS_BOOSTAR 0x19 ++#define BTTV_BOARD_HAUPPAUG_WCAM 0x1a ++#define BTTV_BOARD_MAXI 0x1b ++#define BTTV_BOARD_TERRATV 0x1c ++#define BTTV_BOARD_PXC200 0x1d ++#define BTTV_BOARD_FLYVIDEO_98 0x1e ++#define BTTV_BOARD_IPROTV 0x1f ++#define BTTV_BOARD_INTEL_C_S_PCI 0x20 ++#define BTTV_BOARD_TERRATVALUE 0x21 ++#define BTTV_BOARD_WINFAST2000 0x22 ++#define BTTV_BOARD_CHRONOS_VS2 0x23 ++#define BTTV_BOARD_TYPHOON_TVIEW 0x24 ++#define BTTV_BOARD_PXELVWPLTVPRO 0x25 ++#define BTTV_BOARD_MAGICTVIEW063 0x26 ++#define BTTV_BOARD_PINNACLE 0x27 ++#define BTTV_BOARD_STB2 0x28 ++#define BTTV_BOARD_AVPHONE98 0x29 ++#define BTTV_BOARD_PV951 0x2a ++#define BTTV_BOARD_ONAIR_TV 0x2b ++#define BTTV_BOARD_SIGMA_TVII_FM 0x2c ++#define BTTV_BOARD_MATRIX_VISION2 0x2d ++#define BTTV_BOARD_ZOLTRIX_GENIE 0x2e ++#define BTTV_BOARD_TERRATVRADIO 0x2f ++#define BTTV_BOARD_DYNALINK 0x30 ++#define BTTV_BOARD_GVBCTV3PCI 0x31 ++#define BTTV_BOARD_PXELVWPLTVPAK 0x32 ++#define BTTV_BOARD_EAGLE 0x33 ++#define BTTV_BOARD_PINNACLEPRO 0x34 ++#define BTTV_BOARD_TVIEW_RDS_FM 0x35 ++#define BTTV_BOARD_LIFETEC_9415 0x36 ++#define BTTV_BOARD_BESTBUY_EASYTV 0x37 ++#define BTTV_BOARD_FLYVIDEO_98FM 0x38 ++#define BTTV_BOARD_GRANDTEC 0x39 ++#define BTTV_BOARD_ASKEY_CPH060 0x3a ++#define BTTV_BOARD_ASKEY_CPH03X 0x3b ++#define BTTV_BOARD_MM100PCTV 0x3c ++#define BTTV_BOARD_GMV1 0x3d ++#define BTTV_BOARD_BESTBUY_EASYTV2 0x3e ++#define BTTV_BOARD_ATI_TVWONDER 0x3f ++#define BTTV_BOARD_ATI_TVWONDERVE 0x40 ++#define BTTV_BOARD_FLYVIDEO2000 0x41 ++#define BTTV_BOARD_TERRATVALUER 0x42 ++#define BTTV_BOARD_GVBCTV4PCI 0x43 ++#define BTTV_BOARD_VOODOOTV_FM 0x44 ++#define BTTV_BOARD_AIMMS 0x45 ++#define BTTV_BOARD_PV_BT878P_PLUS 0x46 ++#define BTTV_BOARD_FLYVIDEO98EZ 0x47 ++#define BTTV_BOARD_PV_BT878P_9B 0x48 ++#define BTTV_BOARD_SENSORAY311 0x49 ++#define BTTV_BOARD_RV605 0x4a ++#define BTTV_BOARD_POWERCLR_MTV878 0x4b ++#define BTTV_BOARD_WINDVR 0x4c ++#define BTTV_BOARD_GRANDTEC_MULTI 0x4d ++#define BTTV_BOARD_KWORLD 0x4e ++#define BTTV_BOARD_DSP_TCVIDEO 0x4f ++#define BTTV_BOARD_HAUPPAUGEPVR 0x50 ++#define BTTV_BOARD_GVBCTV5PCI 0x51 ++#define BTTV_BOARD_OSPREY1x0 0x52 ++#define BTTV_BOARD_OSPREY1x0_848 0x53 ++#define BTTV_BOARD_OSPREY101_848 0x54 ++#define BTTV_BOARD_OSPREY1x1 0x55 ++#define BTTV_BOARD_OSPREY1x1_SVID 0x56 ++#define BTTV_BOARD_OSPREY2xx 0x57 ++#define BTTV_BOARD_OSPREY2x0_SVID 0x58 ++#define BTTV_BOARD_OSPREY2x0 0x59 ++#define BTTV_BOARD_OSPREY500 0x5a ++#define BTTV_BOARD_OSPREY540 0x5b ++#define BTTV_BOARD_OSPREY2000 0x5c ++#define BTTV_BOARD_IDS_EAGLE 0x5d ++#define BTTV_BOARD_PINNACLESAT 0x5e ++#define BTTV_BOARD_FORMAC_PROTV 0x5f ++#define BTTV_BOARD_MACHTV 0x60 ++#define BTTV_BOARD_EURESYS_PICOLO 0x61 ++#define BTTV_BOARD_PV150 0x62 ++#define BTTV_BOARD_AD_TVK503 0x63 ++#define BTTV_BOARD_HERCULES_SM_TV 0x64 ++#define BTTV_BOARD_PACETV 0x65 ++#define BTTV_BOARD_IVC200 0x66 ++#define BTTV_BOARD_XGUARD 0x67 ++#define BTTV_BOARD_NEBULA_DIGITV 0x68 ++#define BTTV_BOARD_PV143 0x69 ++#define BTTV_BOARD_VD009X1_MINIDIN 0x6a ++#define BTTV_BOARD_VD009X1_COMBI 0x6b ++#define BTTV_BOARD_VD009_MINIDIN 0x6c ++#define BTTV_BOARD_VD009_COMBI 0x6d ++#define BTTV_BOARD_IVC100 0x6e ++#define BTTV_BOARD_IVC120 0x6f ++#define BTTV_BOARD_PC_HDTV 0x70 ++#define BTTV_BOARD_TWINHAN_DST 0x71 ++#define BTTV_BOARD_WINFASTVC100 0x72 ++#define BTTV_BOARD_TEV560 0x73 ++#define BTTV_BOARD_SIMUS_GVC1100 0x74 ++#define BTTV_BOARD_NGSTV_PLUS 0x75 ++#define BTTV_BOARD_LMLBT4 0x76 ++#define BTTV_BOARD_TEKRAM_M205 0x77 ++#define BTTV_BOARD_CONTVFMI 0x78 ++#define BTTV_BOARD_PICOLO_TETRA_CHIP 0x79 ++#define BTTV_BOARD_SPIRIT_TV 0x7a ++#define BTTV_BOARD_AVDVBT_771 0x7b ++#define BTTV_BOARD_AVDVBT_761 0x7c ++#define BTTV_BOARD_MATRIX_VISIONSQ 0x7d ++#define BTTV_BOARD_MATRIX_VISIONSLC 0x7e ++#define BTTV_BOARD_APAC_VIEWCOMP 0x7f ++#define BTTV_BOARD_DVICO_DVBT_LITE 0x80 ++#define BTTV_BOARD_VGEAR_MYVCD 0x81 ++#define BTTV_BOARD_SUPER_TV 0x82 ++#define BTTV_BOARD_TIBET_CS16 0x83 ++#define BTTV_BOARD_KODICOM_4400R 0x84 ++#define BTTV_BOARD_KODICOM_4400R_SL 0x85 ++#define BTTV_BOARD_ADLINK_RTV24 0x86 ++#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 ++#define BTTV_BOARD_ACORP_Y878F 0x88 ++#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2 0x89 ++#define BTTV_BOARD_PV_BT878P_2E 0x8a ++#define BTTV_BOARD_PV_M4900 0x8b ++#define BTTV_BOARD_OSPREY440 0x8c ++#define BTTV_BOARD_ASOUND_SKYEYE 0x8d ++#define BTTV_BOARD_SABRENT_TVFM 0x8e ++#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f ++#define BTTV_BOARD_MACHTV_MAGICTV 0x90 ++ ++/* more card-specific defines */ ++#define PT2254_L_CHANNEL 0x10 ++#define PT2254_R_CHANNEL 0x08 ++#define PT2254_DBS_IN_2 0x400 ++#define PT2254_DBS_IN_10 0x20000 ++#define WINVIEW_PT2254_CLK 0x40 ++#define WINVIEW_PT2254_DATA 0x20 ++#define WINVIEW_PT2254_STROBE 0x80 ++ ++/* digital_mode */ ++#define DIGITAL_MODE_VIDEO 1 ++#define DIGITAL_MODE_CAMERA 2 ++ ++struct bttv_core { ++ /* device structs */ ++ struct pci_dev *pci; ++ struct i2c_adapter i2c_adap; ++ struct list_head subs; /* struct bttv_sub_device */ ++ ++ /* device config */ ++ unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */ ++ unsigned int type; /* card type (pointer into tvcards[]) */ ++ char name[8]; /* dev name */ ++}; ++ ++struct bttv; ++ ++ ++struct bttv_ir { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ ++ /* Usual gpio signalling */ ++ ++ u32 mask_keycode; ++ u32 mask_keydown; ++ u32 mask_keyup; ++ u32 polling; ++ u32 last_gpio; ++ struct work_struct work; ++ struct timer_list timer; ++ ++ /* RC5 gpio */ ++ u32 rc5_gpio; ++ struct timer_list timer_end; /* timer_end for code completion */ ++ struct timer_list timer_keyup; /* timer_end for key release */ ++ u32 last_rc5; /* last good rc5 code */ ++ u32 last_bit; /* last raw bit seen */ ++ u32 code; /* raw code under construction */ ++ struct timeval base_time; /* time of last seen code */ ++ int active; /* building raw code */ ++}; ++ ++struct tvcard ++{ ++ char *name; ++ unsigned int video_inputs; ++ unsigned int audio_inputs; ++ unsigned int tuner; ++ unsigned int svhs; ++ unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO ++ u32 gpiomask; ++ u32 muxsel[16]; ++ u32 gpiomux[4]; /* Tuner, Radio, external, internal */ ++ u32 gpiomute; /* GPIO mute setting */ ++ u32 gpiomask2; /* GPIO MUX mask */ ++ ++ /* i2c audio flags */ ++ unsigned int no_msp34xx:1; ++ unsigned int no_tda9875:1; ++ unsigned int no_tda7432:1; ++ unsigned int needs_tvaudio:1; ++ unsigned int msp34xx_alt:1; ++ ++ /* flag: video pci function is unused */ ++ unsigned int no_video:1; ++ unsigned int has_dvb:1; ++ unsigned int has_remote:1; ++ unsigned int no_gpioirq:1; ++ ++ /* other settings */ ++ unsigned int pll; ++#define PLL_NONE 0 ++#define PLL_28 1 ++#define PLL_35 2 ++ ++ unsigned int tuner_type; ++ unsigned int tuner_addr; ++ unsigned int radio_addr; ++ ++ unsigned int has_radio; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ void (*muxsel_hook)(struct bttv *btv, unsigned int input); ++}; ++ ++extern struct tvcard bttv_tvcards[]; ++ ++/* identification / initialization of the card */ ++extern void bttv_idcard(struct bttv *btv); ++extern void bttv_init_card1(struct bttv *btv); ++extern void bttv_init_card2(struct bttv *btv); ++ ++/* card-specific funtions */ ++extern void tea5757_set_freq(struct bttv *btv, unsigned short freq); ++extern void bttv_tda9880_setnorm(struct bttv *btv, int norm); ++ ++/* extra tweaks for some chipsets */ ++extern void bttv_check_chipset(void); ++extern int bttv_handle_chipset(struct bttv *btv); ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-if.c */ ++ ++/* this obsolete -- please use the sysfs-based ++ interface below for new code */ ++ ++/* returns card type + card ID (for bt878-based ones) ++ for possible values see lines below beginning with #define BTTV_BOARD_UNKNOWN ++ returns negative value if error occurred ++*/ ++extern int bttv_get_cardinfo(unsigned int card, int *type, ++ unsigned int *cardid); ++extern struct pci_dev* bttv_get_pcidev(unsigned int card); ++ ++/* obsolete, use bttv_get_cardinfo instead */ ++extern int bttv_get_id(unsigned int card); ++ ++/* sets GPOE register (BT848_GPIO_OUT_EN) to new value: ++ data | (current_GPOE_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_gpio_enable(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* fills data with GPDATA register contents ++ returns negative value if error occurred ++*/ ++extern int bttv_read_gpio(unsigned int card, unsigned long *data); ++ ++/* sets GPDATA register to new value: ++ (data & mask) | (current_GPDATA_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_write_gpio(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* returns pointer to task queue which can be used as parameter to ++ interruptible_sleep_on ++ in interrupt handler if BT848_INT_GPINT bit is set - this queue is activated ++ (wake_up_interruptible) and following call to the function bttv_read_gpio ++ should return new value of GPDATA, ++ returns NULL value if error occurred or queue is not available ++ WARNING: because there is no buffer for GPIO data, one MUST ++ process data ASAP ++*/ ++extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); ++ ++/* call i2c clients ++*/ ++extern void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg); ++ ++ ++ ++/* ---------------------------------------------------------- */ ++/* sysfs/driver-moded based gpio access interface */ ++ ++ ++struct bttv_sub_device { ++ struct device dev; ++ struct bttv_core *core; ++ struct list_head list; ++}; ++#define to_bttv_sub_dev(x) container_of((x), struct bttv_sub_device, dev) ++ ++struct bttv_sub_driver { ++ struct device_driver drv; ++ char wanted[BUS_ID_SIZE]; ++ int (*probe)(struct bttv_sub_device *sub); ++ void (*remove)(struct bttv_sub_device *sub); ++}; ++#define to_bttv_sub_drv(x) container_of((x), struct bttv_sub_driver, drv) ++ ++int bttv_sub_register(struct bttv_sub_driver *drv, char *wanted); ++int bttv_sub_unregister(struct bttv_sub_driver *drv); ++ ++/* gpio access functions */ ++void bttv_gpio_inout(struct bttv_core *core, u32 mask, u32 outbits); ++u32 bttv_gpio_read(struct bttv_core *core); ++void bttv_gpio_write(struct bttv_core *core, u32 value); ++void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits); ++ ++#define gpio_inout(mask,bits) bttv_gpio_inout(&btv->c, mask, bits) ++#define gpio_read() bttv_gpio_read(&btv->c) ++#define gpio_write(value) bttv_gpio_write(&btv->c, value) ++#define gpio_bits(mask,bits) bttv_gpio_bits(&btv->c, mask, bits) ++ ++ ++/* ---------------------------------------------------------- */ ++/* i2c */ ++ ++extern void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg); ++extern int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for); ++extern int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1, ++ unsigned char b2, int both); ++extern void bttv_readee(struct bttv *btv, unsigned char *eedata, int addr); ++ ++extern int bttv_input_init(struct bttv *dev); ++extern void bttv_input_fini(struct bttv *dev); ++extern void bttv_input_irq(struct bttv *dev); ++ ++#endif /* _BTTV_H_ */ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/bttvp.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/bttvp.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.18/bttvp.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.18/bttvp.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,413 @@ ++/* ++ ++ bttv - Bt848 frame grabber driver ++ ++ bttv's *private* header file -- nobody other than bttv itself ++ should ever include this file. ++ ++ (c) 2000-2002 Gerd Knorr ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BTTVP_H_ ++#define _BTTVP_H_ ++ ++#include ++#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,16) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++#include "bt848.h" ++#include "bttv.h" ++#include "btcx-risc.h" ++ ++#ifdef __KERNEL__ ++ ++#define FORMAT_FLAGS_DITHER 0x01 ++#define FORMAT_FLAGS_PACKED 0x02 ++#define FORMAT_FLAGS_PLANAR 0x04 ++#define FORMAT_FLAGS_RAW 0x08 ++#define FORMAT_FLAGS_CrCb 0x10 ++ ++#define RISC_SLOT_O_VBI 4 ++#define RISC_SLOT_O_FIELD 6 ++#define RISC_SLOT_E_VBI 10 ++#define RISC_SLOT_E_FIELD 12 ++#define RISC_SLOT_LOOP 14 ++ ++#define RESOURCE_OVERLAY 1 ++#define RESOURCE_VIDEO 2 ++#define RESOURCE_VBI 4 ++ ++#define RAW_LINES 640 ++#define RAW_BPL 1024 ++ ++#define UNSET (-1U) ++ ++#define clamp(x, low, high) min (max (low, x), high) ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_tvnorm { ++ int v4l2_id; ++ char *name; ++ u32 Fsc; ++ u16 swidth, sheight; /* scaled standard width, height */ ++ u16 totalwidth; ++ u8 adelay, bdelay, iform; ++ u32 scaledtwidth; ++ u16 hdelayx1, hactivex1; ++ u16 vdelay; ++ u8 vbipack; ++ u16 vtotal; ++ int sram; ++ /* ITU-R frame line number of the first VBI line we can ++ capture, of the first and second field. */ ++ u16 vbistart[2]; ++}; ++extern const struct bttv_tvnorm bttv_tvnorms[]; ++ ++struct bttv_format { ++ char *name; ++ int palette; /* video4linux 1 */ ++ int fourcc; /* video4linux 2 */ ++ int btformat; /* BT848_COLOR_FMT_* */ ++ int btswap; /* BT848_COLOR_CTL_* */ ++ int depth; /* bit/pixel */ ++ int flags; ++ int hshift,vshift; /* for planar modes */ ++}; ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_geometry { ++ u8 vtc,crop,comb; ++ u16 width,hscale,hdelay; ++ u16 sheight,vscale,vdelay,vtotal; ++}; ++ ++struct bttv_buffer { ++ /* common v4l buffer stuff -- must be first */ ++ struct videobuf_buffer vb; ++ ++ /* bttv specific */ ++ const struct bttv_format *fmt; ++ int tvnorm; ++ int btformat; ++ int btswap; ++ struct bttv_geometry geo; ++ struct btcx_riscmem top; ++ struct btcx_riscmem bottom; ++}; ++ ++struct bttv_buffer_set { ++ struct bttv_buffer *top; /* top field buffer */ ++ struct bttv_buffer *bottom; /* bottom field buffer */ ++ unsigned int top_irq; ++ unsigned int frame_irq; ++}; ++ ++struct bttv_overlay { ++ int tvnorm; ++ struct v4l2_rect w; ++ enum v4l2_field field; ++ struct v4l2_clip *clips; ++ int nclips; ++ int setup_ok; ++}; ++ ++struct bttv_fh { ++ struct bttv *btv; ++ int resources; ++#ifdef VIDIOC_G_PRIORITY ++ enum v4l2_priority prio; ++#endif ++ enum v4l2_buf_type type; ++ ++ /* video capture */ ++ struct videobuf_queue cap; ++ const struct bttv_format *fmt; ++ int width; ++ int height; ++ ++ /* current settings */ ++ const struct bttv_format *ovfmt; ++ struct bttv_overlay ov; ++ ++ /* video overlay */ ++ struct videobuf_queue vbi; ++ int lines; ++}; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-risc.c */ ++ ++/* risc code generators - capture */ ++int bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc, ++ struct scatterlist *sglist, ++ unsigned int offset, unsigned int bpl, ++ unsigned int pitch, unsigned int lines); ++ ++/* control dma register + risc main loop */ ++void bttv_set_dma(struct bttv *btv, int override); ++int bttv_risc_init_main(struct bttv *btv); ++int bttv_risc_hook(struct bttv *btv, int slot, struct btcx_riscmem *risc, ++ int irqflags); ++ ++/* capture buffer handling */ ++int bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf); ++int bttv_buffer_activate_video(struct bttv *btv, ++ struct bttv_buffer_set *set); ++int bttv_buffer_activate_vbi(struct bttv *btv, ++ struct bttv_buffer *vbi); ++void bttv_dma_free(struct videobuf_queue *q, struct bttv *btv, ++ struct bttv_buffer *buf); ++ ++/* overlay handling */ ++int bttv_overlay_risc(struct bttv *btv, struct bttv_overlay *ov, ++ const struct bttv_format *fmt, ++ struct bttv_buffer *buf); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-vbi.c */ ++ ++void bttv_vbi_try_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_get_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_setlines(struct bttv_fh *fh, struct bttv *btv, int lines); ++ ++extern struct videobuf_queue_ops bttv_vbi_qops; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-gpio.c */ ++ ++ ++extern struct bus_type bttv_sub_bus_type; ++int bttv_sub_add_device(struct bttv_core *core, char *name); ++int bttv_sub_del_devices(struct bttv_core *core); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-driver.c */ ++ ++/* insmod options */ ++extern unsigned int bttv_verbose; ++extern unsigned int bttv_debug; ++extern unsigned int bttv_gpio; ++extern void bttv_gpio_tracking(struct bttv *btv, char *comment); ++extern int init_bttv_i2c(struct bttv *btv); ++extern int fini_bttv_i2c(struct bttv *btv); ++ ++#define bttv_printk if (bttv_verbose) printk ++#define dprintk if (bttv_debug >= 1) printk ++#define d2printk if (bttv_debug >= 2) printk ++ ++#define BTTV_MAX_FBUF 0x208000 ++#define VBIBUF_SIZE (2048*VBI_MAXLINES*2) ++#define BTTV_TIMEOUT (HZ/2) /* 0.5 seconds */ ++#define BTTV_FREE_IDLE (HZ) /* one second */ ++ ++ ++struct bttv_pll_info { ++ unsigned int pll_ifreq; /* PLL input frequency */ ++ unsigned int pll_ofreq; /* PLL output frequency */ ++ unsigned int pll_crystal; /* Crystal used for input */ ++ unsigned int pll_current; /* Currently programmed ofreq */ ++}; ++ ++/* for gpio-connected remote control */ ++struct bttv_input { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ u32 mask_keycode; ++ u32 mask_keydown; ++}; ++ ++struct bttv_suspend_state { ++ u32 gpio_enable; ++ u32 gpio_data; ++ int disabled; ++ int loop_irq; ++ struct bttv_buffer_set video; ++ struct bttv_buffer *vbi; ++}; ++ ++struct bttv { ++ struct bttv_core c; ++ ++ /* pci device config */ ++ unsigned short id; ++ unsigned char revision; ++ unsigned char __iomem *bt848_mmio; /* pointer to mmio */ ++ ++ /* card configuration info */ ++ unsigned int cardid; /* pci subsystem id (bt878 based ones) */ ++ unsigned int tuner_type; /* tuner chip type */ ++ unsigned int tda9887_conf; ++ unsigned int svhs; ++ struct bttv_pll_info pll; ++ int triton1; ++ int gpioirq; ++ int (*custom_irq)(struct bttv *btv); ++ ++ int use_i2c_hw; ++ ++ /* old gpio interface */ ++ wait_queue_head_t gpioq; ++ int shutdown; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ ++ /* new gpio interface */ ++ spinlock_t gpio_lock; ++ ++ /* i2c layer */ ++ struct i2c_algo_bit_data i2c_algo; ++ struct i2c_client i2c_client; ++ int i2c_state, i2c_rc; ++ int i2c_done; ++ wait_queue_head_t i2c_queue; ++ struct i2c_client *i2c_msp34xx_client; ++ struct i2c_client *i2c_tvaudio_client; ++ ++ /* video4linux (1) */ ++ struct video_device *video_dev; ++ struct video_device *radio_dev; ++ struct video_device *vbi_dev; ++ ++ /* infrared remote */ ++ int has_remote; ++ struct bttv_ir *remote; ++ ++ /* locking */ ++ spinlock_t s_lock; ++ struct mutex lock; ++ int resources; ++ struct mutex reslock; ++#ifdef VIDIOC_G_PRIORITY ++ struct v4l2_prio_state prio; ++#endif ++ ++ /* video state */ ++ unsigned int input; ++ unsigned int audio; ++ unsigned int mute; ++ unsigned long freq; ++ int tvnorm,hue,contrast,bright,saturation; ++ struct v4l2_framebuffer fbuf; ++ unsigned int field_count; ++ ++ /* various options */ ++ int opt_combfilter; ++ int opt_lumafilter; ++ int opt_automute; ++ int opt_chroma_agc; ++ int opt_adc_crush; ++ int opt_vcr_hack; ++ int opt_whitecrush_upper; ++ int opt_whitecrush_lower; ++ int opt_uv_ratio; ++ int opt_full_luma_range; ++ int opt_coring; ++ ++ /* radio data/state */ ++ int has_radio; ++ int radio_user; ++ ++ /* miro/pinnacle + Aimslab VHX ++ philips matchbox (tea5757 radio tuner) support */ ++ int has_matchbox; ++ int mbox_we; ++ int mbox_data; ++ int mbox_clk; ++ int mbox_most; ++ int mbox_mask; ++ ++ /* ISA stuff (Terratec Active Radio Upgrade) */ ++ int mbox_ior; ++ int mbox_iow; ++ int mbox_csel; ++ ++ /* risc memory management data ++ - must acquire s_lock before changing these ++ - only the irq handler is supported to touch top + bottom + vcurr */ ++ struct btcx_riscmem main; ++ struct bttv_buffer *screen; /* overlay */ ++ struct list_head capture; /* video capture queue */ ++ struct list_head vcapture; /* vbi capture queue */ ++ struct bttv_buffer_set curr; /* active buffers */ ++ struct bttv_buffer *cvbi; /* active vbi buffer */ ++ int loop_irq; ++ int new_input; ++ ++ unsigned long cap_ctl; ++ unsigned long dma_on; ++ struct timer_list timeout; ++ struct bttv_suspend_state state; ++ ++ /* stats */ ++ unsigned int errors; ++ unsigned int framedrop; ++ unsigned int irq_total; ++ unsigned int irq_me; ++ ++ unsigned int users; ++ struct bttv_fh init; ++}; ++ ++/* our devices */ ++#define BTTV_MAX 16 ++extern unsigned int bttv_num; ++extern struct bttv bttvs[BTTV_MAX]; ++ ++/* private ioctls */ ++#define BTTV_VERSION _IOR('v' , BASE_VIDIOCPRIVATE+6, int) ++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int) ++ ++#endif ++ ++#define btwrite(dat,adr) writel((dat), btv->bt848_mmio+(adr)) ++#define btread(adr) readl(btv->bt848_mmio+(adr)) ++ ++#define btand(dat,adr) btwrite((dat) & btread(adr), adr) ++#define btor(dat,adr) btwrite((dat) | btread(adr), adr) ++#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) ++ ++#endif /* _BTTVP_H_ */ ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/bt848.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/bt848.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/bt848.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/bt848.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,366 @@ ++/* ++ bt848.h - Bt848 register offsets ++ ++ Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BT848_H_ ++#define _BT848_H_ ++ ++#ifndef PCI_VENDOR_ID_BROOKTREE ++#define PCI_VENDOR_ID_BROOKTREE 0x109e ++#endif ++#ifndef PCI_DEVICE_ID_BT848 ++#define PCI_DEVICE_ID_BT848 0x350 ++#endif ++#ifndef PCI_DEVICE_ID_BT849 ++#define PCI_DEVICE_ID_BT849 0x351 ++#endif ++#ifndef PCI_DEVICE_ID_BT878 ++#define PCI_DEVICE_ID_BT878 0x36e ++#endif ++#ifndef PCI_DEVICE_ID_BT879 ++#define PCI_DEVICE_ID_BT879 0x36f ++#endif ++ ++ ++/* Brooktree 848 registers */ ++ ++#define BT848_DSTATUS 0x000 ++#define BT848_DSTATUS_PRES (1<<7) ++#define BT848_DSTATUS_HLOC (1<<6) ++#define BT848_DSTATUS_FIELD (1<<5) ++#define BT848_DSTATUS_NUML (1<<4) ++#define BT848_DSTATUS_CSEL (1<<3) ++#define BT848_DSTATUS_PLOCK (1<<2) ++#define BT848_DSTATUS_LOF (1<<1) ++#define BT848_DSTATUS_COF (1<<0) ++ ++#define BT848_IFORM 0x004 ++#define BT848_IFORM_HACTIVE (1<<7) ++#define BT848_IFORM_MUXSEL (3<<5) ++#define BT848_IFORM_MUX0 (2<<5) ++#define BT848_IFORM_MUX1 (3<<5) ++#define BT848_IFORM_MUX2 (1<<5) ++#define BT848_IFORM_XTSEL (3<<3) ++#define BT848_IFORM_XT0 (1<<3) ++#define BT848_IFORM_XT1 (2<<3) ++#define BT848_IFORM_XTAUTO (3<<3) ++#define BT848_IFORM_XTBOTH (3<<3) ++#define BT848_IFORM_NTSC 1 ++#define BT848_IFORM_NTSC_J 2 ++#define BT848_IFORM_PAL_BDGHI 3 ++#define BT848_IFORM_PAL_M 4 ++#define BT848_IFORM_PAL_N 5 ++#define BT848_IFORM_SECAM 6 ++#define BT848_IFORM_PAL_NC 7 ++#define BT848_IFORM_AUTO 0 ++#define BT848_IFORM_NORM 7 ++ ++#define BT848_TDEC 0x008 ++#define BT848_TDEC_DEC_FIELD (1<<7) ++#define BT848_TDEC_FLDALIGN (1<<6) ++#define BT848_TDEC_DEC_RAT (0x1f) ++ ++#define BT848_E_CROP 0x00C ++#define BT848_O_CROP 0x08C ++ ++#define BT848_E_VDELAY_LO 0x010 ++#define BT848_O_VDELAY_LO 0x090 ++ ++#define BT848_E_VACTIVE_LO 0x014 ++#define BT848_O_VACTIVE_LO 0x094 ++ ++#define BT848_E_HDELAY_LO 0x018 ++#define BT848_O_HDELAY_LO 0x098 ++ ++#define BT848_E_HACTIVE_LO 0x01C ++#define BT848_O_HACTIVE_LO 0x09C ++ ++#define BT848_E_HSCALE_HI 0x020 ++#define BT848_O_HSCALE_HI 0x0A0 ++ ++#define BT848_E_HSCALE_LO 0x024 ++#define BT848_O_HSCALE_LO 0x0A4 ++ ++#define BT848_BRIGHT 0x028 ++ ++#define BT848_E_CONTROL 0x02C ++#define BT848_O_CONTROL 0x0AC ++#define BT848_CONTROL_LNOTCH (1<<7) ++#define BT848_CONTROL_COMP (1<<6) ++#define BT848_CONTROL_LDEC (1<<5) ++#define BT848_CONTROL_CBSENSE (1<<4) ++#define BT848_CONTROL_CON_MSB (1<<2) ++#define BT848_CONTROL_SAT_U_MSB (1<<1) ++#define BT848_CONTROL_SAT_V_MSB (1<<0) ++ ++#define BT848_CONTRAST_LO 0x030 ++#define BT848_SAT_U_LO 0x034 ++#define BT848_SAT_V_LO 0x038 ++#define BT848_HUE 0x03C ++ ++#define BT848_E_SCLOOP 0x040 ++#define BT848_O_SCLOOP 0x0C0 ++#define BT848_SCLOOP_CAGC (1<<6) ++#define BT848_SCLOOP_CKILL (1<<5) ++#define BT848_SCLOOP_HFILT_AUTO (0<<3) ++#define BT848_SCLOOP_HFILT_CIF (1<<3) ++#define BT848_SCLOOP_HFILT_QCIF (2<<3) ++#define BT848_SCLOOP_HFILT_ICON (3<<3) ++ ++#define BT848_SCLOOP_PEAK (1<<7) ++#define BT848_SCLOOP_HFILT_MINP (1<<3) ++#define BT848_SCLOOP_HFILT_MEDP (2<<3) ++#define BT848_SCLOOP_HFILT_MAXP (3<<3) ++ ++ ++#define BT848_OFORM 0x048 ++#define BT848_OFORM_RANGE (1<<7) ++#define BT848_OFORM_CORE0 (0<<5) ++#define BT848_OFORM_CORE8 (1<<5) ++#define BT848_OFORM_CORE16 (2<<5) ++#define BT848_OFORM_CORE32 (3<<5) ++ ++#define BT848_E_VSCALE_HI 0x04C ++#define BT848_O_VSCALE_HI 0x0CC ++#define BT848_VSCALE_YCOMB (1<<7) ++#define BT848_VSCALE_COMB (1<<6) ++#define BT848_VSCALE_INT (1<<5) ++#define BT848_VSCALE_HI 15 ++ ++#define BT848_E_VSCALE_LO 0x050 ++#define BT848_O_VSCALE_LO 0x0D0 ++#define BT848_TEST 0x054 ++#define BT848_ADELAY 0x060 ++#define BT848_BDELAY 0x064 ++ ++#define BT848_ADC 0x068 ++#define BT848_ADC_RESERVED (2<<6) ++#define BT848_ADC_SYNC_T (1<<5) ++#define BT848_ADC_AGC_EN (1<<4) ++#define BT848_ADC_CLK_SLEEP (1<<3) ++#define BT848_ADC_Y_SLEEP (1<<2) ++#define BT848_ADC_C_SLEEP (1<<1) ++#define BT848_ADC_CRUSH (1<<0) ++ ++#define BT848_WC_UP 0x044 ++#define BT848_WC_DOWN 0x078 ++ ++#define BT848_E_VTC 0x06C ++#define BT848_O_VTC 0x0EC ++#define BT848_VTC_HSFMT (1<<7) ++#define BT848_VTC_VFILT_2TAP 0 ++#define BT848_VTC_VFILT_3TAP 1 ++#define BT848_VTC_VFILT_4TAP 2 ++#define BT848_VTC_VFILT_5TAP 3 ++ ++#define BT848_SRESET 0x07C ++ ++#define BT848_COLOR_FMT 0x0D4 ++#define BT848_COLOR_FMT_O_RGB32 (0<<4) ++#define BT848_COLOR_FMT_O_RGB24 (1<<4) ++#define BT848_COLOR_FMT_O_RGB16 (2<<4) ++#define BT848_COLOR_FMT_O_RGB15 (3<<4) ++#define BT848_COLOR_FMT_O_YUY2 (4<<4) ++#define BT848_COLOR_FMT_O_BtYUV (5<<4) ++#define BT848_COLOR_FMT_O_Y8 (6<<4) ++#define BT848_COLOR_FMT_O_RGB8 (7<<4) ++#define BT848_COLOR_FMT_O_YCrCb422 (8<<4) ++#define BT848_COLOR_FMT_O_YCrCb411 (9<<4) ++#define BT848_COLOR_FMT_O_RAW (14<<4) ++#define BT848_COLOR_FMT_E_RGB32 0 ++#define BT848_COLOR_FMT_E_RGB24 1 ++#define BT848_COLOR_FMT_E_RGB16 2 ++#define BT848_COLOR_FMT_E_RGB15 3 ++#define BT848_COLOR_FMT_E_YUY2 4 ++#define BT848_COLOR_FMT_E_BtYUV 5 ++#define BT848_COLOR_FMT_E_Y8 6 ++#define BT848_COLOR_FMT_E_RGB8 7 ++#define BT848_COLOR_FMT_E_YCrCb422 8 ++#define BT848_COLOR_FMT_E_YCrCb411 9 ++#define BT848_COLOR_FMT_E_RAW 14 ++ ++#define BT848_COLOR_FMT_RGB32 0x00 ++#define BT848_COLOR_FMT_RGB24 0x11 ++#define BT848_COLOR_FMT_RGB16 0x22 ++#define BT848_COLOR_FMT_RGB15 0x33 ++#define BT848_COLOR_FMT_YUY2 0x44 ++#define BT848_COLOR_FMT_BtYUV 0x55 ++#define BT848_COLOR_FMT_Y8 0x66 ++#define BT848_COLOR_FMT_RGB8 0x77 ++#define BT848_COLOR_FMT_YCrCb422 0x88 ++#define BT848_COLOR_FMT_YCrCb411 0x99 ++#define BT848_COLOR_FMT_RAW 0xee ++ ++#define BT848_VTOTAL_LO 0xB0 ++#define BT848_VTOTAL_HI 0xB4 ++ ++#define BT848_COLOR_CTL 0x0D8 ++#define BT848_COLOR_CTL_EXT_FRMRATE (1<<7) ++#define BT848_COLOR_CTL_COLOR_BARS (1<<6) ++#define BT848_COLOR_CTL_RGB_DED (1<<5) ++#define BT848_COLOR_CTL_GAMMA (1<<4) ++#define BT848_COLOR_CTL_WSWAP_ODD (1<<3) ++#define BT848_COLOR_CTL_WSWAP_EVEN (1<<2) ++#define BT848_COLOR_CTL_BSWAP_ODD (1<<1) ++#define BT848_COLOR_CTL_BSWAP_EVEN (1<<0) ++ ++#define BT848_CAP_CTL 0x0DC ++#define BT848_CAP_CTL_DITH_FRAME (1<<4) ++#define BT848_CAP_CTL_CAPTURE_VBI_ODD (1<<3) ++#define BT848_CAP_CTL_CAPTURE_VBI_EVEN (1<<2) ++#define BT848_CAP_CTL_CAPTURE_ODD (1<<1) ++#define BT848_CAP_CTL_CAPTURE_EVEN (1<<0) ++ ++#define BT848_VBI_PACK_SIZE 0x0E0 ++ ++#define BT848_VBI_PACK_DEL 0x0E4 ++#define BT848_VBI_PACK_DEL_VBI_HDELAY 0xfc ++#define BT848_VBI_PACK_DEL_EXT_FRAME 2 ++#define BT848_VBI_PACK_DEL_VBI_PKT_HI 1 ++ ++ ++#define BT848_INT_STAT 0x100 ++#define BT848_INT_MASK 0x104 ++ ++#define BT848_INT_ETBF (1<<23) ++ ++#define BT848_INT_RISCS (0xf<<28) ++#define BT848_INT_RISC_EN (1<<27) ++#define BT848_INT_RACK (1<<25) ++#define BT848_INT_FIELD (1<<24) ++#define BT848_INT_SCERR (1<<19) ++#define BT848_INT_OCERR (1<<18) ++#define BT848_INT_PABORT (1<<17) ++#define BT848_INT_RIPERR (1<<16) ++#define BT848_INT_PPERR (1<<15) ++#define BT848_INT_FDSR (1<<14) ++#define BT848_INT_FTRGT (1<<13) ++#define BT848_INT_FBUS (1<<12) ++#define BT848_INT_RISCI (1<<11) ++#define BT848_INT_GPINT (1<<9) ++#define BT848_INT_I2CDONE (1<<8) ++#define BT848_INT_VPRES (1<<5) ++#define BT848_INT_HLOCK (1<<4) ++#define BT848_INT_OFLOW (1<<3) ++#define BT848_INT_HSYNC (1<<2) ++#define BT848_INT_VSYNC (1<<1) ++#define BT848_INT_FMTCHG (1<<0) ++ ++ ++#define BT848_GPIO_DMA_CTL 0x10C ++#define BT848_GPIO_DMA_CTL_GPINTC (1<<15) ++#define BT848_GPIO_DMA_CTL_GPINTI (1<<14) ++#define BT848_GPIO_DMA_CTL_GPWEC (1<<13) ++#define BT848_GPIO_DMA_CTL_GPIOMODE (3<<11) ++#define BT848_GPIO_DMA_CTL_GPCLKMODE (1<<10) ++#define BT848_GPIO_DMA_CTL_PLTP23_4 (0<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_8 (1<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_16 (2<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_32 (3<<6) ++#define BT848_GPIO_DMA_CTL_PLTP1_4 (0<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_8 (1<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_16 (2<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_32 (3<<4) ++#define BT848_GPIO_DMA_CTL_PKTP_4 (0<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_8 (1<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_16 (2<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_32 (3<<2) ++#define BT848_GPIO_DMA_CTL_RISC_ENABLE (1<<1) ++#define BT848_GPIO_DMA_CTL_FIFO_ENABLE (1<<0) ++ ++#define BT848_I2C 0x110 ++#define BT878_I2C_MODE (1<<7) ++#define BT878_I2C_RATE (1<<6) ++#define BT878_I2C_NOSTOP (1<<5) ++#define BT878_I2C_NOSTART (1<<4) ++#define BT848_I2C_DIV (0xf<<4) ++#define BT848_I2C_SYNC (1<<3) ++#define BT848_I2C_W3B (1<<2) ++#define BT848_I2C_SCL (1<<1) ++#define BT848_I2C_SDA (1<<0) ++ ++#define BT848_RISC_STRT_ADD 0x114 ++#define BT848_GPIO_OUT_EN 0x118 ++#define BT848_GPIO_REG_INP 0x11C ++#define BT848_RISC_COUNT 0x120 ++#define BT848_GPIO_DATA 0x200 ++ ++ ++/* Bt848 RISC commands */ ++ ++/* only for the SYNC RISC command */ ++#define BT848_FIFO_STATUS_FM1 0x06 ++#define BT848_FIFO_STATUS_FM3 0x0e ++#define BT848_FIFO_STATUS_SOL 0x02 ++#define BT848_FIFO_STATUS_EOL4 0x01 ++#define BT848_FIFO_STATUS_EOL3 0x0d ++#define BT848_FIFO_STATUS_EOL2 0x09 ++#define BT848_FIFO_STATUS_EOL1 0x05 ++#define BT848_FIFO_STATUS_VRE 0x04 ++#define BT848_FIFO_STATUS_VRO 0x0c ++#define BT848_FIFO_STATUS_PXV 0x00 ++ ++#define BT848_RISC_RESYNC (1<<15) ++ ++/* WRITE and SKIP */ ++/* disable which bytes of each DWORD */ ++#define BT848_RISC_BYTE0 (1U<<12) ++#define BT848_RISC_BYTE1 (1U<<13) ++#define BT848_RISC_BYTE2 (1U<<14) ++#define BT848_RISC_BYTE3 (1U<<15) ++#define BT848_RISC_BYTE_ALL (0x0fU<<12) ++#define BT848_RISC_BYTE_NONE 0 ++/* cause RISCI */ ++#define BT848_RISC_IRQ (1U<<24) ++/* RISC command is last one in this line */ ++#define BT848_RISC_EOL (1U<<26) ++/* RISC command is first one in this line */ ++#define BT848_RISC_SOL (1U<<27) ++ ++#define BT848_RISC_WRITE (0x01U<<28) ++#define BT848_RISC_SKIP (0x02U<<28) ++#define BT848_RISC_WRITEC (0x05U<<28) ++#define BT848_RISC_JUMP (0x07U<<28) ++#define BT848_RISC_SYNC (0x08U<<28) ++ ++#define BT848_RISC_WRITE123 (0x09U<<28) ++#define BT848_RISC_SKIP123 (0x0aU<<28) ++#define BT848_RISC_WRITE1S23 (0x0bU<<28) ++ ++ ++/* Bt848A and higher only !! */ ++#define BT848_TGLB 0x080 ++#define BT848_TGCTRL 0x084 ++#define BT848_FCAP 0x0E8 ++#define BT848_PLL_F_LO 0x0F0 ++#define BT848_PLL_F_HI 0x0F4 ++ ++#define BT848_PLL_XCI 0x0F8 ++#define BT848_PLL_X (1<<7) ++#define BT848_PLL_C (1<<6) ++ ++#define BT848_DVSIF 0x0FC ++ ++/* Bt878 register */ ++ ++#define BT878_DEVCTRL 0x40 ++#define BT878_EN_TBFX 0x02 ++#define BT878_EN_VSFX 0x04 ++ ++#endif +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/btcx-risc.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/btcx-risc.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/btcx-risc.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/btcx-risc.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,34 @@ ++/* ++ */ ++struct btcx_riscmem { ++ unsigned int size; ++ u32 *cpu; ++ u32 *jmp; ++ dma_addr_t dma; ++}; ++ ++struct btcx_skiplist { ++ int start; ++ int end; ++}; ++ ++int btcx_riscmem_alloc(struct pci_dev *pci, ++ struct btcx_riscmem *risc, ++ unsigned int size); ++void btcx_riscmem_free(struct pci_dev *pci, ++ struct btcx_riscmem *risc); ++ ++int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win, ++ struct v4l2_clip *clips, unsigned int n); ++int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, ++ unsigned int n, int mask); ++void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); ++void btcx_calc_skips(int line, int width, unsigned int *maxy, ++ struct btcx_skiplist *skips, unsigned int *nskips, ++ const struct v4l2_clip *clips, unsigned int nclips); ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/bttv.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/bttv.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/bttv.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/bttv.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,389 @@ ++/* ++ * ++ * bttv - Bt848 frame grabber driver ++ * ++ * card ID's and external interfaces of the bttv driver ++ * basically stuff needed by other drivers (i2c, lirc, ...) ++ * and is supported not to change much over time. ++ * ++ * Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ * (c) 1999,2000 Gerd Knorr ++ * ++ */ ++ ++#ifndef _BTTV_H_ ++#define _BTTV_H_ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-cards.c */ ++ ++#define BTTV_BOARD_UNKNOWN 0x00 ++#define BTTV_BOARD_MIRO 0x01 ++#define BTTV_BOARD_HAUPPAUGE 0x02 ++#define BTTV_BOARD_STB 0x03 ++#define BTTV_BOARD_INTEL 0x04 ++#define BTTV_BOARD_DIAMOND 0x05 ++#define BTTV_BOARD_AVERMEDIA 0x06 ++#define BTTV_BOARD_MATRIX_VISION 0x07 ++#define BTTV_BOARD_FLYVIDEO 0x08 ++#define BTTV_BOARD_TURBOTV 0x09 ++#define BTTV_BOARD_HAUPPAUGE878 0x0a ++#define BTTV_BOARD_MIROPRO 0x0b ++#define BTTV_BOARD_ADSTECH_TV 0x0c ++#define BTTV_BOARD_AVERMEDIA98 0x0d ++#define BTTV_BOARD_VHX 0x0e ++#define BTTV_BOARD_ZOLTRIX 0x0f ++#define BTTV_BOARD_PIXVIEWPLAYTV 0x10 ++#define BTTV_BOARD_WINVIEW_601 0x11 ++#define BTTV_BOARD_AVEC_INTERCAP 0x12 ++#define BTTV_BOARD_LIFE_FLYKIT 0x13 ++#define BTTV_BOARD_CEI_RAFFLES 0x14 ++#define BTTV_BOARD_CONFERENCETV 0x15 ++#define BTTV_BOARD_PHOEBE_TVMAS 0x16 ++#define BTTV_BOARD_MODTEC_205 0x17 ++#define BTTV_BOARD_MAGICTVIEW061 0x18 ++#define BTTV_BOARD_VOBIS_BOOSTAR 0x19 ++#define BTTV_BOARD_HAUPPAUG_WCAM 0x1a ++#define BTTV_BOARD_MAXI 0x1b ++#define BTTV_BOARD_TERRATV 0x1c ++#define BTTV_BOARD_PXC200 0x1d ++#define BTTV_BOARD_FLYVIDEO_98 0x1e ++#define BTTV_BOARD_IPROTV 0x1f ++#define BTTV_BOARD_INTEL_C_S_PCI 0x20 ++#define BTTV_BOARD_TERRATVALUE 0x21 ++#define BTTV_BOARD_WINFAST2000 0x22 ++#define BTTV_BOARD_CHRONOS_VS2 0x23 ++#define BTTV_BOARD_TYPHOON_TVIEW 0x24 ++#define BTTV_BOARD_PXELVWPLTVPRO 0x25 ++#define BTTV_BOARD_MAGICTVIEW063 0x26 ++#define BTTV_BOARD_PINNACLE 0x27 ++#define BTTV_BOARD_STB2 0x28 ++#define BTTV_BOARD_AVPHONE98 0x29 ++#define BTTV_BOARD_PV951 0x2a ++#define BTTV_BOARD_ONAIR_TV 0x2b ++#define BTTV_BOARD_SIGMA_TVII_FM 0x2c ++#define BTTV_BOARD_MATRIX_VISION2 0x2d ++#define BTTV_BOARD_ZOLTRIX_GENIE 0x2e ++#define BTTV_BOARD_TERRATVRADIO 0x2f ++#define BTTV_BOARD_DYNALINK 0x30 ++#define BTTV_BOARD_GVBCTV3PCI 0x31 ++#define BTTV_BOARD_PXELVWPLTVPAK 0x32 ++#define BTTV_BOARD_EAGLE 0x33 ++#define BTTV_BOARD_PINNACLEPRO 0x34 ++#define BTTV_BOARD_TVIEW_RDS_FM 0x35 ++#define BTTV_BOARD_LIFETEC_9415 0x36 ++#define BTTV_BOARD_BESTBUY_EASYTV 0x37 ++#define BTTV_BOARD_FLYVIDEO_98FM 0x38 ++#define BTTV_BOARD_GRANDTEC 0x39 ++#define BTTV_BOARD_ASKEY_CPH060 0x3a ++#define BTTV_BOARD_ASKEY_CPH03X 0x3b ++#define BTTV_BOARD_MM100PCTV 0x3c ++#define BTTV_BOARD_GMV1 0x3d ++#define BTTV_BOARD_BESTBUY_EASYTV2 0x3e ++#define BTTV_BOARD_ATI_TVWONDER 0x3f ++#define BTTV_BOARD_ATI_TVWONDERVE 0x40 ++#define BTTV_BOARD_FLYVIDEO2000 0x41 ++#define BTTV_BOARD_TERRATVALUER 0x42 ++#define BTTV_BOARD_GVBCTV4PCI 0x43 ++#define BTTV_BOARD_VOODOOTV_FM 0x44 ++#define BTTV_BOARD_AIMMS 0x45 ++#define BTTV_BOARD_PV_BT878P_PLUS 0x46 ++#define BTTV_BOARD_FLYVIDEO98EZ 0x47 ++#define BTTV_BOARD_PV_BT878P_9B 0x48 ++#define BTTV_BOARD_SENSORAY311 0x49 ++#define BTTV_BOARD_RV605 0x4a ++#define BTTV_BOARD_POWERCLR_MTV878 0x4b ++#define BTTV_BOARD_WINDVR 0x4c ++#define BTTV_BOARD_GRANDTEC_MULTI 0x4d ++#define BTTV_BOARD_KWORLD 0x4e ++#define BTTV_BOARD_DSP_TCVIDEO 0x4f ++#define BTTV_BOARD_HAUPPAUGEPVR 0x50 ++#define BTTV_BOARD_GVBCTV5PCI 0x51 ++#define BTTV_BOARD_OSPREY1x0 0x52 ++#define BTTV_BOARD_OSPREY1x0_848 0x53 ++#define BTTV_BOARD_OSPREY101_848 0x54 ++#define BTTV_BOARD_OSPREY1x1 0x55 ++#define BTTV_BOARD_OSPREY1x1_SVID 0x56 ++#define BTTV_BOARD_OSPREY2xx 0x57 ++#define BTTV_BOARD_OSPREY2x0_SVID 0x58 ++#define BTTV_BOARD_OSPREY2x0 0x59 ++#define BTTV_BOARD_OSPREY500 0x5a ++#define BTTV_BOARD_OSPREY540 0x5b ++#define BTTV_BOARD_OSPREY2000 0x5c ++#define BTTV_BOARD_IDS_EAGLE 0x5d ++#define BTTV_BOARD_PINNACLESAT 0x5e ++#define BTTV_BOARD_FORMAC_PROTV 0x5f ++#define BTTV_BOARD_MACHTV 0x60 ++#define BTTV_BOARD_EURESYS_PICOLO 0x61 ++#define BTTV_BOARD_PV150 0x62 ++#define BTTV_BOARD_AD_TVK503 0x63 ++#define BTTV_BOARD_HERCULES_SM_TV 0x64 ++#define BTTV_BOARD_PACETV 0x65 ++#define BTTV_BOARD_IVC200 0x66 ++#define BTTV_BOARD_XGUARD 0x67 ++#define BTTV_BOARD_NEBULA_DIGITV 0x68 ++#define BTTV_BOARD_PV143 0x69 ++#define BTTV_BOARD_VD009X1_MINIDIN 0x6a ++#define BTTV_BOARD_VD009X1_COMBI 0x6b ++#define BTTV_BOARD_VD009_MINIDIN 0x6c ++#define BTTV_BOARD_VD009_COMBI 0x6d ++#define BTTV_BOARD_IVC100 0x6e ++#define BTTV_BOARD_IVC120 0x6f ++#define BTTV_BOARD_PC_HDTV 0x70 ++#define BTTV_BOARD_TWINHAN_DST 0x71 ++#define BTTV_BOARD_WINFASTVC100 0x72 ++#define BTTV_BOARD_TEV560 0x73 ++#define BTTV_BOARD_SIMUS_GVC1100 0x74 ++#define BTTV_BOARD_NGSTV_PLUS 0x75 ++#define BTTV_BOARD_LMLBT4 0x76 ++#define BTTV_BOARD_TEKRAM_M205 0x77 ++#define BTTV_BOARD_CONTVFMI 0x78 ++#define BTTV_BOARD_PICOLO_TETRA_CHIP 0x79 ++#define BTTV_BOARD_SPIRIT_TV 0x7a ++#define BTTV_BOARD_AVDVBT_771 0x7b ++#define BTTV_BOARD_AVDVBT_761 0x7c ++#define BTTV_BOARD_MATRIX_VISIONSQ 0x7d ++#define BTTV_BOARD_MATRIX_VISIONSLC 0x7e ++#define BTTV_BOARD_APAC_VIEWCOMP 0x7f ++#define BTTV_BOARD_DVICO_DVBT_LITE 0x80 ++#define BTTV_BOARD_VGEAR_MYVCD 0x81 ++#define BTTV_BOARD_SUPER_TV 0x82 ++#define BTTV_BOARD_TIBET_CS16 0x83 ++#define BTTV_BOARD_KODICOM_4400R 0x84 ++#define BTTV_BOARD_KODICOM_4400R_SL 0x85 ++#define BTTV_BOARD_ADLINK_RTV24 0x86 ++#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 ++#define BTTV_BOARD_ACORP_Y878F 0x88 ++#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2 0x89 ++#define BTTV_BOARD_PV_BT878P_2E 0x8a ++#define BTTV_BOARD_PV_M4900 0x8b ++#define BTTV_BOARD_OSPREY440 0x8c ++#define BTTV_BOARD_ASOUND_SKYEYE 0x8d ++#define BTTV_BOARD_SABRENT_TVFM 0x8e ++#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f ++#define BTTV_BOARD_MACHTV_MAGICTV 0x90 ++ ++/* more card-specific defines */ ++#define PT2254_L_CHANNEL 0x10 ++#define PT2254_R_CHANNEL 0x08 ++#define PT2254_DBS_IN_2 0x400 ++#define PT2254_DBS_IN_10 0x20000 ++#define WINVIEW_PT2254_CLK 0x40 ++#define WINVIEW_PT2254_DATA 0x20 ++#define WINVIEW_PT2254_STROBE 0x80 ++ ++/* digital_mode */ ++#define DIGITAL_MODE_VIDEO 1 ++#define DIGITAL_MODE_CAMERA 2 ++ ++struct bttv_core { ++ /* device structs */ ++ struct pci_dev *pci; ++ struct i2c_adapter i2c_adap; ++ struct list_head subs; /* struct bttv_sub_device */ ++ ++ /* device config */ ++ unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */ ++ unsigned int type; /* card type (pointer into tvcards[]) */ ++ char name[8]; /* dev name */ ++}; ++ ++struct bttv; ++ ++ ++struct bttv_ir { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ ++ /* Usual gpio signalling */ ++ ++ u32 mask_keycode; ++ u32 mask_keydown; ++ u32 mask_keyup; ++ u32 polling; ++ u32 last_gpio; ++ struct work_struct work; ++ struct timer_list timer; ++ ++ /* RC5 gpio */ ++ u32 rc5_gpio; ++ struct timer_list timer_end; /* timer_end for code completion */ ++ struct timer_list timer_keyup; /* timer_end for key release */ ++ u32 last_rc5; /* last good rc5 code */ ++ u32 last_bit; /* last raw bit seen */ ++ u32 code; /* raw code under construction */ ++ struct timeval base_time; /* time of last seen code */ ++ int active; /* building raw code */ ++}; ++ ++struct tvcard ++{ ++ char *name; ++ unsigned int video_inputs; ++ unsigned int audio_inputs; ++ unsigned int tuner; ++ unsigned int svhs; ++ unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO ++ u32 gpiomask; ++ u32 muxsel[16]; ++ u32 gpiomux[4]; /* Tuner, Radio, external, internal */ ++ u32 gpiomute; /* GPIO mute setting */ ++ u32 gpiomask2; /* GPIO MUX mask */ ++ ++ /* i2c audio flags */ ++ unsigned int no_msp34xx:1; ++ unsigned int no_tda9875:1; ++ unsigned int no_tda7432:1; ++ unsigned int needs_tvaudio:1; ++ unsigned int msp34xx_alt:1; ++ ++ /* flag: video pci function is unused */ ++ unsigned int no_video:1; ++ unsigned int has_dvb:1; ++ unsigned int has_remote:1; ++ unsigned int no_gpioirq:1; ++ ++ /* other settings */ ++ unsigned int pll; ++#define PLL_NONE 0 ++#define PLL_28 1 ++#define PLL_35 2 ++ ++ unsigned int tuner_type; ++ unsigned int tuner_addr; ++ unsigned int radio_addr; ++ ++ unsigned int has_radio; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ void (*muxsel_hook)(struct bttv *btv, unsigned int input); ++}; ++ ++extern struct tvcard bttv_tvcards[]; ++ ++/* identification / initialization of the card */ ++extern void bttv_idcard(struct bttv *btv); ++extern void bttv_init_card1(struct bttv *btv); ++extern void bttv_init_card2(struct bttv *btv); ++ ++/* card-specific funtions */ ++extern void tea5757_set_freq(struct bttv *btv, unsigned short freq); ++extern void bttv_tda9880_setnorm(struct bttv *btv, int norm); ++ ++/* extra tweaks for some chipsets */ ++extern void bttv_check_chipset(void); ++extern int bttv_handle_chipset(struct bttv *btv); ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-if.c */ ++ ++/* this obsolete -- please use the sysfs-based ++ interface below for new code */ ++ ++/* returns card type + card ID (for bt878-based ones) ++ for possible values see lines below beginning with #define BTTV_BOARD_UNKNOWN ++ returns negative value if error occurred ++*/ ++extern int bttv_get_cardinfo(unsigned int card, int *type, ++ unsigned int *cardid); ++extern struct pci_dev* bttv_get_pcidev(unsigned int card); ++ ++/* obsolete, use bttv_get_cardinfo instead */ ++extern int bttv_get_id(unsigned int card); ++ ++/* sets GPOE register (BT848_GPIO_OUT_EN) to new value: ++ data | (current_GPOE_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_gpio_enable(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* fills data with GPDATA register contents ++ returns negative value if error occurred ++*/ ++extern int bttv_read_gpio(unsigned int card, unsigned long *data); ++ ++/* sets GPDATA register to new value: ++ (data & mask) | (current_GPDATA_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_write_gpio(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* returns pointer to task queue which can be used as parameter to ++ interruptible_sleep_on ++ in interrupt handler if BT848_INT_GPINT bit is set - this queue is activated ++ (wake_up_interruptible) and following call to the function bttv_read_gpio ++ should return new value of GPDATA, ++ returns NULL value if error occurred or queue is not available ++ WARNING: because there is no buffer for GPIO data, one MUST ++ process data ASAP ++*/ ++extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); ++ ++/* call i2c clients ++*/ ++extern void bttv_i2c_call(unsigned int card, unsigned int cmd, void *arg); ++ ++ ++ ++/* ---------------------------------------------------------- */ ++/* sysfs/driver-moded based gpio access interface */ ++ ++ ++struct bttv_sub_device { ++ struct device dev; ++ struct bttv_core *core; ++ struct list_head list; ++}; ++#define to_bttv_sub_dev(x) container_of((x), struct bttv_sub_device, dev) ++ ++struct bttv_sub_driver { ++ struct device_driver drv; ++ char wanted[BUS_ID_SIZE]; ++ int (*probe)(struct bttv_sub_device *sub); ++ void (*remove)(struct bttv_sub_device *sub); ++}; ++#define to_bttv_sub_drv(x) container_of((x), struct bttv_sub_driver, drv) ++ ++int bttv_sub_register(struct bttv_sub_driver *drv, char *wanted); ++int bttv_sub_unregister(struct bttv_sub_driver *drv); ++ ++/* gpio access functions */ ++void bttv_gpio_inout(struct bttv_core *core, u32 mask, u32 outbits); ++u32 bttv_gpio_read(struct bttv_core *core); ++void bttv_gpio_write(struct bttv_core *core, u32 value); ++void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits); ++ ++#define gpio_inout(mask,bits) bttv_gpio_inout(&btv->c, mask, bits) ++#define gpio_read() bttv_gpio_read(&btv->c) ++#define gpio_write(value) bttv_gpio_write(&btv->c, value) ++#define gpio_bits(mask,bits) bttv_gpio_bits(&btv->c, mask, bits) ++ ++ ++/* ---------------------------------------------------------- */ ++/* i2c */ ++ ++extern void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg); ++extern int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for); ++extern int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1, ++ unsigned char b2, int both); ++extern void bttv_readee(struct bttv *btv, unsigned char *eedata, int addr); ++ ++extern int bttv_input_init(struct bttv *dev); ++extern void bttv_input_fini(struct bttv *dev); ++extern void bttv_input_irq(struct bttv *dev); ++ ++#endif /* _BTTV_H_ */ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/bttvp.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/bttvp.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.20/bttvp.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.20/bttvp.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,413 @@ ++/* ++ ++ bttv - Bt848 frame grabber driver ++ ++ bttv's *private* header file -- nobody other than bttv itself ++ should ever include this file. ++ ++ (c) 2000-2002 Gerd Knorr ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BTTVP_H_ ++#define _BTTVP_H_ ++ ++#include ++#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,16) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++#include "bt848.h" ++#include "bttv.h" ++#include "btcx-risc.h" ++ ++#ifdef __KERNEL__ ++ ++#define FORMAT_FLAGS_DITHER 0x01 ++#define FORMAT_FLAGS_PACKED 0x02 ++#define FORMAT_FLAGS_PLANAR 0x04 ++#define FORMAT_FLAGS_RAW 0x08 ++#define FORMAT_FLAGS_CrCb 0x10 ++ ++#define RISC_SLOT_O_VBI 4 ++#define RISC_SLOT_O_FIELD 6 ++#define RISC_SLOT_E_VBI 10 ++#define RISC_SLOT_E_FIELD 12 ++#define RISC_SLOT_LOOP 14 ++ ++#define RESOURCE_OVERLAY 1 ++#define RESOURCE_VIDEO 2 ++#define RESOURCE_VBI 4 ++ ++#define RAW_LINES 640 ++#define RAW_BPL 1024 ++ ++#define UNSET (-1U) ++ ++#define clamp(x, low, high) min (max (low, x), high) ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_tvnorm { ++ int v4l2_id; ++ char *name; ++ u32 Fsc; ++ u16 swidth, sheight; /* scaled standard width, height */ ++ u16 totalwidth; ++ u8 adelay, bdelay, iform; ++ u32 scaledtwidth; ++ u16 hdelayx1, hactivex1; ++ u16 vdelay; ++ u8 vbipack; ++ u16 vtotal; ++ int sram; ++ /* ITU-R frame line number of the first VBI line we can ++ capture, of the first and second field. */ ++ u16 vbistart[2]; ++}; ++extern const struct bttv_tvnorm bttv_tvnorms[]; ++ ++struct bttv_format { ++ char *name; ++ int palette; /* video4linux 1 */ ++ int fourcc; /* video4linux 2 */ ++ int btformat; /* BT848_COLOR_FMT_* */ ++ int btswap; /* BT848_COLOR_CTL_* */ ++ int depth; /* bit/pixel */ ++ int flags; ++ int hshift,vshift; /* for planar modes */ ++}; ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_geometry { ++ u8 vtc,crop,comb; ++ u16 width,hscale,hdelay; ++ u16 sheight,vscale,vdelay,vtotal; ++}; ++ ++struct bttv_buffer { ++ /* common v4l buffer stuff -- must be first */ ++ struct videobuf_buffer vb; ++ ++ /* bttv specific */ ++ const struct bttv_format *fmt; ++ int tvnorm; ++ int btformat; ++ int btswap; ++ struct bttv_geometry geo; ++ struct btcx_riscmem top; ++ struct btcx_riscmem bottom; ++}; ++ ++struct bttv_buffer_set { ++ struct bttv_buffer *top; /* top field buffer */ ++ struct bttv_buffer *bottom; /* bottom field buffer */ ++ unsigned int top_irq; ++ unsigned int frame_irq; ++}; ++ ++struct bttv_overlay { ++ int tvnorm; ++ struct v4l2_rect w; ++ enum v4l2_field field; ++ struct v4l2_clip *clips; ++ int nclips; ++ int setup_ok; ++}; ++ ++struct bttv_fh { ++ struct bttv *btv; ++ int resources; ++#ifdef VIDIOC_G_PRIORITY ++ enum v4l2_priority prio; ++#endif ++ enum v4l2_buf_type type; ++ ++ /* video capture */ ++ struct videobuf_queue cap; ++ const struct bttv_format *fmt; ++ int width; ++ int height; ++ ++ /* current settings */ ++ const struct bttv_format *ovfmt; ++ struct bttv_overlay ov; ++ ++ /* video overlay */ ++ struct videobuf_queue vbi; ++ int lines; ++}; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-risc.c */ ++ ++/* risc code generators - capture */ ++int bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc, ++ struct scatterlist *sglist, ++ unsigned int offset, unsigned int bpl, ++ unsigned int pitch, unsigned int lines); ++ ++/* control dma register + risc main loop */ ++void bttv_set_dma(struct bttv *btv, int override); ++int bttv_risc_init_main(struct bttv *btv); ++int bttv_risc_hook(struct bttv *btv, int slot, struct btcx_riscmem *risc, ++ int irqflags); ++ ++/* capture buffer handling */ ++int bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf); ++int bttv_buffer_activate_video(struct bttv *btv, ++ struct bttv_buffer_set *set); ++int bttv_buffer_activate_vbi(struct bttv *btv, ++ struct bttv_buffer *vbi); ++void bttv_dma_free(struct videobuf_queue *q, struct bttv *btv, ++ struct bttv_buffer *buf); ++ ++/* overlay handling */ ++int bttv_overlay_risc(struct bttv *btv, struct bttv_overlay *ov, ++ const struct bttv_format *fmt, ++ struct bttv_buffer *buf); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-vbi.c */ ++ ++void bttv_vbi_try_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_get_fmt(struct bttv_fh *fh, struct v4l2_format *f); ++void bttv_vbi_setlines(struct bttv_fh *fh, struct bttv *btv, int lines); ++ ++extern struct videobuf_queue_ops bttv_vbi_qops; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-gpio.c */ ++ ++ ++extern struct bus_type bttv_sub_bus_type; ++int bttv_sub_add_device(struct bttv_core *core, char *name); ++int bttv_sub_del_devices(struct bttv_core *core); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-driver.c */ ++ ++/* insmod options */ ++extern unsigned int bttv_verbose; ++extern unsigned int bttv_debug; ++extern unsigned int bttv_gpio; ++extern void bttv_gpio_tracking(struct bttv *btv, char *comment); ++extern int init_bttv_i2c(struct bttv *btv); ++extern int fini_bttv_i2c(struct bttv *btv); ++ ++#define bttv_printk if (bttv_verbose) printk ++#define dprintk if (bttv_debug >= 1) printk ++#define d2printk if (bttv_debug >= 2) printk ++ ++#define BTTV_MAX_FBUF 0x208000 ++#define VBIBUF_SIZE (2048*VBI_MAXLINES*2) ++#define BTTV_TIMEOUT (HZ/2) /* 0.5 seconds */ ++#define BTTV_FREE_IDLE (HZ) /* one second */ ++ ++ ++struct bttv_pll_info { ++ unsigned int pll_ifreq; /* PLL input frequency */ ++ unsigned int pll_ofreq; /* PLL output frequency */ ++ unsigned int pll_crystal; /* Crystal used for input */ ++ unsigned int pll_current; /* Currently programmed ofreq */ ++}; ++ ++/* for gpio-connected remote control */ ++struct bttv_input { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ u32 mask_keycode; ++ u32 mask_keydown; ++}; ++ ++struct bttv_suspend_state { ++ u32 gpio_enable; ++ u32 gpio_data; ++ int disabled; ++ int loop_irq; ++ struct bttv_buffer_set video; ++ struct bttv_buffer *vbi; ++}; ++ ++struct bttv { ++ struct bttv_core c; ++ ++ /* pci device config */ ++ unsigned short id; ++ unsigned char revision; ++ unsigned char __iomem *bt848_mmio; /* pointer to mmio */ ++ ++ /* card configuration info */ ++ unsigned int cardid; /* pci subsystem id (bt878 based ones) */ ++ unsigned int tuner_type; /* tuner chip type */ ++ unsigned int tda9887_conf; ++ unsigned int svhs; ++ struct bttv_pll_info pll; ++ int triton1; ++ int gpioirq; ++ int (*custom_irq)(struct bttv *btv); ++ ++ int use_i2c_hw; ++ ++ /* old gpio interface */ ++ wait_queue_head_t gpioq; ++ int shutdown; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ ++ /* new gpio interface */ ++ spinlock_t gpio_lock; ++ ++ /* i2c layer */ ++ struct i2c_algo_bit_data i2c_algo; ++ struct i2c_client i2c_client; ++ int i2c_state, i2c_rc; ++ int i2c_done; ++ wait_queue_head_t i2c_queue; ++ struct i2c_client *i2c_msp34xx_client; ++ struct i2c_client *i2c_tvaudio_client; ++ ++ /* video4linux (1) */ ++ struct video_device *video_dev; ++ struct video_device *radio_dev; ++ struct video_device *vbi_dev; ++ ++ /* infrared remote */ ++ int has_remote; ++ struct bttv_ir *remote; ++ ++ /* locking */ ++ spinlock_t s_lock; ++ struct mutex lock; ++ int resources; ++ struct mutex reslock; ++#ifdef VIDIOC_G_PRIORITY ++ struct v4l2_prio_state prio; ++#endif ++ ++ /* video state */ ++ unsigned int input; ++ unsigned int audio; ++ unsigned int mute; ++ unsigned long freq; ++ int tvnorm,hue,contrast,bright,saturation; ++ struct v4l2_framebuffer fbuf; ++ unsigned int field_count; ++ ++ /* various options */ ++ int opt_combfilter; ++ int opt_lumafilter; ++ int opt_automute; ++ int opt_chroma_agc; ++ int opt_adc_crush; ++ int opt_vcr_hack; ++ int opt_whitecrush_upper; ++ int opt_whitecrush_lower; ++ int opt_uv_ratio; ++ int opt_full_luma_range; ++ int opt_coring; ++ ++ /* radio data/state */ ++ int has_radio; ++ int radio_user; ++ ++ /* miro/pinnacle + Aimslab VHX ++ philips matchbox (tea5757 radio tuner) support */ ++ int has_matchbox; ++ int mbox_we; ++ int mbox_data; ++ int mbox_clk; ++ int mbox_most; ++ int mbox_mask; ++ ++ /* ISA stuff (Terratec Active Radio Upgrade) */ ++ int mbox_ior; ++ int mbox_iow; ++ int mbox_csel; ++ ++ /* risc memory management data ++ - must acquire s_lock before changing these ++ - only the irq handler is supported to touch top + bottom + vcurr */ ++ struct btcx_riscmem main; ++ struct bttv_buffer *screen; /* overlay */ ++ struct list_head capture; /* video capture queue */ ++ struct list_head vcapture; /* vbi capture queue */ ++ struct bttv_buffer_set curr; /* active buffers */ ++ struct bttv_buffer *cvbi; /* active vbi buffer */ ++ int loop_irq; ++ int new_input; ++ ++ unsigned long cap_ctl; ++ unsigned long dma_on; ++ struct timer_list timeout; ++ struct bttv_suspend_state state; ++ ++ /* stats */ ++ unsigned int errors; ++ unsigned int framedrop; ++ unsigned int irq_total; ++ unsigned int irq_me; ++ ++ unsigned int users; ++ struct bttv_fh init; ++}; ++ ++/* our devices */ ++#define BTTV_MAX 16 ++extern unsigned int bttv_num; ++extern struct bttv bttvs[BTTV_MAX]; ++ ++/* private ioctls */ ++#define BTTV_VERSION _IOR('v' , BASE_VIDIOCPRIVATE+6, int) ++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int) ++ ++#endif ++ ++#define btwrite(dat,adr) writel((dat), btv->bt848_mmio+(adr)) ++#define btread(adr) readl(btv->bt848_mmio+(adr)) ++ ++#define btand(dat,adr) btwrite((dat) & btread(adr), adr) ++#define btor(dat,adr) btwrite((dat) | btread(adr), adr) ++#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) ++ ++#endif /* _BTTVP_H_ */ ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/bt848.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/bt848.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/bt848.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/bt848.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,366 @@ ++/* ++ bt848.h - Bt848 register offsets ++ ++ Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BT848_H_ ++#define _BT848_H_ ++ ++#ifndef PCI_VENDOR_ID_BROOKTREE ++#define PCI_VENDOR_ID_BROOKTREE 0x109e ++#endif ++#ifndef PCI_DEVICE_ID_BT848 ++#define PCI_DEVICE_ID_BT848 0x350 ++#endif ++#ifndef PCI_DEVICE_ID_BT849 ++#define PCI_DEVICE_ID_BT849 0x351 ++#endif ++#ifndef PCI_DEVICE_ID_BT878 ++#define PCI_DEVICE_ID_BT878 0x36e ++#endif ++#ifndef PCI_DEVICE_ID_BT879 ++#define PCI_DEVICE_ID_BT879 0x36f ++#endif ++ ++ ++/* Brooktree 848 registers */ ++ ++#define BT848_DSTATUS 0x000 ++#define BT848_DSTATUS_PRES (1<<7) ++#define BT848_DSTATUS_HLOC (1<<6) ++#define BT848_DSTATUS_FIELD (1<<5) ++#define BT848_DSTATUS_NUML (1<<4) ++#define BT848_DSTATUS_CSEL (1<<3) ++#define BT848_DSTATUS_PLOCK (1<<2) ++#define BT848_DSTATUS_LOF (1<<1) ++#define BT848_DSTATUS_COF (1<<0) ++ ++#define BT848_IFORM 0x004 ++#define BT848_IFORM_HACTIVE (1<<7) ++#define BT848_IFORM_MUXSEL (3<<5) ++#define BT848_IFORM_MUX0 (2<<5) ++#define BT848_IFORM_MUX1 (3<<5) ++#define BT848_IFORM_MUX2 (1<<5) ++#define BT848_IFORM_XTSEL (3<<3) ++#define BT848_IFORM_XT0 (1<<3) ++#define BT848_IFORM_XT1 (2<<3) ++#define BT848_IFORM_XTAUTO (3<<3) ++#define BT848_IFORM_XTBOTH (3<<3) ++#define BT848_IFORM_NTSC 1 ++#define BT848_IFORM_NTSC_J 2 ++#define BT848_IFORM_PAL_BDGHI 3 ++#define BT848_IFORM_PAL_M 4 ++#define BT848_IFORM_PAL_N 5 ++#define BT848_IFORM_SECAM 6 ++#define BT848_IFORM_PAL_NC 7 ++#define BT848_IFORM_AUTO 0 ++#define BT848_IFORM_NORM 7 ++ ++#define BT848_TDEC 0x008 ++#define BT848_TDEC_DEC_FIELD (1<<7) ++#define BT848_TDEC_FLDALIGN (1<<6) ++#define BT848_TDEC_DEC_RAT (0x1f) ++ ++#define BT848_E_CROP 0x00C ++#define BT848_O_CROP 0x08C ++ ++#define BT848_E_VDELAY_LO 0x010 ++#define BT848_O_VDELAY_LO 0x090 ++ ++#define BT848_E_VACTIVE_LO 0x014 ++#define BT848_O_VACTIVE_LO 0x094 ++ ++#define BT848_E_HDELAY_LO 0x018 ++#define BT848_O_HDELAY_LO 0x098 ++ ++#define BT848_E_HACTIVE_LO 0x01C ++#define BT848_O_HACTIVE_LO 0x09C ++ ++#define BT848_E_HSCALE_HI 0x020 ++#define BT848_O_HSCALE_HI 0x0A0 ++ ++#define BT848_E_HSCALE_LO 0x024 ++#define BT848_O_HSCALE_LO 0x0A4 ++ ++#define BT848_BRIGHT 0x028 ++ ++#define BT848_E_CONTROL 0x02C ++#define BT848_O_CONTROL 0x0AC ++#define BT848_CONTROL_LNOTCH (1<<7) ++#define BT848_CONTROL_COMP (1<<6) ++#define BT848_CONTROL_LDEC (1<<5) ++#define BT848_CONTROL_CBSENSE (1<<4) ++#define BT848_CONTROL_CON_MSB (1<<2) ++#define BT848_CONTROL_SAT_U_MSB (1<<1) ++#define BT848_CONTROL_SAT_V_MSB (1<<0) ++ ++#define BT848_CONTRAST_LO 0x030 ++#define BT848_SAT_U_LO 0x034 ++#define BT848_SAT_V_LO 0x038 ++#define BT848_HUE 0x03C ++ ++#define BT848_E_SCLOOP 0x040 ++#define BT848_O_SCLOOP 0x0C0 ++#define BT848_SCLOOP_CAGC (1<<6) ++#define BT848_SCLOOP_CKILL (1<<5) ++#define BT848_SCLOOP_HFILT_AUTO (0<<3) ++#define BT848_SCLOOP_HFILT_CIF (1<<3) ++#define BT848_SCLOOP_HFILT_QCIF (2<<3) ++#define BT848_SCLOOP_HFILT_ICON (3<<3) ++ ++#define BT848_SCLOOP_PEAK (1<<7) ++#define BT848_SCLOOP_HFILT_MINP (1<<3) ++#define BT848_SCLOOP_HFILT_MEDP (2<<3) ++#define BT848_SCLOOP_HFILT_MAXP (3<<3) ++ ++ ++#define BT848_OFORM 0x048 ++#define BT848_OFORM_RANGE (1<<7) ++#define BT848_OFORM_CORE0 (0<<5) ++#define BT848_OFORM_CORE8 (1<<5) ++#define BT848_OFORM_CORE16 (2<<5) ++#define BT848_OFORM_CORE32 (3<<5) ++ ++#define BT848_E_VSCALE_HI 0x04C ++#define BT848_O_VSCALE_HI 0x0CC ++#define BT848_VSCALE_YCOMB (1<<7) ++#define BT848_VSCALE_COMB (1<<6) ++#define BT848_VSCALE_INT (1<<5) ++#define BT848_VSCALE_HI 15 ++ ++#define BT848_E_VSCALE_LO 0x050 ++#define BT848_O_VSCALE_LO 0x0D0 ++#define BT848_TEST 0x054 ++#define BT848_ADELAY 0x060 ++#define BT848_BDELAY 0x064 ++ ++#define BT848_ADC 0x068 ++#define BT848_ADC_RESERVED (2<<6) ++#define BT848_ADC_SYNC_T (1<<5) ++#define BT848_ADC_AGC_EN (1<<4) ++#define BT848_ADC_CLK_SLEEP (1<<3) ++#define BT848_ADC_Y_SLEEP (1<<2) ++#define BT848_ADC_C_SLEEP (1<<1) ++#define BT848_ADC_CRUSH (1<<0) ++ ++#define BT848_WC_UP 0x044 ++#define BT848_WC_DOWN 0x078 ++ ++#define BT848_E_VTC 0x06C ++#define BT848_O_VTC 0x0EC ++#define BT848_VTC_HSFMT (1<<7) ++#define BT848_VTC_VFILT_2TAP 0 ++#define BT848_VTC_VFILT_3TAP 1 ++#define BT848_VTC_VFILT_4TAP 2 ++#define BT848_VTC_VFILT_5TAP 3 ++ ++#define BT848_SRESET 0x07C ++ ++#define BT848_COLOR_FMT 0x0D4 ++#define BT848_COLOR_FMT_O_RGB32 (0<<4) ++#define BT848_COLOR_FMT_O_RGB24 (1<<4) ++#define BT848_COLOR_FMT_O_RGB16 (2<<4) ++#define BT848_COLOR_FMT_O_RGB15 (3<<4) ++#define BT848_COLOR_FMT_O_YUY2 (4<<4) ++#define BT848_COLOR_FMT_O_BtYUV (5<<4) ++#define BT848_COLOR_FMT_O_Y8 (6<<4) ++#define BT848_COLOR_FMT_O_RGB8 (7<<4) ++#define BT848_COLOR_FMT_O_YCrCb422 (8<<4) ++#define BT848_COLOR_FMT_O_YCrCb411 (9<<4) ++#define BT848_COLOR_FMT_O_RAW (14<<4) ++#define BT848_COLOR_FMT_E_RGB32 0 ++#define BT848_COLOR_FMT_E_RGB24 1 ++#define BT848_COLOR_FMT_E_RGB16 2 ++#define BT848_COLOR_FMT_E_RGB15 3 ++#define BT848_COLOR_FMT_E_YUY2 4 ++#define BT848_COLOR_FMT_E_BtYUV 5 ++#define BT848_COLOR_FMT_E_Y8 6 ++#define BT848_COLOR_FMT_E_RGB8 7 ++#define BT848_COLOR_FMT_E_YCrCb422 8 ++#define BT848_COLOR_FMT_E_YCrCb411 9 ++#define BT848_COLOR_FMT_E_RAW 14 ++ ++#define BT848_COLOR_FMT_RGB32 0x00 ++#define BT848_COLOR_FMT_RGB24 0x11 ++#define BT848_COLOR_FMT_RGB16 0x22 ++#define BT848_COLOR_FMT_RGB15 0x33 ++#define BT848_COLOR_FMT_YUY2 0x44 ++#define BT848_COLOR_FMT_BtYUV 0x55 ++#define BT848_COLOR_FMT_Y8 0x66 ++#define BT848_COLOR_FMT_RGB8 0x77 ++#define BT848_COLOR_FMT_YCrCb422 0x88 ++#define BT848_COLOR_FMT_YCrCb411 0x99 ++#define BT848_COLOR_FMT_RAW 0xee ++ ++#define BT848_VTOTAL_LO 0xB0 ++#define BT848_VTOTAL_HI 0xB4 ++ ++#define BT848_COLOR_CTL 0x0D8 ++#define BT848_COLOR_CTL_EXT_FRMRATE (1<<7) ++#define BT848_COLOR_CTL_COLOR_BARS (1<<6) ++#define BT848_COLOR_CTL_RGB_DED (1<<5) ++#define BT848_COLOR_CTL_GAMMA (1<<4) ++#define BT848_COLOR_CTL_WSWAP_ODD (1<<3) ++#define BT848_COLOR_CTL_WSWAP_EVEN (1<<2) ++#define BT848_COLOR_CTL_BSWAP_ODD (1<<1) ++#define BT848_COLOR_CTL_BSWAP_EVEN (1<<0) ++ ++#define BT848_CAP_CTL 0x0DC ++#define BT848_CAP_CTL_DITH_FRAME (1<<4) ++#define BT848_CAP_CTL_CAPTURE_VBI_ODD (1<<3) ++#define BT848_CAP_CTL_CAPTURE_VBI_EVEN (1<<2) ++#define BT848_CAP_CTL_CAPTURE_ODD (1<<1) ++#define BT848_CAP_CTL_CAPTURE_EVEN (1<<0) ++ ++#define BT848_VBI_PACK_SIZE 0x0E0 ++ ++#define BT848_VBI_PACK_DEL 0x0E4 ++#define BT848_VBI_PACK_DEL_VBI_HDELAY 0xfc ++#define BT848_VBI_PACK_DEL_EXT_FRAME 2 ++#define BT848_VBI_PACK_DEL_VBI_PKT_HI 1 ++ ++ ++#define BT848_INT_STAT 0x100 ++#define BT848_INT_MASK 0x104 ++ ++#define BT848_INT_ETBF (1<<23) ++ ++#define BT848_INT_RISCS (0xf<<28) ++#define BT848_INT_RISC_EN (1<<27) ++#define BT848_INT_RACK (1<<25) ++#define BT848_INT_FIELD (1<<24) ++#define BT848_INT_SCERR (1<<19) ++#define BT848_INT_OCERR (1<<18) ++#define BT848_INT_PABORT (1<<17) ++#define BT848_INT_RIPERR (1<<16) ++#define BT848_INT_PPERR (1<<15) ++#define BT848_INT_FDSR (1<<14) ++#define BT848_INT_FTRGT (1<<13) ++#define BT848_INT_FBUS (1<<12) ++#define BT848_INT_RISCI (1<<11) ++#define BT848_INT_GPINT (1<<9) ++#define BT848_INT_I2CDONE (1<<8) ++#define BT848_INT_VPRES (1<<5) ++#define BT848_INT_HLOCK (1<<4) ++#define BT848_INT_OFLOW (1<<3) ++#define BT848_INT_HSYNC (1<<2) ++#define BT848_INT_VSYNC (1<<1) ++#define BT848_INT_FMTCHG (1<<0) ++ ++ ++#define BT848_GPIO_DMA_CTL 0x10C ++#define BT848_GPIO_DMA_CTL_GPINTC (1<<15) ++#define BT848_GPIO_DMA_CTL_GPINTI (1<<14) ++#define BT848_GPIO_DMA_CTL_GPWEC (1<<13) ++#define BT848_GPIO_DMA_CTL_GPIOMODE (3<<11) ++#define BT848_GPIO_DMA_CTL_GPCLKMODE (1<<10) ++#define BT848_GPIO_DMA_CTL_PLTP23_4 (0<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_8 (1<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_16 (2<<6) ++#define BT848_GPIO_DMA_CTL_PLTP23_32 (3<<6) ++#define BT848_GPIO_DMA_CTL_PLTP1_4 (0<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_8 (1<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_16 (2<<4) ++#define BT848_GPIO_DMA_CTL_PLTP1_32 (3<<4) ++#define BT848_GPIO_DMA_CTL_PKTP_4 (0<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_8 (1<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_16 (2<<2) ++#define BT848_GPIO_DMA_CTL_PKTP_32 (3<<2) ++#define BT848_GPIO_DMA_CTL_RISC_ENABLE (1<<1) ++#define BT848_GPIO_DMA_CTL_FIFO_ENABLE (1<<0) ++ ++#define BT848_I2C 0x110 ++#define BT878_I2C_MODE (1<<7) ++#define BT878_I2C_RATE (1<<6) ++#define BT878_I2C_NOSTOP (1<<5) ++#define BT878_I2C_NOSTART (1<<4) ++#define BT848_I2C_DIV (0xf<<4) ++#define BT848_I2C_SYNC (1<<3) ++#define BT848_I2C_W3B (1<<2) ++#define BT848_I2C_SCL (1<<1) ++#define BT848_I2C_SDA (1<<0) ++ ++#define BT848_RISC_STRT_ADD 0x114 ++#define BT848_GPIO_OUT_EN 0x118 ++#define BT848_GPIO_REG_INP 0x11C ++#define BT848_RISC_COUNT 0x120 ++#define BT848_GPIO_DATA 0x200 ++ ++ ++/* Bt848 RISC commands */ ++ ++/* only for the SYNC RISC command */ ++#define BT848_FIFO_STATUS_FM1 0x06 ++#define BT848_FIFO_STATUS_FM3 0x0e ++#define BT848_FIFO_STATUS_SOL 0x02 ++#define BT848_FIFO_STATUS_EOL4 0x01 ++#define BT848_FIFO_STATUS_EOL3 0x0d ++#define BT848_FIFO_STATUS_EOL2 0x09 ++#define BT848_FIFO_STATUS_EOL1 0x05 ++#define BT848_FIFO_STATUS_VRE 0x04 ++#define BT848_FIFO_STATUS_VRO 0x0c ++#define BT848_FIFO_STATUS_PXV 0x00 ++ ++#define BT848_RISC_RESYNC (1<<15) ++ ++/* WRITE and SKIP */ ++/* disable which bytes of each DWORD */ ++#define BT848_RISC_BYTE0 (1U<<12) ++#define BT848_RISC_BYTE1 (1U<<13) ++#define BT848_RISC_BYTE2 (1U<<14) ++#define BT848_RISC_BYTE3 (1U<<15) ++#define BT848_RISC_BYTE_ALL (0x0fU<<12) ++#define BT848_RISC_BYTE_NONE 0 ++/* cause RISCI */ ++#define BT848_RISC_IRQ (1U<<24) ++/* RISC command is last one in this line */ ++#define BT848_RISC_EOL (1U<<26) ++/* RISC command is first one in this line */ ++#define BT848_RISC_SOL (1U<<27) ++ ++#define BT848_RISC_WRITE (0x01U<<28) ++#define BT848_RISC_SKIP (0x02U<<28) ++#define BT848_RISC_WRITEC (0x05U<<28) ++#define BT848_RISC_JUMP (0x07U<<28) ++#define BT848_RISC_SYNC (0x08U<<28) ++ ++#define BT848_RISC_WRITE123 (0x09U<<28) ++#define BT848_RISC_SKIP123 (0x0aU<<28) ++#define BT848_RISC_WRITE1S23 (0x0bU<<28) ++ ++ ++/* Bt848A and higher only !! */ ++#define BT848_TGLB 0x080 ++#define BT848_TGCTRL 0x084 ++#define BT848_FCAP 0x0E8 ++#define BT848_PLL_F_LO 0x0F0 ++#define BT848_PLL_F_HI 0x0F4 ++ ++#define BT848_PLL_XCI 0x0F8 ++#define BT848_PLL_X (1<<7) ++#define BT848_PLL_C (1<<6) ++ ++#define BT848_DVSIF 0x0FC ++ ++/* Bt878 register */ ++ ++#define BT878_DEVCTRL 0x40 ++#define BT878_EN_TBFX 0x02 ++#define BT878_EN_VSFX 0x04 ++ ++#endif +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/btcx-risc.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/btcx-risc.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/btcx-risc.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/btcx-risc.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,34 @@ ++/* ++ */ ++struct btcx_riscmem { ++ unsigned int size; ++ u32 *cpu; ++ u32 *jmp; ++ dma_addr_t dma; ++}; ++ ++struct btcx_skiplist { ++ int start; ++ int end; ++}; ++ ++int btcx_riscmem_alloc(struct pci_dev *pci, ++ struct btcx_riscmem *risc, ++ unsigned int size); ++void btcx_riscmem_free(struct pci_dev *pci, ++ struct btcx_riscmem *risc); ++ ++int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win, ++ struct v4l2_clip *clips, unsigned int n); ++int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, ++ unsigned int n, int mask); ++void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); ++void btcx_calc_skips(int line, int width, unsigned int *maxy, ++ struct btcx_skiplist *skips, unsigned int *nskips, ++ const struct v4l2_clip *clips, unsigned int nclips); ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/bttv.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/bttv.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/bttv.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/bttv.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,341 @@ ++/* ++ * ++ * bttv - Bt848 frame grabber driver ++ * ++ * card ID's and external interfaces of the bttv driver ++ * basically stuff needed by other drivers (i2c, lirc, ...) ++ * and is supported not to change much over time. ++ * ++ * Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) ++ * (c) 1999,2000 Gerd Knorr ++ * ++ */ ++ ++#ifndef _BTTV_H_ ++#define _BTTV_H_ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-cards.c */ ++ ++#define BTTV_BOARD_UNKNOWN 0x00 ++#define BTTV_BOARD_MIRO 0x01 ++#define BTTV_BOARD_HAUPPAUGE 0x02 ++#define BTTV_BOARD_STB 0x03 ++#define BTTV_BOARD_INTEL 0x04 ++#define BTTV_BOARD_DIAMOND 0x05 ++#define BTTV_BOARD_AVERMEDIA 0x06 ++#define BTTV_BOARD_MATRIX_VISION 0x07 ++#define BTTV_BOARD_FLYVIDEO 0x08 ++#define BTTV_BOARD_TURBOTV 0x09 ++#define BTTV_BOARD_HAUPPAUGE878 0x0a ++#define BTTV_BOARD_MIROPRO 0x0b ++#define BTTV_BOARD_ADSTECH_TV 0x0c ++#define BTTV_BOARD_AVERMEDIA98 0x0d ++#define BTTV_BOARD_VHX 0x0e ++#define BTTV_BOARD_ZOLTRIX 0x0f ++#define BTTV_BOARD_PIXVIEWPLAYTV 0x10 ++#define BTTV_BOARD_WINVIEW_601 0x11 ++#define BTTV_BOARD_AVEC_INTERCAP 0x12 ++#define BTTV_BOARD_LIFE_FLYKIT 0x13 ++#define BTTV_BOARD_CEI_RAFFLES 0x14 ++#define BTTV_BOARD_CONFERENCETV 0x15 ++#define BTTV_BOARD_PHOEBE_TVMAS 0x16 ++#define BTTV_BOARD_MODTEC_205 0x17 ++#define BTTV_BOARD_MAGICTVIEW061 0x18 ++#define BTTV_BOARD_VOBIS_BOOSTAR 0x19 ++#define BTTV_BOARD_HAUPPAUG_WCAM 0x1a ++#define BTTV_BOARD_MAXI 0x1b ++#define BTTV_BOARD_TERRATV 0x1c ++#define BTTV_BOARD_PXC200 0x1d ++#define BTTV_BOARD_FLYVIDEO_98 0x1e ++#define BTTV_BOARD_IPROTV 0x1f ++#define BTTV_BOARD_INTEL_C_S_PCI 0x20 ++#define BTTV_BOARD_TERRATVALUE 0x21 ++#define BTTV_BOARD_WINFAST2000 0x22 ++#define BTTV_BOARD_CHRONOS_VS2 0x23 ++#define BTTV_BOARD_TYPHOON_TVIEW 0x24 ++#define BTTV_BOARD_PXELVWPLTVPRO 0x25 ++#define BTTV_BOARD_MAGICTVIEW063 0x26 ++#define BTTV_BOARD_PINNACLE 0x27 ++#define BTTV_BOARD_STB2 0x28 ++#define BTTV_BOARD_AVPHONE98 0x29 ++#define BTTV_BOARD_PV951 0x2a ++#define BTTV_BOARD_ONAIR_TV 0x2b ++#define BTTV_BOARD_SIGMA_TVII_FM 0x2c ++#define BTTV_BOARD_MATRIX_VISION2 0x2d ++#define BTTV_BOARD_ZOLTRIX_GENIE 0x2e ++#define BTTV_BOARD_TERRATVRADIO 0x2f ++#define BTTV_BOARD_DYNALINK 0x30 ++#define BTTV_BOARD_GVBCTV3PCI 0x31 ++#define BTTV_BOARD_PXELVWPLTVPAK 0x32 ++#define BTTV_BOARD_EAGLE 0x33 ++#define BTTV_BOARD_PINNACLEPRO 0x34 ++#define BTTV_BOARD_TVIEW_RDS_FM 0x35 ++#define BTTV_BOARD_LIFETEC_9415 0x36 ++#define BTTV_BOARD_BESTBUY_EASYTV 0x37 ++#define BTTV_BOARD_FLYVIDEO_98FM 0x38 ++#define BTTV_BOARD_GRANDTEC 0x39 ++#define BTTV_BOARD_ASKEY_CPH060 0x3a ++#define BTTV_BOARD_ASKEY_CPH03X 0x3b ++#define BTTV_BOARD_MM100PCTV 0x3c ++#define BTTV_BOARD_GMV1 0x3d ++#define BTTV_BOARD_BESTBUY_EASYTV2 0x3e ++#define BTTV_BOARD_ATI_TVWONDER 0x3f ++#define BTTV_BOARD_ATI_TVWONDERVE 0x40 ++#define BTTV_BOARD_FLYVIDEO2000 0x41 ++#define BTTV_BOARD_TERRATVALUER 0x42 ++#define BTTV_BOARD_GVBCTV4PCI 0x43 ++#define BTTV_BOARD_VOODOOTV_FM 0x44 ++#define BTTV_BOARD_AIMMS 0x45 ++#define BTTV_BOARD_PV_BT878P_PLUS 0x46 ++#define BTTV_BOARD_FLYVIDEO98EZ 0x47 ++#define BTTV_BOARD_PV_BT878P_9B 0x48 ++#define BTTV_BOARD_SENSORAY311 0x49 ++#define BTTV_BOARD_RV605 0x4a ++#define BTTV_BOARD_POWERCLR_MTV878 0x4b ++#define BTTV_BOARD_WINDVR 0x4c ++#define BTTV_BOARD_GRANDTEC_MULTI 0x4d ++#define BTTV_BOARD_KWORLD 0x4e ++#define BTTV_BOARD_DSP_TCVIDEO 0x4f ++#define BTTV_BOARD_HAUPPAUGEPVR 0x50 ++#define BTTV_BOARD_GVBCTV5PCI 0x51 ++#define BTTV_BOARD_OSPREY1x0 0x52 ++#define BTTV_BOARD_OSPREY1x0_848 0x53 ++#define BTTV_BOARD_OSPREY101_848 0x54 ++#define BTTV_BOARD_OSPREY1x1 0x55 ++#define BTTV_BOARD_OSPREY1x1_SVID 0x56 ++#define BTTV_BOARD_OSPREY2xx 0x57 ++#define BTTV_BOARD_OSPREY2x0_SVID 0x58 ++#define BTTV_BOARD_OSPREY2x0 0x59 ++#define BTTV_BOARD_OSPREY500 0x5a ++#define BTTV_BOARD_OSPREY540 0x5b ++#define BTTV_BOARD_OSPREY2000 0x5c ++#define BTTV_BOARD_IDS_EAGLE 0x5d ++#define BTTV_BOARD_PINNACLESAT 0x5e ++#define BTTV_BOARD_FORMAC_PROTV 0x5f ++#define BTTV_BOARD_MACHTV 0x60 ++#define BTTV_BOARD_EURESYS_PICOLO 0x61 ++#define BTTV_BOARD_PV150 0x62 ++#define BTTV_BOARD_AD_TVK503 0x63 ++#define BTTV_BOARD_HERCULES_SM_TV 0x64 ++#define BTTV_BOARD_PACETV 0x65 ++#define BTTV_BOARD_IVC200 0x66 ++#define BTTV_BOARD_XGUARD 0x67 ++#define BTTV_BOARD_NEBULA_DIGITV 0x68 ++#define BTTV_BOARD_PV143 0x69 ++#define BTTV_BOARD_VD009X1_MINIDIN 0x6a ++#define BTTV_BOARD_VD009X1_COMBI 0x6b ++#define BTTV_BOARD_VD009_MINIDIN 0x6c ++#define BTTV_BOARD_VD009_COMBI 0x6d ++#define BTTV_BOARD_IVC100 0x6e ++#define BTTV_BOARD_IVC120 0x6f ++#define BTTV_BOARD_PC_HDTV 0x70 ++#define BTTV_BOARD_TWINHAN_DST 0x71 ++#define BTTV_BOARD_WINFASTVC100 0x72 ++#define BTTV_BOARD_TEV560 0x73 ++#define BTTV_BOARD_SIMUS_GVC1100 0x74 ++#define BTTV_BOARD_NGSTV_PLUS 0x75 ++#define BTTV_BOARD_LMLBT4 0x76 ++#define BTTV_BOARD_TEKRAM_M205 0x77 ++#define BTTV_BOARD_CONTVFMI 0x78 ++#define BTTV_BOARD_PICOLO_TETRA_CHIP 0x79 ++#define BTTV_BOARD_SPIRIT_TV 0x7a ++#define BTTV_BOARD_AVDVBT_771 0x7b ++#define BTTV_BOARD_AVDVBT_761 0x7c ++#define BTTV_BOARD_MATRIX_VISIONSQ 0x7d ++#define BTTV_BOARD_MATRIX_VISIONSLC 0x7e ++#define BTTV_BOARD_APAC_VIEWCOMP 0x7f ++#define BTTV_BOARD_DVICO_DVBT_LITE 0x80 ++#define BTTV_BOARD_VGEAR_MYVCD 0x81 ++#define BTTV_BOARD_SUPER_TV 0x82 ++#define BTTV_BOARD_TIBET_CS16 0x83 ++#define BTTV_BOARD_KODICOM_4400R 0x84 ++#define BTTV_BOARD_KODICOM_4400R_SL 0x85 ++#define BTTV_BOARD_ADLINK_RTV24 0x86 ++#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87 ++#define BTTV_BOARD_ACORP_Y878F 0x88 ++#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2 0x89 ++#define BTTV_BOARD_PV_BT878P_2E 0x8a ++#define BTTV_BOARD_PV_M4900 0x8b ++#define BTTV_BOARD_OSPREY440 0x8c ++#define BTTV_BOARD_ASOUND_SKYEYE 0x8d ++#define BTTV_BOARD_SABRENT_TVFM 0x8e ++#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB 0x8f ++#define BTTV_BOARD_MACHTV_MAGICTV 0x90 ++#define BTTV_BOARD_SSAI_SECURITY 0x91 ++#define BTTV_BOARD_SSAI_ULTRASOUND 0x92 ++ ++/* more card-specific defines */ ++#define PT2254_L_CHANNEL 0x10 ++#define PT2254_R_CHANNEL 0x08 ++#define PT2254_DBS_IN_2 0x400 ++#define PT2254_DBS_IN_10 0x20000 ++#define WINVIEW_PT2254_CLK 0x40 ++#define WINVIEW_PT2254_DATA 0x20 ++#define WINVIEW_PT2254_STROBE 0x80 ++ ++/* digital_mode */ ++#define DIGITAL_MODE_VIDEO 1 ++#define DIGITAL_MODE_CAMERA 2 ++ ++struct bttv_core { ++ /* device structs */ ++ struct pci_dev *pci; ++ struct i2c_adapter i2c_adap; ++ struct list_head subs; /* struct bttv_sub_device */ ++ ++ /* device config */ ++ unsigned int nr; /* dev nr (for printk("bttv%d: ..."); */ ++ unsigned int type; /* card type (pointer into tvcards[]) */ ++ char name[8]; /* dev name */ ++}; ++ ++struct bttv; ++ ++ ++struct tvcard ++{ ++ char *name; ++ unsigned int video_inputs; ++ unsigned int audio_inputs; ++ unsigned int tuner; ++ unsigned int svhs; ++ unsigned int digital_mode; // DIGITAL_MODE_CAMERA or DIGITAL_MODE_VIDEO ++ u32 gpiomask; ++ u32 muxsel[16]; ++ u32 gpiomux[4]; /* Tuner, Radio, external, internal */ ++ u32 gpiomute; /* GPIO mute setting */ ++ u32 gpiomask2; /* GPIO MUX mask */ ++ ++ /* i2c audio flags */ ++ unsigned int no_msp34xx:1; ++ unsigned int no_tda9875:1; ++ unsigned int no_tda7432:1; ++ unsigned int needs_tvaudio:1; ++ unsigned int msp34xx_alt:1; ++ ++ /* flag: video pci function is unused */ ++ unsigned int no_video:1; ++ unsigned int has_dvb:1; ++ unsigned int has_remote:1; ++ unsigned int no_gpioirq:1; ++ ++ /* other settings */ ++ unsigned int pll; ++#define PLL_NONE 0 ++#define PLL_28 1 ++#define PLL_35 2 ++ ++ unsigned int tuner_type; ++ unsigned int tuner_addr; ++ unsigned int radio_addr; ++ ++ unsigned int has_radio; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ void (*muxsel_hook)(struct bttv *btv, unsigned int input); ++}; ++ ++extern struct tvcard bttv_tvcards[]; ++ ++/* identification / initialization of the card */ ++extern void bttv_idcard(struct bttv *btv); ++extern void bttv_init_card1(struct bttv *btv); ++extern void bttv_init_card2(struct bttv *btv); ++ ++/* card-specific funtions */ ++extern void tea5757_set_freq(struct bttv *btv, unsigned short freq); ++extern void bttv_tda9880_setnorm(struct bttv *btv, int norm); ++ ++/* extra tweaks for some chipsets */ ++extern void bttv_check_chipset(void); ++extern int bttv_handle_chipset(struct bttv *btv); ++ ++/* ---------------------------------------------------------- */ ++/* exported by bttv-if.c */ ++ ++/* this obsolete -- please use the sysfs-based ++ interface below for new code */ ++ ++extern struct pci_dev* bttv_get_pcidev(unsigned int card); ++ ++/* sets GPOE register (BT848_GPIO_OUT_EN) to new value: ++ data | (current_GPOE_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_gpio_enable(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++/* fills data with GPDATA register contents ++ returns negative value if error occurred ++*/ ++extern int bttv_read_gpio(unsigned int card, unsigned long *data); ++ ++/* sets GPDATA register to new value: ++ (data & mask) | (current_GPDATA_value & ~mask) ++ returns negative value if error occurred ++*/ ++extern int bttv_write_gpio(unsigned int card, ++ unsigned long mask, unsigned long data); ++ ++ ++ ++ ++/* ---------------------------------------------------------- */ ++/* sysfs/driver-moded based gpio access interface */ ++ ++ ++struct bttv_sub_device { ++ struct device dev; ++ struct bttv_core *core; ++ struct list_head list; ++}; ++#define to_bttv_sub_dev(x) container_of((x), struct bttv_sub_device, dev) ++ ++struct bttv_sub_driver { ++ struct device_driver drv; ++ char wanted[BUS_ID_SIZE]; ++ int (*probe)(struct bttv_sub_device *sub); ++ void (*remove)(struct bttv_sub_device *sub); ++}; ++#define to_bttv_sub_drv(x) container_of((x), struct bttv_sub_driver, drv) ++ ++int bttv_sub_register(struct bttv_sub_driver *drv, char *wanted); ++int bttv_sub_unregister(struct bttv_sub_driver *drv); ++ ++/* gpio access functions */ ++void bttv_gpio_inout(struct bttv_core *core, u32 mask, u32 outbits); ++u32 bttv_gpio_read(struct bttv_core *core); ++void bttv_gpio_write(struct bttv_core *core, u32 value); ++void bttv_gpio_bits(struct bttv_core *core, u32 mask, u32 bits); ++ ++#define gpio_inout(mask,bits) bttv_gpio_inout(&btv->c, mask, bits) ++#define gpio_read() bttv_gpio_read(&btv->c) ++#define gpio_write(value) bttv_gpio_write(&btv->c, value) ++#define gpio_bits(mask,bits) bttv_gpio_bits(&btv->c, mask, bits) ++ ++ ++/* ---------------------------------------------------------- */ ++/* i2c */ ++ ++extern void bttv_call_i2c_clients(struct bttv *btv, unsigned int cmd, void *arg); ++extern int bttv_I2CRead(struct bttv *btv, unsigned char addr, char *probe_for); ++extern int bttv_I2CWrite(struct bttv *btv, unsigned char addr, unsigned char b1, ++ unsigned char b2, int both); ++extern void bttv_readee(struct bttv *btv, unsigned char *eedata, int addr); ++ ++extern int bttv_input_init(struct bttv *dev); ++extern void bttv_input_fini(struct bttv *dev); ++extern void bttv_input_irq(struct bttv *dev); ++ ++#endif /* _BTTV_H_ */ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/bttvp.h lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/bttvp.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/extra_2.6.22/bttvp.h 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/extra_2.6.22/bttvp.h 2007-10-30 10:12:56.000000000 -0400 +@@ -0,0 +1,480 @@ ++/* ++ ++ bttv - Bt848 frame grabber driver ++ ++ bttv's *private* header file -- nobody other than bttv itself ++ should ever include this file. ++ ++ (c) 2000-2002 Gerd Knorr ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program 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. ++*/ ++ ++#ifndef _BTTVP_H_ ++#define _BTTVP_H_ ++ ++#include ++#define BTTV_VERSION_CODE KERNEL_VERSION(0,9,17) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++#include "bt848.h" ++#include "bttv.h" ++#include "btcx-risc.h" ++ ++#ifdef __KERNEL__ ++ ++#define FORMAT_FLAGS_DITHER 0x01 ++#define FORMAT_FLAGS_PACKED 0x02 ++#define FORMAT_FLAGS_PLANAR 0x04 ++#define FORMAT_FLAGS_RAW 0x08 ++#define FORMAT_FLAGS_CrCb 0x10 ++ ++#define RISC_SLOT_O_VBI 4 ++#define RISC_SLOT_O_FIELD 6 ++#define RISC_SLOT_E_VBI 10 ++#define RISC_SLOT_E_FIELD 12 ++#define RISC_SLOT_LOOP 14 ++ ++#define RESOURCE_OVERLAY 1 ++#define RESOURCE_VIDEO_STREAM 2 ++#define RESOURCE_VBI 4 ++#define RESOURCE_VIDEO_READ 8 ++ ++#define RAW_LINES 640 ++#define RAW_BPL 1024 ++ ++#define UNSET (-1U) ++ ++/* Min. value in VDELAY register. */ ++#define MIN_VDELAY 2 ++/* Even to get Cb first, odd for Cr. */ ++#define MAX_HDELAY (0x3FF & -2) ++/* Limits scaled width, which must be a multiple of 4. */ ++#define MAX_HACTIVE (0x3FF & -4) ++ ++#define clamp(x, low, high) min (max (low, x), high) ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_tvnorm { ++ int v4l2_id; ++ char *name; ++ u32 Fsc; ++ u16 swidth, sheight; /* scaled standard width, height */ ++ u16 totalwidth; ++ u8 adelay, bdelay, iform; ++ u32 scaledtwidth; ++ u16 hdelayx1, hactivex1; ++ u16 vdelay; ++ u8 vbipack; ++ u16 vtotal; ++ int sram; ++ /* ITU-R frame line number of the first VBI line we can ++ capture, of the first and second field. The last possible line ++ is determined by cropcap.bounds. */ ++ u16 vbistart[2]; ++ /* Horizontally this counts fCLKx1 samples following the leading ++ edge of the horizontal sync pulse, vertically ITU-R frame line ++ numbers of the first field times two (2, 4, 6, ... 524 or 624). */ ++ struct v4l2_cropcap cropcap; ++}; ++extern const struct bttv_tvnorm bttv_tvnorms[]; ++ ++struct bttv_format { ++ char *name; ++ int palette; /* video4linux 1 */ ++ int fourcc; /* video4linux 2 */ ++ int btformat; /* BT848_COLOR_FMT_* */ ++ int btswap; /* BT848_COLOR_CTL_* */ ++ int depth; /* bit/pixel */ ++ int flags; ++ int hshift,vshift; /* for planar modes */ ++}; ++ ++/* ---------------------------------------------------------- */ ++ ++struct bttv_geometry { ++ u8 vtc,crop,comb; ++ u16 width,hscale,hdelay; ++ u16 sheight,vscale,vdelay,vtotal; ++}; ++ ++struct bttv_buffer { ++ /* common v4l buffer stuff -- must be first */ ++ struct videobuf_buffer vb; ++ ++ /* bttv specific */ ++ const struct bttv_format *fmt; ++ int tvnorm; ++ int btformat; ++ int btswap; ++ struct bttv_geometry geo; ++ struct btcx_riscmem top; ++ struct btcx_riscmem bottom; ++ struct v4l2_rect crop; ++ unsigned int vbi_skip[2]; ++ unsigned int vbi_count[2]; ++}; ++ ++struct bttv_buffer_set { ++ struct bttv_buffer *top; /* top field buffer */ ++ struct bttv_buffer *bottom; /* bottom field buffer */ ++ unsigned int top_irq; ++ unsigned int frame_irq; ++}; ++ ++struct bttv_overlay { ++ int tvnorm; ++ struct v4l2_rect w; ++ enum v4l2_field field; ++ struct v4l2_clip *clips; ++ int nclips; ++ int setup_ok; ++}; ++ ++struct bttv_vbi_fmt { ++ struct v4l2_vbi_format fmt; ++ ++ /* fmt.start[] and count[] refer to this video standard. */ ++ const struct bttv_tvnorm *tvnorm; ++ ++ /* Earliest possible start of video capturing with this ++ v4l2_vbi_format, in struct bttv_crop.rect units. */ ++ __s32 end; ++}; ++ ++/* bttv-vbi.c */ ++void bttv_vbi_fmt_reset(struct bttv_vbi_fmt *f, int norm); ++ ++struct bttv_crop { ++ /* A cropping rectangle in struct bttv_tvnorm.cropcap units. */ ++ struct v4l2_rect rect; ++ ++ /* Scaled image size limits with this crop rect. Divide ++ max_height, but not min_height, by two when capturing ++ single fields. See also bttv_crop_reset() and ++ bttv_crop_adjust() in bttv-driver.c. */ ++ __s32 min_scaled_width; ++ __s32 min_scaled_height; ++ __s32 max_scaled_width; ++ __s32 max_scaled_height; ++}; ++ ++struct bttv_fh { ++ struct bttv *btv; ++ int resources; ++#ifdef VIDIOC_G_PRIORITY ++ enum v4l2_priority prio; ++#endif ++ enum v4l2_buf_type type; ++ ++ /* video capture */ ++ struct videobuf_queue cap; ++ const struct bttv_format *fmt; ++ int width; ++ int height; ++ ++ /* video overlay */ ++ const struct bttv_format *ovfmt; ++ struct bttv_overlay ov; ++ ++ /* Application called VIDIOC_S_CROP. */ ++ int do_crop; ++ ++ /* vbi capture */ ++ struct videobuf_queue vbi; ++ /* Current VBI capture window as seen through this fh (cannot ++ be global for compatibility with earlier drivers). Protected ++ by struct bttv.lock and struct bttv_fh.vbi.lock. */ ++ struct bttv_vbi_fmt vbi_fmt; ++}; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-risc.c */ ++ ++/* risc code generators - capture */ ++int bttv_risc_packed(struct bttv *btv, struct btcx_riscmem *risc, ++ struct scatterlist *sglist, ++ unsigned int offset, unsigned int bpl, ++ unsigned int pitch, unsigned int skip_lines, ++ unsigned int store_lines); ++ ++/* control dma register + risc main loop */ ++void bttv_set_dma(struct bttv *btv, int override); ++int bttv_risc_init_main(struct bttv *btv); ++int bttv_risc_hook(struct bttv *btv, int slot, struct btcx_riscmem *risc, ++ int irqflags); ++ ++/* capture buffer handling */ ++int bttv_buffer_risc(struct bttv *btv, struct bttv_buffer *buf); ++int bttv_buffer_activate_video(struct bttv *btv, ++ struct bttv_buffer_set *set); ++int bttv_buffer_activate_vbi(struct bttv *btv, ++ struct bttv_buffer *vbi); ++void bttv_dma_free(struct videobuf_queue *q, struct bttv *btv, ++ struct bttv_buffer *buf); ++ ++/* overlay handling */ ++int bttv_overlay_risc(struct bttv *btv, struct bttv_overlay *ov, ++ const struct bttv_format *fmt, ++ struct bttv_buffer *buf); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-vbi.c */ ++ ++int bttv_vbi_try_fmt(struct bttv_fh *fh, struct v4l2_vbi_format *f); ++void bttv_vbi_get_fmt(struct bttv_fh *fh, struct v4l2_vbi_format *f); ++int bttv_vbi_set_fmt(struct bttv_fh *fh, struct v4l2_vbi_format *f); ++ ++extern struct videobuf_queue_ops bttv_vbi_qops; ++ ++/* ---------------------------------------------------------- */ ++/* bttv-gpio.c */ ++ ++ ++extern struct bus_type bttv_sub_bus_type; ++int bttv_sub_add_device(struct bttv_core *core, char *name); ++int bttv_sub_del_devices(struct bttv_core *core); ++ ++ ++/* ---------------------------------------------------------- */ ++/* bttv-driver.c */ ++ ++/* insmod options */ ++extern unsigned int bttv_verbose; ++extern unsigned int bttv_debug; ++extern unsigned int bttv_gpio; ++extern void bttv_gpio_tracking(struct bttv *btv, char *comment); ++extern int init_bttv_i2c(struct bttv *btv); ++extern int fini_bttv_i2c(struct bttv *btv); ++ ++#define bttv_printk if (bttv_verbose) printk ++#define dprintk if (bttv_debug >= 1) printk ++#define d2printk if (bttv_debug >= 2) printk ++ ++#define BTTV_MAX_FBUF 0x208000 ++#define BTTV_TIMEOUT (HZ/2) /* 0.5 seconds */ ++#define BTTV_FREE_IDLE (HZ) /* one second */ ++ ++ ++struct bttv_pll_info { ++ unsigned int pll_ifreq; /* PLL input frequency */ ++ unsigned int pll_ofreq; /* PLL output frequency */ ++ unsigned int pll_crystal; /* Crystal used for input */ ++ unsigned int pll_current; /* Currently programmed ofreq */ ++}; ++ ++/* for gpio-connected remote control */ ++struct bttv_input { ++ struct input_dev *dev; ++ struct ir_input_state ir; ++ char name[32]; ++ char phys[32]; ++ u32 mask_keycode; ++ u32 mask_keydown; ++}; ++ ++struct bttv_suspend_state { ++ u32 gpio_enable; ++ u32 gpio_data; ++ int disabled; ++ int loop_irq; ++ struct bttv_buffer_set video; ++ struct bttv_buffer *vbi; ++}; ++ ++struct bttv { ++ struct bttv_core c; ++ ++ /* pci device config */ ++ unsigned short id; ++ unsigned char revision; ++ unsigned char __iomem *bt848_mmio; /* pointer to mmio */ ++ ++ /* card configuration info */ ++ unsigned int cardid; /* pci subsystem id (bt878 based ones) */ ++ unsigned int tuner_type; /* tuner chip type */ ++ unsigned int tda9887_conf; ++ unsigned int svhs; ++ struct bttv_pll_info pll; ++ int triton1; ++ int gpioirq; ++ int (*custom_irq)(struct bttv *btv); ++ ++ int use_i2c_hw; ++ ++ /* old gpio interface */ ++ wait_queue_head_t gpioq; ++ int shutdown; ++ void (*audio_hook)(struct bttv *btv, struct video_audio *v, int set); ++ ++ /* new gpio interface */ ++ spinlock_t gpio_lock; ++ ++ /* i2c layer */ ++ struct i2c_algo_bit_data i2c_algo; ++ struct i2c_client i2c_client; ++ int i2c_state, i2c_rc; ++ int i2c_done; ++ wait_queue_head_t i2c_queue; ++ struct i2c_client *i2c_msp34xx_client; ++ struct i2c_client *i2c_tvaudio_client; ++ ++ /* video4linux (1) */ ++ struct video_device *video_dev; ++ struct video_device *radio_dev; ++ struct video_device *vbi_dev; ++ ++ /* infrared remote */ ++ int has_remote; ++ struct card_ir *remote; ++ ++ /* locking */ ++ spinlock_t s_lock; ++ struct mutex lock; ++ int resources; ++#ifdef VIDIOC_G_PRIORITY ++ struct v4l2_prio_state prio; ++#endif ++ ++ /* video state */ ++ unsigned int input; ++ unsigned int audio; ++ unsigned int mute; ++ unsigned long freq; ++ int tvnorm,hue,contrast,bright,saturation; ++ struct v4l2_framebuffer fbuf; ++ unsigned int field_count; ++ ++ /* various options */ ++ int opt_combfilter; ++ int opt_lumafilter; ++ int opt_automute; ++ int opt_chroma_agc; ++ int opt_adc_crush; ++ int opt_vcr_hack; ++ int opt_whitecrush_upper; ++ int opt_whitecrush_lower; ++ int opt_uv_ratio; ++ int opt_full_luma_range; ++ int opt_coring; ++ ++ /* radio data/state */ ++ int has_radio; ++ int radio_user; ++ ++ /* miro/pinnacle + Aimslab VHX ++ philips matchbox (tea5757 radio tuner) support */ ++ int has_matchbox; ++ int mbox_we; ++ int mbox_data; ++ int mbox_clk; ++ int mbox_most; ++ int mbox_mask; ++ ++ /* ISA stuff (Terratec Active Radio Upgrade) */ ++ int mbox_ior; ++ int mbox_iow; ++ int mbox_csel; ++ ++ /* risc memory management data ++ - must acquire s_lock before changing these ++ - only the irq handler is supported to touch top + bottom + vcurr */ ++ struct btcx_riscmem main; ++ struct bttv_buffer *screen; /* overlay */ ++ struct list_head capture; /* video capture queue */ ++ struct list_head vcapture; /* vbi capture queue */ ++ struct bttv_buffer_set curr; /* active buffers */ ++ struct bttv_buffer *cvbi; /* active vbi buffer */ ++ int loop_irq; ++ int new_input; ++ ++ unsigned long cap_ctl; ++ unsigned long dma_on; ++ struct timer_list timeout; ++ struct bttv_suspend_state state; ++ ++ /* stats */ ++ unsigned int errors; ++ unsigned int framedrop; ++ unsigned int irq_total; ++ unsigned int irq_me; ++ ++ unsigned int users; ++ struct bttv_fh init; ++ ++ /* used to make dvb-bt8xx autoloadable */ ++ struct work_struct request_module_wk; ++ ++ /* Default (0) and current (1) video capturing and overlay ++ cropping parameters in bttv_tvnorm.cropcap units. Protected ++ by bttv.lock. */ ++ struct bttv_crop crop[2]; ++ ++ /* Earliest possible start of video capturing in ++ bttv_tvnorm.cropcap line units. Set by check_alloc_btres() ++ and free_btres(). Protected by bttv.lock. */ ++ __s32 vbi_end; ++ ++ /* Latest possible end of VBI capturing (= crop[x].rect.top when ++ VIDEO_RESOURCES are locked). Set by check_alloc_btres() ++ and free_btres(). Protected by bttv.lock. */ ++ __s32 crop_start; ++}; ++ ++/* our devices */ ++#define BTTV_MAX 16 ++extern unsigned int bttv_num; ++extern struct bttv bttvs[BTTV_MAX]; ++ ++/* private ioctls */ ++#define BTTV_VERSION _IOR('v' , BASE_VIDIOCPRIVATE+6, int) ++#define BTTV_VBISIZE _IOR('v' , BASE_VIDIOCPRIVATE+8, int) ++ ++#endif ++ ++#define btwrite(dat,adr) writel((dat), btv->bt848_mmio+(adr)) ++#define btread(adr) readl(btv->bt848_mmio+(adr)) ++ ++#define btand(dat,adr) btwrite((dat) & btread(adr), adr) ++#define btor(dat,adr) btwrite((dat) | btread(adr), adr) ++#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr) ++ ++#endif /* _BTTVP_H_ */ ++ ++/* ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/lirc_gpio.c lirc-0.8.3~pre1/drivers/lirc_gpio/lirc_gpio.c +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/lirc_gpio.c 2007-10-30 09:55:53.000000000 -0400 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/lirc_gpio.c 2007-10-30 10:12:56.000000000 -0400 +@@ -48,12 +48,21 @@ + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0) + #include "../drivers/char/bttv.h" + #include "../drivers/char/bttvp.h" +-#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 17) +-#include "../drivers/media/video/bttv.h" +-#include "../drivers/media/video/bttvp.h" +-#else +-#include "../drivers/media/video/bt8xx/bttv.h" +-#include "../drivers/media/video/bt8xx/bttvp.h" ++#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,16) ++#include "extra_2.6.16/bttv.h" ++#include "extra_2.6.16/bttvp.h" ++#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,17) ++#include "extra_2.6.17/bttv.h" ++#include "extra_2.6.17/bttvp.h" ++#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,18) ++#include "extra_2.6.18/bttv.h" ++#include "extra_2.6.18/bttvp.h" ++#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,20) ++#include "extra_2.6.20/bttv.h" ++#include "extra_2.6.20/bttvp.h" ++#elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,22) ++#include "extra_2.6.22/bttv.h" ++#include "extra_2.6.22/bttvp.h" + #endif + + #if BTTV_VERSION_CODE < KERNEL_VERSION(0, 7, 45) --- lirc-0.8.3~pre1.orig/debian/patches/30_medion_md1_remote.dpatch +++ lirc-0.8.3~pre1/debian/patches/30_medion_md1_remote.dpatch @@ -0,0 +1,87 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 30_medion_md1_remote.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add support for the Medion MD1-NBC Remote (LP: #192392) + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2008-03-24 00:12:26.000000000 -0500 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2008-03-24 00:44:04.000000000 -0500 +@@ -121,6 +121,7 @@ + Home Electronics Tira USB device;tira;none;hw_tira;; + Igor Cesko's USB IR Receiver;igorplugusb;lirc_dev lirc_igorplugusb;hw_default;; + Iguanaworks USB IR Transceiver;iguanaIR;none;hw_iguanaIR;; ++Medion MD1 NBC;atilibusb;none;hw_atilibusb;medion/md1-nbc.conf; + PCMAK USB receiver;pcmak_usb;none;hw_pcmak;pcmak/lircd.conf.pcmak; + Remotec Multimedia PC Remote BW6130;bw6130;none;hw_bw6130;remotec/lircd.conf.BW6130; + Sasem OnAir Remocon-V;sasem;lirc_dev lirc_sasem;hw_default;sasem/lircd.conf.sasem; +diff -urNad lirc-0.8.3~pre1~/remotes/medion/md1-nbc.conf lirc-0.8.3~pre1/remotes/medion/md1-nbc.conf +--- lirc-0.8.3~pre1~/remotes/medion/md1-nbc.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/remotes/medion/md1-nbc.conf 2008-03-24 00:42:14.000000000 -0500 +@@ -0,0 +1,65 @@ ++begin remote ++ name medion ++ bits 16 ++ eps 30 ++ aeps 100 ++ one 0 0 ++ zero 0 0 ++ pre_data_bits 8 ++ pre_data 0x14 ++ post_data_bits 16 ++ post_data 0x0 ++ gap 219967 ++ toggle_bit_mask 0x80800000 ++ ++ begin codes ++ 1 0xE20D ++ 2 0x638E ++ 3 0xE40F ++ 4 0x6590 ++ 5 0xE611 ++ 6 0x6792 ++ 7 0xE813 ++ 8 0x6994 ++ 9 0xEA15 ++ 0 0x6C97 ++ Play 0xFA25 ++ Pause 0x7EA9 ++ Stop 0xFD28 ++ Record 0x7CA7 ++ SkipNext 0xF823 ++ SkipPrior 0x76A1 ++ Forward 0xFB26 ++ Rewind 0x79A4 ++ snapshot 0xED18 ++ red 0x87B2 ++ yellow 0x0934 ++ blue 0x8AB5 ++ green 0x0833 ++ Mute 0x5580 ++ return 0xF11C ++ VolUp 0x5E89 ++ VolDown 0xDD08 ++ ChanUp 0x608B ++ ChanDown 0xE10C ++ menu 0x6E99 ++ back 0xF520 ++ Left 0x729D ++ Right 0xF41F ++ Up 0xCDF8 ++ Down 0x4570 ++ tv 0x81AC ++ Videos 0x022D ++ DVD 0x5984 ++ Guide 0xEB16 ++ Music 0x5B86 ++ Radio 0x032E ++ book 0x86B1 ++ Pictures 0xDA05 ++ info 0x84AF ++ Power 0xD702 ++ ok 0x709B ++ enter 0xF31E ++ end codes ++ ++end remote --- lirc-0.8.3~pre1.orig/debian/patches/31_hauppauge_hvr_1100.dpatch +++ lirc-0.8.3~pre1/debian/patches/31_hauppauge_hvr_1100.dpatch @@ -0,0 +1,86 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 31_hauppauge_hvr_1100.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add support for the Hauppauge HVR-1100 Remote (LP: #203493) + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2008-03-24 00:50:43.000000000 -0500 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2008-03-24 00:51:24.000000000 -0500 +@@ -74,6 +74,7 @@ + Freecom DVB-T USB Stick;devinput;none;hw_default;freecom/lircd.conf.freeconf + Hauppauge TV card;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge Nova-T 500;devinput;none;hw_devinput;hauppauge/lircd.conf.hauppauge_novat500; ++Hauppauge HVR-1100;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge HVR-1300;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge DVB-s card (ver. 2.1);hauppauge_dvb;lirc_dev;hw_default;hauppauge/lircd.conf.hauppauge; + Hercules Smart TV Stereo (card 100);hercules_smarttv_stereo;lirc_dev lirc_i2c;hw_default;hercules/lircd.conf.smarttv_stereo; +diff -urNad lirc-0.8.3~pre1~/remotes/hauppauge/lircd.conf.hauppauge lirc-0.8.3~pre1/remotes/hauppauge/lircd.conf.hauppauge +--- lirc-0.8.3~pre1~/remotes/hauppauge/lircd.conf.hauppauge 2005-10-05 15:28:15.000000000 -0500 ++++ lirc-0.8.3~pre1/remotes/hauppauge/lircd.conf.hauppauge 2008-03-24 00:50:54.000000000 -0500 +@@ -272,3 +272,64 @@ + end remote + + ++begin remote ++ name HVR-1100 ++ bits 16 ++ eps 30 ++ aeps 100 ++ one 0 0 ++ zero 0 0 ++ gap 135862 ++ pre_data_bits 16 ++ pre_data 0x8001 ++ ++ begin codes ++ Go 0x0161 ++ power 0x0074 ++ Tv 0x0179 ++ Videos 0x0189 ++ Music 0x0188 ++ Pictures 0x016F ++ Guide 0x016D ++ Radio 0x0181 ++ Up 0x0067 ++ Down 0x006C ++ Left 0x0069 ++ Right 0x006A ++ Ok 0x001C ++ Back/edit 0x00AE ++ Menu 0x008B ++ Vol+ 0x0073 ++ Vol- 0x0072 ++ PrevChan 0x019C ++ Chan+ 0x0192 ++ Chan- 0x0193 ++ Mute 0x0071 ++ Record 0x00A7 ++ Stop 0x0080 ++ replay 0x00A8 ++ SKip 0x00D0 ++ play 0x00CF ++ Previous 0x00A5 ++ Next 0x00A3 ++ Pause 0x0077 ++ 1 0x0002 ++ 2 0x0003 ++ 3 0x0004 ++ 4 0x0005 ++ 5 0x0006 ++ 6 0x0007 ++ 7 0x0008 ++ 8 0x0009 ++ 9 0x000A ++ * 0x0184 ++ 0 0x000B ++ # 0x0172 ++ red 0x018E ++ green 0x018F ++ yellow 0x0190 ++ blue 0x0191 ++ ++ end codes ++ ++end remote --- lirc-0.8.3~pre1.orig/debian/patches/26_transmitter_lircd.conf.dpatch +++ lirc-0.8.3~pre1/debian/patches/26_transmitter_lircd.conf.dpatch @@ -0,0 +1,1917 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 26_transmitter_lircd.conf.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add support to preconfigure transmitters off the bat + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/Makefile.am lirc-0.8.3~pre1/Makefile.am +--- lirc-0.8.3~pre1~/Makefile.am 2008-03-24 00:12:26.000000000 -0500 ++++ lirc-0.8.3~pre1/Makefile.am 2008-03-24 00:35:50.000000000 -0500 +@@ -20,11 +20,11 @@ + ./data2setup.sh > setup-driver.sh + + dist-hook: +- for f in contrib remotes; do \ ++ for f in contrib remotes transmitters; do \ + cp -pr $(srcdir)/$$f $(distdir)/$$f; done + rm -r `find $(distdir) -name "CVS"` + -rcs2log >$(distdir)/ChangeLog + + DISTCLEANFILES = configure.sh .setup.config + +-CLEANFILES = *~ remotes/*~ contrib/*~ ++CLEANFILES = *~ remotes/*~ contrib/*~ transmitters/*~ +diff -urNad lirc-0.8.3~pre1~/Makefile.in lirc-0.8.3~pre1/Makefile.in +--- lirc-0.8.3~pre1~/Makefile.in 2008-03-24 00:12:26.000000000 -0500 ++++ lirc-0.8.3~pre1/Makefile.in 2008-03-24 00:35:50.000000000 -0500 +@@ -215,7 +215,7 @@ + EXTRA_DIST = setup.sh setup-driver.sh setup.data data2setup.sh ANNOUNCE TODO + SUBDIRS = drivers daemons tools doc + DISTCLEANFILES = configure.sh .setup.config +-CLEANFILES = *~ remotes/*~ contrib/*~ ++CLEANFILES = *~ remotes/*~ contrib/*~ transmitters/*~ + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +@@ -666,7 +666,7 @@ + ./data2setup.sh > setup-driver.sh + + dist-hook: +- for f in contrib remotes; do \ ++ for f in contrib remotes transmitters; do \ + cp -pr $(srcdir)/$$f $(distdir)/$$f; done + rm -r `find $(distdir) -name "CVS"` + -rcs2log >$(distdir)/ChangeLog +diff -urNad lirc-0.8.3~pre1~/doc/transmitter.hwdb lirc-0.8.3~pre1/doc/transmitter.hwdb +--- lirc-0.8.3~pre1~/doc/transmitter.hwdb 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/doc/transmitter.hwdb 2008-03-24 00:35:50.000000000 -0500 +@@ -0,0 +1,52 @@ ++# LIRC - Transmitter Hardware DataBase ++# ++# This file lists all the cable and satellite boxes ++# supported by LIRC in a parseable form. ++# ++# The format is: ++# ++# [remote controls type] ++# description;driver;lirc driver;HW_DEFAULT;lircd_conf; ++# ++# ++[Motorola Cable box] ++Serial Port (UART) : Motorola Cable box;serial;lirc_dev lirc_serial;hw_default;motorola/dctxxxx.conf ++Hauppauge PVR-150 (pci) : Motorola Cable box;none;lirc_dev lirc_pvr150;hw_default;motorola/dctxxxx.conf ++Microsoft Windows Media Center V2 (usb) : Motorola Cable box;none;lirc_dev lirc_mceusb2;hw_default;motorola/dctxxxx.conf ++Command IR : Motorola Cable box;none;lirc_dev lirc_cmdir;hw_default;motorola/dctxxxx.conf ++USB-UIRT2 : Motorola Cable box;uirt2_raw;none;hw_uirt2_raw;motorola/dctxxxx.conf ++ ++[Sky Satellite] ++Serial Port (UART) : Sky Satellite Receiver;serial;lirc_dev lirc_serial;hw_default;sky/general.conf ++Hauppauge PVR-150 (pci) : Sky Satellite Receiver;none;lirc_dev lirc_pvr150;hw_default;sky/general.conf ++Microsoft Windows Media Center V2 (usb) : Sky Satellite Receiver;none;lirc_dev lirc_mceusb2;hw_default;sky/general.conf ++Command IR : Sky Satellite Receiver;none;lirc_dev lirc_cmdir;hw_default;sky/general.conf ++USB-UIRT2 : Sky Satellite Receiver;uirt2_raw;none;hw_uirt2_raw;sky/general.conf ++ ++[Dish Networks] ++Serial Port (UART) : Dish Receiver;serial;lirc_dev lirc_serial;hw_default;dish/general.conf ++Hauppauge PVR-150 (pci) : Dish Receiver;none;lirc_dev lirc_pvr150;hw_default;dish/general.conf ++Microsoft Windows Media Center V2 (usb) : Dish Receiver;none;lirc_dev lirc_mceusb2;hw_default;dish/general.conf ++Command IR : Dish Receiver;none;lirc_dev lirc_cmdir;hw_default;dish/general.conf ++USB-UIRT2 : Dish Receiver;uirt2_raw;none;hw_uirt2_raw;dish/general.conf ++ ++[Direct TV] ++Serial Port (UART) : Direct TV Receiver;serial;lirc_dev lirc_serial;hw_default;directtv/general.conf ++Hauppauge PVR-150 (pci) : Direct TV Receiver;none;lirc_dev lirc_pvr150;hw_default;directtv/general.conf ++Microsoft Windows Media Center V2 (usb) : Direct TV Receiver;none;lirc_dev lirc_mceusb2;hw_default;directtv/general.conf ++Command IR : Direct TV Receiver;none;lirc_dev lirc_cmdir;hw_default;directtv/general.conf ++USB-UIRT2 : Direct TV Receiver;uirt2_raw;none;hw_uirt2_raw;directtv/general.conf ++ ++[Pioneer Cable box] ++Serial Port (UART) : Pioneer Cable box;serial;lirc_dev lirc_serial;hw_default;pioneer/general.conf ++Hauppauge PVR-150 (pci) : Pioneer Cable box;none;lirc_dev lirc_pvr150;hw_default;pioneer/general.conf ++Microsoft Windows Media Center V2 (usb) : Pioneer Cable box;none;lirc_dev lirc_mceusb2;hw_default;pioneer/general.conf ++Command IR : Pioneer Cable box;none;lirc_dev lirc_cmdir;hw_default;pioneer/general.conf ++USB-UIRT2 : Pioneer Cable box;uirt2_raw;none;hw_uirt2_raw;pioneer/general.conf ++ ++[Scientific Atlanta Cable box] ++Serial Port (UART) : Scientific Atlanta Cable box;serial;lirc_dev lirc_serial;hw_default;scientificatlanta/general.conf ++Hauppauge PVR-150 (pci) : Scientific Atlanta Cable box;none;lirc_dev lirc_pvr150;hw_default;scientificatlanta/general.conf ++Microsoft Windows Media Center V2 (usb) : Scientific Atlanta Cable box;none;lirc_dev lirc_mceusb2;hw_default;scientificatlanta/general.conf ++Command IR : Scientific Atlanta Cable box;none;lirc_dev lirc_cmdir;hw_default;scientificatlanta/general.conf ++USB-UIRT2 : Scientific Atlanta Cable box;uirt2_raw;none;hw_uirt2_raw;scientificatlanta/general.conf +diff -urNad lirc-0.8.3~pre1~/transmitters/directtv/general.conf lirc-0.8.3~pre1/transmitters/directtv/general.conf +--- lirc-0.8.3~pre1~/transmitters/directtv/general.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/transmitters/directtv/general.conf 2008-03-24 00:35:50.000000000 -0500 +@@ -0,0 +1,183 @@ ++# ++# this config file was automatically generated ++# using lirc-0.8.1-CVS-pvr150(default) on Thu Nov 23 11:12:04 2006 ++# ++# contributed by Chris Jacobs ++# ++# brand: DirecTV HD20-100 ++# model no. of remote control: HD20-100 ++# devices being controlled by this remote: DirecTV HD20-100 ++# ++ ++begin remote ++ ++ name directtv ++ flags RAW_CODES ++ eps 30 ++ aeps 100 ++ ++ ptrail 613 ++ repeat 0 0 ++ gap 29767 ++ ++ begin raw_codes ++ ++ name 1 ++ 6000 1150 1250 1100 650 550 ++ 650 550 650 550 650 500 ++ 650 1150 650 550 650 1150 ++ 600 ++ ++ name 2 ++ 6000 1100 1250 1150 650 550 ++ 650 550 600 550 650 550 ++ 1250 550 650 550 1200 550 ++ 650 ++ ++ name 3 ++ 6000 1150 1250 1100 650 550 ++ 650 550 650 550 650 550 ++ 1200 1150 650 550 1250 1150 ++ 600 ++ ++ name 4 ++ 6000 1150 1250 1150 650 500 ++ 650 550 650 550 650 1150 ++ 650 500 650 550 1250 1150 ++ 650 ++ ++ name 5 ++ 6000 1150 1250 1100 650 550 ++ 650 550 650 500 650 1150 ++ 650 1150 650 1150 600 550 ++ 650 ++ ++ name 6 ++ 6000 1150 1250 1150 650 500 ++ 650 550 650 550 650 1150 ++ 1200 550 650 1150 650 1150 ++ 600 ++ ++ name 7 ++ 6000 1100 1250 1150 650 550 ++ 650 500 650 550 650 1150 ++ 1250 1100 650 1150 1250 550 ++ 650 ++ ++ name 8 ++ 6000 1150 1250 1100 650 550 ++ 650 550 650 550 1200 550 ++ 650 550 650 1150 1200 550 ++ 650 ++ ++ name 9 ++ 6000 1100 1300 1100 650 550 ++ 650 550 650 500 1250 550 ++ 650 1150 650 1150 1200 1150 ++ 650 ++ ++ name 0 ++ 6000 1150 1250 1150 650 500 ++ 650 550 650 1150 650 550 ++ 650 1100 650 1150 1250 550 ++ 650 ++ ++ name dash ++ 6000 1100 1300 1100 650 550 ++ 650 550 650 1100 650 550 ++ 1250 550 650 1100 1250 1150 ++ 650 ++ ++ name last ++ 6000 1100 1300 1100 650 550 ++ 650 550 650 500 1250 1150 ++ 1250 1150 1200 1150 650 550 ++ 650 ++ ++ name guide ++ 6000 1100 1300 1100 650 550 ++ 650 550 1250 500 1250 550 ++ 650 550 650 550 600 550 ++ 650 ++ ++ name up ++ 6000 1100 1300 1100 650 550 ++ 650 550 1250 500 650 550 ++ 650 1150 1250 500 1250 1150 ++ 650 ++ ++ name down ++ 6000 1150 1250 1100 650 550 ++ 650 550 1250 500 650 550 ++ 1250 550 1250 1150 600 550 ++ 650 ++ ++ name left ++ 6000 1150 1250 1150 650 500 ++ 700 500 1250 550 650 550 ++ 1250 1100 1250 1150 650 1150 ++ 600 ++ ++ name right ++ 6000 1150 1250 1100 650 550 ++ 650 550 1250 500 650 1150 ++ 650 550 1250 1100 650 1150 ++ 650 ++ ++ name select ++ 6000 1150 1250 1100 700 500 ++ 650 550 1250 550 650 1100 ++ 650 1150 1250 1150 1200 550 ++ 650 ++ ++ name action ++ 6000 1150 1250 1150 650 500 ++ 650 550 1250 550 1250 550 ++ 600 1150 650 550 650 1150 ++ 650 ++ ++ name list ++ 6050 1100 1250 1150 650 500 ++ 650 550 1250 550 1250 550 ++ 1200 550 650 550 1250 550 ++ 650 ++ ++ name info ++ 6000 1100 1250 1150 650 550 ++ 650 500 1250 550 1250 1150 ++ 1250 500 650 1150 650 1150 ++ 650 ++ ++ name back ++ 6000 1150 1250 1150 650 500 ++ 700 500 1250 550 650 1150 ++ 1200 1150 650 550 650 550 ++ 650 ++ ++ name power ++ 6000 1150 1250 1100 650 550 ++ 1250 550 650 550 650 500 ++ 650 550 1250 1150 1250 500 ++ 650 ++ ++ name exit ++ 6000 1150 1250 1150 650 500 ++ 650 550 1250 550 650 1150 ++ 1200 550 1250 1150 1250 1100 ++ 650 ++ ++ name ch- ++ 6000 1100 1250 1150 650 550 ++ 650 500 650 550 1250 1150 ++ 1250 550 1200 550 1250 1150 ++ 650 ++ ++ name ch+ ++ 6000 1100 1300 1100 650 550 ++ 650 500 700 500 1250 1150 ++ 650 1150 1200 550 1250 550 ++ 650 ++ ++ end raw_codes ++ ++end remote +diff -urNad lirc-0.8.3~pre1~/transmitters/dish/general.conf lirc-0.8.3~pre1/transmitters/dish/general.conf +--- lirc-0.8.3~pre1~/transmitters/dish/general.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/transmitters/dish/general.conf 2008-03-24 00:35:50.000000000 -0500 +@@ -0,0 +1,1272 @@ ++# This config file is based on the information posted by Endaf Jones at ++# http://www.gossamer-threads.com/lists/mythtv/users/196566#196566 ++# ++# brand: JVC/RCA ++# model no. of remote control: ++# supported devices: Dish Network (Echostar) ++# - JVC 2700 receiver ++# - JVC 4700 receiver ++# - JVC 49xx receiver ++# - JVC 50xx receiver ++# - RCA 31x receiver ++# and several other Dish receivers using the ++# "blue button" remotes ++# ++# Unit code selection (1-16) is performed by specifying the appropriate ++# value for post_data ++# 1=0x000 2=0x200 3=0x100 4=0x300 ++# 5=0x080 6=0x280 7=0x180 8=0x380 ++# 9=0x040 10=0x240 11=0x140 12=0x340 ++# 13=0x0C0 14=0x2C0 15=0x1C0 16=0x3C0 ++# ++# Each has been implemented in this config file with the remote names "dish#" ++# where the hash/pound/number sign ("#") is a code number from 1 through 16. ++# There is also a remote called "dish" (without a number), for users with only ++# one receiver, that uses remote code 1 (DISH's default). ++# ++# The duty_cycle (the percentage of time during a pulse that infrared light is ++# being sent) is commented because some hardware transmitters don't support its ++# use. ++# ++# The discrete power functions (power_on and power_off) can be used to ensure ++# the power state of the receiver. However, they probably shouldn't be used in ++# a channel change script as the receiver will require a significant delay ++# after a power_on before it is capable of receiving/responding to additional ++# commands (such as channel numbers). Instead, assuming most of your recording ++# is during prime-time, you may want to set a cron job to run a "power_on" ++# command for each of your receivers about 5 or 10 minutes before primtetime. ++ ++ ++### Remote definition for remotes using remote code 1 (0x000) ++begin remote ++ name dish ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x000 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 1 (0x000) ++### (Duplicated to allow a "dish" and a "dish1" remote name) ++begin remote ++ name dish1 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x000 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 2 (0x200) ++begin remote ++ name dish2 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x200 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 3 (0x100) ++begin remote ++ name dish3 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x100 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 4 (0x300) ++begin remote ++ name dish4 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x300 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 5 (0x080) ++begin remote ++ name dish5 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x080 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 6 (0x280) ++begin remote ++ name dish6 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x280 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 7 (0x180) ++begin remote ++ name dish7 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x180 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 8 (0x380) ++begin remote ++ name dish8 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x380 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 9 (0x040) ++begin remote ++ name dish9 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x040 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 10 (0x240) ++begin remote ++ name dish10 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x240 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 11 (0x140) ++begin remote ++ name dish11 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x140 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 12 (0x340) ++begin remote ++ name dish12 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x340 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 13 (0x0C0) ++begin remote ++ name dish13 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x0C0 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 14 (0x2C0) ++begin remote ++ name dish14 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x2C0 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 15 (0x1C0) ++begin remote ++ name dish15 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x1C0 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ ++### Remote definition for remotes using remote code 16 (0x3C0) ++begin remote ++ name dish16 ++ ++ flags SPACE_ENC|NO_HEAD_REP ++ eps 30 ++ aeps 100 ++ ++ frequency 56000 ++# duty_cycle 32 ++ ++ one 440 1645 ++ zero 440 2780 ++ ++ header 525 6045 ++ ptrail 450 ++ gap 6115 ++ ++ min_repeat 6 ++ ++ bits 6 ++ post_data_bits 10 ++ ++ post_data 0x3C0 ++ ++ begin codes ++ info 0 ++ power_on 1 ++ power 2 ++ 1 4 ++ 2 5 ++ 3 6 ++ 4 8 ++ 5 9 ++ 6 10 ++ 7 12 ++ 8 13 ++ 9 14 ++ 0 17 ++ menu 11 ++ select 16 ++ cancel 18 ++ guide 20 ++ view 22 ++ tv_vcr 23 ++ right 24 ++ up 26 ++ recall 27 ++ left 28 ++ down 30 ++ record 31 ++ pause 32 ++ stop 33 ++ sys_info 36 ++ asterisk 37 ++ pound 38 ++ power_off 39 ++ sat 41 ++ dish_home 52 ++ sys_info2 54 ++ dish_home2 56 ++ dvr 57 ++ skip_fwd 55 ++ skip_back 54 ++ fwd 50 ++ play 3 ++ back 49 ++ dish 52 ++ page_up 15 ++ page_down 7 ++ end codes ++end remote ++ +diff -urNad lirc-0.8.3~pre1~/transmitters/motorola/dctxxxx.conf lirc-0.8.3~pre1/transmitters/motorola/dctxxxx.conf +--- lirc-0.8.3~pre1~/transmitters/motorola/dctxxxx.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/transmitters/motorola/dctxxxx.conf 2008-03-24 00:35:50.000000000 -0500 +@@ -0,0 +1,73 @@ ++# ++# this config file was automatically generated ++# using lirc-0.6.6(serial) on Fri Mar 28 22:46:44 2003 ++# ++# contributed by shane bradley ++# ++# ++# ++# brand: Motorola ++# model no. of remote control: DCT2000 ++# devices being controlled by this remote: ++# ++ ++begin remote ++ name DCT2000 ++ bits 16 ++ flags SPACE_ENC|CONST_LENGTH ++ eps 30 ++ aeps 100 ++ ++ header 9036 4424 ++ one 556 2185 ++ zero 556 4424 ++ ptrail 556 ++ gap 100025 ++ toggle_bit 0 ++ ++ ++ begin codes ++ HELP 0x000000000000B3F2 ++ POWER 0x000000000000AFF9 ++ MUTE 0x0000000000000FF7 ++ PAGE+ 0x000000000000A3F3 ++ PAGE- 0x00000000000023FB ++ LOCK 0x00000000000097F6 ++ EXIT 0x000000000000B7F4 ++ AUP 0x000000000000D3F6 ++ ADOWN 0x00000000000053FE ++ ALEFT 0x00000000000093F1 ++ ARIGHT 0x00000000000013F9 ++ OK 0x00000000000077F8 ++ GUIDE 0x000000000000F3F4 ++ MENU 0x00000000000067F9 ++ VOL+ 0x0000000000004FF3 ++ VOL- 0x0000000000008FFB ++ LAST 0x00000000000037FC ++ FAV 0x00000000000057FA ++ CH+ 0x0000000000002FF5 ++ CH- 0x000000000000CFFD ++ A 0x00000000000017FE ++ B 0x0000000000001BF1 ++ C 0x000000000000EBF9 ++ 1 0x0000000000007FF0 ++ 2 0x000000000000BFF8 ++ 3 0x0000000000003FF4 ++ 4 0x000000000000DFFC ++ 5 0x0000000000005FF2 ++ 6 0x0000000000009FFA ++ 7 0x0000000000001FF6 ++ 8 0x000000000000EFFE ++ 9 0x0000000000006FF1 ++ 0 0x000000000000FFFF ++ BYPASS 0x000000000000D7F2 ++ MUSIC 0x000000000000F7F0 ++ STOP 0x00000000000063FD ++ PAUSE 0x00000000000007FF ++ PLAY 0x000000000000E3F5 ++ REW 0x00000000000087F7 ++ REC 0x00000000000073FC ++ FFWD 0x00000000000047FB ++ end codes ++ ++end remote +diff -urNad lirc-0.8.3~pre1~/transmitters/pioneer/general.conf lirc-0.8.3~pre1/transmitters/pioneer/general.conf +--- lirc-0.8.3~pre1~/transmitters/pioneer/general.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/transmitters/pioneer/general.conf 2008-03-24 00:35:50.000000000 -0500 +@@ -0,0 +1,107 @@ ++# ++# this config file was automatically generated ++# using lirc-0.6.6(act200l) on Wed Apr 7 18:14:45 2004 ++# ++# contributed by william nolan (will|willnolan.com) ++# ++# number codes denoised and rationalized by joe pierce (joe|joepierce.org) ++# ++# brand: Time Warner Digital Cable ++# model no. of remote control: UR4-P360 (http://www.twalbany.com/digitalentertainment/ur4-p360.php) ++# devices being controlled by this remote: Pioneer Voyager digital cable ++# set top box ++# notes: I'm not sure if this remote is used by all TW digital cable boxes, ++# but this one works with the ones used by TW in the New York area. ++# I was able to capture the commands with an Actisys IR-200L but not able ++# to transmit with it. I built the simple circuit in the LIRC documentation ++# and have been successfully using it to control the set top box ever since. ++ ++begin remote ++ ++ name TWC_UR4-P360 ++ bits 22 ++ flags SPACE_ENC|CONST_LENGTH ++ eps 30 ++ aeps 100 ++ ++ header 3337 3378 ++ one 820 2540 ++ zero 820 817 ++ ptrail 820 ++ gap 100786 ++ toggle_bit 0 ++ ++ frequency 56000 ++ ++ begin codes ++ POWER 0x37C107 ++ GUIDE 0x36C127 ++ MENU 0x36F920 ++ INFO 0x36213B ++ UP 0x36812F ++ DOWN 0x37A10B ++ LEFT 0x37810F ++ RIGHT 0x364137 ++ SELECT 0x366133 ++ PAGEUP 0x36D924 ++ PAGEDOWN 0x37D904 ++ HELP 0x376912 ++ SETTINGS 0x373918 ++ EXIT 0x366932 ++ A 0x37E902 ++ B 0x36193C ++ C 0x37191C ++ LAST 0x36E123 ++ FAV 0x37F101 ++ DAYMINUS 0x0E163D ++ DAYPLUS 0x0FE603 ++ CHUP 0x377111 ++ CHDOWN 0x36F121 ++ 1 0x36113D ++ 2 0x37111D ++ 3 0x36912D ++ 4 0x37910D ++ 5 0x365135 ++ 6 0x375115 ++ 7 0x36D125 ++ 8 0x37D105 ++ 9 0x363139 ++ 0 0x373119 ++ ENTER 0x363139 ++ REW 0x37291A ++ PLAY 0x37990C ++ FF 0x36293A ++ REC 0x375914 ++ STOP 0x365934 ++ PAUSE 0x374117 ++ end codes ++ ++end remote ++ ++ ++begin remote ++ ++ name TWC_UR4-P360-SONY ++ bits 11 ++ flags SPACE_ENC|CONST_LENGTH ++ eps 30 ++ aeps 100 ++ ++ header 2370 598 ++ one 1179 598 ++ zero 582 598 ++ ptrail 582 ++ gap 45000 ++ min_repeat 2 ++ toggle_bit 0 ++ ++ ++ begin codes ++ VOLUP 0x248 ++ VOLDOWN 0x648 ++ MUTE 0x148 ++ end codes ++ ++end remote ++ ++ +diff -urNad lirc-0.8.3~pre1~/transmitters/scientificatlanta/general.conf lirc-0.8.3~pre1/transmitters/scientificatlanta/general.conf +--- lirc-0.8.3~pre1~/transmitters/scientificatlanta/general.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/transmitters/scientificatlanta/general.conf 2008-03-24 00:36:10.000000000 -0500 +@@ -0,0 +1,85 @@ ++# ++# this config file was automatically generated ++# using lirc-0.6.6(sir) on Wed Mar 24 22:28:59 2004 ++# ++# Modified by Stephane Lavergne : ++# Base frequency is 56kHz, irrecord was otherwise right on. ++# ++# contributed by ++# ++# brand: Scientific Atlanta ++# model no. of remote control: AT8400 ++# devices being controlled by this remote: Explorer 8000 ++# ++ ++begin remote ++ ++ name SAE8000 ++ bits 22 ++ flags SPACE_ENC|CONST_LENGTH ++ eps 30 ++ aeps 100 ++ ++ header 3397 3372 ++ one 827 2557 ++ zero 827 855 ++ ptrail 827 ++ gap 101386 ++ toggle_bit 0 ++ ++ frequency 56000 ++ ++ begin codes ++ power 0x000000000037C107 ++ guide 0x000000000036C127 ++ menu 0x000000000036F920 ++ info 0x000000000036213B ++ select_up 0x000000000036812F ++ select_down 0x000000000037A10B ++ select 0x0000000000366133 ++ select_left 0x000000000037810F ++ select_right 0x0000000000364137 ++ select_page+ 0x000000000036D924 ++ select_page- 0x000000000037D904 ++ exit 0x0000000000366932 ++ settings 0x0000000000373918 ++ A 0x000000000037E902 ++ B 0x000000000036193C ++ C 0x000000000037191C ++ vol+ 0x000000000036093E ++ vol- 0x000000000037091E ++ ch+ 0x0000000000377111 ++ ch- 0x000000000036F121 ++ mute 0x000000000036892E ++ fav 0x000000000037F101 ++ last 0x000000000036E123 ++ rew8secs 0x000000000037C906 ++ list 0x000000000036C926 ++ live 0x000000000036B129 ++ rew 0x000000000037291A ++ ff 0x000000000036293A ++ play 0x000000000037990C ++ stop 0x0000000000365934 ++ pause 0x0000000000374117 ++ rec 0x0000000000375914 ++ 1 0x000000000036113D ++ 2 0x000000000037111D ++ 3 0x000000000036912D ++ 4 0x000000000037910D ++ 5 0x0000000000365135 ++ 6 0x0000000000375115 ++ 7 0x000000000036D125 ++ 8 0x000000000037D105 ++ 9 0x0000000000363139 ++ asterisk 0x000000000037E103 ++ 0 0x0000000000373119 ++ pound 0x000000000036B928 ++ pip_power 0x000000000037B908 ++ pip_swap 0x0000000000367930 ++ pip_move 0x0000000000377910 ++ pip_ch+ 0x000000000036E922 ++ pip_ch- 0x000000000037F900 ++ video_source 0x0000000000376113 ++ end codes ++ ++end remote +diff -urNad lirc-0.8.3~pre1~/transmitters/sky/general.conf lirc-0.8.3~pre1/transmitters/sky/general.conf +--- lirc-0.8.3~pre1~/transmitters/sky/general.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/transmitters/sky/general.conf 2008-03-24 00:35:50.000000000 -0500 +@@ -0,0 +1,72 @@ ++# ++# this config file was automatically generated ++# using lirc-0.8.0(userspace) on Fri Jul 28 02:45:39 2006 ++# ++# contributed by Lloyd Williams ++# ++# brand: SKY ++# model no. of remote control: URC 1650-00 B00 - 9RC16P-1014 Sky+ Rev 6 ++# devices being controlled by this remote: SKY+ DVB-S receiver & PVR ++# ++ ++begin remote ++ ++ name sky ++ bits 8 ++ flags RC6|CONST_LENGTH ++ eps 30 ++ aeps 100 ++ ++ header 2691 890 ++ one 427 460 ++ zero 427 460 ++ pre_data_bits 17 ++ pre_data 0x3FF3 ++ gap 149845 ++ min_repeat 2 ++ toggle_bit 0 ++ ++ rc6_mask 0x100000 ++ ++ begin codes ++ POWER 0xF3 ++ TV_GUIDE 0x33 ++ BOX_OFFICE 0x82 ++ SERVICES 0x81 ++ INTERACTIVE 0x0A ++ INFO 0x34 ++ UP 0xA7 ++ LEFT 0xA5 ++ RIGHT 0xA4 ++ DOWN 0xA6 ++ SELECT 0xA3 ++ CH+ 0xDF ++ CH- 0xDE ++ TEXT 0xC3 ++ BACK_UP 0x7C ++ HELP 0x7E ++ FREV 0xC2 ++ FFWD 0xD7 ++ PLAY 0xC1 ++ PAUSE 0xDB ++ RECORD 0xBF ++ STOP 0xC0 ++ RED 0x92 ++ GREEN 0x91 ++ YELLOW 0x90 ++ BLUE 0x8F ++ 1 0xFE ++ 2 0xFD ++ 3 0xFC ++ 4 0xFB ++ 5 0xFA ++ 6 0xF9 ++ 7 0xF8 ++ 8 0xF7 ++ 9 0xF6 ++ 0 0xFF ++ SKY 0x7F ++ TV 0x7B ++ end codes ++ ++end remote --- lirc-0.8.3~pre1.orig/debian/patches/00list +++ lirc-0.8.3~pre1/debian/patches/00list @@ -0,0 +1,20 @@ +03_extra_files.dpatch +04_man_pages.dpatch +05_fix_cmdir.dpatch +12_pvr150_transmit_support.dpatch +13-warning-cleanup.dpatch +16_lirc-gpio.dpatch +20_serial_igor.dpatch +21_atiusb.dpatch +22_hauppauge_novat_500.dpatch +23_pad2keys.dpatch +24_freecom_dvbt.dpatch +25_upstream_2_6_24.dpatch +26_transmitter_lircd.conf.dpatch +27_multiple_include.dpatch +28_irrecord_resume_support.dpatch +29_macmini_repeat.dpatch +30_medion_md1_remote.dpatch +31_hauppauge_hvr_1100.dpatch +32_radioshack_15_2116_remote.dpatch +33_asus_mycinema_remote.dpatch --- lirc-0.8.3~pre1.orig/debian/patches/24_freecom_dvbt.dpatch +++ lirc-0.8.3~pre1/debian/patches/24_freecom_dvbt.dpatch @@ -0,0 +1,57 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 24_freecom_dvbt.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Adds support for a freecom dvb-t card (LP: #152539). + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2007-10-30 16:11:43.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2007-10-30 16:12:30.000000000 -0400 +@@ -71,6 +71,7 @@ + FlyVideo 98 (card 30);devinput;none;hw_default;life-view/lircd.conf.flyvideo; + FlyVideo 98/FM /2000S (card 56);devinput;none;hw_default;life-view/lircd.conf.flyvideo; + Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card 36);devinput;none;hw_default;life-view/lircd.conf.flyvideo; ++Freecom DVB-T USB Stick;devinput;none;hw_default;freecom/lircd.conf.freeconf + Hauppauge TV card;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge Nova-T 500;devinput;none;hw_devinput;hauppauge/lircd.conf.hauppauge_novat500; + Hauppauge HVR-1300;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; +diff -urNad lirc-0.8.3~pre1~/remotes/freecom/lircd.conf.freeconf lirc-0.8.3~pre1/remotes/freecom/lircd.conf.freeconf +--- lirc-0.8.3~pre1~/remotes/freecom/lircd.conf.freeconf 1969-12-31 19:00:00.000000000 -0500 ++++ lirc-0.8.3~pre1/remotes/freecom/lircd.conf.freeconf 2007-10-30 16:13:46.000000000 -0400 +@@ -0,0 +1,35 @@ ++#Freecom DVB-T Stick ++#By Nico Rdo ++ ++begin remote ++ name Freecom_DVB-T_USB ++ bits 16 ++ eps 30 ++ aeps 100 ++ one 0 0 ++ zero 0 0 ++ pre_data_bits 16 ++ pre_data 0x8001 ++ gap 237493 ++ toggle_bit 0 ++ begin codes ++ POWER 0x0074 ++ MUTE 0x0071 ++ 0 0x000B ++ 1 0x0002 ++ 2 0x0003 ++ 3 0x0004 ++ 4 0x0005 ++ 5 0x0006 ++ 6 0x0007 ++ 7 0x0008 ++ 8 0x0009 ++ 9 0x000A ++ VOL_UP 0x0073 ++ VOL_DOWN 0x0072 ++ CH_UP 0x0192 ++ CH_DOWN 0x0193 ++ ZOOM 0x0174 ++ JUMP 0x0161 ++ end codes ++end remote --- lirc-0.8.3~pre1.orig/debian/patches/12_pvr150_transmit_support.dpatch +++ lirc-0.8.3~pre1/debian/patches/12_pvr150_transmit_support.dpatch @@ -0,0 +1,2050 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## pvr150_transmit_support.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Provides transmitter support via lirc_pvr150 module + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/configure lirc-0.8.3~pre1/configure +--- lirc-0.8.3~pre1~/configure 2008-01-05 05:23:24.000000000 -0600 ++++ lirc-0.8.3~pre1/configure 2008-02-10 21:41:48.000000000 -0600 +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! /bin/sh + if test "$#" = "0"; then + if ! ./setup.sh; then + echo "Please read the documentation!!!" +@@ -1547,8 +1547,9 @@ + creative, creative_infracd, devinput, + digimatrix, dsp, dvico, ea65, exaudio, + flyvideo, gvbctv5pci, hauppauge, +- hauppauge_dvb, hercules_smarttv_stereo, +- i2cuser, igorplugusb, iguanaIR, imon, ++ hauppauge_dvb, hauppauge_pvr150, ++ hercules_smarttv_stereo, i2cuser, ++ igorplugusb, iguanaIR, imon, + imon_24g, imon_knob, imon_pad, imon_rsc, + irdeo, irdeo_remote, irman, irreal, it87, + knc_one, kworld, leadtek_0007, leadtek_0010, +@@ -23220,6 +23221,7 @@ + (lirc_dev lirc_cmdir) \ + (lirc_dev lirc_gpio) \ + (lirc_dev lirc_i2c) \ ++ (lirc_dev lirc_pvr150) \ + (lirc_dev lirc_igorplugusb) \ + (lirc_dev lirc_ttusbir) \ + (lirc_dev lirc_imon) \ +@@ -24921,6 +24923,9 @@ + lirc_dev-lirc_i2c) + #lirc_driver="${lirc_driver} lirc_dev lirc_i2c" + ;; ++ lirc_dev-lirc_pvr150) ++ #lirc_driver="${lirc_driver} lirc_dev lirc_pvr150" ++ ;; + lirc_dev-lirc_igorplugusb) + ;; + lirc_dev-lirc_ttusbir) +@@ -25280,6 +25285,12 @@ + lircmd_conf="hauppauge/lircmd.conf.hauppauge" + fi + ++if test "$driver" = "hauppauge_pvr150"; then ++ lirc_driver="lirc_dev lirc_pvr150" ++ lircd_conf="hauppauge/lircd.conf.hauppauge" ++ lircmd_conf="hauppauge/lircmd.conf.hauppauge" ++fi ++ + if test "$driver" = "hauppauge_dvb"; then + lirc_driver="lirc_dev" + lircd_conf="hauppauge/lircd.conf.hauppauge" +@@ -25804,6 +25815,7 @@ + lirc_cmdir \ + lirc_gpio \ + lirc_i2c \ ++ lirc_pvr150 \ + lirc_igorplugusb \ + lirc_ttusbir \ + lirc_imon \ +@@ -26136,7 +26148,7 @@ + + + +-ac_config_files="$ac_config_files Makefile drivers/Makefile drivers/lirc_atiusb/Makefile drivers/lirc_bt829/Makefile drivers/lirc_cmdir/Makefile drivers/lirc_dev/Makefile drivers/lirc_gpio/Makefile drivers/lirc_i2c/Makefile drivers/lirc_igorplugusb/Makefile drivers/lirc_ttusbir/Makefile drivers/lirc_imon/Makefile drivers/lirc_it87/Makefile drivers/lirc_mceusb/Makefile drivers/lirc_mceusb2/Makefile drivers/lirc_parallel/Makefile drivers/lirc_sasem/Makefile drivers/lirc_serial/Makefile drivers/lirc_sir/Makefile drivers/lirc_streamzap/Makefile daemons/Makefile tools/Makefile doc/Makefile doc/man/Makefile" ++ac_config_files="$ac_config_files Makefile drivers/Makefile drivers/lirc_atiusb/Makefile drivers/lirc_bt829/Makefile drivers/lirc_cmdir/Makefile drivers/lirc_dev/Makefile drivers/lirc_gpio/Makefile drivers/lirc_i2c/Makefile drivers/lirc_pvr150/Makefile drivers/lirc_igorplugusb/Makefile drivers/lirc_ttusbir/Makefile drivers/lirc_imon/Makefile drivers/lirc_it87/Makefile drivers/lirc_mceusb/Makefile drivers/lirc_mceusb2/Makefile drivers/lirc_parallel/Makefile drivers/lirc_sasem/Makefile drivers/lirc_serial/Makefile drivers/lirc_sir/Makefile drivers/lirc_streamzap/Makefile daemons/Makefile tools/Makefile doc/Makefile doc/man/Makefile" + + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure +diff -urNad lirc-0.8.3~pre1~/drivers/Makefile.am lirc-0.8.3~pre1/drivers/Makefile.am +--- lirc-0.8.3~pre1~/drivers/Makefile.am 2008-01-05 05:23:24.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/Makefile.am 2008-02-10 21:41:48.000000000 -0600 +@@ -19,6 +19,7 @@ + lirc_mceusb \ + lirc_mceusb2 \ + lirc_parallel \ ++ lirc_pvr150 \ + lirc_sasem \ + lirc_serial \ + lirc_sir \ +diff -urNad lirc-0.8.3~pre1~/drivers/Makefile.in lirc-0.8.3~pre1/drivers/Makefile.in +--- lirc-0.8.3~pre1~/drivers/Makefile.in 2008-01-05 05:23:24.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/Makefile.in 2008-02-10 21:41:48.000000000 -0600 +@@ -207,6 +207,7 @@ + lirc_mceusb \ + lirc_mceusb2 \ + lirc_parallel \ ++ lirc_pvr150 \ + lirc_sasem \ + lirc_serial \ + lirc_sir \ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_pvr150/Makefile.am lirc-0.8.3~pre1/drivers/lirc_pvr150/Makefile.am +--- lirc-0.8.3~pre1~/drivers/lirc_pvr150/Makefile.am 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_pvr150/Makefile.am 2008-02-10 21:41:48.000000000 -0600 +@@ -0,0 +1,13 @@ ++## $Id: Makefile.am,v 1.1 2005/07/18 11:18:22 lirc Exp $ ++ ++## Process this file with automake to produce Makefile.in ++ ++## this is so that Automake includes the C compiling definitions, and ++## includes the source files in the distribution. ++EXTRA_PROGRAMS = automake_dummy ++automake_dummy_SOURCES = lirc_pvr150.c ++ ++## there is no *just* object file support in automake. This is close enough ++module_DATA = lirc_pvr150.o ++ ++include ../Makefile.common +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_pvr150/Makefile.in lirc-0.8.3~pre1/drivers/lirc_pvr150/Makefile.in +--- lirc-0.8.3~pre1~/drivers/lirc_pvr150/Makefile.in 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_pvr150/Makefile.in 2008-02-10 21:42:55.000000000 -0600 +@@ -0,0 +1,417 @@ ++# Makefile.in generated by automake 1.6.3 from Makefile.am. ++# @configure_input@ ++ ++# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 ++# Free Software Foundation, Inc. ++# This Makefile.in is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++# $Id: Makefile.common,v 5.4 2007/01/17 08:50:31 lirc Exp $ ++SHELL = @SHELL@ ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++bindir = @bindir@ ++sbindir = @sbindir@ ++libexecdir = @libexecdir@ ++datadir = @datadir@ ++sysconfdir = @sysconfdir@ ++sharedstatedir = @sharedstatedir@ ++localstatedir = @localstatedir@ ++libdir = @libdir@ ++infodir = @infodir@ ++mandir = @mandir@ ++includedir = @includedir@ ++oldincludedir = /usr/include ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++top_builddir = ../.. ++ ++ACLOCAL = @ACLOCAL@ ++AUTOCONF = @AUTOCONF@ ++AUTOMAKE = @AUTOMAKE@ ++AUTOHEADER = @AUTOHEADER@ ++ ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_DATA = @INSTALL_DATA@ ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = @program_transform_name@ ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++host_alias = @host_alias@ ++host_triplet = @host@ ++ ++EXEEXT = @EXEEXT@ ++OBJEXT = @OBJEXT@ ++PATH_SEPARATOR = @PATH_SEPARATOR@ ++AMTAR = @AMTAR@ ++AR = @AR@ ++AS = @AS@ ++AWK = @AWK@ ++CC = @CC@ ++CXX = @CXX@ ++CXXCPP = @CXXCPP@ ++DEPDIR = @DEPDIR@ ++DLLTOOL = @DLLTOOL@ ++ECHO = @ECHO@ ++EGREP = @EGREP@ ++F77 = @F77@ ++GCJ = @GCJ@ ++GCJFLAGS = @GCJFLAGS@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LIBTOOL = @LIBTOOL@ ++LIBUSB_CONFIG = @LIBUSB_CONFIG@ ++LN_S = @LN_S@ ++OBJDUMP = @OBJDUMP@ ++PACKAGE = @PACKAGE@ ++RANLIB = @RANLIB@ ++RC = @RC@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++X_CFLAGS = @X_CFLAGS@ ++X_EXTRA_LIBS = @X_EXTRA_LIBS@ ++X_LIBS = @X_LIBS@ ++X_PRE_LIBS = @X_PRE_LIBS@ ++ac_pkss_mktemp = @ac_pkss_mktemp@ ++alsa_lib = @alsa_lib@ ++am__include = @am__include@ ++am__quote = @am__quote@ ++atilibusb_lib = @atilibusb_lib@ ++caraca_lib = @caraca_lib@ ++daemon = @daemon@ ++depmod = @depmod@ ++devdir = @devdir@ ++driver = @driver@ ++forkpty = @forkpty@ ++hw_module = @hw_module@ ++iguanaIR_lib = @iguanaIR_lib@ ++install_sh = @install_sh@ ++irman_lib = @irman_lib@ ++irtty = @irtty@ ++kernelcc = @kernelcc@ ++kerneldir = @kerneldir@ ++kernelext = @kernelext@ ++lirc_driver = @lirc_driver@ ++lirc_major = @lirc_major@ ++lircd_conf = @lircd_conf@ ++lircmd_conf = @lircmd_conf@ ++maintmode_daemons_extra = @maintmode_daemons_extra@ ++mkfifo = @mkfifo@ ++mknod = @mknod@ ++moduledir = @moduledir@ ++portaudio_lib = @portaudio_lib@ ++vga_progs = @vga_progs@ ++x_progs = @x_progs@ ++ ++EXTRA_PROGRAMS = automake_dummy ++automake_dummy_SOURCES = lirc_pvr150.c ++ ++module_DATA = lirc_pvr150.o ++ ++# where the kernel sources are located ++KERNEL_LOCATION = @kerneldir@ ++ ++LIRC_DEVDIR = $(shell pwd) ++ ++# some magic for using linux kernel settings ++# when compiling module(s) ++KBUILD_VERBOSE = 1 ++LIRC_EXTRA_CFLAGS = -DIRCTL_DEV_MAJOR=$(lirc_major) -DEXPORT_SYMTAB $(DEFS) \ ++ $(DEFAULT_INCLUDES) -I$(LIRC_DEVDIR)/../.. \ ++ -I$(KERNEL_LOCATION)/include/ \ ++ -I$(KERNEL_LOCATION)/drivers/media/video/ ++ ++ ++CLEANFILES = $(module_DATA) .$(module_DATA).flags $(module_DATA:.o=.mod.c) $(module_DATA:.o=.@kernelext@) *~ ++subdir = drivers/lirc_pvr150 ++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs ++CONFIG_HEADER = $(top_builddir)/config.h ++CONFIG_CLEAN_FILES = ++EXTRA_PROGRAMS = automake_dummy$(EXEEXT) ++am_automake_dummy_OBJECTS = lirc_pvr150.$(OBJEXT) ++automake_dummy_OBJECTS = $(am_automake_dummy_OBJECTS) ++automake_dummy_LDADD = $(LDADD) ++automake_dummy_DEPENDENCIES = ++automake_dummy_LDFLAGS = ++ ++DEFS = @DEFS@ ++DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) ++CPPFLAGS = @CPPFLAGS@ ++LDFLAGS = @LDFLAGS@ ++LIBS = @LIBS@ ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/lirc_pvr150.Po ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ ++ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ ++ $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++CFLAGS = @CFLAGS@ ++DIST_SOURCES = $(automake_dummy_SOURCES) ++DATA = $(module_DATA) ++ ++DIST_COMMON = Makefile.am Makefile.in ++SOURCES = $(automake_dummy_SOURCES) ++ ++all: all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .lo .o .obj ++$(srcdir)/Makefile.in: Makefile.am $(srcdir)/../Makefile.common $(top_srcdir)/configure.in $(ACLOCAL_M4) ++ cd $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu drivers/lirc_pvr150/Makefile ++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status ++ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) ++automake_dummy$(EXEEXT): $(automake_dummy_OBJECTS) $(automake_dummy_DEPENDENCIES) ++ @rm -f automake_dummy$(EXEEXT) ++ $(LINK) $(automake_dummy_LDFLAGS) $(automake_dummy_OBJECTS) $(automake_dummy_LDADD) $(LIBS) ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) core *.core ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lirc_pvr150.Po@am__quote@ ++ ++distclean-depend: ++ -rm -rf ./$(DEPDIR) ++ ++.c.o: ++@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< ++ ++.c.obj: ++@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++ $(COMPILE) -c `cygpath -w $<` ++ ++.c.lo: ++@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ ++@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< ++CCDEPMODE = @CCDEPMODE@ ++ ++mostlyclean-libtool: ++ -rm -f *.lo ++ ++clean-libtool: ++ -rm -rf .libs _libs ++ ++distclean-libtool: ++ -rm -f libtool ++uninstall-info-am: ++moduleDATA_INSTALL = $(INSTALL_DATA) ++ ++ETAGS = etags ++ETAGSFLAGS = ++ ++tags: TAGS ++ ++ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ mkid -fID $$unique ++ ++TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ ++ unique=`for i in $$list; do \ ++ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ ++ done | \ ++ $(AWK) ' { files[$$0] = 1; } \ ++ END { for (i in files) print i; }'`; \ ++ test -z "$(ETAGS_ARGS)$$tags$$unique" \ ++ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$tags $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && cd $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) $$here ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH ++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ++ ++top_distdir = ../.. ++distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) ++ ++distdir: $(DISTFILES) ++ @list='$(DISTFILES)'; for file in $$list; do \ ++ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ ++ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ ++ dir="/$$dir"; \ ++ $(mkinstalldirs) "$(distdir)$$dir"; \ ++ else \ ++ dir=''; \ ++ fi; \ ++ if test -d $$d/$$file; then \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ ++ fi; \ ++ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || cp -p $$d/$$file $(distdir)/$$file \ ++ || exit 1; \ ++ fi; \ ++ done ++check-am: all-am ++check: check-am ++all-am: Makefile $(DATA) ++ ++installdirs: ++ $(mkinstalldirs) $(DESTDIR)$(moduledir) ++ ++install: install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) ++ ++distclean-generic: ++ -rm -f Makefile $(CONFIG_CLEAN_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++clean: clean-am ++ ++clean-am: clean-generic clean-libtool mostlyclean-am ++ ++distclean: distclean-am ++ ++distclean-am: clean-am distclean-compile distclean-depend \ ++ distclean-generic distclean-libtool distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-data-local install-moduleDATA ++ ++install-exec-am: install-exec-local ++ ++install-info: install-info-am ++ ++install-man: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool ++ ++uninstall-am: uninstall-info-am uninstall-local uninstall-moduleDATA ++ ++.PHONY: GTAGS all all-am check check-am clean clean-generic \ ++ clean-libtool distclean distclean-compile distclean-depend \ ++ distclean-generic distclean-libtool distclean-tags distdir dvi \ ++ dvi-am info info-am install install-am install-data \ ++ install-data-am install-data-local install-exec install-exec-am \ ++ install-exec-local install-info install-info-am install-man \ ++ install-moduleDATA install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic \ ++ mostlyclean-libtool tags uninstall uninstall-am \ ++ uninstall-info-am uninstall-local uninstall-moduleDATA ++ ++export LIRC_EXTRA_CFLAGS KERNEL_LOCATION module_DATA ++ ++$(module_DATA): $(automake_dummy_SOURCES) $(top_srcdir)/config.h ../lirc.h ++ mv Makefile Makefile.automake ++ cp ../Makefile.kernel Makefile ++ $(MAKE) -C $(KERNEL_LOCATION) SUBDIRS=$(LIRC_DEVDIR) modules \ ++ KBUILD_VERBOSE=$(KBUILD_VERBOSE) ++ mv Makefile.automake Makefile ++ ++install-moduleDATA: $(module_DATA) ++ $(mkinstalldirs) $(DESTDIR)$(moduledir) ++ @list='$(module_DATA:.o=.@kernelext@)'; for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ f="`echo $$p | sed -e 's|^.*/||'`"; \ ++ echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(moduledir)/$$f"; \ ++ $(INSTALL_DATA) $$d$$p $(DESTDIR)$(moduledir)/$$f; \ ++ done ++ ++uninstall-moduleDATA: ++ @list='$(module_DATA:.o=.@kernelext@)'; for p in $$list; do \ ++ f="`echo $$p | sed -e 's|^.*/||'`"; \ ++ echo " rm -f $(DESTDIR)$(moduledir)/$$f"; \ ++ rm -f $(DESTDIR)$(moduledir)/$$f; \ ++ done ++ ++@SANDBOXED_FALSE@install-exec-local: mkdev ++@SANDBOXED_FALSE@uninstall-local: rmdev ++ ++mkdev: ++ test -e $(DESTDIR)$(devdir)/lirc || ($(mkinstalldirs) $(DESTDIR)$(devdir) && @mknod@ $(DESTDIR)$(devdir)/lirc c @lirc_major@ 0) ++ ++rmdev: ++ -test -c $(DESTDIR)$(devdir)/lirc && $(RM) $(DESTDIR)$(devdir)/lirc ++ ++@SANDBOXED_FALSE@install-data-local: install-moduleDATA ++@SANDBOXED_FALSE@ -@depmod@ -a ++# Tell versions [3.59,3.63) of GNU make to not export all variables. ++# Otherwise a system limit (for SysV at least) may be exceeded. ++.NOEXPORT: +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_pvr150/lirc_pvr150.c lirc-0.8.3~pre1/drivers/lirc_pvr150/lirc_pvr150.c +--- lirc-0.8.3~pre1~/drivers/lirc_pvr150/lirc_pvr150.c 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_pvr150/lirc_pvr150.c 2008-02-10 21:41:48.000000000 -0600 +@@ -0,0 +1,1483 @@ ++/* $Id: $ */ ++ ++/* ++ * i2c IR lirc plugin for Hauppauge PVR 150 card ++ * ++ * Copyright (c) 2000 Gerd Knorr ++ * modified for PixelView (BT878P+W/FM) by ++ * Michal Kochanowicz ++ * Christoph Bartelmus ++ * modified for KNC ONE TV Station/Anubis Typhoon TView Tuner by ++ * Ulrich Mueller ++ * modified for Asus TV-Box and Creative/VisionTek BreakOut-Box by ++ * Stefan Jahn ++ * modified for inclusion into kernel sources by ++ * Jerome Brock ++ * modified for Leadtek Winfast PVR2000 by ++ * Thomas Reitmayr (treitmayr@yahoo.com) ++ * modified for Hauppauge PVR-150 IR TX device by ++ * Mark Weaver ++ * ++ * parts are cut&pasted from the lirc_pvr150.c driver ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "drivers/kcompat.h" ++#include "drivers/lirc_dev/lirc_dev.h" ++#include "drivers/lirc.h" ++ ++/* We need to be able to reset the crappy IR chip by talking to the ivtv driver */ ++struct ivtv; ++void ivtv_reset_ir_gpio(struct ivtv *itv); ++ ++struct IR ++{ ++ struct lirc_plugin l; ++ ++ /* Device info */ ++ struct semaphore lock; ++ int open; ++ ++ /* RX device */ ++ struct i2c_client c_rx; ++ ++ /* RX device buffer & lock */ ++ struct lirc_buffer buf; ++ struct semaphore buf_sem; ++ ++ /* RX polling thread data */ ++ struct completion *t_notify; ++ struct completion *t_notify2; ++ int shutdown; ++ int tpid; ++ ++ /* RX read data */ ++ unsigned char b[3]; ++ ++ /* TX device */ ++ struct i2c_client c_tx; ++ int need_boot; ++ ++ /* # devices, for shutdown */ ++ int devs; ++}; ++ ++/* Minor -> data mapping */ ++static struct IR *ir_devices[MAX_IRCTL_DEVICES]; ++ ++/* Block size for haup PVR-150 IR transmitter */ ++#define TX_BLOCK_SIZE 99 ++ ++/* Hauppuage IR transmitter data */ ++typedef struct TX_DATA_s ++{ ++ /* Boot block */ ++ unsigned char *boot_data; ++ ++ /* Start of binary data block */ ++ unsigned char *datap; ++ ++ /* End of binary data block */ ++ unsigned char *endp; ++ ++ /* Number of installed codesets */ ++ unsigned int num_code_sets; ++ ++ /* Pointers to codesets */ ++ unsigned char **code_sets; ++ ++ /* Global fixed data template */ ++ int fixed[TX_BLOCK_SIZE]; ++} TX_DATA; ++ ++static TX_DATA *tx_data; ++struct semaphore tx_data_lock; ++ ++/* ----------------------------------------------------------------------- */ ++ ++#define DEVICE_NAME "lirc_pvr150" ++ ++/* ----------------------------------------------------------------------- */ ++/* insmod parameters */ ++ ++static int debug = 0; /* debug output */ ++static int disable_rx = 0; /* disable RX device */ ++static int disable_tx = 0; /* disable TX device */ ++static int minor = -1; /* minor number */ ++ ++#define dprintk(fmt, args...) \ ++ do{ \ ++ if(debug) printk(KERN_DEBUG DEVICE_NAME ": " fmt, \ ++ ## args); \ ++ }while(0) ++ ++/* ----------------------------------------------------------------------- */ ++ ++static int add_to_buf(struct IR *ir) ++{ ++ __u16 code; ++ unsigned char codes[2]; ++ unsigned char keybuf[6]; ++ int got_data = 0; ++ int ret; ++ int failures = 0; ++ unsigned char sendbuf[1] = { 0 }; ++ ++ if (lirc_buffer_full(&ir->buf)) { ++ dprintk("buffer overflow\n"); ++ return -EOVERFLOW; ++ } ++ ++ /* service the device as long as it is returning ++ * data and we have space ++ */ ++ do ++ { ++ /* Lock i2c bus for the duration. RX/TX chips interfere so ++ this is worth it ++ */ ++ down(&ir->lock); ++ ++ /* Send random "poll command" (?) Windows driver does this ++ and it is a good point to detect chip failure. ++ */ ++ ret = i2c_master_send(&ir->c_rx, sendbuf, 1); ++ if (ret != 1) ++ { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ++ ret); ++ if (failures >= 3) { ++ up(&ir->lock); ++ printk(KERN_ERR "lirc_pvr150: unable to read " ++ "from the IR chip after 3 " ++ "resets, giving up\n"); ++ return ret; ++ } ++ ++ /* Looks like the chip crashed, reset it */ ++ printk(KERN_ERR "lirc_pvr150: polling the IR receiver " ++ "chip failed, trying reset\n"); ++ ++ ivtv_reset_ir_gpio(i2c_get_adapdata(ir->c_rx.adapter)); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ schedule_timeout((100 * HZ + 999) / 1000); ++ ir->need_boot = 1; ++ ++ ++failures; ++ up(&ir->lock); ++ continue; ++ } ++ ++ ret = i2c_master_recv(&ir->c_rx, keybuf, sizeof(keybuf)); ++ up(&ir->lock); ++ if (ret != sizeof(keybuf)) ++ { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_recv failed with %d" ++ " -- keeping last read buffer\n", ret); ++ } ++ else ++ { ++ ir->b[0] = keybuf[3]; ++ ir->b[1] = keybuf[4]; ++ ir->b[2] = keybuf[5]; ++ dprintk("key (0x%02x/0x%02x)\n", ir->b[0], ir->b[1]); ++ } ++ ++ /* key pressed ? */ ++ if ((ir->b[0] & 0x80) == 0) ++ return got_data ? 0 : -ENODATA; ++ ++ /* look what we have */ ++ code = (((__u16)ir->b[0]&0x7f)<<6) | (ir->b[1]>>2); ++ ++ codes[0] = (code >> 8) & 0xff; ++ codes[1] = code & 0xff; ++ ++ /* return it */ ++ lirc_buffer_write_1( &ir->buf, codes ); ++ ++got_data; ++ } while (!lirc_buffer_full(&ir->buf)); ++ return 0; ++} ++ ++/* Main function of the polling thread -- from lirc_dev. ++ * We don't fit the LIRC model at all anymore. This is horrible, but ++ * basically we have a single RX/TX device with a nasty failure mode ++ * that needs to be accounted for across the pair. lirc lets us provide ++ * fops, but prevents us from using the internal polling, etc. if we do ++ * so. Hence the replication. Might be neater to extend the LIRC model ++ * to account for this but I'd think it's a very special case of seriously ++ * messed up hardware. ++ */ ++static int lirc_thread(void *arg) ++{ ++ struct IR *ir = arg; ++ ++ /* This thread doesn't need any user-level access, ++ * so get rid of all our resources ++ */ ++ daemonize("lirc_pvr150"); ++ ++ if (ir->t_notify != NULL) { ++ complete(ir->t_notify); ++ } ++ ++ dprintk("poll thread started\n"); ++ ++ do { ++ if (ir->open) { ++ set_current_state(TASK_INTERRUPTIBLE); ++ ++ /* This is ~113*2 + 24 + jitter (2*repeat gap + ++ code length). We use this interval as the chip ++ resets every time you poll it (bad!). This is ++ therefore just sufficient to catch all of the ++ button presses. It makes the remote much more ++ responsive. You can see the difference by ++ running irw and holding down a button. With ++ 100ms, the old polling interval, you'll notice ++ breaks in the repeat sequence corresponding to ++ lost keypresses. ++ */ ++ schedule_timeout((260 * HZ) / 1000); ++ if (ir->shutdown) { ++ break; ++ } ++ if (!add_to_buf(ir)) { ++ wake_up_interruptible(&ir->buf.wait_poll); ++ } ++ } else { ++ /* if device not opened so we can sleep half a second */ ++ set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(HZ/2); ++ } ++ } while (!ir->shutdown); ++ ++ if (ir->t_notify2 != NULL) { ++ wait_for_completion(ir->t_notify2); ++ } ++ ++ ir->tpid = -1; ++ if (ir->t_notify != NULL) { ++ complete(ir->t_notify); ++ } ++ ++ dprintk("poll thread ended\n"); ++ return 0; ++} ++ ++static int set_use_inc(void* data) ++{ ++ struct IR *ir = data; ++ ++ if (ir->l.owner == NULL || try_module_get(ir->l.owner) == 0) { ++ return -ENODEV; ++ } ++ ++ /* lock bttv in memory while /dev/lirc is in use */ ++ /* this is completely broken code. lirc_unregister_plugin() ++ must be possible even when the device is open */ ++ if (ir->c_rx.addr) i2c_use_client(&ir->c_rx); ++ if (ir->c_tx.addr) i2c_use_client(&ir->c_tx); ++ MOD_INC_USE_COUNT; ++ ++ return 0; ++} ++ ++static void set_use_dec(void* data) ++{ ++ struct IR *ir = data; ++ ++ if (ir->c_rx.addr) i2c_release_client(&ir->c_rx); ++ if (ir->c_tx.addr) i2c_release_client(&ir->c_tx); ++ MOD_DEC_USE_COUNT; ++ if (ir->l.owner != NULL) ++ module_put(ir->l.owner); ++} ++ ++/* safe read of a uint32 (always network byte order) */ ++static __inline int read_uint32(unsigned char **data, ++ unsigned char *endp, unsigned int *val) ++{ ++ if (*data + 4 > endp) ++ return 0; ++ *val = ((*data)[0] << 24) | ((*data)[1] << 16) | ++ ((*data)[2] << 8) | (*data)[3]; ++ *data += 4; ++ return 1; ++} ++ ++/* safe read of a uint8 */ ++static __inline int read_uint8(unsigned char **data, ++ unsigned char *endp, unsigned char *val) ++{ ++ if (*data + 1 > endp) ++ return 0; ++ *val = *((*data)++); ++ return 1; ++} ++ ++/* safe skipping of N bytes */ ++static __inline int skip(unsigned char **data, ++ unsigned char *endp, unsigned int distance) ++{ ++ if (*data + distance > endp) ++ return 0; ++ *data += distance; ++ return 1; ++} ++ ++/* decompress key data into the given buffer */ ++static int get_key_data(unsigned char *buf, ++ unsigned int codeset, unsigned int key) ++{ ++ unsigned char *data, *endp, *diffs, *key_block; ++ unsigned char keys, ndiffs, id; ++ unsigned int base, lim, pos, i; ++ ++ /* Binary search for the codeset */ ++ for (base = 0, lim = tx_data->num_code_sets; lim; lim >>= 1) { ++ pos = base + (lim >> 1); ++ data = tx_data->code_sets[pos]; ++ ++ if (!read_uint32(&data, tx_data->endp, &i)) ++ goto corrupt; ++ ++ if (i == codeset) ++ break; ++ else if (codeset > i) { ++ base = pos + 1; ++ --lim; ++ } ++ } ++ /* Not found? */ ++ if (!lim) ++ return -EPROTO; ++ ++ /* Set end of data block */ ++ endp = pos < tx_data->num_code_sets - 1 ? ++ tx_data->code_sets[pos + 1] : tx_data->endp; ++ ++ /* Read the block header */ ++ if (!read_uint8(&data, endp, &keys) || ++ !read_uint8(&data, endp, &ndiffs) || ++ ndiffs > TX_BLOCK_SIZE || keys == 0) ++ goto corrupt; ++ ++ /* Save diffs & skip */ ++ diffs = data; ++ if (!skip(&data, endp, ndiffs)) ++ goto corrupt; ++ ++ /* Read the id of the first key */ ++ if (!read_uint8(&data, endp, &id)) ++ goto corrupt; ++ ++ /* Unpack the first key's data */ ++ for (i = 0; i < TX_BLOCK_SIZE; ++i) ++ { ++ if (tx_data->fixed[i] == -1) ++ { ++ if (!read_uint8(&data, endp, &buf[i])) ++ goto corrupt; ++ } ++ else ++ { ++ buf[i] = (unsigned char)tx_data->fixed[i]; ++ } ++ } ++ ++ /* Early out key found/not found */ ++ if (key == id) ++ return 0; ++ if (keys == 1) ++ return -EPROTO; ++ ++ /* Sanity check */ ++ key_block = data; ++ if (!skip(&data, endp, (keys - 1) * (ndiffs + 1))) ++ goto corrupt; ++ ++ /* Binary search for the key */ ++ for (base = 0, lim = keys - 1; lim; lim >>= 1) { ++ /* Seek to block */ ++ unsigned char *key_data; ++ pos = base + (lim >> 1); ++ key_data = key_block + (ndiffs + 1) * pos; ++ ++ if (*key_data == key) { ++ /* skip key id */ ++ ++key_data; ++ ++ /* found, so unpack the diffs */ ++ for (i = 0; i < ndiffs; ++i) { ++ unsigned char val; ++ if (!read_uint8(&key_data, endp, &val) || ++ diffs[i] >= TX_BLOCK_SIZE) ++ goto corrupt; ++ buf[diffs[i]] = val; ++ } ++ ++ return 0; ++ } else if (key > *key_data) { ++ base = pos + 1; ++ --lim; ++ } ++ } ++ /* Key not found */ ++ return -EPROTO; ++ ++corrupt: ++ printk(KERN_ERR "lirc_pvr150: firmware is corrupt\n"); ++ return -EFAULT; ++} ++ ++/* send a block of data to the IR TX device of the PVR-150 */ ++static int send_data_block(struct IR *ir, unsigned char *data_block) ++{ ++ int i, j, ret; ++ unsigned char buf[5]; ++ ++ for (i = 0; i < TX_BLOCK_SIZE; ) ++ { ++ int tosend = TX_BLOCK_SIZE - i; ++ if (tosend > 4) ++ tosend = 4; ++ buf[0] = (unsigned char)(i + 1); ++ for (j = 0; j < tosend; ++j) ++ buf[1 + j] = data_block[i + j]; ++ dprintk("%02x %02x %02x %02x %02x", ++ buf[0],buf[1],buf[2],buf[3],buf[4]); ++ ret = i2c_master_send(&ir->c_tx, buf, tosend + 1); ++ if (ret != tosend + 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ++ ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ i += tosend; ++ } ++ return 0; ++} ++ ++/* send boot data to the IR TX device of the PVR-150 */ ++static int send_boot_data(struct IR *ir) ++{ ++ int ret; ++ unsigned char buf[4]; ++ ++ /* send the boot block */ ++ ret = send_data_block(ir, tx_data->boot_data); ++ if (ret != 0) ++ return ret; ++ ++ /* kick it off? */ ++ buf[0] = 0x00; ++ buf[1] = 0x20; ++ ret = i2c_master_send(&ir->c_tx, buf, 2); ++ if (ret != 2) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ret = i2c_master_send(&ir->c_tx, buf, 1); ++ if (ret != 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ++ /* Here comes the firmware version... (hopefully) */ ++ ret = i2c_master_recv(&ir->c_tx, buf, 4); ++ if (ret != 4) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_recv failed with %d\n", ret); ++ return 0; ++ } ++ if (buf[0] != 0x80) { ++ printk(KERN_ERR ++ "lirc_pvr150: unexpected IR TX response: %02x\n", ++ buf[0]); ++ return 0; ++ } ++ printk(KERN_INFO ++ "lirc_pvr150: Hauppauge PVR-150 IR blaster: " ++ "firmware version %d.%d.%d\n", ++ buf[1], buf[2], buf[3]); ++ ++ return 0; ++} ++ ++/* unload "firmware", lock held */ ++static void fw_unload_locked(void) ++{ ++ if (tx_data) { ++ if (tx_data->code_sets) ++ vfree(tx_data->code_sets); ++ ++ if (tx_data->datap) ++ vfree(tx_data->datap); ++ ++ vfree(tx_data); ++ tx_data = NULL; ++ dprintk("successfully unloaded PVR-150 IR " ++ "blaster firmware\n"); ++ } ++} ++ ++/* unload "firmware" for the IR TX device of the PVR-150 */ ++static void fw_unload(void) ++{ ++ down(&tx_data_lock); ++ fw_unload_locked(); ++ up(&tx_data_lock); ++} ++ ++/* load "firmware" for the IR TX device of the PVR-150 */ ++static int fw_load(struct IR *ir) ++{ ++ int ret; ++ unsigned int i; ++ unsigned char *data, version, num_global_fixed; ++ const struct firmware *fw_entry = NULL; ++ ++ /* Already loaded? */ ++ down(&tx_data_lock); ++ if (tx_data) { ++ ret = 0; ++ goto out; ++ } ++ ++ /* Request codeset data file */ ++ ret = request_firmware(&fw_entry, "haup-ir-blaster.bin", &ir->c_tx.dev); ++ if (ret != 0) { ++ printk(KERN_ERR ++ "lirc_pvr150: firmware haup-ir-blaster.bin " ++ "not available (%d)\n", ret); ++ ret = ret < 0 ? ret : -EFAULT; ++ goto out; ++ } ++ printk(KERN_INFO ++ "lirc_pvr150: firmware of size %zd loaded\n", fw_entry->size); ++ ++ /* Parse the file */ ++ tx_data = vmalloc(sizeof(TX_DATA)); ++ if (tx_data == NULL) { ++ printk(KERN_ERR ++ "lirc_pvr150: out of memory\n"); ++ release_firmware(fw_entry); ++ ret = -ENOMEM; ++ goto out; ++ } ++ tx_data->code_sets = NULL; ++ ++ /* Copy the data so hotplug doesn't get confused and timeout */ ++ tx_data->datap = vmalloc(fw_entry->size); ++ if (tx_data->datap == NULL) { ++ printk(KERN_ERR ++ "lirc_pvr150: out of memory\n"); ++ release_firmware(fw_entry); ++ vfree(tx_data); ++ ret = -ENOMEM; ++ goto out; ++ } ++ memcpy(tx_data->datap, fw_entry->data, fw_entry->size); ++ tx_data->endp = tx_data->datap + fw_entry->size; ++ release_firmware(fw_entry); fw_entry = NULL; ++ ++ /* Check version */ ++ data = tx_data->datap; ++ if (!read_uint8(&data, tx_data->endp, &version)) ++ goto corrupt; ++ if (version != 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: unsupported code set file version (%u, " ++ "expected 1) -- please upgrade to a newer driver", ++ version); ++ fw_unload_locked(); ++ ret = -EFAULT; ++ goto out; ++ } ++ ++ /* Save boot block for later */ ++ tx_data->boot_data = data; ++ if (!skip(&data, tx_data->endp, TX_BLOCK_SIZE)) ++ goto corrupt; ++ ++ if (!read_uint32(&data, tx_data->endp, ++ &tx_data->num_code_sets)) ++ goto corrupt; ++ ++ printk(KERN_INFO ++ "lirc_pvr150: %u codesets loaded\n", tx_data->num_code_sets); ++ ++ tx_data->code_sets = vmalloc( ++ tx_data->num_code_sets * sizeof(char *)); ++ if (tx_data->code_sets == NULL) { ++ fw_unload_locked(); ++ ret = -ENOMEM; ++ goto out; ++ } ++ ++ for (i = 0; i < TX_BLOCK_SIZE; ++i) ++ tx_data->fixed[i] = -1; ++ ++ /* Read global fixed data template */ ++ if (!read_uint8(&data, tx_data->endp, &num_global_fixed) || ++ num_global_fixed > TX_BLOCK_SIZE) ++ goto corrupt; ++ for (i = 0; i < num_global_fixed; ++i) { ++ unsigned char pos, val; ++ if (!read_uint8(&data, tx_data->endp, &pos) || ++ !read_uint8(&data, tx_data->endp, &val) || ++ pos >= TX_BLOCK_SIZE) { ++ goto corrupt; ++ } ++ tx_data->fixed[pos] = (int)val; ++ } ++ ++ /* Filch out the position of each code set */ ++ for (i = 0; i < tx_data->num_code_sets; ++i) { ++ unsigned int id; ++ unsigned char keys; ++ unsigned char ndiffs; ++ ++ /* Save the codeset position */ ++ tx_data->code_sets[i] = data; ++ ++ /* Read header */ ++ if (!read_uint32(&data, tx_data->endp, &id) || ++ !read_uint8(&data, tx_data->endp, &keys) || ++ !read_uint8(&data, tx_data->endp, &ndiffs) || ++ ndiffs > TX_BLOCK_SIZE || keys == 0) ++ goto corrupt; ++ ++ /* skip diff positions */ ++ if (!skip(&data, tx_data->endp, ndiffs)) ++ goto corrupt; ++ ++ /* After the diffs we have the first key id + data - ++ global fixed */ ++ if (!skip(&data, tx_data->endp, ++ 1 + TX_BLOCK_SIZE - num_global_fixed)) ++ goto corrupt; ++ ++ /* Then we have keys-1 blocks of key id+diffs */ ++ if (!skip(&data, tx_data->endp, ++ (ndiffs + 1) * (keys - 1))) ++ goto corrupt; ++ } ++ ret = 0; ++ goto out; ++ ++corrupt: ++ printk(KERN_ERR "lirc_pvr150: firmware is corrupt\n"); ++ fw_unload_locked(); ++ ret = -EFAULT; ++ ++out: ++ up(&tx_data_lock); ++ return ret; ++} ++ ++/* initialise the IR TX device of the PVR-150 */ ++static int tx_init(struct IR *ir) ++{ ++ int ret; ++ ++ /* Load 'firmware' */ ++ ret = fw_load(ir); ++ if (ret != 0) ++ return ret; ++ ++ /* Send boot block */ ++ ret = send_boot_data(ir); ++ if (ret != 0) ++ return ret; ++ ir->need_boot = 0; ++ ++ /* Looks good */ ++ return 0; ++} ++ ++/* do nothing stub to make LIRC happy */ ++static loff_t lseek(struct file *filep,loff_t offset,int orig) ++{ ++ return(-ESPIPE); ++} ++ ++/* copied from lirc_dev */ ++static ssize_t read(struct file *filep,char *outbuf,size_t n,loff_t *ppos) ++{ ++ struct IR *ir = (struct IR *)filep->private_data; ++ unsigned char buf[ir->buf.chunk_size]; ++ int ret=0, written=0; ++ DECLARE_WAITQUEUE(wait, current); ++ ++ dprintk("read called\n"); ++ if (ir->c_rx.addr == 0) ++ return -ENODEV; ++ ++ if (down_interruptible(&ir->buf_sem)) ++ return -ERESTARTSYS; ++ ++ if (n % ir->buf.chunk_size) { ++ dprintk("read result = -EINVAL\n"); ++ up(&ir->buf_sem); ++ return -EINVAL; ++ } ++ ++ /* we add ourselves to the task queue before buffer check ++ * to avoid losing scan code (in case when queue is awaken somewhere ++ * beetwen while condition checking and scheduling) ++ */ ++ add_wait_queue(&ir->buf.wait_poll, &wait); ++ set_current_state(TASK_INTERRUPTIBLE); ++ ++ /* while we did't provide 'length' bytes, device is opened in blocking ++ * mode and 'copy_to_user' is happy, wait for data. ++ */ ++ while (written < n && ret == 0) { ++ if (lirc_buffer_empty(&ir->buf)) { ++ /* According to the read(2) man page, 'written' can be ++ * returned as less than 'n', instead of blocking ++ * again, returning -EWOULDBLOCK, or returning ++ * -ERESTARTSYS */ ++ if (written) break; ++ if (filep->f_flags & O_NONBLOCK) { ++ ret = -EWOULDBLOCK; ++ break; ++ } ++ if (signal_pending(current)) { ++ ret = -ERESTARTSYS; ++ break; ++ } ++ schedule(); ++ set_current_state(TASK_INTERRUPTIBLE); ++ } else { ++ lirc_buffer_read_1(&ir->buf, buf); ++ ret = copy_to_user((void *)outbuf+written, buf, ++ ir->buf.chunk_size); ++ written += ir->buf.chunk_size; ++ } ++ } ++ ++ remove_wait_queue(&ir->buf.wait_poll, &wait); ++ set_current_state(TASK_RUNNING); ++ up(&ir->buf_sem); ++ ++ dprintk("read result = %s (%d)\n", ++ ret ? "-EFAULT" : "OK", ret); ++ ++ return ret ? ret : written; ++} ++ ++/* send a keypress to the IR TX device of the PVR-150 */ ++static int send_code(struct IR *ir, unsigned int code, unsigned int key) ++{ ++ unsigned char data_block[TX_BLOCK_SIZE]; ++ unsigned char buf[2]; ++ int i, ret; ++ ++ /* Get data for the codeset/key */ ++ ret = get_key_data(data_block, code, key); ++ ++ if (ret == -EPROTO) { ++ printk(KERN_ERR ++ "lirc_pvr150: failed to get data for code %u, " ++ "key %u -- check lircd.conf entries\n", ++ code, key); ++ return ret; ++ } else if (ret != 0) ++ return ret; ++ ++ /* Send the data block */ ++ ret = send_data_block(ir, data_block); ++ if (ret != 0) ++ return ret; ++ ++ /* Send data block length? */ ++ buf[0] = 0x00; ++ buf[1] = 0x40; ++ ret = i2c_master_send(&ir->c_tx, buf, 2); ++ if (ret != 2) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ret = i2c_master_send(&ir->c_tx, buf, 1); ++ if (ret != 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ++ /* Send finished download? */ ++ ret = i2c_master_recv(&ir->c_tx, buf, 1); ++ if (ret != 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_recv failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ if (buf[0] != 0xA0) { ++ printk(KERN_ERR ++ "lirc_pvr150: unexpected IR TX response #1: %02x\n", ++ buf[0]); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ++ /* Send prepare command? */ ++ buf[0] = 0x00; ++ buf[1] = 0x80; ++ ret = i2c_master_send(&ir->c_tx, buf, 2); ++ if (ret != 2) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_send failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ++ /* This bit NAKs until the device is ready, so we retry it ++ sleeping a bit each time. This seems to be what the windows ++ driver does, approximately. ++ Try for up to 1s. ++ */ ++ for (i = 0; i < 20; ++i) { ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ schedule_timeout((50 * HZ + 999) / 1000); ++ ret = i2c_master_send(&ir->c_tx, buf, 1); ++ if (ret == 1) ++ break; ++ dprintk("NAK expected: i2c_master_send " ++ "failed with %d (try %d)\n", ret, i+1); ++ } ++ if (ret != 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: IR TX chip never got ready: last " ++ "i2c_master_send failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ ++ /* Seems to be an 'ok' response */ ++ i = i2c_master_recv(&ir->c_tx, buf, 1); ++ if (i != 1) { ++ printk(KERN_ERR ++ "lirc_pvr150: i2c_master_recv failed with %d\n", ret); ++ return ret < 0 ? ret : -EFAULT; ++ } ++ if (buf[0] != 0x80) { ++ printk(KERN_ERR ++ "lirc_pvr150: unexpected IR TX response #2: %02x\n", ++ buf[0]); ++ return -EFAULT; ++ } ++ ++ /* Oh good, it worked */ ++ dprintk("sent code %u, key %u\n", code, key); ++ return 0; ++} ++ ++/* Write a code to the device. We take in a 32-bit number (a lirc_t) and then ++ decode this to a codeset/key index. The key data is then decompressed and ++ sent to the device. We have a spin lock as per i2c documentation to prevent ++ multiple concurrent sends which would probably cause the device to explode. ++ */ ++static ssize_t write(struct file *filep,const char *buf,size_t n, ++ loff_t *ppos) ++{ ++ struct IR *ir = (struct IR *)filep->private_data; ++ size_t i; ++ int failures = 0; ++ ++ if (ir->c_tx.addr == 0) ++ return -ENODEV; ++ ++ /* Validate user parameters */ ++ if (n % sizeof(lirc_t)) ++ return(-EINVAL); ++ ++ /* Lock i2c bus for the duration */ ++ down(&ir->lock); ++ ++ /* Send each keypress */ ++ for (i = 0; i < n; ) ++ { ++ int ret = 0; ++ lirc_t command; ++ ++ if (copy_from_user(&command, buf + i, sizeof(command))) { ++ up(&ir->lock); ++ return -EFAULT; ++ } ++ ++ /* Send boot data first if required */ ++ if (ir->need_boot == 1) ++ { ++ ret = send_boot_data(ir); ++ if (ret == 0) ++ ir->need_boot = 0; ++ } ++ ++ /* Send the code */ ++ if (ret == 0) { ++ ret = send_code(ir, (unsigned)command >> 16, ++ (unsigned)command & 0xFFFF); ++ if (ret == -EPROTO) { ++ up(&ir->lock); ++ return ret; ++ } ++ } ++ ++ /* Hmm, a failure. If we've had a few then give up, otherwise ++ try a reset ++ */ ++ if (ret != 0) { ++ /* Looks like the chip crashed, reset it */ ++ printk(KERN_ERR "lirc_pvr150: sending to the IR " ++ "transmitter chip failed, trying " ++ "reset\n"); ++ ++ if (failures >= 3) { ++ printk(KERN_ERR "lirc_pvr150: unable to send " ++ "to the IR chip after 3 " ++ "resets, giving up\n"); ++ up(&ir->lock); ++ return ret; ++ } ++ ivtv_reset_ir_gpio(i2c_get_adapdata(ir->c_tx.adapter)); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ schedule_timeout((100 * HZ + 999) / 1000); ++ ir->need_boot = 1; ++ ++failures; ++ } ++ else ++ { ++ i += sizeof(lirc_t); ++ } ++ } ++ ++ /* Release i2c bus */ ++ up(&ir->lock); ++ ++ /* All looks good */ ++ return n; ++} ++ ++/* copied from lirc_dev */ ++static unsigned int poll(struct file *filep, poll_table * wait) ++{ ++ struct IR *ir = (struct IR *)filep->private_data; ++ unsigned int ret; ++ ++ dprintk("poll called\n"); ++ if (ir->c_rx.addr == 0) ++ return -ENODEV; ++ ++ down(&ir->buf_sem); ++ ++ poll_wait(filep, &ir->buf.wait_poll, wait); ++ ++ dprintk("poll result = %s\n", ++ lirc_buffer_empty(&ir->buf) ? "0" : "POLLIN|POLLRDNORM"); ++ ++ ret = lirc_buffer_empty(&ir->buf) ? 0 : (POLLIN|POLLRDNORM); ++ ++ up(&ir->buf_sem); ++ return ret; ++} ++ ++static int ioctl(struct inode *node,struct file *filep,unsigned int cmd, ++ unsigned long arg) ++{ ++ struct IR *ir = (struct IR *)filep->private_data; ++ int result; ++ unsigned long mode, features = 0; ++ ++ if (ir->c_rx.addr != 0) ++ features |= LIRC_CAN_REC_LIRCCODE; ++ if (ir->c_tx.addr != 0) ++ features |= LIRC_CAN_SEND_PULSE; ++ ++ switch(cmd) ++ { ++ case LIRC_GET_LENGTH: ++ result = put_user((unsigned long)13, ++ (unsigned long *)arg); ++ break; ++ case LIRC_GET_FEATURES: ++ result=put_user(features,(unsigned long *) arg); ++ if(result) return(result); ++ break; ++ case LIRC_GET_REC_MODE: ++ if(!(features&LIRC_CAN_REC_MASK)) ++ return -ENOSYS; ++ ++ result = put_user(LIRC_REC2MODE ++ (features&LIRC_CAN_REC_MASK), ++ (unsigned long*)arg); ++ break; ++ case LIRC_SET_REC_MODE: ++ if(!(features&LIRC_CAN_REC_MASK)) ++ return -ENOSYS; ++ ++ result = get_user(mode, (unsigned long*)arg); ++ if(!result && !(LIRC_MODE2REC(mode) & features)) { ++ result = -EINVAL; ++ } ++ break; ++ case LIRC_GET_SEND_MODE: ++ if(!(features&LIRC_CAN_SEND_MASK)) ++ return -ENOSYS; ++ ++ result=put_user(LIRC_MODE_PULSE,(unsigned long *) arg); ++ if(result) return(result); ++ break; ++ case LIRC_SET_SEND_MODE: ++ if(!(features&LIRC_CAN_SEND_MASK)) ++ return -ENOSYS; ++ ++ result=get_user(mode,(unsigned long *) arg); ++ if(result) return(result); ++ if(mode!=LIRC_MODE_PULSE) return(-EINVAL); ++ break; ++ default: ++ return(-ENOIOCTLCMD); ++ } ++ return (0); ++} ++ ++/* Open the IR device of the PVR-150. Get hold of our IR structure and ++ stash it in private_data for the file */ ++static int open(struct inode* node,struct file* filep) ++{ ++ struct IR *ir; ++ int ret; ++ ++ /* find our IR struct */ ++ unsigned minor = MINOR(node->i_rdev); ++ if (minor >= MAX_IRCTL_DEVICES) { ++ dprintk("minor %d: open result = -ENODEV\n", ++ minor); ++ return -ENODEV; ++ } ++ ir = ir_devices[minor]; ++ ++ /* increment in use count */ ++ down(&ir->lock); ++ ++ir->open; ++ ret = set_use_inc(ir); ++ if (ret != 0) { ++ --ir->open; ++ up(&ir->lock); ++ return ret; ++ } ++ up(&ir->lock); ++ ++ /* stash our IR struct */ ++ filep->private_data = ir; ++ ++ return(0); ++} ++ ++/* Close the IR device of the PVR-150 */ ++static int close(struct inode* node,struct file* filep) ++{ ++ /* find our IR struct */ ++ struct IR *ir = (struct IR *)filep->private_data; ++ if (ir == NULL) { ++ printk(KERN_ERR ++ "lirc_pvr150: close: no private_data " ++ "attached to the file!\n"); ++ return -ENODEV; ++ } ++ ++ /* decrement in use count */ ++ down(&ir->lock); ++ --ir->open; ++ set_use_dec(ir); ++ up(&ir->lock); ++ ++ return(0); ++} ++ ++static struct lirc_plugin lirc_template = { ++ name: "lirc_pvr150", ++ set_use_inc: set_use_inc, ++ set_use_dec: set_use_dec, ++ owner: THIS_MODULE ++}; ++ ++/* ----------------------------------------------------------------------- */ ++ ++static int ir_attach(struct i2c_adapter *adap, int have_rx, int have_tx); ++static int ir_detach(struct i2c_client *client); ++static int ir_probe(struct i2c_adapter *adap); ++static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg); ++ ++static struct i2c_driver driver = { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16) ++ name: "i2c ir driver", ++ flags: I2C_DF_NOTIFY, ++#else ++ .driver = { ++ owner: THIS_MODULE, ++ name: "i2c ir driver", ++ }, ++#endif ++ id: I2C_DRIVERID_EXP3, /* FIXME */ ++ attach_adapter: ir_probe, ++ detach_client: ir_detach, ++ command: ir_command, ++}; ++ ++static struct i2c_client client_template = ++{ ++ name: "unset", ++ driver: &driver ++}; ++ ++static struct file_operations lirc_fops = ++{ ++ llseek: lseek, ++ read: read, ++ write: write, ++ poll: poll, ++ ioctl: ioctl, ++ open: open, ++ release: close ++}; ++ ++static int i2c_attach(struct i2c_client *client, struct IR *ir) ++{ ++ int ret; ++ ++ i2c_set_clientdata(client, ir); ++ ++ ret = i2c_attach_client(client); ++ if (ret != 0) { ++ client->addr = 0; ++ return ret; ++ } ++ ret = i2c_use_client(client); ++ if (ret != 0) { ++ i2c_detach_client(client); ++ client->addr = 0; ++ return ret; ++ } ++ ++ir->devs; ++ return 0; ++} ++ ++static int ir_attach(struct i2c_adapter *adap, int have_rx, int have_tx) ++{ ++ struct IR *ir; ++ int ret, i; ++ ++ printk("lirc_pvr150: chip found with %s\n", ++ have_rx && have_tx ? "RX and TX" : ++ have_rx ? "RX only" : "TX only"); ++ ++ if (NULL == (ir = kmalloc(sizeof(struct IR),GFP_KERNEL))) ++ return -ENOMEM; ++ if (lirc_buffer_init(&ir->buf, 2, BUFLEN/2) != 0) { ++ kfree(ir); ++ return -ENOMEM; ++ } ++ init_MUTEX(&ir->lock); ++ init_MUTEX(&ir->buf_sem); ++ ir->open = 0; ++ ir->devs = 0; ++ ir->tpid = 0; ++ ir->need_boot = 1; ++ ir->shutdown = 0; ++ ir->t_notify = ir->t_notify2 = NULL; ++ for (i = 0; i < sizeof(ir->b); ++i) ++ ir->b[0] = 0; ++ ++ memcpy(&ir->l,&lirc_template,sizeof(struct lirc_plugin)); ++ ir->l.minor = -1; ++ ++ /* initialise RX device */ ++ client_template.adapter = adap; ++ memcpy(&ir->c_rx,&client_template,sizeof(struct i2c_client)); ++ if (have_rx) { ++ DECLARE_COMPLETION(tn); ++ ++ /* I2C attach to device */ ++ ir->c_rx.addr = 0x71; ++ strlcpy(ir->c_rx.name, "Hauppauge PVR150 RX", ++ sizeof(ir->c_rx.name)); ++ if ( (ret = i2c_attach(&ir->c_rx, ir)) != 0 ) ++ goto err; ++ ++ /* try to fire up polling thread */ ++ ir->t_notify = &tn; ++ ir->tpid = kernel_thread(lirc_thread, ir, 0); ++ if (ir->tpid < 0) { ++ printk(KERN_ERR "lirc_pvr150: lirc_register_plugin: " ++ "cannot run poll thread\n"); ++ ret = -ECHILD; ++ goto err; ++ } ++ wait_for_completion(&tn); ++ ir->t_notify = NULL; ++ } ++ ++ /* initialise TX device */ ++ memcpy(&ir->c_tx,&client_template,sizeof(struct i2c_client)); ++ if (have_tx) { ++ /* I2C attach to device */ ++ ir->c_tx.addr = 0x70; ++ strlcpy(ir->c_tx.name, "Hauppauge PVR150 TX", ++ sizeof(ir->c_tx.name)); ++ if ( (ret = i2c_attach(&ir->c_tx, ir)) != 0 ) ++ goto err; ++ } ++ ++ /* set lirc_dev stuff */ ++ ir->l.code_length = 13; ++ ir->l.rbuf = &ir->buf; ++ ir->l.fops = &lirc_fops; ++ ir->l.data = ir; ++ ir->l.minor = minor; ++ ir->l.sample_rate = 0; ++ ++ /* register with lirc */ ++ ir->l.minor = lirc_register_plugin(&ir->l); ++ if (ir->l.minor < 0 || ir->l.minor >= MAX_IRCTL_DEVICES) { ++ printk(KERN_ERR ++ "lirc_pvr150: ir_attach: " ++ "\"minor\" must be between 0 and %d (%d)!\n", ++ MAX_IRCTL_DEVICES-1, ir->l.minor); ++ ret = -EBADRQC; ++ goto err; ++ } ++ ++ /* store this for getting back in open() later on */ ++ ir_devices[ir->l.minor] = ir; ++ ++ /* if we have the tx device, load the 'firmware'. We do this ++ after registering with lirc as otherwise hotplug seems to take ++ 10s to create the lirc device. ++ */ ++ if (have_tx) { ++ /* Special TX init */ ++ ret = tx_init(ir); ++ if (ret != 0) ++ goto err; ++ } ++ return 0; ++ ++err: ++ /* undo everything, hopefully... */ ++ if (ir->c_rx.addr) ir_detach(&ir->c_rx); ++ if (ir->c_tx.addr) ir_detach(&ir->c_tx); ++ return ret; ++} ++ ++static int ir_detach(struct i2c_client *client) ++{ ++ struct IR *ir = i2c_get_clientdata(client); ++ down(&ir->lock); ++ ++ if (client == &ir->c_rx) { ++ DECLARE_COMPLETION(tn); ++ DECLARE_COMPLETION(tn2); ++ ++ /* end up polling thread */ ++ if (ir->tpid >= 0) { ++ ir->t_notify = &tn; ++ ir->t_notify2 = &tn2; ++ ir->shutdown = 1; ++ { ++ struct task_struct *p; ++ ++ p = find_task_by_pid(ir->tpid); ++ wake_up_process(p); ++ } ++ complete(&tn2); ++ wait_for_completion(&tn); ++ ir->t_notify = NULL; ++ ir->t_notify2 = NULL; ++ } ++ ++ /* unregister device */ ++ i2c_release_client(&ir->c_rx); ++ i2c_detach_client(&ir->c_rx); ++ } else if (client == &ir->c_tx) { ++ i2c_release_client(&ir->c_tx); ++ i2c_detach_client(&ir->c_tx); ++ } else { ++ up(&ir->lock); ++ printk(KERN_ERR "lirc_pvr150: ir_detach: detached from " ++ "something we didn't attach to\n"); ++ return -ENODEV; ++ } ++ ++ --ir->devs; ++ if (ir->devs < 0) ++ { ++ up(&ir->lock); ++ printk(KERN_ERR "lirc_pvr150: ir_detach: invalid " ++ "device count\n"); ++ return -ENODEV; ++ } ++ else if (ir->devs == 0) ++ { ++ /* unregister lirc plugin */ ++ if (ir->l.minor >= 0 && ir->l.minor < MAX_IRCTL_DEVICES) ++ { ++ lirc_unregister_plugin(ir->l.minor); ++ ir_devices[ir->l.minor] = NULL; ++ } ++ ++ /* free memory */ ++ lirc_buffer_free(&ir->buf); ++ up(&ir->lock); ++ kfree(ir); ++ return 0; ++ } ++ up(&ir->lock); ++ return 0; ++} ++ ++static int ir_probe(struct i2c_adapter *adap) ++{ ++ struct i2c_client c; ++ char buf; ++ ++#ifdef I2C_HW_B_CX2341X ++ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) || ++ adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) ++#else ++ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) ++#endif ++ { ++ int have_rx = 0, have_tx = 0; ++ ++ /* The external IR receiver is at i2c address 0x71 on the PVR-150 ++ The IR transmitter is at 0x70. ++ */ ++ memset(&c,0,sizeof(c)); ++ c.adapter = adap; ++ c.addr = 0x70; ++ ++ if (!disable_rx) { ++ if (i2c_master_recv(&c,&buf,1) == 1) ++ have_rx = 1; ++ dprintk("probe 0x70 @ %s: %s\n", ++ adap->name, ++ have_rx ? "yes" : "no"); ++ } ++ ++ if (!disable_tx) { ++ c.addr = 0x71; ++ if (i2c_master_recv(&c,&buf,1) == 1) ++ have_tx = 1; ++ dprintk("probe 0x71 @ %s: %s\n", ++ adap->name, ++ have_tx ? "yes" : "no"); ++ } ++ ++ if (have_rx || have_tx) ++ return ir_attach(adap, have_rx, have_tx); ++ else ++ { ++ printk(KERN_ERR "lirc_pvr150: %s: no devices found\n", adap->name); ++ } ++ } ++ ++ return 0; ++} ++ ++static int ir_command(struct i2c_client *client,unsigned int cmd, void *arg) ++{ ++ /* nothing */ ++ return 0; ++} ++ ++/* ----------------------------------------------------------------------- */ ++#ifdef MODULE ++ ++int init_module(void) ++{ ++ init_MUTEX(&tx_data_lock); ++ request_module("ivtv"); ++ request_module("firmware_class"); ++ i2c_add_driver(&driver); ++ return 0; ++} ++ ++void cleanup_module(void) ++{ ++ i2c_del_driver(&driver); ++ /* if loaded */ ++ fw_unload(); ++} ++ ++MODULE_DESCRIPTION("Infrared receiver driver for Hauppauge PVR-150 card (i2c stack)"); ++MODULE_AUTHOR("Gerd Knorr, Michal Kochanowicz, Christoph Bartelmus, Ulrich Mueller, Stefan Jahn, Jerome Brock, Mark Weaver"); ++MODULE_LICENSE("GPL"); ++ ++module_param(minor, int, 0444); ++MODULE_PARM_DESC(minor, "Preferred minor device number"); ++ ++module_param(debug, bool, 0644); ++MODULE_PARM_DESC(debug, "Enable debugging messages"); ++ ++module_param(disable_rx, bool, 0644); ++MODULE_PARM_DESC(disable_rx, "Disable the IR receiver device"); ++ ++module_param(disable_tx, bool, 0644); ++MODULE_PARM_DESC(disable_tx, "Disable the IR transmitter device"); ++ ++EXPORT_NO_SYMBOLS; ++ ++#endif /* MODULE */ ++ ++/* ++ * Overrides for Emacs so that we follow Linus's tabbing style. ++ * --------------------------------------------------------------------------- ++ * Local variables: ++ * c-basic-offset: 8 ++ * End: ++ */ +diff -urNad lirc-0.8.3~pre1~/setup.data lirc-0.8.3~pre1/setup.data +--- lirc-0.8.3~pre1~/setup.data 2008-01-05 05:23:24.000000000 -0600 ++++ lirc-0.8.3~pre1/setup.data 2008-02-10 21:41:48.000000000 -0600 +@@ -70,6 +70,7 @@ + flyvideo: "Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card=36)" + hauppauge: "Hauppauge TV card" + hauppauge: "Hauppauge HVR-1300" ++ hauppauge_pvr150: "Hauppauge PVR-150 TV card (new I2C layer required)" + hauppauge_dvb: "Hauppauge DVB-s card (ver. 2.1)" + hercules_smarttv_stereo: "Hercules Smart TV Stereo (card=100)" + gvbctv5pci: "I-O Data Co. GV-BCTV5/PCI (card=81)" +@@ -209,6 +210,7 @@ + flyvideo \ + gvbctv5pci \ + hauppauge \ ++ hauppauge_pvr150 \ + hauppauge_dvb \ + hercules_smarttv_stereo \ + i2cuser \ +@@ -276,6 +278,7 @@ + flyvideo \ + gvbctv5pci \ + hauppauge \ ++ hauppauge_pvr150 \ + hauppauge_dvb \ + hercules_smarttv_stereo \ + i2cuser \ --- lirc-0.8.3~pre1.orig/debian/patches/21_atiusb.dpatch +++ lirc-0.8.3~pre1/debian/patches/21_atiusb.dpatch @@ -0,0 +1,466 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 21_atiusb.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Make ATI Remotes have their own menu item and add snapstream support (LP: #140060) + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2007-10-30 15:48:16.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2007-10-30 15:48:16.000000000 -0400 +@@ -113,8 +113,9 @@ + ADSTech USBX-707 USB IR Blaster;usbx;none;hw_usbx;adstech/lircd.conf.usbx-707; + Apple Mac mini USB IR Receiver;macmini;none;hw_macmini;apple/lircd.conf.macmini; + Asus DH USB Remote;asusdh;none;hw_asusdh;asus/lircd.conf.asusdh; +-ATI/NVidia/X10 I & II RF Remote;atiusb;lirc_dev lirc_atiusb;hw_default;atiusb/lircd.conf.atiusb; +-ATI/NVidia/X10 RF Remote (userspace);atilibusb;none;hw_atilibusb;atiusb/lircd.conf.atilibusb; ++ATI/NVidia X10 RF (kernel);atiusb;lirc_dev lirc_atiusb;hw_default;atiusb/lircd.conf.atiusb; ++ATI/NVidia X10 RF (userspace);atilibusb;none;hw_atilibusb;atiusb/lircd.conf.atilibusb; ++Snapstream X10 RF;atiusb;lirc_dev lirc_atiusb;hw_default;atiusb/lircd.conf.atiusb; + Creative USB IR Receiver (SB0540);sb0540;none;hw_sb0540;creative/lircd.conf.alsa_usb; + COMMANDIR USB Transceiver;cmdir;lirc_dev commandir lirc_cmdir;hw_default;; + Dign HV5 HTPC IR/VFD Module;sasem;lirc_dev lirc_sasem;hw_default;sasem/lircd.conf.sasem; +diff -urNad lirc-0.8.3~pre1~/remotes/atiusb/lircd.conf.atilibusb lirc-0.8.3~pre1/remotes/atiusb/lircd.conf.atilibusb +--- lirc-0.8.3~pre1~/remotes/atiusb/lircd.conf.atilibusb 2007-09-14 15:45:18.000000000 -0400 ++++ lirc-0.8.3~pre1/remotes/atiusb/lircd.conf.atilibusb 2007-10-30 15:48:16.000000000 -0400 +@@ -248,3 +248,199 @@ + end codes + + end remote ++ ++# ++# contributed by Michael Haas ++# ++# brand: ATI "RF Remote Control" (first generation) ++# model no. of remote control: Part #: 5000023600 ++# FCC ID: B4SUR84A ++# picture: http://www.mythtv.org/wiki/index.php/Image:Remotewonder1.jpg ++# receiver: http://www.mythtv.org/wiki/index.php/Image:Remotewonder2.jpg ++# ++# I created this new config file because the one for the ati remote wonder II ++# did not work for me. ++ ++begin remote ++ ++ name ati_remote_wonder_rf ++ bits 40 ++ eps 30 ++ aeps 100 ++ ++ one 0 0 ++ zero 0 0 ++ gap 147991 ++ toggle_bit 0 ++ ++ begin codes ++ 0 0x14DC170000 ++ 1 0x14D20D0000 ++ 2 0x14D30E0000 ++ 3 0x14D40F0000 ++ 4 0x14D5100000 ++ 5 0x14D6110000 ++ 6 0x14D7120000 ++ 7 0x14D8130000 ++ 8 0x14D9140000 ++ 9 0x14DA150000 ++ volup 0x14CD080000 ++ voldown 0x14CE090000 ++ mute 0x14CF0A0000 ++ chup 0x14D00B0000 ++ chdown 0x14D10C0000 ++ mouse_up 0x1437720000 ++ mouse_down 0x1438730000 ++ mouse_left 0x1435700000 ++ mouse_right 0x1436710000 ++ mouse_up_right 0x143A750000 ++ mouse_down_right 0x143B760000 ++ mouse_up_left 0x1439740000 ++ mouse_down_left 0x143C770000 ++ right_click 0x14417C0000 ++ left_click 0x143D780000 ++ hand 0x14CC070000 ++ book 0x14CB060000 ++ ? 0x14CA050000 ++ dvd 0x14C9040000 ++ tv 0x14C8030000 ++ a 0x14C5000000 ++ b 0x14C6010000 ++ power 0x14C7020000 ++ stop 0x14ED280000 ++ pause 0x14EE290000 ++ fforward 0x14EB260000 ++ rec 0x14EC270000 ++ rewind 0x14E9240000 ++ play 0x14EA250000 ++ d 0x14E01B0000 ++ c 0x14DE190000 ++ e 0x14E6210000 ++ f 0x14E8230000 ++ right 0x14E41F0000 ++ left 0x14E21D0000 ++ up 0x14DF1A0000 ++ down 0x14E7220000 ++ ok 0x14E31E0000 ++ timer 0x14E11C0000 ++ shrink_resize 0x14E5200000 ++ menu 0x14DB160000 ++ check 0x14DD180000 ++ end codes ++ ++end remote ++ ++begin remote ++ ++name Snapstream Firefly ++bits 40 ++eps 30 ++aeps 100 ++ ++one 0 0 ++zero 0 0 ++gap 219964 ++toggle_bit 0 ++ ++ ++begin codes ++MAXI 0x0000001481AC0000 ++MAXI 0x00000014012C0000 ++CLOSE 0x00000014D7020000 ++CLOSE 0x0000001457820000 ++1 0x00000014628D0000 ++1 0x00000014E20D0000 ++2 0x00000014E30E0000 ++2 0x00000014638E0000 ++3 0x00000014648F0000 ++3 0x00000014E40F0000 ++4 0x00000014E5100000 ++4 0x0000001465900000 ++5 0x0000001466910000 ++5 0x00000014E6110000 ++6 0x00000014E7120000 ++6 0x0000001467920000 ++7 0x0000001468930000 ++7 0x00000014E8130000 ++8 0x00000014E9140000 ++8 0x0000001469940000 ++9 0x000000146A950000 ++9 0x00000014EA150000 ++0 0x00000014EC170000 ++0 0x000000146C970000 ++BACK 0x000000146B960000 ++BACK 0x00000014EB160000 ++ENT 0x00000014ED180000 ++ENT 0x000000146D980000 ++VOL+ 0x000000145E890000 ++VOL+ 0x00000014DE090000 ++VOL- 0x000000145D880000 ++VOL- 0x00000014DD080000 ++MUTE 0x000000145F8A0000 ++MUTE 0x00000014DF0A0000 ++FIREFLY 0x0000001455800000 ++FIREFLY 0x00000014D5000000 ++CH+ 0x00000014608B0000 ++CH+ 0x00000014E00B0000 ++CH- 0x00000014618C0000 ++CH- 0x00000014E10C0000 ++INFO 0x0000001483AE0000 ++INFO 0x00000014032E0000 ++OPTION 0x0000001484AF0000 ++OPTION 0x00000014042F0000 ++UP 0x000000146F9A0000 ++UP 0x00000014EF1A0000 ++LEFT 0x00000014729D0000 ++LEFT 0x00000014F21D0000 ++DOWN 0x0000001477A20000 ++DOWN 0x00000014F7220000 ++RIGHT 0x00000014749F0000 ++RIGHT 0x00000014F41F0000 ++OK 0x00000014739E0000 ++OK 0x00000014F31E0000 ++MENU 0x00000014719C0000 ++MENU 0x00000014F11C0000 ++EXIT 0x0000001475A00000 ++EXIT 0x00000014F5200000 ++REC 0x00000014FC270000 ++REC 0x000000147CA70000 ++PLAY 0x00000014FA250000 ++PLAY 0x000000147AA50000 ++STOP 0x00000014FD280000 ++STOP 0x000000147DA80000 ++REW 0x00000014F9240000 ++REW 0x0000001479A40000 ++FWD 0x00000014FB260000 ++FWD 0x000000147BA60000 ++PREV 0x00000014002B0000 ++PREV 0x0000001480AB0000 ++PAUSE 0x00000014FE290000 ++PAUSE 0x000000147EA90000 ++NEXT 0x00000014FF2A0000 ++NEXT 0x000000147FAA0000 ++MUSIC 0x00000014DB060000 ++MUSIC 0x000000145B860000 ++PHOTOS 0x00000014DA050000 ++PHOTOS 0x000000145A850000 ++DVD 0x00000014D9040000 ++DVD 0x0000001459840000 ++TV 0x00000014D8030000 ++TV 0x0000001458830000 ++VIDEO 0x00000014DC070000 ++VIDEO 0x000000145C870000 ++HELP 0x00000014D6010000 ++HELP 0x0000001456810000 ++MOUSE 0x00000014022D0000 ++MOUSE 0x0000001482AD0000 ++A 0x00000014EE190000 ++A 0x000000146E990000 ++B 0x00000014F01B0000 ++B 0x00000014709B0000 ++C 0x00000014F6210000 ++C 0x0000001476A10000 ++D 0x00000014F8230000 ++D 0x0000001478A30000 ++ ++end codes ++ ++end remote +diff -urNad lirc-0.8.3~pre1~/remotes/atiusb/lircd.conf.atiusb lirc-0.8.3~pre1/remotes/atiusb/lircd.conf.atiusb +--- lirc-0.8.3~pre1~/remotes/atiusb/lircd.conf.atiusb 2007-09-01 15:27:28.000000000 -0400 ++++ lirc-0.8.3~pre1/remotes/atiusb/lircd.conf.atiusb 2007-10-30 15:48:16.000000000 -0400 +@@ -191,7 +191,7 @@ + # this config file was automatically generated + # using lirc-0.7.0-CVS(atiusb) on Sat May 15 10:44:51 2004 + # +-# contributed by Jurgen Kramer ++# contributed by Jurgen Kramer + # + # brand: ATI + # model no. of remote control: 5000023600 +@@ -365,7 +365,7 @@ + # matching MythTV configuration file at http://wendy.seltzer.org/mythtv/lircrc + # + # +-# brand: X-10 Lola ++# brand: X-10 Lola + # model no. of remote control: UR89A + # devices being controlled by this remote: mythtv + # +@@ -379,7 +379,7 @@ + + one 0 0 + zero 0 0 +- ++ + pre_data_bits 8 + pre_data 0x14 + post_data_bits 16 +@@ -525,10 +525,10 @@ + # contributed by Martin Tomasek + # + # brand: ATI Remote Wonder +-# model no. of remote control: ++# model no. of remote control: + # devices being controlled by this remote: ATI USB Receiver (X10). + # +-# * remote is set to channel 1, driver reports channel 16. don't know ++# * remote is set to channel 1, driver reports channel 16. don't know + # which is true. + + # +@@ -615,7 +615,7 @@ + # contributed by Phil Speights + # + # brand: nvidia +-# model no. of remote control: UR88A ++# model no. of remote control: UR88A + # devices being controlled by this remote: nvidia personal cinema + # + +@@ -875,10 +875,10 @@ + # this config file was automatically generated + # using lirc-0.7.0(any) on Sun Jan 16 14:58:13 2005 + # +-# contributed by ++# contributed by + # + # brand: Niveus +-# model no. of remote control: ++# model no. of remote control: + # devices being controlled by this remote: Niveus X10 + # + +@@ -1024,7 +1024,7 @@ + Info 0x84af + Menu 0x6e99 + left 0x729d +- up_0 0x4d78 ++ up_0 0x4d78 + up_1 0x4e79 + up_2 0x4f7a + up_3 0x507b +@@ -1064,7 +1064,7 @@ + Record 0x7ca7 + FastForward 0x7ba6 + +- end codes ++ end codes + end remote + + +@@ -1076,7 +1076,7 @@ + # + # brand: MEDION X10 RF + # model no. of remote control: remote P/N:20014752, receiver P/N:20014751 +-# devices being controlled by this remote: ++# devices being controlled by this remote: + # + + begin remote +@@ -1387,7 +1387,7 @@ + # this config file was automatically generated + # using lirc-0.8.0(atiusb) on Mon Dec 11 20:45:22 2006 + # +-# contributed by Wim Lemmers ++# contributed by Wim Lemmers + # + # brand: Medion + # model no. of remote control: OR24E RF MCE Remote Control +@@ -1469,7 +1469,7 @@ + # + # contributed by Harald Wild - www.wild-technology.de + # +-# brand: Q-Sonic Master Remote PC / TV ++# brand: Q-Sonic Master Remote PC / TV + # model no. of remote control: Art.Nr. PE-9999 + # frequency: 433.92 MHz + # distributor Germany: PEARL AGENCY - www.pearl.de +@@ -1703,9 +1703,9 @@ + # this config file was automatically generated + # using lirc-0.8.2-CVS(atilibusb) on Fri Jun 8 13:19:29 2007 + # +-# contributed by ++# contributed by + # +-# brand: ++# brand: + # model no. of remote control: ATI/X10 RF USB Remote Control v. 2.2.1 + # devices being controlled by this remote: + # +@@ -1940,4 +1940,118 @@ + + end remote + ++begin remote ++ ++name Snapstream Firefly ++bits 40 ++eps 30 ++aeps 100 ++ ++one 0 0 ++zero 0 0 ++gap 219964 ++toggle_bit 0 ++ ++ ++begin codes ++MAXI 0x0000001481AC0000 ++MAXI 0x00000014012C0000 ++CLOSE 0x00000014D7020000 ++CLOSE 0x0000001457820000 ++1 0x00000014628D0000 ++1 0x00000014E20D0000 ++2 0x00000014E30E0000 ++2 0x00000014638E0000 ++3 0x00000014648F0000 ++3 0x00000014E40F0000 ++4 0x00000014E5100000 ++4 0x0000001465900000 ++5 0x0000001466910000 ++5 0x00000014E6110000 ++6 0x00000014E7120000 ++6 0x0000001467920000 ++7 0x0000001468930000 ++7 0x00000014E8130000 ++8 0x00000014E9140000 ++8 0x0000001469940000 ++9 0x000000146A950000 ++9 0x00000014EA150000 ++0 0x00000014EC170000 ++0 0x000000146C970000 ++BACK 0x000000146B960000 ++BACK 0x00000014EB160000 ++ENT 0x00000014ED180000 ++ENT 0x000000146D980000 ++VOL+ 0x000000145E890000 ++VOL+ 0x00000014DE090000 ++VOL- 0x000000145D880000 ++VOL- 0x00000014DD080000 ++MUTE 0x000000145F8A0000 ++MUTE 0x00000014DF0A0000 ++FIREFLY 0x0000001455800000 ++FIREFLY 0x00000014D5000000 ++CH+ 0x00000014608B0000 ++CH+ 0x00000014E00B0000 ++CH- 0x00000014618C0000 ++CH- 0x00000014E10C0000 ++INFO 0x0000001483AE0000 ++INFO 0x00000014032E0000 ++OPTION 0x0000001484AF0000 ++OPTION 0x00000014042F0000 ++UP 0x000000146F9A0000 ++UP 0x00000014EF1A0000 ++LEFT 0x00000014729D0000 ++LEFT 0x00000014F21D0000 ++DOWN 0x0000001477A20000 ++DOWN 0x00000014F7220000 ++RIGHT 0x00000014749F0000 ++RIGHT 0x00000014F41F0000 ++OK 0x00000014739E0000 ++OK 0x00000014F31E0000 ++MENU 0x00000014719C0000 ++MENU 0x00000014F11C0000 ++EXIT 0x0000001475A00000 ++EXIT 0x00000014F5200000 ++REC 0x00000014FC270000 ++REC 0x000000147CA70000 ++PLAY 0x00000014FA250000 ++PLAY 0x000000147AA50000 ++STOP 0x00000014FD280000 ++STOP 0x000000147DA80000 ++REW 0x00000014F9240000 ++REW 0x0000001479A40000 ++FWD 0x00000014FB260000 ++FWD 0x000000147BA60000 ++PREV 0x00000014002B0000 ++PREV 0x0000001480AB0000 ++PAUSE 0x00000014FE290000 ++PAUSE 0x000000147EA90000 ++NEXT 0x00000014FF2A0000 ++NEXT 0x000000147FAA0000 ++MUSIC 0x00000014DB060000 ++MUSIC 0x000000145B860000 ++PHOTOS 0x00000014DA050000 ++PHOTOS 0x000000145A850000 ++DVD 0x00000014D9040000 ++DVD 0x0000001459840000 ++TV 0x00000014D8030000 ++TV 0x0000001458830000 ++VIDEO 0x00000014DC070000 ++VIDEO 0x000000145C870000 ++HELP 0x00000014D6010000 ++HELP 0x0000001456810000 ++MOUSE 0x00000014022D0000 ++MOUSE 0x0000001482AD0000 ++A 0x00000014EE190000 ++A 0x000000146E990000 ++B 0x00000014F01B0000 ++B 0x00000014709B0000 ++C 0x00000014F6210000 ++C 0x0000001476A10000 ++D 0x00000014F8230000 ++D 0x0000001478A30000 ++ ++end codes ++ ++end remote + --- lirc-0.8.3~pre1.orig/debian/patches/28_irrecord_resume_support.dpatch +++ lirc-0.8.3~pre1/debian/patches/28_irrecord_resume_support.dpatch @@ -0,0 +1,91 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 28_irrecord_resume_support.dpatch by Mathias Hasselmann +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Adds resume support to irrecord (LP: #197493) + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/daemons/irrecord.c lirc-0.8.3~pre1/daemons/irrecord.c +--- lirc-0.8.3~pre1~/daemons/irrecord.c 2008-03-24 00:11:51.000000000 -0500 ++++ lirc-0.8.3~pre1/daemons/irrecord.c 2008-03-24 00:11:59.000000000 -0500 +@@ -192,6 +192,7 @@ + lirc_t min_remaining_gap, max_remaining_gap; + int force; + int retries; ++ int resume; + struct ir_remote *remotes=NULL; + char *device=NULL; + #ifdef DEBUG +@@ -200,6 +201,7 @@ + + progname=argv[0]; + force=0; ++ resume=0; + hw_choose_driver(NULL); + while(1) + { +@@ -211,6 +213,7 @@ + {"device",required_argument,NULL,'d'}, + {"driver",required_argument,NULL,'H'}, + {"force",no_argument,NULL,'f'}, ++ {"resume",no_argument,NULL,'r'}, + #ifdef DEBUG + {"pre",no_argument,NULL,'p'}, + {"post",no_argument,NULL,'P'}, +@@ -221,9 +224,9 @@ + {0, 0, 0, 0} + }; + #ifdef DEBUG +- c = getopt_long(argc,argv,"hvd:H:fpPtiT",long_options,NULL); ++ c = getopt_long(argc,argv,"hvd:H:frpPtiT",long_options,NULL); + #else +- c = getopt_long(argc,argv,"hvd:H:f",long_options,NULL); ++ c = getopt_long(argc,argv,"hvd:H:fr",long_options,NULL); + #endif + if(c==-1) + break; +@@ -234,6 +237,7 @@ + printf("\t -h --help\t\tdisplay this message\n"); + printf("\t -v --version\t\tdisplay version\n"); + printf("\t -f --force\t\tforce raw mode\n"); ++ printf("\t -r --resume\t\tcontinue recording\n"); + printf("\t -H --driver=driver\tuse given driver\n"); + printf("\t -d --device=device\tread from given device\n"); + exit(EXIT_SUCCESS); +@@ -254,6 +258,9 @@ + case 'f': + force=1; + break; ++ case 'r': ++ resume=1; ++ break; + #ifdef DEBUG + case 'p': + get_pre=1; +@@ -459,7 +466,7 @@ + switch(hw.rec_mode) + { + case LIRC_MODE_MODE2: +- if(remotes==NULL && !get_lengths(&remote,force)) ++ if((!remotes || !resume) && !get_lengths(&remote,force)) + { + if(remote.gap==0) + { +@@ -493,7 +500,7 @@ + case LIRC_MODE_LIRCCODE: + if(hw.rec_mode==LIRC_MODE_CODE) remote.bits=CHAR_BIT; + else remote.bits=hw.code_length; +- if(!get_gap_length(&remote)) ++ if((!remotes || !resume) && !get_gap_length(&remote)) + { + fprintf(stderr,"%s: gap not found," + " can't continue\n",progname); +@@ -766,7 +773,7 @@ + exit(EXIT_FAILURE); + } + +- if(!has_toggle_bit_mask(remotes)) ++ if((!remotes || !resume) && !has_toggle_bit_mask(remotes)) + { + get_toggle_bit_mask(remotes); + } --- lirc-0.8.3~pre1.orig/debian/patches/04_man_pages.dpatch +++ lirc-0.8.3~pre1/debian/patches/04_man_pages.dpatch @@ -0,0 +1,146 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_man_pages.dpatch by > +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Clean up man pages + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/man/irexec.1 lirc-0.8.3~pre1/doc/man/irexec.1 +--- lirc-0.8.3~pre1~/doc/man/irexec.1 2007-10-13 12:40:44.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/irexec.1 2007-10-30 10:14:05.000000000 -0400 +@@ -29,7 +29,7 @@ + \fB\-n\fR \fB\-\-name\fR + use this program name + .SH OPTIONS +-If you add the --daemon option irexec will fork to ++If you add the \-\-daemon option irexec will fork to + background. That way you can easily start irexec from an init script. In + this case you should specify a config file on the command line as irexec + won't be able to find your home directory. Potential uses are shutting +diff -urNad lirc-0.8.3~pre1~/doc/man/irrecord.1 lirc-0.8.3~pre1/doc/man/irrecord.1 +--- lirc-0.8.3~pre1~/doc/man/irrecord.1 2007-10-13 12:40:46.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/irrecord.1 2007-10-30 10:14:05.000000000 -0400 +@@ -14,7 +14,7 @@ + features of a remote control. + + If the program fails to recognize the protocol of the remote control you +-should use the --force option to at least create a config file in raw mode. ++should use the \-\-force option to at least create a config file in raw mode. + + If \fIfile\fR already exists and contains a valid config irrecord will use the + protocol description found there and will only try to record the +diff -urNad lirc-0.8.3~pre1~/doc/man/irxevent.1 lirc-0.8.3~pre1/doc/man/irxevent.1 +--- lirc-0.8.3~pre1~/doc/man/irxevent.1 2007-10-13 12:40:48.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/irxevent.1 2007-10-30 10:14:05.000000000 -0400 +@@ -165,7 +165,7 @@ + .SH TROUBLESHOOTING + + If you have problems finding the coordinates for a button click you can try +-xev -id . The window_id can be found using xwininfo. If xev and ++xev \-id . The window_id can be found using xwininfo. If xev and + xwininfo are not part of your distribution you can find them at a FTP server + using the search engine at: http:\/\/ftpsearch.ntnu.no/ . xev also reports the + names of key symbols like "Control_L" (your left control key) or "KP_Subtract" +@@ -187,7 +187,7 @@ + Yet another possibility is to start xterm like this: + + .RS 3 +-xterm -xrm "XTerm.vt100.allowSendEvents: true" ++xterm \-xrm "XTerm.vt100.allowSendEvents: true" + .RE + + xemacs will accept events if you set a built-in variable. The following was +diff -urNad lirc-0.8.3~pre1~/doc/man/lircd.8 lirc-0.8.3~pre1/doc/man/lircd.8 +--- lirc-0.8.3~pre1~/doc/man/lircd.8 2007-10-13 12:40:46.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/lircd.8 2007-10-30 10:14:05.000000000 -0400 +@@ -52,14 +52,14 @@ + \fB\-a\fR \fB\-\-allow\-simulate\fR + accept SIMULATE command + .SH OPTIONS +-The --permission option gives the file permission of /dev/lircd if it ++The \-\-permission option gives the file permission of /dev/lircd if it + has to be created in octal representation. Read the documentation for +-chmod for further details. If no --permission option is given when the ++chmod for further details. If no \-\-permission option is given when the + socket is initially created the default is to give all users read and + write permissions (0666 in octal representation). If /dev/lircd already + exists this option has no effect. + +-With the --device option you can select the character device which lircd ++With the \-\-device option you can select the character device which lircd + should read from. The default currently is /dev/lirc but it probably + will change in future. + +@@ -69,21 +69,21 @@ + the device name isn't fixed. \fISTRING\fR may contain the '*' and '?' + wildcards and '\\' to mark them as literal. + +-With the --listen option you can let lircd listen for network ++With the \-\-listen option you can let lircd listen for network + connections on the given port. The default port is 8765. No security + checks are currently implemented. + +-The --connect option allows you to connect to other lircd servers that ++The \-\-connect option allows you to connect to other lircd servers that + provide a network socket at the given host and port number. The number + of such connections is currently limited to 100. + +-With the --output option you can select Unix domain socket, which lircd ++With the \-\-output option you can select Unix domain socket, which lircd + will write remote key codes to. The default currently is /dev/lircd. + +-With the --pidfile option you can select the lircd daemon pid file. ++With the \-\-pidfile option you can select the lircd daemon pid file. + The default currently is /var/run/lircd.pid. + +-With the --logfile option you can select the lircd daemon log file. ++With the \-\-logfile option you can select the lircd daemon log file. + The default currently is /var/log/lircd. Note that this option will + only be available if you compiled lircd without syslog support. + +diff -urNad lirc-0.8.3~pre1~/doc/man/lircmd.8 lirc-0.8.3~pre1/doc/man/lircmd.8 +--- lirc-0.8.3~pre1~/doc/man/lircmd.8 2007-10-13 12:40:46.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/lircmd.8 2007-10-30 10:14:05.000000000 -0400 +@@ -21,7 +21,7 @@ + \fB\-n\fR \fB\-\-nodaemon\fR + don't fork to background + .SH OPTIONS +-If you provide the --nodaemon option lircmd won't fork to background. ++If you provide the \-\-nodaemon option lircmd won't fork to background. + .SH FILES + lircmd will use syslogd to output error messages. It depends on your + system configuration where they will show up. +diff -urNad lirc-0.8.3~pre1~/doc/man/lircrcd.1 lirc-0.8.3~pre1/doc/man/lircrcd.1 +--- lirc-0.8.3~pre1~/doc/man/lircrcd.1 2007-10-13 12:40:47.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/lircrcd.1 2007-10-30 10:14:05.000000000 -0400 +@@ -32,15 +32,15 @@ + .SH OPTIONS + .TP + .BI \-p,\ \-\-premission= mode +-The --permission option gives the file permission of the Unix domain ++The \-\-permission option gives the file permission of the Unix domain + socket lircrcd creates on startup in octal representation. Read the +-documentation for chmod for further details. If no --permission option ++documentation for chmod for further details. If no \-\-permission option + is given when the socket is created the default is to give only the + user owning the file read and write permissions (0600 in octal + representation). + .TP + .BI \-o,\ \-\-output= socket +-With the --output option you can select the Unix domain socket, which ++With the \-\-output option you can select the Unix domain socket, which + lircrcd will create. The default is to append a "d" character to the + config filename given. + .SH "SEE ALSO" +diff -urNad lirc-0.8.3~pre1~/doc/man/xmode2.1 lirc-0.8.3~pre1/doc/man/xmode2.1 +--- lirc-0.8.3~pre1~/doc/man/xmode2.1 2007-10-13 12:40:45.000000000 -0400 ++++ lirc-0.8.3~pre1/doc/man/xmode2.1 2007-10-30 10:14:05.000000000 -0400 +@@ -15,7 +15,7 @@ + + xmode2 is based on smode2 by Sinkovics Zoltan. It is just a conversion + from svga to X with some basic support for resizing. The only +-differences are that the --mode option enables an alternative display ++differences are that the \-\-mode option enables an alternative display + mode and that xmode2 can read and visualise mode2 output from stdin. + .TP + \fB\-h\fR \fB\-\-help\fR --- lirc-0.8.3~pre1.orig/debian/patches/25_upstream_2_6_24.dpatch +++ lirc-0.8.3~pre1/debian/patches/25_upstream_2_6_24.dpatch @@ -0,0 +1,152 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 25_kernel_2_6_24.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Clean up driver for kernel 2.6.24's dropped semaphore support. + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_dev/lirc_dev.c lirc-0.8.3~pre1/drivers/lirc_dev/lirc_dev.c +--- lirc-0.8.3~pre1~/drivers/lirc_dev/lirc_dev.c 2007-09-27 14:47:20.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_dev/lirc_dev.c 2007-12-20 01:39:40.000000000 -0600 +@@ -17,7 +17,7 @@ + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * +- * $Id: lirc_dev.c,v 1.53 2007/09/27 19:47:20 lirc Exp $ ++ * $Id: lirc_dev.c,v 1.55 2007/11/08 21:27:29 lirc Exp $ + * + */ + +@@ -41,12 +41,13 @@ + #include + #include + #include ++#include + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18) +-#include +-#include +-#else + #include + #include ++#else ++#include ++#include + #endif + #include + #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0) +@@ -86,8 +87,8 @@ + struct lirc_buffer *buf; + + int tpid; +- struct semaphore *t_notify; +- struct semaphore *t_notify2; ++ struct completion *t_notify; ++ struct completion *t_notify2; + int shutdown; + long jiffies_to_wait; + +@@ -193,7 +194,7 @@ + daemonize("lirc_dev"); + + if (ir->t_notify != NULL) +- up(ir->t_notify); ++ complete(ir->t_notify); + + dprintk(LOGHEAD "poll thread started\n", ir->p.name, ir->p.minor); + +@@ -218,11 +219,11 @@ + } while (!ir->shutdown); + + if (ir->t_notify2 != NULL) +- down(ir->t_notify2); ++ wait_for_completion(ir->t_notify2); + + ir->tpid = -1; + if (ir->t_notify != NULL) +- up(ir->t_notify); ++ complete(ir->t_notify); + + dprintk(LOGHEAD "poll thread ended\n", ir->p.name, ir->p.minor); + +@@ -238,7 +239,7 @@ + #ifdef LIRC_HAVE_DEVFS_24 + char name[16]; + #endif +- DECLARE_MUTEX_LOCKED(tn); ++ DECLARE_COMPLETION(tn); + + if (!p) { + printk(KERN_ERR "lirc_dev: lirc_register_plugin: " +@@ -389,7 +390,7 @@ + err = -ECHILD; + goto out_sysfs; + } +- down(&tn); ++ wait_for_completion(&tn); + ir->t_notify = NULL; + } + ir->attached = 1; +@@ -425,8 +426,8 @@ + int lirc_unregister_plugin(int minor) + { + struct irctl *ir; +- DECLARE_MUTEX_LOCKED(tn); +- DECLARE_MUTEX_LOCKED(tn2); ++ DECLARE_COMPLETION(tn); ++ DECLARE_COMPLETION(tn2); + + if (minor < 0 || minor >= MAX_IRCTL_DEVICES) { + printk(KERN_ERR "lirc_dev: lirc_unregister_plugin: " +@@ -462,8 +463,8 @@ + /* 2.2.x does not export wake_up_process() */ + wake_up_interruptible(ir->p.get_queue(ir->p.data)); + #endif +- up(&tn2); +- down(&tn); ++ complete(&tn2); ++ wait_for_completion(&tn); + ir->t_notify = NULL; + ir->t_notify2 = NULL; + } +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_serial/lirc_serial.c lirc-0.8.3~pre1/drivers/lirc_serial/lirc_serial.c +--- lirc-0.8.3~pre1~/drivers/lirc_serial/lirc_serial.c 2007-12-20 01:39:08.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_serial/lirc_serial.c 2007-12-20 01:39:21.000000000 -0600 +@@ -1,4 +1,4 @@ +-/* $Id: lirc_serial.c,v 5.85 2007/09/29 15:09:07 lirc Exp $ */ ++/* $Id: lirc_serial.c,v 5.87 2007/12/15 17:28:01 lirc Exp $ */ + + /**************************************************************************** + ** lirc_serial.c *********************************************************** +@@ -85,7 +85,11 @@ + #endif + + #include ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18) ++#include ++#else + #include ++#endif + #include + #include + #include +@@ -952,7 +956,7 @@ + do_gettimeofday(&lasttv); + + result = request_irq(irq, irq_handler, +- SA_INTERRUPT | (share_irq ? SA_SHIRQ:0), ++ IRQF_DISABLED | (share_irq ? IRQF_SHARED:0), + LIRC_DRIVER_NAME, (void *)&hardware); + + switch (result) { +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_sir/lirc_sir.c lirc-0.8.3~pre1/drivers/lirc_sir/lirc_sir.c +--- lirc-0.8.3~pre1~/drivers/lirc_sir/lirc_sir.c 2007-12-20 01:39:08.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_sir/lirc_sir.c 2007-12-20 01:39:30.000000000 -0600 +@@ -1010,7 +1010,7 @@ + return -EBUSY; + } + #endif +- retval = request_irq(irq, sir_interrupt, SA_INTERRUPT, ++ retval = request_irq(irq, sir_interrupt, IRQF_DISABLED, + LIRC_DRIVER_NAME, NULL); + if (retval < 0) { + # ifndef LIRC_ON_SA1100 --- lirc-0.8.3~pre1.orig/debian/patches/33_asus_mycinema_remote.dpatch +++ lirc-0.8.3~pre1/debian/patches/33_asus_mycinema_remote.dpatch @@ -0,0 +1,95 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 33_asus_mycinema_remote.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add support for ASUS Mycinema P7131 remote (LP: #190018) + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2008-03-24 01:22:26.000000000 -0500 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2008-03-24 01:23:17.000000000 -0500 +@@ -60,6 +60,7 @@ + Askey Magic TView CPH03x (card 1);devinput;none;hw_default;cph03x/lircd.conf.cph03x; + Askey/Typhoon/Anubis Magic TView CPH051/061 (bt878) (card 24);devinput;none;hw_default;cph03x/lircd.conf.cph03x; + Asus TV-Box;tvbox;lirc_dev lirc_i2c;hw_default;asus/lircd.conf.asus; ++Asus MyCinema P7131;devinput;none;hw_default;asus/mycinema.conf; + AverMedia TV card (TVCapture, TVPhone) (card 6);devinput;none;hw_default;avermedia/lircd.conf.avermedia; + AverMedia TV card (TVCapture98, TVPhone98) (card 13/41);devinput;none;hw_default;avermedia/lircd.conf.avermedia98; + AverMedia TV card (VDOMATE) (use card 13);devinput;none;hw_default;avermedia/lircd.conf.vdomate; +diff -urNad lirc-0.8.3~pre1~/remotes/asus/mycinema.conf lirc-0.8.3~pre1/remotes/asus/mycinema.conf +--- lirc-0.8.3~pre1~/remotes/asus/mycinema.conf 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/remotes/asus/mycinema.conf 2008-03-24 01:22:27.000000000 -0500 +@@ -0,0 +1,73 @@ ++ ++# Please make this file available to others ++# by sending it to ++# ++# this config file was automatically generated ++# using lirc-0.8.2(dev/input) on Fri Jan 25 12:35:55 2008 ++# ++# contributed by Gianfranco Liporace ++# ++# brand: ASUS Remote ++# model no. of remote control: PC-39 ++# devices being controlled by this remote: ++# ASUS MyCinema P7131 Hybrid Analog/DVB TV card ++ ++begin remote ++ ++ name lirc.conf ++ bits 16 ++ eps 30 ++ aeps 100 ++ ++ one 0 0 ++ zero 0 0 ++ pre_data_bits 16 ++ pre_data 0x8001 ++ gap 135991 ++ toggle_bit_mask 0x80010188 ++ ++ begin codes ++ Rec 0x00A7 ++ Close 0x0074 ++ Prev 0x019C ++ Stop 0x0080 ++ Next 0x0197 ++ Rew 0x00A8 ++ Play/Pause 0x0077 ++ Fwd 0x00D0 ++ Up 0x0067 ++ Down 0x006C ++ Enter 0x8001001C ++ Left 0x0069 ++ Right 0x006A ++ Vol+ 0x0073 ++ Vol- 0x0072 ++ Ch+ 0x0192 ++ Ch- 0x0193 ++ Back 0x00AE ++ 1 0x0002 ++ 2 0x0003 ++ 3 0x0004 ++ 4 0x0005 ++ 5 0x0006 ++ 6 0x0007 ++ 7 0x0008 ++ 8 0x0009 ++ 9 0x000A ++ FullScreen 0x0174 ++ 0 0x000B ++ Recall 0x0070 ++ Tv 0x0179 ++ Video 0x0189 ++ Home 0x0066 ++ Dvd 0x0185 ++ Picture 0x016E ++ DvdMenu 0x008B ++ Radio 0x0181 ++ Music 0x0188 ++ Mute 0x0071 ++ end codes ++ ++end remote ++ ++ --- lirc-0.8.3~pre1.orig/debian/patches/27_multiple_include.dpatch +++ lirc-0.8.3~pre1/debian/patches/27_multiple_include.dpatch @@ -0,0 +1,38 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 27_multiple_include.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add support for "including" child lircd.conf's + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/daemons/config_file.c lirc-0.8.3~pre1/daemons/config_file.c +--- lirc-0.8.3~pre1~/daemons/config_file.c 2007-07-29 13:20:06.000000000 -0500 ++++ lirc-0.8.3~pre1/daemons/config_file.c 2007-12-30 02:12:56.000000000 -0600 +@@ -690,7 +690,26 @@ + if(val!=NULL){ + val2=strtok(NULL, " \t"); + LOGPRINTF(3,"\"%s\" \"%s\"",key,val); +- if (strcasecmp("begin",key)==0){ ++ if (strcasecmp("include",key)==0){ ++ FILE* childFile = fopen(val, "r"); ++ if (childFile == NULL){ ++ logprintf(LOG_ERR,"error opening child file defined at line %d:",line); ++ logprintf(LOG_ERR,"ignoring this child file for now."); ++ } ++ else{ ++ if (!top_rem){ ++ /* create first remote */ ++ LOGPRINTF(2,"creating first remote"); ++ top_rem = rem = read_config(childFile); ++ }else{ ++ /* create new remote */ ++ LOGPRINTF(2,"creating next remote"); ++ rem->next=read_config(childFile); ++ rem=rem->next; ++ } ++ fclose(childFile); ++ } ++ }else if (strcasecmp("begin",key)==0){ + if (strcasecmp("codes", val)==0){ + /* init codes mode */ + LOGPRINTF(2," begin codes"); --- lirc-0.8.3~pre1.orig/debian/patches/23_pad2keys.dpatch +++ lirc-0.8.3~pre1/debian/patches/23_pad2keys.dpatch @@ -0,0 +1,119 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 23_pad2keys.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: For pad2keys imon support (LP: #153184). + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_imon/lirc_imon.c lirc-0.8.3~pre1/drivers/lirc_imon/lirc_imon.c +--- lirc-0.8.3~pre1~/drivers/lirc_imon/lirc_imon.c 2007-09-30 05:58:45.000000000 -0400 ++++ lirc-0.8.3~pre1/drivers/lirc_imon/lirc_imon.c 2007-10-30 16:09:28.000000000 -0400 +@@ -119,6 +119,10 @@ + static ssize_t vfd_write(struct file *file, const char *buf, + size_t n_bytes, loff_t *pos); + ++/* LCD-specific file_operations function prototypes */ ++static ssize_t lcd_write (struct file *file, const char *buf, ++ size_t n_bytes, loff_t *pos); ++ + /* LIRC plugin function prototypes */ + static int ir_open(void *data); + static void ir_close(void *data); +@@ -234,6 +238,7 @@ + static DECLARE_MUTEX(disconnect_sem); + + static int debug; ++static int islcd = 1; /* This should default to "0" and we auto-detect */ + + #if !defined(KERNEL_2_5) + +@@ -262,6 +267,8 @@ + MODULE_DEVICE_TABLE(usb, imon_usb_id_table); + module_param(debug, int, 0); + MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)"); ++module_param (islcd, int, 1); ++MODULE_PARM_DESC (islcd, "Is iMON LCD (as opposed to VFD): 0=no, 1=yes (default: yes)"); + + static inline void delete_context(struct imon_context *context) + { +@@ -633,6 +640,67 @@ + } + + /** ++ * Writes data to the LCD. The iMON OEM LCD screen excepts 8-byte ++ * packets. We accept data as 16 hexadecimal digits, followed by a ++ * newline (to make it easy to drive the device from a command-line ++ * -- even though the actual binary data is a bit complicated). ++ * ++ * The device itself is not a "traditional" text-mode display. It's ++ * actually a 16x96 pixel bitmap display. That means if you want to ++ * display text, you've got to have your own "font" and translate the ++ * text into bitmaps for display. This is really flexible (you can ++ * display whatever diacritics you need, and so on), but it's also ++ * a lot more complicated than most LCDs... ++ */ ++static ssize_t lcd_write (struct file *file, const char *buf, ++ size_t n_bytes, loff_t *pos) ++{ ++ ++ int i, n; ++ int retval = SUCCESS; ++ struct imon_context *context; ++ ++ context = (struct imon_context *) file ->private_data; ++ if (!context) { ++ err ("%s: no context for device", __FUNCTION__); ++ return -ENODEV; ++ } ++ ++ LOCK_CONTEXT; ++ ++ if (!context ->dev_present) { ++ err ("%s: no iMON device present", __FUNCTION__); ++ retval = -ENODEV; ++ goto exit; ++ } ++ ++ if (n_bytes != 8) { ++ err ("%s: invalid payload size: %d (expecting 8)", __FUNCTION__, (int) n_bytes); ++ retval = -EINVAL; ++ goto exit; ++ } ++ ++ /* ++ * Not sure if there's any point copying the data to tx.data_buf and then ++ * to usb_tx_buf, but I'm new here :-) ++ */ ++ copy_from_user (context ->tx.data_buf, buf, n_bytes); ++ memcpy(context->usb_tx_buf, context ->tx.data_buf, 8); ++ ++ if ((retval = send_packet (context)) != SUCCESS) { ++ ++ err ("%s: send packet failed!", ++ __FUNCTION__); ++ goto exit; ++ } else if (debug) { ++ info ("%s: write %d bytes to LCD", __FUNCTION__, (int) n_bytes); ++ } ++exit: ++ UNLOCK_CONTEXT; ++ return (retval == SUCCESS) ? n_bytes : retval; ++} ++ ++/** + * Callback function for USB core API: transmit data + */ + #if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19) +@@ -960,6 +1028,12 @@ + + info("%s: found IMON device", __FUNCTION__); + ++ // We SHOULD detect this now, rather than just doing whatever our module ++ // parameters tells us... ++ if (islcd) { ++ vfd_fops.write = &lcd_write; ++ } ++ + #if !defined(KERNEL_2_5) + for (subminor = 0; subminor < MAX_DEVICES; ++subminor) { + if (minor_table[subminor] == NULL) --- lirc-0.8.3~pre1.orig/debian/patches/16_lirc-gpio.dpatch +++ lirc-0.8.3~pre1/debian/patches/16_lirc-gpio.dpatch @@ -0,0 +1,167 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 16_lirc-gpio.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Switch all GPIO based drivers to use dev/input interface + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2007-12-29 23:17:21.000000000 -0600 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2007-12-29 23:18:29.000000000 -0600 +@@ -55,46 +55,46 @@ + + [TV card] + Adaptec AVC-2410;adaptec;lirc_dev lirc_i2c;hw_default;adaptec/lircd.conf.AVC-2410; +-Askey Magic TView CPH03x (card 1);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-Askey/Typhoon/Anubis Magic TView CPH051/061 (bt878) (card 24);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++Askey Magic TView CPH03x (card 1);devinput;none;hw_default;cph03x/lircd.conf.cph03x; ++Askey/Typhoon/Anubis Magic TView CPH051/061 (bt878) (card 24);devinput;none;hw_default;cph03x/lircd.conf.cph03x; + Asus TV-Box;tvbox;lirc_dev lirc_i2c;hw_default;asus/lircd.conf.asus; +-AverMedia TV card (TVCapture, TVPhone) (card 6);avermedia;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.avermedia; +-AverMedia TV card (TVCapture98, TVPhone98) (card 13/41);avermedia98;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.avermedia98; +-AverMedia TV card (VDOMATE) (use card 13);avermedia_vdomate;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.vdomate; +-BestBuy Easy TV (BT848) (card 55);bestbuy;lirc_dev lirc_gpio;hw_default;bestbuy/lircd.conf.bestbuy; +-BestBuy Easy TV (BT878) (card 62);bestbuy2;lirc_dev lirc_gpio;hw_default;bestbuy/lircd.conf.bestbuy2; +-Chronos Video Shuttle II (card 35);chronos;lirc_dev lirc_gpio;hw_default;chronos/lircd.conf.chronos; ++AverMedia TV card (TVCapture, TVPhone) (card 6);devinput;none;hw_default;avermedia/lircd.conf.avermedia; ++AverMedia TV card (TVCapture98, TVPhone98) (card 13/41);devinput;none;hw_default;avermedia/lircd.conf.avermedia98; ++AverMedia TV card (VDOMATE) (use card 13);devinput;none;hw_default;avermedia/lircd.conf.vdomate; ++BestBuy Easy TV (BT848) (card 55);devinput;none;hw_default;bestbuy/lircd.conf.bestbuy; ++BestBuy Easy TV (BT878) (card 62);devinput;none;hw_default;bestbuy/lircd.conf.bestbuy2; ++Chronos Video Shuttle II (card 35);devinput;none;hw_default;chronos/lircd.conf.chronos; + Creative BreakOut-Box;breakoutbox;lirc_dev lirc_i2c;hw_default;creative/lircd.conf.breakoutbox; +-Dynalink Magic TView (card 48);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-FlyVideo II (card 8);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; +-FlyVideo 98 (card 30);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; +-FlyVideo 98/FM /2000S (card 56);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; +-Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card 36);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; ++Dynalink Magic TView (card 48);devinput;none;hw_default;cph03x/lircd.conf.cph03x; ++FlyVideo II (card 8);devinput;none;hw_default;life-view/lircd.conf.flyvideo; ++FlyVideo 98 (card 30);devinput;none;hw_default;life-view/lircd.conf.flyvideo; ++FlyVideo 98/FM /2000S (card 56);devinput;none;hw_default;life-view/lircd.conf.flyvideo; ++Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card 36);devinput;none;hw_default;life-view/lircd.conf.flyvideo; + Hauppauge TV card;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge HVR-1300;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge DVB-s card (ver. 2.1);hauppauge_dvb;lirc_dev;hw_default;hauppauge/lircd.conf.hauppauge; + Hercules Smart TV Stereo (card 100);hercules_smarttv_stereo;lirc_dev lirc_i2c;hw_default;hercules/lircd.conf.smarttv_stereo; +-I-O Data Co. GV-BCTV5/PCI (card 81);gvbctv5pci;lirc_dev lirc_gpio;hw_default;iodata/lircd.conf.gvbctv5pci; +-Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF (card 78);kworld;lirc_dev lirc_gpio;hw_default;kworld/lircd.conf.kworld; ++I-O Data Co. GV-BCTV5/PCI (card 81);devinput;none;hw_default;iodata/lircd.conf.gvbctv5pci; ++Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF (card 78);devinput;none;hw_default;kworld/lircd.conf.kworld; + KNC ONE TV Station (-/SE/PRO/RDS);knc_one;lirc_dev lirc_i2c;hw_default;knc_one/lircd.conf.knc_one; +-Lenco MXTV-9578 CP (card 50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++Lenco MXTV-9578 CP (card 50);devinput;none;hw_default;pixelview/lircd.conf.playtv_pro; + Miro PCTV serial port receiver;pctv;none;hw_pinsys;pinnacle_systems/lircd.conf.pctv; +-Phoebe Tv Master + FM (card 22);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++Phoebe Tv Master + FM (card 22);devinput;none;hw_default;cph03x/lircd.conf.cph03x; + Pinnacle Systems PCTV Sat receiver;pctv;none;hw_pinsys;pinnacle_systems/lircd.conf.pctv; +-Pixelview PlayTV MPEG2;pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-PixelView PlayTV PAK (card 50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-Pixelview PlayTV pro (card 37);pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-Prolink Pixelview PV-BT878P+ (Rev.4C,8E, card 70);pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-Prolink PV-BT878P+4E (card 50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++Pixelview PlayTV MPEG2;devinput;none;hw_default;pixelview/lircd.conf.playtv_pro; ++PixelView PlayTV PAK (card 50);devinput;none;hw_default;pixelview/lircd.conf.playtv_pro; ++Pixelview PlayTV pro (card 37);devinput;none;hw_default;pixelview/lircd.conf.playtv_pro; ++Prolink Pixelview PV-BT878P+ (Rev.4C,8E, card 70);pixelview_pro;none;hw_default;pixelview/lircd.conf.playtv_pro; ++Prolink PV-BT878P+4E (card 50);devinput;none;hw_default;pixelview/lircd.conf.playtv_pro; + ProVideo PV951 (card 42);provideo;lirc_dev lirc_i2c;hw_default;provideo/lircd.conf.pv951; + Technisat MediaFocus I;mediafocusI;none;hw_default;technisat/lircd.conf.mediafocusI; + Tekram M230 Mach64 (and others bt829 based);tekram_bt829;lirc_dev lirc_bt829;hw_default;tekram/lircd.conf.m230; +-TriTan Technology TView95 CPH03x (card 1);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-TView99 CPH063 (card 38);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++TriTan Technology TView95 CPH03x (card 1);devinput;none;hw_default;cph03x/lircd.conf.cph03x; ++TView99 CPH063 (card 38);devinput;none;hw_default;cph03x/lircd.conf.cph03x; + Typhoon TView RDS / FM Stereo (card 53);knc_one;lirc_dev lirc_i2c;hw_default;knc_one/lircd.conf.knc_one; + Winfast PVR2000;leadtek_pvr2000;lirc_dev lirc_i2c;hw_default;leadtek/lircd.conf.PVR2000; +-Winfast TV2000/XP (card 34);leadtek_0010;lirc_dev lirc_gpio;hw_default;leadtek/lircd.conf.RM-0010; +-WinView 601 (card 17);leadtek_0007;lirc_dev lirc_gpio;hw_default;leadtek/lircd.conf.RM-0007; ++Winfast TV2000/XP (card 34);devinput;none;hw_default;leadtek/lircd.conf.RM-0010; ++WinView 601 (card 17);devinput;none;hw_default;leadtek/lircd.conf.RM-0007; + + [IrDA hardware] + SIR IrDA (built-in IR ports);sir;lirc_dev lirc_sir;hw_default;; +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/Makefile.am lirc-0.8.3~pre1/drivers/lirc_gpio/Makefile.am +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/Makefile.am 2004-04-25 11:29:25.000000000 -0500 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/Makefile.am 2007-12-29 23:17:21.000000000 -0600 +@@ -5,9 +5,9 @@ + ## this is so that Automake includes the C compiling definitions, and + ## includes the source files in the distribution. + EXTRA_PROGRAMS = automake_dummy +-automake_dummy_SOURCES = lirc_gpio.c ++automake_dummy_SOURCES = lirc_gpio.c bttv_deprecated.o + + ## there is no *just* object file support in automake. This is close enough +-module_DATA = lirc_gpio.o ++module_DATA = lirc_gpio.o bttv_deprecated.o + + include ../Makefile.common +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/bttv_deprecated.c lirc-0.8.3~pre1/drivers/lirc_gpio/bttv_deprecated.c +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/bttv_deprecated.c 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/bttv_deprecated.c 2007-12-29 23:17:21.000000000 -0600 +@@ -0,0 +1,44 @@ ++//Temporarily added until a resolution is reached upstream ++//For kernel 2.6.22 ++ ++#include ++#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,22) ++#include "extra_2.6.22/bttv.h" ++#include "extra_2.6.22/bttvp.h" ++#else ++#include "../drivers/media/video/bt8xx/bttv.h" ++#include "../drivers/media/video/bt8xx/bttvp.h" ++#endif ++ ++struct bttv bttvs[BTTV_MAX]; ++unsigned int bttv_debug; ++unsigned int bttv_num; /* number of Bt848s in use */ ++ ++int bttv_get_cardinfo(unsigned int card, int *type, unsigned *cardid) ++{ ++ printk("The bttv_* interface is obsolete and will go away,\n" ++ "please use the new, sysfs based interface instead.\n"); ++ if (card >= bttv_num) { ++ return -1; ++ } ++ *type = bttvs[card].c.type; ++ *cardid = bttvs[card].cardid; ++ return 0; ++} ++ ++wait_queue_head_t* bttv_get_gpio_queue(unsigned int card) ++{ ++ struct bttv *btv; ++ ++ if (card >= bttv_num) { ++ return NULL; ++ } ++ ++ btv = &bttvs[card]; ++ if (bttvs[card].shutdown) { ++ return NULL; ++ } ++ return &btv->gpioq; ++} ++ ++ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/bttv_deprecated.h lirc-0.8.3~pre1/drivers/lirc_gpio/bttv_deprecated.h +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/bttv_deprecated.h 1969-12-31 18:00:00.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/bttv_deprecated.h 2007-12-29 23:17:21.000000000 -0600 +@@ -0,0 +1,6 @@ ++//Temporarily re-added for Ubuntu Kernel 2.6.22 until upstream ++//Resolution is reached. ++extern wait_queue_head_t* bttv_get_gpio_queue(unsigned int card); ++extern int bttv_get_cardinfo(unsigned int card, int *type, ++ unsigned int *cardid); ++ +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/lirc_gpio.c lirc-0.8.3~pre1/drivers/lirc_gpio/lirc_gpio.c +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/lirc_gpio.c 2007-12-29 23:17:21.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/lirc_gpio.c 2007-12-29 23:17:21.000000000 -0600 +@@ -63,6 +63,7 @@ + #elif LINUX_VERSION_CODE == KERNEL_VERSION(2,6,22) + #include "extra_2.6.22/bttv.h" + #include "extra_2.6.22/bttvp.h" ++#include "bttv_deprecated.h" + #endif + + #if BTTV_VERSION_CODE < KERNEL_VERSION(0, 7, 45) --- lirc-0.8.3~pre1.orig/debian/patches/13-warning-cleanup.dpatch +++ lirc-0.8.3~pre1/debian/patches/13-warning-cleanup.dpatch @@ -0,0 +1,197 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 13-warning-cleanup.dpatch by Mario Limonciello +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Remove build time debug messages for kernel drivers + +@DPATCH@ +diff -urNad lirc-0.8.3~pre1~/doc/lirc.hwdb lirc-0.8.3~pre1/doc/lirc.hwdb +--- lirc-0.8.3~pre1~/doc/lirc.hwdb 2008-01-05 02:32:39.000000000 -0600 ++++ lirc-0.8.3~pre1/doc/lirc.hwdb 2008-01-05 02:34:04.000000000 -0600 +@@ -55,46 +55,46 @@ + + [TV card] + Adaptec AVC-2410;adaptec;lirc_dev lirc_i2c;hw_default;adaptec/lircd.conf.AVC-2410; +-Askey Magic TView CPH03x (card=1);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-Askey/Typhoon/Anubis Magic TView CPH051/061 (bt878) (card=24);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++Askey Magic TView CPH03x (card 1);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++Askey/Typhoon/Anubis Magic TView CPH051/061 (bt878) (card 24);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; + Asus TV-Box;tvbox;lirc_dev lirc_i2c;hw_default;asus/lircd.conf.asus; +-AverMedia TV card (TVCapture, TVPhone) (card=6);avermedia;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.avermedia; +-AverMedia TV card (TVCapture98, TVPhone98) (card=13/41);avermedia98;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.avermedia98; +-AverMedia TV card (VDOMATE) (use card=13);avermedia_vdomate;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.vdomate; +-BestBuy Easy TV (BT848) (card=55);bestbuy;lirc_dev lirc_gpio;hw_default;bestbuy/lircd.conf.bestbuy; +-BestBuy Easy TV (BT878) (card=62);bestbuy2;lirc_dev lirc_gpio;hw_default;bestbuy/lircd.conf.bestbuy2; +-Chronos Video Shuttle II (card=35);chronos;lirc_dev lirc_gpio;hw_default;chronos/lircd.conf.chronos; ++AverMedia TV card (TVCapture, TVPhone) (card 6);avermedia;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.avermedia; ++AverMedia TV card (TVCapture98, TVPhone98) (card 13/41);avermedia98;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.avermedia98; ++AverMedia TV card (VDOMATE) (use card 13);avermedia_vdomate;lirc_dev lirc_gpio;hw_default;avermedia/lircd.conf.vdomate; ++BestBuy Easy TV (BT848) (card 55);bestbuy;lirc_dev lirc_gpio;hw_default;bestbuy/lircd.conf.bestbuy; ++BestBuy Easy TV (BT878) (card 62);bestbuy2;lirc_dev lirc_gpio;hw_default;bestbuy/lircd.conf.bestbuy2; ++Chronos Video Shuttle II (card 35);chronos;lirc_dev lirc_gpio;hw_default;chronos/lircd.conf.chronos; + Creative BreakOut-Box;breakoutbox;lirc_dev lirc_i2c;hw_default;creative/lircd.conf.breakoutbox; +-Dynalink Magic TView (card=48);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-FlyVideo II (card=8);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; +-FlyVideo 98 (card=30);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; +-FlyVideo 98/FM /2000S (card=56);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; +-Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card=36);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; ++Dynalink Magic TView (card 48);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++FlyVideo II (card 8);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; ++FlyVideo 98 (card 30);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; ++FlyVideo 98/FM /2000S (card 56);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; ++Flyvideo 98FM (LR50Q) / Typhoon TView TV/FM Tuner (card 36);flyvideo;lirc_dev lirc_gpio;hw_default;life-view/lircd.conf.flyvideo; + Hauppauge TV card;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge HVR-1300;hauppauge;lirc_dev lirc_i2c;hw_default;hauppauge/lircd.conf.hauppauge; + Hauppauge DVB-s card (ver. 2.1);hauppauge_dvb;lirc_dev;hw_default;hauppauge/lircd.conf.hauppauge; +-Hercules Smart TV Stereo (card=100);hercules_smarttv_stereo;lirc_dev lirc_i2c;hw_default;hercules/lircd.conf.smarttv_stereo; +-I-O Data Co. GV-BCTV5/PCI (card=81);gvbctv5pci;lirc_dev lirc_gpio;hw_default;iodata/lircd.conf.gvbctv5pci; +-Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF (card=78);kworld;lirc_dev lirc_gpio;hw_default;kworld/lircd.conf.kworld; ++Hercules Smart TV Stereo (card 100);hercules_smarttv_stereo;lirc_dev lirc_i2c;hw_default;hercules/lircd.conf.smarttv_stereo; ++I-O Data Co. GV-BCTV5/PCI (card 81);gvbctv5pci;lirc_dev lirc_gpio;hw_default;iodata/lircd.conf.gvbctv5pci; ++Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF (card 78);kworld;lirc_dev lirc_gpio;hw_default;kworld/lircd.conf.kworld; + KNC ONE TV Station (-/SE/PRO/RDS);knc_one;lirc_dev lirc_i2c;hw_default;knc_one/lircd.conf.knc_one; +-Lenco MXTV-9578 CP (card=50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++Lenco MXTV-9578 CP (card 50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; + Miro PCTV serial port receiver;pctv;none;hw_pinsys;pinnacle_systems/lircd.conf.pctv; +-Phoebe Tv Master + FM (card=22);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++Phoebe Tv Master + FM (card 22);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; + Pinnacle Systems PCTV Sat receiver;pctv;none;hw_pinsys;pinnacle_systems/lircd.conf.pctv; + Pixelview PlayTV MPEG2;pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-PixelView PlayTV PAK (card=50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-Pixelview PlayTV pro (card=37);pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-Prolink Pixelview PV-BT878P+ (Rev.4C,8E, card=70);pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-Prolink PV-BT878P+4E (card=50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; +-ProVideo PV951 (card=42);provideo;lirc_dev lirc_i2c;hw_default;provideo/lircd.conf.pv951; ++PixelView PlayTV PAK (card 50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++Pixelview PlayTV pro (card 37);pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++Prolink Pixelview PV-BT878P+ (Rev.4C,8E, card 70);pixelview_pro;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++Prolink PV-BT878P+4E (card 50);pixelview_pak;lirc_dev lirc_gpio;hw_default;pixelview/lircd.conf.playtv_pro; ++ProVideo PV951 (card 42);provideo;lirc_dev lirc_i2c;hw_default;provideo/lircd.conf.pv951; + Technisat MediaFocus I;mediafocusI;none;hw_default;technisat/lircd.conf.mediafocusI; + Tekram M230 Mach64 (and others bt829 based);tekram_bt829;lirc_dev lirc_bt829;hw_default;tekram/lircd.conf.m230; +-TriTan Technology TView95 CPH03x (card=1);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-TView99 CPH063 (card=38);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; +-Typhoon TView RDS / FM Stereo (card=53);knc_one;lirc_dev lirc_i2c;hw_default;knc_one/lircd.conf.knc_one; +-Winfast PVR2000 (Linux kernel >=2.6.11 required);leadtek_pvr2000;lirc_dev lirc_i2c;hw_default;leadtek/lircd.conf.PVR2000; +-Winfast TV2000/XP (card=34);leadtek_0010;lirc_dev lirc_gpio;hw_default;leadtek/lircd.conf.RM-0010; +-WinView 601 (card=17);leadtek_0007;lirc_dev lirc_gpio;hw_default;leadtek/lircd.conf.RM-0007; ++TriTan Technology TView95 CPH03x (card 1);cph03x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++TView99 CPH063 (card 38);cph06x;lirc_dev lirc_gpio;hw_default;cph03x/lircd.conf.cph03x; ++Typhoon TView RDS / FM Stereo (card 53);knc_one;lirc_dev lirc_i2c;hw_default;knc_one/lircd.conf.knc_one; ++Winfast PVR2000;leadtek_pvr2000;lirc_dev lirc_i2c;hw_default;leadtek/lircd.conf.PVR2000; ++Winfast TV2000/XP (card 34);leadtek_0010;lirc_dev lirc_gpio;hw_default;leadtek/lircd.conf.RM-0010; ++WinView 601 (card 17);leadtek_0007;lirc_dev lirc_gpio;hw_default;leadtek/lircd.conf.RM-0007; + + [IrDA hardware] + SIR IrDA (built-in IR ports);sir;lirc_dev lirc_sir;hw_default;; +@@ -109,7 +109,6 @@ + Sharp Zaurus;sa1100;lirc_dev lirc_sir;hw_default;; + + [USB devices] +-ADSTech USBX-707 USB IR Blaster;usbx;none;hw_usbx;adstech/lircd.conf.usbx-707; + Apple Mac mini USB IR Receiver;macmini;none;hw_macmini;apple/lircd.conf.macmini; + Asus DH USB Remote;asusdh;none;hw_asusdh;asus/lircd.conf.asusdh; + ATI/NVidia/X10 I & II RF Remote;atiusb;lirc_dev lirc_atiusb;hw_default;atiusb/lircd.conf.atiusb; +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_gpio/lirc_gpio.c lirc-0.8.3~pre1/drivers/lirc_gpio/lirc_gpio.c +--- lirc-0.8.3~pre1~/drivers/lirc_gpio/lirc_gpio.c 2008-01-05 02:32:39.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_gpio/lirc_gpio.c 2008-01-05 02:32:39.000000000 -0600 +@@ -88,12 +88,6 @@ + static int soft_gap; + static int sample_rate = 10; + +-#define dprintk(fmt, args...) \ +- do { \ +- if (debug) \ +- printk(KERN_DEBUG fmt, ## args); \ +- } while (0) +- + struct rcv_info { + int bttv_id; + int card_id; +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_it87/lirc_it87.c lirc-0.8.3~pre1/drivers/lirc_it87/lirc_it87.c +--- lirc-0.8.3~pre1~/drivers/lirc_it87/lirc_it87.c 2008-01-03 15:58:14.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_it87/lirc_it87.c 2008-01-05 02:32:39.000000000 -0600 +@@ -265,7 +265,7 @@ + unsigned long value = 0; + unsigned int ivalue; + unsigned long hw_flags; +- ++ + if (cmd == LIRC_GET_FEATURES) + value = LIRC_CAN_SEND_PULSE | + LIRC_CAN_SET_SEND_CARRIER | +@@ -365,17 +365,12 @@ + + static int set_use_inc(void *data) + { +-#if WE_DONT_USE_LOCAL_OPEN_CLOSE +- MOD_INC_USE_COUNT; +-#endif + return 0; + } + + static void set_use_dec(void *data) + { +-#if WE_DONT_USE_LOCAL_OPEN_CLOSE +- MOD_DEC_USE_COUNT; +-#endif ++ + } + static struct lirc_plugin plugin = { + .name = LIRC_DRIVER_NAME, +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_serial/lirc_serial.c lirc-0.8.3~pre1/drivers/lirc_serial/lirc_serial.c +--- lirc-0.8.3~pre1~/drivers/lirc_serial/lirc_serial.c 2008-01-03 15:58:14.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_serial/lirc_serial.c 2008-01-05 02:32:39.000000000 -0600 +@@ -63,15 +63,6 @@ + + #include + +-#if defined(CONFIG_SERIAL) || defined(CONFIG_SERIAL_8250) +-#warning "******************************************" +-#warning " Your serial port driver is compiled into " +-#warning " the kernel. You will have to release the " +-#warning " port you want to use for LIRC with: " +-#warning " setserial /dev/ttySx uart none " +-#warning "******************************************" +-#endif +- + #include + #include + #include +diff -urNad lirc-0.8.3~pre1~/drivers/lirc_sir/lirc_sir.c lirc-0.8.3~pre1/drivers/lirc_sir/lirc_sir.c +--- lirc-0.8.3~pre1~/drivers/lirc_sir/lirc_sir.c 2008-01-03 15:58:14.000000000 -0600 ++++ lirc-0.8.3~pre1/drivers/lirc_sir/lirc_sir.c 2008-01-05 02:32:39.000000000 -0600 +@@ -48,15 +48,6 @@ + + #include + +-#if !defined(LIRC_ON_SA1100) && !defined(CONFIG_SERIAL_MODULE) +-#warning "******************************************" +-#warning " Your serial port driver is compiled into " +-#warning " the kernel. You will have to release the " +-#warning " port you want to use for LIRC with: " +-#warning " setserial /dev/ttySx uart none " +-#warning "******************************************" +-#endif +- + #include + #include + #include +@@ -510,17 +501,11 @@ + + static int set_use_inc(void *data) + { +-#if WE_DONT_USE_LOCAL_OPEN_CLOSE +- MOD_INC_USE_COUNT; +-#endif + return 0; + } + + static void set_use_dec(void *data) + { +-#if WE_DONT_USE_LOCAL_OPEN_CLOSE +- MOD_DEC_USE_COUNT; +-#endif + } + static struct lirc_plugin plugin = { + .name = LIRC_DRIVER_NAME, --- lirc-0.8.3~pre1.orig/debian/lirc-modules-source.postrm +++ lirc-0.8.3~pre1/debian/lirc-modules-source.postrm @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +#DEBHELPER# + +case "$1" in + purge) + if [ -f /etc/lirc/lirc-modules-source.conf ]; then + rm -f /etc/lirc/lirc-modules-source.conf + fi + if [ -x /usr/bin/ucf ]; then + /usr/bin/ucf --purge /etc/lirc/lirc-modules-source.conf + fi + ;; +esac + +exit 0 --- lirc-0.8.3~pre1.orig/debian/copyright +++ lirc-0.8.3~pre1/debian/copyright @@ -0,0 +1,28 @@ +This is the Debian packaging of LIRC, Linux Infra-red Remote Control +support. + +It was downloaded from http://download.sourceforge.net/LIRC/lirc-0.6.3.tar.gz + +Summary of copyright messages found in sources: + +Copyright (C) 1998 Pablo d'Angelo +Copyright (C) 1998,1999 Christoph Bartelmus +Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) +Copyright (C) 1998 Trent Piepho +Copyright (C) 1998 Ben Pfaff +Copyright (C) 1998.11.18 Sinkovics Zoltan + +The whole thing is licensed under the GPL. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 1, or (at your option) +any later version. + +This program 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. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. --- lirc-0.8.3~pre1.orig/debian/lirc.init.d +++ lirc-0.8.3~pre1/debian/lirc.init.d @@ -0,0 +1,190 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: lirc +# Required-Start: $syslog +# Required-Stop: $syslog +# Should-Start: $local_fs +# Should-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts LIRC daemon. +# Description: LIRC is used to control different +# infrared receivers and transceivers. +### END INIT INFO + +load_modules () +{ + local MODULES_MISSING=false + local UDEV=false + + log_daemon_msg "Loading LIRC modules" + for mod in $* + do + if [ $mod != "udev" ]; then + modprobe -k $mod 2> /dev/null || MODULES_MISSING=true + else + UDEV=true + fi + done + log_end_msg $? + + if test -x /sbin/udevadm && [ $UDEV != true ]; + then + if ! /sbin/udevadm settle; then + echo "timeout waiting for devices to be ready" + fi + fi + + if $MODULES_MISSING; then + log_failure_msg "Unable to load LIRC kernel modules. Verify your" + log_failure_msg "selected kernel modules in /etc/lirc/hardware.conf" + START_LIRCMD=false + START_LIRCD=false + fi +} + +build_remote_args () +{ + local REMOTE_ARGS="$*" + + #For remote only detection support, we need + #both REMOTE_DEVICE and TRANSMITTER_DEVICE undefined + if [ -z "$REMOTE_DEVICE" ] && [ -z "$TRANSMITTER_DEVICE" ]; then + for dev in /dev/lirc0; do + if [ -c $dev ]; then + REMOTE_DEVICE="$dev" + break + fi + done + fi + + #If we have a REMOTE_DEVICE or REMOTE_DRIVER defined (either because no devices + #were defined, OR if we explicitly did), then populate REMOTE_ARGS + if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then + if [ -n "$REMOTE_DEVICE" ] && [ "$REMOTE_DEVICE" != "none" ]; then + REMOTE_ARGS="--device=$REMOTE_DEVICE $REMOTE_ARGS" + fi + if [ -n "$REMOTE_DRIVER" ] && [ "$REMOTE_DRIVER" != "none" ]; then + REMOTE_ARGS="--driver=$REMOTE_DRIVER $REMOTE_ARGS" + fi + + #Now, if we ALSO have a transmitter defined, add some args + #To make the first lircd listen up + if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then + REMOTE_ARGS="$REMOTE_ARGS --output=/dev/lircd --listen" + fi + fi + echo $REMOTE_ARGS +} + +build_transmitter_args () +{ + local TRANSMITTER_ARGS="$*" + + #Transmitters must be explicitly be defined + if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then + if [ -n "$TRANSMITTER_DEVICE" ] && [ "$TRANSMITTER_DEVICE" != "none" ]; then + TRANSMITTER_ARGS="--device=$TRANSMITTER_DEVICE $TRANSMITTER_ARGS" + fi + if [ -n "$TRANSMITTER_DRIVER" ] && [ "$TRANSMITTER_DRIVER" != "none" ]; then + TRANSMITTER_ARGS="--driver=$TRANSMITTER_DRIVER $TRANSMITTER_ARGS" + fi + + #Now, if we ALSO have a remote defined, add some args + #To make the second lircd connect + if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then + TRANSMITTER_ARGS="$TRANSMITTER_ARGS --output=/dev/lircd1 --connect=localhost:8765 --pidfile=/var/run/lircd1.pid" + fi + fi + echo $TRANSMITTER_ARGS +} + +. /lib/lsb/init-functions + +test -f /usr/sbin/lircd || exit 0 +test -f /usr/sbin/lircmd || exit 0 + +START_LIRCMD=true +START_LIRCD=true + +if [ -f /etc/lirc/hardware.conf ];then + . /etc/lirc/hardware.conf +fi + +if [ ! -f /etc/lirc/lircd.conf ] \ + || grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf;then + if [ "$1" = "start" ]; then + log_success_msg "No valid /etc/lirc/lircd.conf has been found." + log_success_msg "Remote control support has been disabled." + log_success_msg "Reconfigure LIRC or manually replace /etc/lirc/lircd.conf to enable." + fi + START_LIRCD=false + START_LIRCMD=false +fi +if [ ! -f /etc/lirc/lircmd.conf ] \ + || grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf;then + START_LIRCMD=false +fi + +case "$1" in + start) + if [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then + load_modules $REMOTE_MODULES $TRANSMITTER_MODULES $MODULES $2 + fi + if $START_LIRCD; then + log_daemon_msg "Starting remote control daemon(s) : LIRC " + REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS` + TRANSMITTER_LIRCD_ARGS=`build_transmitter_args $TRANSMITTER_LIRCD_ARGS` + + #if we have a remote defined, it is primary process + if [ ! -z "$REMOTE_LIRCD_ARGS" ]; then + start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null + log_end_msg $? + + #now if we additionally have a transmitter defined, it is secondary process + if [ ! -z "$TRANSMITTER_LIRCD_ARGS" ]; then + /usr/sbin/lircd $TRANSMITTER_LIRCD_ARGS < /dev/null + fi + elif [ ! -z "$TRANSMITTER_LIRCD_ARGS" ]; then + start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $TRANSMITTER_LIRCD_ARGS < /dev/null + else + log_end_msg 1 + fi + fi + if $START_LIRCMD; then + log_daemon_msg "Starting remote control mouse daemon : LIRCMD " + start-stop-daemon --start --quiet --exec /usr/sbin/lircmd < /dev/null + log_end_msg $? + fi + ;; + stop) + if $START_LIRCMD; then + log_daemon_msg "Stopping remote control mouse daemon: LIRCMD" + start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd + log_end_msg $? + fi + if $START_LIRCD; then + log_daemon_msg "Stopping remote control daemon(s): LIRC" + start-stop-daemon --stop --quiet --exec /usr/sbin/lircd + log_end_msg $? + fi + ;; + reload|force-reload) + if $START_LIRCD; then + start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd + fi + if $START_LIRCMD; then + start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd + fi + ;; + restart) + $0 stop + #passes parameter $2 which is possibly our udev paramater + $0 start $2 + ;; + *) + echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}" + exit 1 +esac + +exit 0 --- lirc-0.8.3~pre1.orig/debian/lirc.postinst +++ lirc-0.8.3~pre1/debian/lirc.postinst @@ -0,0 +1,572 @@ +#!/bin/sh +set -e + +DebconfLoad () +{ + #Read remote information + #that was populated in debconf + db_get lirc/remote + REMOTE="$RET" + db_get lirc/remote_driver + REMOTE_DRIVER="$RET" + db_get lirc/remote_modules + REMOTE_MODULES="$RET" + db_get lirc/remote_device + REMOTE_DEVICE="$RET" + db_get lirc/remote_lircd_conf + REMOTE_LIRCD_CONF="$RET" + + #Read transmitter information + #that was populated in debconf + db_get lirc/transmitter + TRANSMITTER="$RET" + db_get lirc/transmitter_driver + TRANSMITTER_DRIVER="$RET" + db_get lirc/transmitter_modules + TRANSMITTER_MODULES="$RET" + db_get lirc/transmitter_device + TRANSMITTER_DEVICE="$RET" + db_get lirc/transmitter_lircd_conf + TRANSMITTER_LIRCD_CONF="$RET" + + #Whether we will be starting lircd + db_get lirc/start_lircd + START_LIRCD="$RET" + + db_get lirc/lircmd_conf + LIRCMD_CONF="$RET" + + #force noninteractive reconfiguration + db_get lirc/reconfigure + FORCE_NONINTERACTIVE_RECONFIGURATION="$RET" + + #Common kernel module configuration + db_get lirc/port + LIRC_PORT=$RET + db_get lirc/irq + LIRC_IRQ=$RET + db_get lirc/cflags + LIRC_CFLAGS=$RET + + #lirc_parallel + db_get lirc/timer + LIRC_PARALLEL_TIMER=$RET +} +check_hardware_conf () +{ + #Make sure that all variables are there, and also create the file if + #it is not there + #local VAR + for VAR in REMOTE REMOTE_MODULES REMOTE_DRIVER REMOTE_DEVICE REMOTE_LIRCD_CONF REMOTE_LIRCD_ARGS TRANSMITTER TRANSMITTER_MODULES TRANSMITTER_DRIVER TRANSMITTER_DEVICE TRANSMITTER_LIRCD_CONF TRANSMITTER_LIRCD_ARGS START_LIRCD START_LIRCMD LOAD_MODULES LIRCMD_CONF FORCE_NONINTERACTIVE_RECONFIGURATION + do + # Patch provided by Robert Bihlmeyer + # See http://bugs.debian.org/303078 + if ! grep -q "^[ ]*$VAR\>" /etc/lirc/hardware.conf; then + echo "$VAR=\"\"" >> /etc/lirc/hardware.conf + fi + done +} + +Save () +{ + check_hardware_conf + + if [ -f $1 ]; then + cp $1 $1.old + fi + + sed -i -e " + s|^\(REMOTE\)=.*|\1=\"$REMOTE\"|; + s|^\(REMOTE_DRIVER\)=.*|\1=\"$REMOTE_DRIVER\"|; + s|^\(REMOTE_MODULES\)=.*|\1=\"$REMOTE_MODULES\"|; + s|^\(REMOTE_DEVICE\)=.*|\1=\"$REMOTE_DEVICE\"|; + s|^\(REMOTE_LIRCD_CONF\)=.*|\1=\"$REMOTE_LIRCD_CONF\"|; + s|^\(TRANSMITTER\)=.*|\1=\"$TRANSMITTER\"|; + s|^\(TRANSMITTER_DRIVER\)=.*|\1=\"$TRANSMITTER_DRIVER\"|; + s|^\(TRANSMITTER_MODULES\)=.*|\1=\"$TRANSMITTER_MODULES\"|; + s|^\(TRANSMITTER_DEVICE\)=.*|\1=\"$TRANSMITTER_DEVICE\"|; + s|^\(TRANSMITTER_LIRCD_CONF\)=.*|\1=\"$TRANSMITTER_LIRCD_CONF\"|; + s|^\(START_LIRCD\)=.*|\1=\"$START_LIRCD\"|; + s|^\(LIRCMD_CONF\)=.*|\1=\"$LIRCMD_CONF\"|; + s|^\(FORCE_NONINTERACTIVE_RECONFIGURATION\)=.*|\1=\"$FORCE_NONINTERACTIVE_RECONFIGURATION\"|; + " $1 +} + +ChooseRemote() +{ + #Read our old remote configuration + OLDREMOTE=`grep "^REMOTE=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + REMOTE_DEVICE=`grep "^REMOTE_DEVICE=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + REMOTE_DRIVER=`grep "^REMOTE_DRIVER=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + REMOTE_MODULES=`grep "^REMOTE_MODULES=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + REMOTE_LIRCD_CONF=`grep "^REMOTE_LIRCD_CONF=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + + #read our old transmitter configuration + OLDTRANSMITTER=`grep "^TRANSMITTER=" /etc/lirc/hardware.conf | sed s/\"//g| awk -F "=" '{print $2}'` + TRANSMITTER_DEVICE=`grep "^TRANSMITTER_DEVICE=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + TRANSMITTER_DRIVER=`grep "^TRANSMITTER_DRIVER=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + TRANSMITTER_MODULES=`grep "^TRANSMITTER_MODULES=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + TRANSMITTER_LIRCD_CONF=`grep "^TRANSMITTER_LIRCD_CONF=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + + START_LIRCD=`grep "^START_LIRCD=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + + #Avoid corner cases that can prevent proper reconfiguration + if [ -z "$OLDREMOTE" ]; then + OLDREMOTE="None" + fi + if [ -z "$OLDTRANSMITTER" ]; then + OLDTRANSMITTER="None" + fi + + #force reconfiguration. can be set by external applications + #to true if they want to bypass the normal methods presented + #to users and instead just parse the file. + FORCE_NONINTERACTIVE_RECONFIGURATION=`grep "^FORCE_NONINTERACTIVE_RECONFIGURATION=" /etc/lirc/hardware.conf | sed s/\"//g | awk -F "=" '{print $2}'` + + #Present the user with some choices + #To later explain what this is actually doing without man pages: + #First, only grab lines with a ; + #Next, sort the list + #Now, remove all commas from streams + #Now, Remove all remaining comments or ['s + #Now, Print the remote name + #Now, Affix a comma and space to all starts of lines + #Lastly, change the newline to a null character + REMOTES=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' | awk -F ";" '$0!~/^#|^\[/{print $1}' | sed 's/^/,\ /' | tr '\n' '\0'` + TRANSMITTERS=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' | awk -F ";" '$0!~/^#|^\[/{print $1}' | sed 's/^/,\ /' | tr '\n' '\0'` + db_subst lirc/remote REMOTES $REMOTES + db_subst lirc/transmitter TRANSMITTERS $TRANSMITTERS + + #If we are forcing a reconfigure, then our old remote and new ones are the same + if [ "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then + CHOSEN_REMOTE="${OLDREMOTE}" + db_set lirc/remote $CHOSEN_REMOTE + else + db_input high lirc/remote || true + db_input high lirc/transmitter || true + db_go + + #Populate remote information (remote is our primary device at all times) + db_get lirc/remote + CHOSEN_REMOTE="${RET}" + fi + + if [ "$CHOSEN_REMOTE" != "None" -a "$CHOSEN_REMOTE" != "Custom" ] && [ "$OLDREMOTE" != "$CHOSEN_REMOTE" -o "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then + REMOTE_MODULES=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' | grep "${CHOSEN_REMOTE}" | awk -F ";" '$0!~/^#|^\[/{print $3}'` + REMOTE_DRIVER=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' | grep "${CHOSEN_REMOTE}" | awk -F ";" '$0!~/^#|^\[/{print $2}'` + REMOTE_LIRCD_CONF=`grep ";" /usr/share/lirc/lirc.hwdb | sort | sed 's/,//g' | grep "${CHOSEN_REMOTE}" | awk -F ";" '$0!~/^#|^\[/{print $5}'` + SUPPORTED_DRIVERS=`lircd -H help 2>&1 | awk '$0!~/^S|^D/{print $1}' | tr '\n' '\ '` + + #/dev/input/eventX is a weird case: filter it + if [ "$REMOTE_LIRCD_CONF" = "generic config file for Linux input layer" ]; then + REMOTE_LIRCD_CONF="" + fi + + #For atilibusb, we need to blacklist the kernel module + if [ "$REMOTE_DRIVER" = "atilibusb" ]; then + BLACKLIST="lirc_atiusb ati_remote" + elif [ "$REMOTE_DRIVER" = "atiusb" ]; then + BLACKLIST="ati_remote" + else + BLACKLIST="" + fi + + #lirc.hwdb puts none rather than ;; + if [ "$REMOTE_MODULES" != "none" ]; then + #if we have a module in use, don't use a driver too + REMOTE_DRIVER="" + else + REMOTE_MODULES="" + fi + + #lirc.hwdb puts none rather than ;; + if [ "$REMOTE_DRIVER" = "none" ]; then + REMOTE_DRIVER="" + fi + + #only need to put driver for non kernel module devices + if ! echo "$SUPPORTED_DRIVERS" | grep "$REMOTE_DRIVER" > /dev/null; then + REMOTE_DRIVER="" + fi + + #reset our REMOTE_DEVICE whenever remotes + #are changed. Calculated later. + REMOTE_DEVICE="" + + #Save any detected options + db_fset lirc/reconfigure config_changed true + + elif [ "$CHOSEN_REMOTE" = "None" ]; then + db_fset lirc/reconfigure config_changed true + REMOTE_DEVICE="" + REMOTE_MODULES="" + REMOTE_DRIVER="" + REMOTE_LIRCD_CONF="" + fi + + #If we have a devinput driver, we need + #to present the user with a way to figure out + #what device is it + #This should be ran even if they haven't changed remotes + if [ "$REMOTE_DRIVER" = "devinput" ]; then + #present question + EVENTS_BY_PATH=`ls /dev/input/by-path | sed 's/^/,\ \/dev\/input\/by-path\//' | tr '\n' '\0'` + EVENTS=`ls /dev/input | grep -v "by-path" | sed 's/^/,\ \/dev\/input\//' | tr '\n' '\0'` + db_subst lirc/dev_input_device EVENTS $EVENTS_BY_PATH $EVENTS + db_input high lirc/dev_input_device || true + db_go + + #get our answer + db_get lirc/dev_input_device + if [ "${RET}" != "${REMOTE_DEVICE}" ]; then + REMOTE_DEVICE="${RET}" + db_fset lirc/reconfigure config_changed true + fi + #otherwise, set our old device in debconf again + else + db_set lirc/dev_input_device "" + fi + + + #If we are forcing a reconfigure, then our old remote and new ones are the same + if [ "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then + CHOSEN_TRANSMITTER="${OLDTRANSMITTER}" + db_set lirc/transmitter $CHOSEN_TRANSMITTER + else + #populate transmitter information (transmitter is secondary device) + db_get lirc/transmitter + CHOSEN_TRANSMITTER="${RET}" + fi + + if [ "$CHOSEN_TRANSMITTER" != "None" -a "$CHOSEN_TRANSMITTER" != "Custom" ] && [ "$OLDTRANSMITTER" != "$CHOSEN_TRANSMITTER" -o "$FORCE_NONINTERACTIVE_RECONFIGURATION" = "true" ]; then + TRANSMITTER_MODULES=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' | grep "${CHOSEN_TRANSMITTER}" | awk -F ";" '$0!~/^#|^\[/{print $3}'` + TRANSMITTER_DRIVER=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' | grep "${CHOSEN_TRANSMITTER}" | awk -F ";" '$0!~/^#|^\[/{print $2}'` + TRANSMITTER_LIRCD_CONF=`grep ";" /usr/share/lirc/transmitter.hwdb | sort | sed 's/,//g' | grep "${CHOSEN_TRANSMITTER}" | awk -F ";" '$0!~/^#|^\[/{print $5}'` + #transmitter.hwdb puts none rather than ;; + if [ "$TRANSMITTER_MODULES" != "none" ]; then + #if we have a module in use, don't use a driver too + TRANSMITTER_DRIVER="" + else + TRANSMITTER_MODULES="" + fi + + #transmitter.hwdb puts none rather than ;; + if [ "$TRANSMITTER_DRIVER" = "none" ]; then + TRANSMITTER_DRIVER="" + fi + + #only need to put driver for non kernel module devices + if ! echo "$SUPPORTED_DRIVERS" | grep "$TRANSMITTER_DRIVER" > /dev/null; then + TRANSMITTER_DRIVER="" + fi + + db_fset lirc/reconfigure config_changed true + + elif [ "$CHOSEN_TRANSMITTER" = "None" ]; then + db_fset lirc/reconfigure config_changed true + TRANSMITTER_DEVICE="" + TRANSMITTER_DRIVER="" + TRANSMITTER_MODULES="" + TRANSMITTER_LIRCD_CONF="" + fi + + #Choose a serial port if we are using serial + if [ "$REMOTE_MODULES" = "lirc_dev lirc_serial" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial" ] || \ + [ "$REMOTE_MODULES" = "lirc_dev lirc_serial_igor" ] || [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_serial_igor" ]; then + db_input high lirc/serialport || true + db_go + #if we aren't using serial, then go back to default + else + db_set lirc/serialport "/dev/ttyS0" + fi + + #Plan to have lircd enabled + START_LIRCD=true + + #If we have a remote and a transmitter, figure out devices + if [ "$CHOSEN_TRANSMITTER" != "None" ] && [ "$CHOSEN_REMOTE" != "None" ]; then + #Make sure that at least one of these has changed before we make changes + if [ "$OLDREMOTE" != "$CHOSEN_REMOTE" ] || [ "$OLDTRANSMITTER" != "$CHOSEN_TRANSMITTER" ]; then + #if no remote device is defined already + #and we do use a kernel module + if [ -z "$REMOTE_DEVICE" ] && [ ! -z "$REMOTE_MODULES" ] ; then + REMOTE_DEVICE="/dev/lirc0" + fi + + #set up our transmitter. + #if we use the same kernel modules, we use the same device + #and we should disable transmitter stuff further + if [ ! -z "TRANSMITTER_MODULES" -a "$TRANSMITTER_MODULES" = "$REMOTE_MODULES" ] || [ ! -z "$TRANSMITTER_DRIVER" -a "$TRANSMITTER_DRIVER" = "$REMOTE_DRIVER" ]; then + TRANSMITTER_DEVICE="" + TRANSMITTER_DRIVER="" + #corner case for pvr-150's transmitter + elif [ "$REMOTE_MODULES" = "lirc_dev lirc_i2c" ] && [ "$TRANSMITTER_MODULES" = "lirc_dev lirc_pvr150" ]; then + REMOTE_MODULES="$TRANSMITTER_MODULES" + TRANSMITTER_DEVICE="" + TRANSMITTER_DRIVER="" + TRANSMITTER_MODULES="" + #if they aren't the same driver/device, we needed a remote module and we need a transmitter kernel module + elif [ "$REMOTE_DEVICE" = "/dev/lirc0" ] && [ ! -z "$TRANSMITTER_MODULES" ]; then + TRANSMITTER_DEVICE="/dev/lirc1" + #if they aren't the same driver/device, but we didn't need a remote module, but need a transmitter kernel module + elif [ ! -z "$TRANSMITTER_MODULES" ]; then + TRANSMITTER_DEVICE="/dev/lirc0" + fi + fi + #if we have just a transmitter, figure out device + elif [ "$CHOSEN_TRANSMITTER" != "None" ] && [ "$CHOSEN_REMOTE" = "None" ] ; then + #if we need kernel transmitter modules + if [ ! -z "$TRANSMITTER_MODULES" ]; then + TRANSMITTER_DEVICE="/dev/lirc0" + fi + #we have just chosen a remote + elif [ "$CHOSEN_REMOTE" != "None" ] && [ "$CHOSEN_TRANSMITTER" = "None" ]; then + #no remote device is defined already + #and we need kernel remote modules + if [ -z "$REMOTE_DEVICE" ] && [ ! -z "$REMOTE_MODULES" ] ; then + REMOTE_DEVICE="/dev/lirc0" + fi + #if both remote and transmitter are set to none + else + #disable lircd + START_LIRCD=false + fi + + #Store the results of our device determination + db_set lirc/remote_device "${REMOTE_DEVICE}" + db_set lirc/remote_lircd_conf "$REMOTE_LIRCD_CONF" + db_set lirc/blacklist "$BLACKLIST" + db_set lirc/remote_modules "$REMOTE_MODULES" + db_set lirc/remote_driver "$REMOTE_DRIVER" + db_set lirc/transmitter_modules "$TRANSMITTER_MODULES" + db_set lirc/transmitter_device "${TRANSMITTER_DEVICE}" + db_set lirc/transmitter_driver "${TRANSMITTER_DRIVER}" + db_set lirc/transmitter_lircd_conf "$TRANSMITTER_LIRCD_CONF" + db_set lirc/start_lircd "${START_LIRCD}" + db_set lirc/reconfigure "false" + db_go +} + +Setup_Blacklist() +{ + db_get lirc/blacklist + BLACKLIST=$RET + if [ ! -z "$BLACKLIST" ]; then + cat > /etc/modprobe.d/lirc <> /etc/modprobe.d/lirc-blacklist < /etc/modprobe.d/lirc-serial < /etc/modprobe.d/lirc-serial < /etc/serial.conf << EOF +$SERIAL uart none +EOF + #reload setserial to turn off serial port + invoke-rc.d etc-setserial restart + else + rm /etc/modprobe.d/lirc-serial -f + fi +} + +setup_lircd_conf() +{ + #if we have an existing file, back it up + if [ -f "/etc/lirc/lircd.conf" ]; then + mv /etc/lirc/lircd.conf /etc/lirc/lircd.conf.dpkg-old + fi + + #Add a header to the lircd.conf + cat >> /etc/lirc/lircd.conf << EOF +#This configuration has been automatically generated via +#the Ubuntu LIRC package maintainer scripts. +# +#It includes the default configuration for the remote and/or +#transmitter that you have selected during package installation. +# +#Feel free to add any custom remotes to the configuration +#via additional include directives or below the existing +#Ubuntu include directives from your selected remote and/or +#transmitter. + +EOF + #if we have a remote, include it's config + if [ -f "/usr/share/lirc/remotes/$REMOTE_LIRCD_CONF" ];then + cat >> /etc/lirc/lircd.conf <> /etc/lirc/lircd.conf <> /etc/lirc/lircd.conf <> /etc/lirc/lircd.conf <> /etc/lirc/lircd.conf <> /etc/lirc/lircd.conf </dev/null || true + fi + done +} + +. /usr/share/debconf/confmodule + +if [ "$1" = "configure" ]; then + + [ -x /sbin/udevd ] && invoke-rc.d udev reload >&2 + + [ -x /usr/sbin/update-devfsd ] && /usr/sbin/update-devfsd >&2 + + #unload any old modules before starting + unload_modules + + #parse the lirc.hwdb to find our remote + ChooseRemote + + #Prepare the blacklisting for necessary modules + Setup_Blacklist + + #Setup serial module + Setup_Serial + + db_fget lirc/reconfigure config_changed + CONFIG_CHANGED=$RET + db_fset lirc/reconfigure config_changed false + + if $CONFIG_CHANGED || [ -f /etc/lirc/hardware.conf ];then + check_hardware_conf + . /etc/lirc/hardware.conf + fi + + if $CONFIG_CHANGED || [ "$DRIVER" = "UNCONFIGURED" ]; then + DebconfLoad + Save /etc/lirc/hardware.conf + fi + + # If we don't have a valid lircd.conf try to get one + if [ ! -f /etc/lirc/lircd.conf ] \ + || grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf \ + || $CONFIG_CHANGED ;then + DebconfLoad + setup_lircd_conf + + fi + # If we don't have a valid lircmd.conf try to get one + if [ ! -f /etc/lirc/lircmd.conf ] \ + || grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf ;then + db_get lirc/lircmd_conf + + # if there is a misplaced config file it is ok to move it to + # the right place + if [ -f /etc/lircmd.conf ];then + echo moving /etc/lircmd.conf to /etc/lirc/ + mv /etc/lircmd.conf /etc/lirc/ + + # we don't restore the file unless the user is (re)configuring + elif $CONFIG_CHANGED \ + && [ -f "/usr/share/lirc/remotes/$RET" ];then + echo trying default lircmd.conf + cp /usr/share/lirc/remotes/$RET \ + /etc/lirc/lircmd.conf + fi + fi + if [ -f /var/log/lircd ] + then + db_get lirc/remove_var-log-lircd + if $RET + then + rm /var/log/lircd + fi + fi +fi + + +db_stop + +#DEBHELPER# + --- lirc-0.8.3~pre1.orig/debian/lirc.manpages +++ lirc-0.8.3~pre1/debian/lirc.manpages @@ -0,0 +1 @@ +debian/irman2lirc.1 --- lirc-0.8.3~pre1.orig/debian/liblircclient0.install +++ lirc-0.8.3~pre1/debian/liblircclient0.install @@ -0,0 +1,2 @@ +usr/lib/liblirc_client.so.* +usr/lib/liblirc_client.la --- lirc-0.8.3~pre1.orig/debian/logcheck.ignore +++ lirc-0.8.3~pre1/debian/logcheck.ignore @@ -0,0 +1,2 @@ +lircd[ -].*\[.*\]: accepted new client on \/dev\/lircd +lircd[ -].*\[.*\]: removed client --- lirc-0.8.3~pre1.orig/debian/lirc.install +++ lirc-0.8.3~pre1/debian/lirc.install @@ -0,0 +1,9 @@ +etc/devfs/* +etc/lirc/{hardware.conf,lircd.conf,lircmd.conf} +etc/logcheck/* +etc/modutils/* +usr/bin/{ircat,irexec,irman2lirc,irpty,irrecord,irsend,irw,lircrcd,mode2} +usr/sbin/* +usr/share/man/man8/* +usr/share/man/man1/{ircat.1,irexec.1,irpty.1,irrecord.1,irsend.1,irw.1,lircrcd.1,mode2.1} +etc/udev/rules.d/85-lirc.rules --- lirc-0.8.3~pre1.orig/debian/lirc-modules-source.postinst +++ lirc-0.8.3~pre1/debian/lirc-modules-source.postinst @@ -0,0 +1,20 @@ +#!/bin/sh +# Copyright (C) 2007-2008 Mario Limonciello + +CVERSION=`dpkg-query -W -f='${Version}' lirc-modules-source | awk -F "-" '{print $1}'` + +#DEBHELPER# + +case "$1" in + configure) + echo "Adding Module to DKMS build system" + dkms add -m lirc -v $CVERSION > /dev/null + echo "Doing initial module build" + dkms build -m lirc -v $CVERSION > /dev/null + echo "Installing initial module" + dkms install -m lirc -v $CVERSION --force > /dev/null + echo "Done." + ;; +esac + + --- lirc-0.8.3~pre1.orig/debian/modules-source/Makefile +++ lirc-0.8.3~pre1/debian/modules-source/Makefile @@ -0,0 +1,194 @@ +include lirc-modules-source.conf + +# An space should be left at the end of each CFLAGS variable for the +# sanity-check to work. +IT87_CFLAGS := $(subst ",,$(LIRC_IT87_CFLAGS) ) +PARALLEL_CFLAGS := $(subst ",,-DLIRC_PORT=$(LIRC_PARALLEL_PORT) \ + -DLIRC_TIMER=$(LIRC_PARALLEL_TIMER) \ + -DLIRC_IRQ=$(LIRC_PARALLEL_IRQ) ) +SERIAL_CFLAGS := $(subst ",,$(LIRC_SERIAL_CFLAGS) \ + -DLIRC_PORT=$(LIRC_SERIAL_PORT) \ + -DLIRC_IRQ=$(LIRC_SERIAL_IRQ) ) +SIR_CFLAGS := $(subst ",,$(LIRC_SIR_CFLAGS) \ + -DLIRC_PORT=$(LIRC_SIR_PORT) \ + -DLIRC_IRQ=$(LIRC_SIR_IRQ) ) + +ifeq "$(KVERS)" "" + KVERS:=$(shell uname -r) +endif +ifeq "$(KSRC)" "" + KSRC:=/lib/modules/linux-$(KVERS)/build +endif +KERNEL_LOCATION = $(KSRC) +CC = gcc -D__KERNEL__ -I $(KSRC)/include +CFLAGS= -O2 -g -Wall +DEFS=-DHAVE_CONFIG_H -I. -I../.. + +KEXT=ko + +export KERNEL_LOCATION CC + +DRIVERS=atiusb bt829 cmdir gpio i2c igorplugusb imon it87 mceusb mceusb2 parallel pvr150 sasem serial sir streamzap +all: $(DRIVERS) + +test: + @echo '$(IT87_CFLAGS)' + @echo '$(PARALLEL_CFLAGS)' + @echo '$(LIRC_SERIAL_IRQ)' + @echo '$(LIRC_SIR_IRQ)' + @echo '$(LIRC_PARALLEL_IRQ)' + @echo '$(SERIAL_CFLAGS)' + @echo '$(SIR_CFLAGS)' + @echo '$(KERNEL_LOCATION)' + @echo '$(KVERS)' + +UNCONFIGURED: #Do nothing if the user didn't configure which drivers to build + +debconf: $(subst ", ,$(LIRC_MODULES:,=)) + +modules: + mkdir modules + +sanity-check: + @if \ + expr "$(DEFS)" : '.* -DLIRC_IRQ= ' > /dev/null\ + || expr "$(DEFS)" : '.* -DLIRC_PORT= ' > /dev/null \ + || expr "$(DEFS)" : '.* -DLIRC_TIMER= '> /dev/null \ + || expr "$(DEFS)" : '.*UNCONFIGURED'> /dev/null;\ + then \ + echo ;\ + echo "##########################";\ + echo "## CONFIGURATION ERROR: ##";\ + echo "##########################";\ + echo ;\ + echo "You should reconfigure lirc-modules-source and make";\ + echo "sure you don't leave blank any one of IRQ, IO Port or ";\ + echo "Timer (parallel only)";\ + echo ;\ + echo "Hint1: use \"dpkg-reconfigure lirc-modules-source\"";\ + echo "Hint2: If you selected \"automagical\" configuration of";\ + echo " kernel modules you should probably reconfigure lirc";\ + echo " instead.";\ + echo "Hint3: you may instead edit /etc/lirc/lirc-modules-source.conf";\ + exit 1;\ + fi + +dev: modules sanity-check + $(MAKE) -C drivers SUBDIRS="lirc_dev" + cp drivers/lirc_dev/lirc_dev.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_dev.$(KEXT).KVERS + +atiusb: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_atiusb" + cp drivers/lirc_atiusb/lirc_atiusb.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_atiusb.$(KEXT).KVERS + +bt829: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_bt829" + cp drivers/lirc_bt829/lirc_bt829.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_bt829.$(KEXT).KVERS + +cmdir: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_cmdir" + cp drivers/lirc_cmdir/lirc_cmdir.$(KEXT) modules + cp drivers/lirc_cmdir/commandir.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_cmdir.$(KEXT).KVERS + +gpio: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_gpio" + cp drivers/lirc_gpio/lirc_gpio.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_gpio.$(KEXT).KVERS + +i2c: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_i2c" + cp drivers/lirc_i2c/lirc_i2c.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_i2c.$(KEXT).KVERS + +igorplugusb: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_igorplugusb" + cp drivers/lirc_igorplugusb/lirc_igorplugusb.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_igorplugusb.$(KEXT).KVERS + +imon: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_imon" + cp drivers/lirc_imon/lirc_imon.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_imon.$(KEXT).KVERS + +it87: DEFS += $(IT87_CFLAGS) +it87: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_it87" DEFS="$(DEFS)" + cp drivers/lirc_it87/lirc_it87.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_it87.$(KEXT).KVERS + +mceusb: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_mceusb" + cp drivers/lirc_mceusb/lirc_mceusb.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_mceusb.$(KEXT).KVERS + +mceusb2: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_mceusb2" + cp drivers/lirc_mceusb2/lirc_mceusb2.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_mceusb2.$(KEXT).KVERS + +parallel: DEFS += $(PARALLEL_CFLAGS) +parallel: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_parallel" DEFS="$(DEFS)" + cp drivers/lirc_parallel/lirc_parallel.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_parallel.$(KEXT).KVERS + +pvr150: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_pvr150" + cp drivers/lirc_pvr150/lirc_pvr150.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_pvr150.$(KEXT).KVERS + +sasem: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_sasem" + cp drivers/lirc_sasem/lirc_sasem.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_sasem.$(KEXT).KVERS + +serial: DEFS += $(SERIAL_CFLAGS) +serial: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_serial" DEFS="$(DEFS)" + cp drivers/lirc_serial/lirc_serial.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_serial.$(KEXT).KVERS + +sir: DEFS += $(SIR_CFLAGS) +sir: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_sir" DEFS="$(DEFS)" + cp drivers/lirc_sir/lirc_sir.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_sir.$(KEXT).KVERS + +streamzap: modules sanity-check dev + $(MAKE) -C drivers SUBDIRS="lirc_streamzap" + cp drivers/lirc_streamzap/lirc_streamzap.$(KEXT) modules + @echo $(KVERS) $(KSRC) > modules/lirc_streamzap.$(KEXT).KVERS + +install: + @for file in modules/*.$(KEXT); \ + do \ + kvers=`cut -d" " -f1 $$file.KVERS` && \ + ksrc=`cut -d" " -f2 $$file.KVERS` && \ + dir="$(prefix)/lib/modules/$$kvers/misc/" && \ + ( [ -d $$dir ] || mkdir -p $$dir ) && \ + cp -v $$file $$dir ; \ + done +depmod: + @for file in modules/*.$(KEXT); \ + do \ + kvers=`cut -d" " -f1 $$file.KVERS` && \ + ksrc=`cut -d" " -f2 $$file.KVERS` && \ + dir="$(prefix)/lib/modules/$$kvers/misc/" && \ + if [ -f $$ksrc/System.map ];then \ + /sbin/depmod -r -b $(prefix)/ -a $$kvers \ + -F $$ksrc/System.map ; \ + elif [ -f /boot/System.map-$$kvers ];then \ + /sbin/depmod -r -b $(prefix)/ -a $$kvers \ + -F /boot/System.map-$$kvers; \ + else \ + /sbin/depmod -a ;\ + fi ;\ + done + +clean: + $(MAKE) clean -C drivers SUBDIRS="$(patsubst %,lirc_%,$(DRIVERS))" + rm -rf modules --- lirc-0.8.3~pre1.orig/debian/modules-source/README +++ lirc-0.8.3~pre1/debian/modules-source/README @@ -0,0 +1,7 @@ +LIRC kernel modules source for Ubuntu +===================================== + +This package can be used to build the kernel modules from a newer +Ubuntu release or to add a patch to a current Ubuntu release. + +It uses dkms and standard dkms mechanisms to handle this. --- lirc-0.8.3~pre1.orig/debian/modules-source/lirc-modules-source.conf +++ lirc-0.8.3~pre1/debian/modules-source/lirc-modules-source.conf @@ -0,0 +1,24 @@ +# lirc-modules-source config file used by Debian GNU/Linux + +# Space separated list of lirc kernel drivers to build +#gpio and parallel don't build +LIRC_MODULES="atiusb, bt829, cmdir, i2c, igorplugusb, imon, it87, mceusb, mceusb2, pvr150, sasem, serial, sir, streamzap" + +# It87 module configuration +LIRC_IT87_CFLAGS="" + +# Parallel module configuration +LIRC_PARALLEL_PORT="UNCONFIGURED" +LIRC_PARALLEL_IRQ="UNCONFIGURED" +LIRC_PARALLEL_TIMER="UNCONFIGURED" + +# Serial module configuration +LIRC_SERIAL_PORT="0x2f8" +LIRC_SERIAL_IRQ="3" +LIRC_SERIAL_CFLAGS=" -DLIRC_SERIAL_TRANSMITTER" + +# Sir module configuration +LIRC_SIR_PORT="0x2f8" +LIRC_SIR_IRQ="3" +LIRC_SIR_CFLAGS="" + --- lirc-0.8.3~pre1.orig/debian/lirc.postrm +++ lirc-0.8.3~pre1/debian/lirc.postrm @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +. /usr/share/debconf/confmodule + +#DEBHELPER# + +if [ "$1" = "purge" ]; then + [ -x /usr/sbin/update-devfsd ] && /usr/sbin/update-devfsd >&2 + rm -f /etc/modprobe.d/lirc +# rm -f /etc/lircd.conf.old /etc/lircd.conf.new +fi + +#debhelper may use debconf stuff and update-devfsd restarts devfsd which +#doesn't close stdin/out/err properly. +db_stop --- lirc-0.8.3~pre1.orig/debian/lirc.preinst +++ lirc-0.8.3~pre1/debian/lirc.preinst @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +#DEBHELPER# + +case "$1" in + upgrade) + #init script change in 0.8.2-0ubuntu6 + if dpkg --compare-versions "${2}" le-nl "0.8.2-0ubuntu6" + then update-rc.d -f lirc remove > /dev/null + #hardware.conf changed in 0.8.3~pre1-0ubuntu4 + elif dpkg --compare-versions "${2}" le-nl "0.8.3~pre1-0ubuntu4" + then sed -i -e "s/^MODULES/REMOTE_MODULES/; + s/^DEVICE/REMOTE_DEVICE/; + s/^DRIVER/REMOTE_DRIVER/; + s/^LIRCD_CONF/REMOTE_LIRCD_CONF/; + s/^LIRCD_ARGS/REMOTE_LIRCD_ARGS/;" /etc/lirc/hardware.conf + fi + ;; +esac + + --- lirc-0.8.3~pre1.orig/debian/udev.rules +++ lirc-0.8.3~pre1/debian/udev.rules @@ -0,0 +1,11 @@ +#These rules are currently only adapted for a single lirc device. +#They are mainly used for hotplugability of the USB devices +#So that the user won't have to restart the lircd process. +# +#If a user has multiple lirc devices, and removes one of them +#The other will stop working as well. This is a side effect +#of both this udev script as well as the lirc architecture +#Of chaining lircd processes. +ACTION=="add", KERNEL=="lirc[0-9]", RUN="/etc/init.d/lirc restart udev" +ACTION=="remove", KERNEL=="lirc[0-9]", RUN="/etc/init.d/lirc stop udev" +