summaryrefslogtreecommitdiffstats
path: root/source/ct-Bot/include/rc5-codes.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/ct-Bot/include/rc5-codes.h')
-rw-r--r--source/ct-Bot/include/rc5-codes.h591
1 files changed, 591 insertions, 0 deletions
diff --git a/source/ct-Bot/include/rc5-codes.h b/source/ct-Bot/include/rc5-codes.h
new file mode 100644
index 0000000..9bf3b41
--- /dev/null
+++ b/source/ct-Bot/include/rc5-codes.h
@@ -0,0 +1,591 @@
+/*
+ * c't-Sim - Robotersimulator fuer den c't-Bot
+ *
+ * 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.
+ *
+ */
+
+/*! @file rc5-codes.h
+ * @brief RC5-Fernbedienungscodes
+ * @author Andreas Merkle (mail@blue-andi.de)
+ * @date 15.02.06
+ * Wer diese Datei angepasst hat, kann Sie durch einen .cvsignore Eintrag schützen.
+ * Dann Ueberschreibt Eclipse Sie nicht mehr automatisch
+*/
+
+#ifndef RC5CODE_H_
+#define RC5CODE_H_
+
+#define RC5_TOGGLE 0x0800 /*!< Das RC5-Toggle-Bit */
+#define RC5_ADDRESS 0x07C0 /*!< Der Adressbereich */
+#define RC5_COMMAND 0x103F /*!< Der Kommandobereich */
+
+/* Im Normalbetrieb hilft die Beschränkung der RC5_MASK auf RC5_COMMAND dem Bot,
+ * moeglichst viele FBs zu erkennen.
+ * Zum erfassen neuer Codes sollte man unbedingt RC5_MASK auf (RC5_COMMAND|RC5_ADDRESS) setzen */
+
+// Normalbetrieb
+#define RC5_MASK (RC5_COMMAND) /*!< Welcher Teil des Kommandos wird ausgewertet? */
+// Erfassen neuer FB-Codes
+//#define RC5_MASK (RC5_COMMAND|RC5_ADDRESS) /*!< Welcher Teil des Kommandos wird ausgewertet? */
+
+
+
+/*!
+ * Definition RC5-Codes verschiedener Fernbedienungen. Wer eine neue FB
+ * einfuegen will, sollte
+ *
+ * - eine Definition per cut&paste duplizieren,
+ * - eine geeignete Konstante RC_HAVE_{Herstellername}_{Fernbedienungsname}
+ * waehlen,
+ * - diese Konstante in die obere Liste der FB-Selektion eintragen,
+ * - die alte FB-Konstante im kopierten Bereich ersetzen,
+ * - festlegen, ob die FB ein Jog-Dial hat, ob der RC5_NOT_AVAIL-Code
+ * wirklich nie von der FB generiert werden kann (0xFFFF ist meisst ok)
+ * - die eigentlichen, herausgefunden Codes eintragen.
+ *
+ * Ist das erledigt, und funktioniert die neue FB-Definition, kann diese
+ * in der c't-bot-Entwicklerliste vorgestellt werden. (mb/18.03.2006)
+ */
+
+/* Nur auf dem realen Bot gibt es verschiedene FBs */
+#ifdef MCU
+
+ // Dies ist die Standard-Fernbedienung unter anderem fuer den Sim
+ #define RC_HAVE_HQ_RC_UNIVERS29_334
+
+ //#define RC_HAVE_HAUPPAUGE_WINTV
+ //#define RC_HAVE_HAUPPAUGE_MediaMPV
+ //#define RC_HAVE_CONRAD_PROMO8
+ //#define RC_HAVE_VIVANCO_UR89
+ //#define RC_HAVE_VIVANCO_UR89_TV_CODE_089
+ //#define RC_HAVE_Technisat_TTS35AI
+ //#define RC_HAVE_LIFETEC_LT3607
+ #else
+ // Dies ist die Standard-Fernbedienung unter anderem fuer den Sim
+ #define RC_HAVE_HQ_RC_UNIVERS29_334
+ //#define RC_HAVE_DEFAULT
+
+#endif
+
+
+
+// Code um zu kennzeichnen, dass eine Taste nicht vorhanden ist
+#define RC5_NOT_AVAIL (0xFFFF) /*!< Code fuer Taste nicht vorhanden */
+
+
+
+/*!
+ * Default-Fernbedienung
+ * HQ RC Univers 29, Geraetecode 334
+ */
+
+#ifdef RC_HAVE_HQ_RC_UNIVERS29_334
+ #define RC5_CODE_PWR (0x118C & RC5_MASK) /*!< Taste An/Aus */
+
+ #define RC5_CODE_0 (0x1180 & RC5_MASK) /*!< Taste 0 /10*/
+ #define RC5_CODE_1 (0x1181 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x1182 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x1183 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x1184 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x1185 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x1186 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x1187 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x1188 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x1189 & RC5_MASK) /*!< Taste 9 */
+ #define RC5_CODE_11 (0x118A & RC5_MASK) /*!< Taste 11 /1-*/
+ #define RC5_CODE_12 (0x11A3 & RC5_MASK) /*!< Taste 12 /2-*/
+
+ #define RC5_CODE_GREEN (0x01BA & RC5_MASK) /*!< Gruene Taste */
+ #define RC5_CODE_RED (0x01BD & RC5_MASK) /*!< Rote Taste */
+ #define RC5_CODE_YELLOW (0x01B1 & RC5_MASK) /*!< Gelbe Taste */
+ #define RC5_CODE_BLUE (0x01B0 & RC5_MASK) /*!< Blaue Taste */
+
+ #define RC5_CODE_I_II (0x11AB & RC5_MASK) /*!< I/II-Taste */
+ #define RC5_CODE_TV_VCR (0x11B8 & RC5_MASK) /*!< TV/VCR-Taste */
+
+ #define RC5_CODE_DOT (0x11AB & RC5_MASK) /*!< Taste mit rundem Punkt */
+
+ #define RC5_CODE_PLAY (0x11B5 & RC5_MASK) /*!< PLAY-Taste */
+ #define RC5_CODE_STILL (0x11A9 & RC5_MASK) /*!< Pause Taste */
+ #define RC5_CODE_STOP (0x11B6 & RC5_MASK) /*!< Pause Taste */
+ #define RC5_CODE_BWD (0x11B2 & RC5_MASK) /*!< Backward Taste */
+ #define RC5_CODE_FWD (0x11B4 & RC5_MASK) /*!< Forward Taste */
+
+ #define RC5_CODE_CH_PC (0x11BF & RC5_MASK) /*!< CH*P/C Taste */
+ #define RC5_CODE_MUTE (0x01BF & RC5_MASK) /*!< Mute-Taste */
+
+ #define RC5_VOL_PLUS (0x1190 & RC5_MASK) /*!< Vol + Taste */
+ #define RC5_VOL_MINUS (0x1191 & RC5_MASK) /*!< Vol - Taste */
+
+ #define RC5_CH_PLUS (0x11A0 & RC5_MASK) /*!< Ch + Taste */
+ #define RC5_CH_MINUS (0x11A1 & RC5_MASK) /*!< Ch - Taste */
+
+
+ #define RC5_CODE_UP RC5_CODE_STILL /*!< Taste Hoch */
+ #define RC5_CODE_DOWN RC5_CODE_STOP /*!< Taste Runter */
+ #define RC5_CODE_LEFT RC5_CODE_BWD /*!< Taste Links */
+ #define RC5_CODE_RIGHT RC5_CODE_FWD /*!< Taste Rechts */
+#endif
+
+/*!
+ * Default-Fernbedienung
+ * HQ RC Univers 29, Geraetecode 335
+ */
+
+#ifdef RC_HAVE_HQ_RC_UNIVERS29_335
+ #define RC5_CODE_PWR (0x100C & RC5_MASK) /*!< Taste An/Aus */
+
+ #define RC5_CODE_0 (0x1000 & RC5_MASK) /*!< Taste 0 /10*/
+ #define RC5_CODE_1 (0x1001 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x1002 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x1003 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x1004 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x1005 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x1006 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x1007 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x1008 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x1009 & RC5_MASK) /*!< Taste 9 */
+ #define RC5_CODE_11 (0x100A & RC5_MASK) /*!< Taste 11 /1-*/
+ #define RC5_CODE_12 (0x1003 & RC5_MASK) /*!< Taste 12 /2-*/
+
+ #define RC5_CODE_GREEN (0x101E & RC5_MASK) /*!< Gruene Taste */
+ #define RC5_CODE_RED (0x101D & RC5_MASK) /*!< Rote Taste */
+ #define RC5_CODE_YELLOW (0x1027 & RC5_MASK) /*!< Gelbe Taste */
+ #define RC5_CODE_BLUE (0x101C & RC5_MASK) /*!< Blaue Taste */
+
+ #define RC5_CODE_I_II (0x1023 & RC5_MASK) /*!< I/II-Taste */
+ #define RC5_CODE_TV_VCR (0x1038 & RC5_MASK) /*!< TV/VCR-Taste */
+
+ #define RC5_CODE_DOT (0x1037 & RC5_MASK) /*!< Taste mit rundem Punkt */
+
+ #define RC5_CODE_PLAY (0x11B5 & RC5_MASK) /*!< PLAY-Taste */
+ #define RC5_CODE_STILL (0x1029 & RC5_MASK) /*!< Pause Taste */
+ #define RC5_CODE_STOP (0x1036 & RC5_MASK) /*!< Pause Taste */
+ #define RC5_CODE_BWD (0x1032 & RC5_MASK) /*!< Backward Taste */
+ #define RC5_CODE_FWD (0x1034 & RC5_MASK) /*!< Forward Taste */
+
+ #define RC5_CODE_CH_PC (0x100B & RC5_MASK) /*!< CH*P/C Taste */
+ #define RC5_CODE_MUTE (0x003F & RC5_MASK) /*!< Mute-Taste */
+
+ #define RC5_VOL_PLUS (0x1010 & RC5_MASK) /*!< Vol + Taste */
+ #define RC5_VOL_MINUS (0x1011 & RC5_MASK) /*!< Vol - Taste */
+
+ #define RC5_CH_PLUS (0x1020 & RC5_MASK) /*!< Ch + Taste */
+ #define RC5_CH_MINUS (0x1021 & RC5_MASK) /*!< Ch - Taste */
+
+
+ #define RC5_CODE_UP RC5_CODE_STILL /*!< Taste Hoch */
+ #define RC5_CODE_DOWN RC5_CODE_STOP /*!< Taste Runter */
+ #define RC5_CODE_LEFT RC5_CODE_BWD /*!< Taste Links */
+ #define RC5_CODE_RIGHT RC5_CODE_FWD /*!< Taste Rechts */
+#endif
+
+/*!
+ * Fernbedienung Hauppauge (simple WinTV-Karten Fernbedienung)
+ */
+
+#ifdef RC_HAVE_HAUPPAUGE_WINTV
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_CODE_0 (0x1000 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x1001 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x1002 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x1003 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x1004 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x1005 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x1006 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x1007 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x1008 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x1009 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_PWR (0x1026 & RC5_MASK) /*!< Taste Minimize */
+ #define RC5_CODE_FULL (0x102E & RC5_MASK) /*!< Taste Full Screen */
+ #define RC5_CODE_SOURCE (0x1022 & RC5_MASK) /*!< Taste Source */
+
+ #define RC5_CODE_UP (0x1020 & RC5_MASK) /*!< Taste CH + */
+ #define RC5_CODE_DOWN (0x1021 & RC5_MASK) /*!< Taste CH - */
+ #define RC5_CODE_LEFT (0x1011 & RC5_MASK) /*!< Taste VOL- */
+ #define RC5_CODE_RIGHT (0x1010 & RC5_MASK) /*!< Taste VOL+ */
+
+ #define RC5_CODE_FWD RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_BWD RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_RED RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_GREEN RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_YELLOW RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_BLUE RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+
+ #define RC5_CODE_I_II RC5_CODE_SOURCE
+ #define RC5_CODE_TV_VCR RC5_CODE_FULL
+#endif /* RC_HAVE_HAUPPAUGE_WINTV */
+
+#ifdef RC_HAVE_HAUPPAUGE_MediaMPV
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_CODE_0 (0x17C0 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x17C1 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x17C2 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x17C3 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x17C4 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x17C5 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x17C6 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x17C7 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x17C8 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x17C9 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_SELECT RC5_NOT_AVAIL /*!< Taste Source */
+
+ #define RC5_CODE_UP (0x17E0 & RC5_MASK) /*!< Taste CH + */
+ #define RC5_CODE_DOWN (0x17E1 & RC5_MASK) /*!< Taste CH - */
+ #define RC5_CODE_LEFT (0x17D1 & RC5_MASK) /*!< Taste VOL- */
+ #define RC5_CODE_RIGHT (0x17D0 & RC5_MASK) /*!< Taste VOL+ */
+
+ #define RC5_CODE_OK (0x17E5 & RC5_MASK) /*!< Taste OK */
+
+ #define RC5_CODE_PWR (0x17FD & RC5_MASK) /*!< Taste An/Aus */
+
+ #define RC5_CODE_RED (0x17CB & RC5_MASK) /*!< Taste Rot */
+ #define RC5_CODE_GREEN (0x17EE & RC5_MASK) /*!< Taste Gruen */
+ #define RC5_CODE_YELLOW (0x17F8 & RC5_MASK) /*!< Taste Gelb */
+ #define RC5_CODE_BLUE (0x17E9 & RC5_MASK) /*!< Taste Blau */
+
+ #define RC5_CODE_FWD (0x17F4 & RC5_MASK) /*!< Taste >> */
+ #define RC5_CODE_BWD (0x17F2 & RC5_MASK) /*!< Taste << */
+ #define RC5_CODE_PLAY (0x17F5 & RC5_MASK) /*!< Taste > */
+ #define RC5_CODE_RECORD (0x17F7 & RC5_MASK) /*!< Taste Aufnahme */
+ #define RC5_CODE_STOP (0x17F6 & RC5_MASK) /*!< Taste Stop */
+ #define RC5_CODE_WAIT (0x17F0 & RC5_MASK) /*!< Taste Pause */
+ #define RC5_CODE_REPLAY (0x17E4 & RC5_MASK) /*!< Taste Anfang |< */
+ #define RC5_CODE_SKIP (0x17DE & RC5_MASK) /*!< Taste Ende >| */
+
+ #define RC5_CODE_MUTE (0x17CF & RC5_MASK) /*!< Taste Mute */
+ #define RC5_CODE_VIEW (0x17CC & RC5_MASK) /*!< Taste View zwischen Mute und Full */
+ #define RC5_CODE_FULL (0x17FC & RC5_MASK) /*!< Taste Full */
+
+ #define RC5_CODE_BACK (0x17DF & RC5_MASK) /*!< Taste Back/Exit */
+ #define RC5_CODE_MENU (0x17CD & RC5_MASK) /*!< Taste Menue */
+ #define RC5_CODE_GO (0x17FB & RC5_MASK) /*!< Taste GO */
+
+ #define RC5_CODE_I_II RC5_CODE_SELECT
+ #define RC5_CODE_TV_VCR RC5_CODE_VIEW
+ #define RC5_CH_PLUS RC5_CODE_BWD /*!< Taste fuer Transprtfach schliessen */
+ #define RC5_CH_MINUS RC5_CODE_FWD /*!< Taste fuer Transportfach oeffnen */
+
+#endif /* RC_HAVE_HAUPPAUGE_MediaMPV */
+
+/*!
+ * Fernbedienung Conrad Promo 8
+ */
+
+#ifdef RC_HAVE_CONRAD_PROMO8
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_CODE_0 (0x3000 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x3001 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x3002 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x3003 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x3004 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x3005 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x3006 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x3007 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x3008 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x3009 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_UP (0x2010 & RC5_MASK) /*!< Taste Hoch */
+ #define RC5_CODE_DOWN (0x2011 & RC5_MASK) /*!< Taste Runter */
+ #define RC5_CODE_LEFT (0x2015 & RC5_MASK) /*!< Taste Links */
+ #define RC5_CODE_RIGHT (0x2016 & RC5_MASK) /*!< Taste Rechts */
+
+ #define RC5_CODE_ENTER (0x2017 & RC5_MASK) /*!< Enter-Taste*/
+ #define RC5_CODE_PWR (0x100C & RC5_MASK) /*!< Enter Taste als Ersatz fuer Taste An/Aus */
+
+ #define RC5_CODE_RED (0x202B & RC5_MASK) /*!< Rote Taste */
+ #define RC5_CODE_GREEN (0x202C & RC5_MASK) /*!< Gruene Taste */
+ #define RC5_CODE_YELLOW (0x202D & RC5_MASK) /*!< Gelbe Taste */
+ #define RC5_CODE_BLUE (0x202E & RC5_MASK) /*!< Blaue Taste */
+ #define RC5_CODE_VIEW (0x2012 & RC5_MASK) /*!< Instant View Taste */
+
+
+ #define RC5_CODE_SELECT (0x300D & RC5_MASK) /*!< Select Taste */
+ #define RC5_CODE_BWD (0x3011 & RC5_MASK) /*!< Backward Taste */
+ #define RC5_CODE_FWD (0x3010 & RC5_MASK) /*!< Forward Taste */
+
+ #define RC5_CH_PLUS (0x1020 & RC5_MASK) /*!< Ch + Taste */
+ #define RC5_CH_MINUS (0x1021 & RC5_MASK) /*!< Ch - Taste */
+
+ #define RC5_CODE_I_II RC5_CODE_SELECT
+ #define RC5_CODE_TV_VCR RC5_CODE_VIEW
+#endif
+
+/*!
+ * Fernbedienung VIVANCO UR89, vor Verwendung auf VCR druecken
+ * @author Andreas Staudenmayer
+ */
+#ifdef RC_HAVE_VIVANCO_UR89
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_CODE_0 (0x1140 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x1141 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x1142 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x1143 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x1144 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x1145 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x1146 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x1147 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x1148 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x1149 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_PWR (0x114C & RC5_MASK) /*!< Taste An, Aus */
+ #define RC5_CODE_VIEW RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_SELECT RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+
+ #define RC5_CODE_UP (0x1160 & RC5_MASK) /*!< Taste Hoch */
+ #define RC5_CODE_DOWN (0x1161 & RC5_MASK) /*!< Taste Runter */
+ #define RC5_CODE_LEFT (0x0171 & RC5_MASK) /*!< Taste Links */
+ #define RC5_CODE_RIGHT (0x0170 & RC5_MASK) /*!< Taste Rechts */
+
+ #define RC5_CODE_FWD RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_BWD RC5_NOT_AVAIL /*!< Taste nicht vorhanden */
+ #define RC5_CODE_RED (0x1172 & RC5_MASK) /*!< rote Taste */
+ #define RC5_CODE_GREEN (0x1176 & RC5_MASK) /*!< gruene Taste */
+ #define RC5_CODE_YELLOW (0x1175 & RC5_MASK) /*!< gelbe Taste */
+ #define RC5_CODE_BLUE (0x1174 & RC5_MASK) /*!< blaue Taste */
+
+ #define RC5_CODE_I_II RC5_CODE_SELECT
+ #define RC5_CODE_TV_VCR RC5_CODE_VIEW
+#endif /* RC_HAVE_VIVANCO_UR89 */
+
+
+/*!
+ * Fernbedienung VIVANCO UR89, TV Modus (Alle Tasten funktionieren)
+ * vor Verwendung fuer TV den Code 089 auf der Fernbedienung programmieren
+ * @author Ulrich Scheffler
+ */
+#ifdef RC_HAVE_VIVANCO_UR89_TV_CODE_089
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_NOT_AVAIL (0xFFFF) /*!< Code fuer Taste nicht vorhanden */
+ /* Jede Taste bekommt erstmal die Bezeichnung, die aufgedruckt ist */
+ #define RC5_CODE_PWR (0x100C & RC5_MASK) /*!< Taste An/Aus-Symbol (rot)*/
+ #define RC5_CODE_MUTE (0x100D & RC5_MASK) /*!< Taste Mute-Symbol (gruen) */
+ #define RC5_CODE_CH_PLUS (0x1020 & RC5_MASK) /*!< Taste CH + (blau) */
+ #define RC5_CODE_CH_MINUS (0x1021 & RC5_MASK) /*!< Taste CH - (blau) */
+ #define RC5_CODE_VOL_MINUS (0x1011 & RC5_MASK) /*!< Taste VOL - (blau) */
+ #define RC5_CODE_VOL_PLUS (0x1010 & RC5_MASK) /*!< Taste VOL + (blau) */
+ #define RC5_CODE_BOX_WITH_DOT (0x0017 & RC5_MASK) /*!< Taste Quadrat mit Punkt */
+ #define RC5_CODE_TV_VCR (0x1038 & RC5_MASK) /*!< Taste TV/VCR (gleicher Code wie Taste A.B) */
+ #define RC5_CODE_0 (0x1000 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x1001 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x1002 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x1003 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x1004 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x1005 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x1006 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x1007 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x1008 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x1009 & RC5_MASK) /*!< Taste 9 */
+ #define RC5_CODE_RETURN (0x1022 & RC5_MASK) /*!< Taste Return-Symbol (gleicher Code wie Taste EXIT) */
+ #define RC5_CODE_A_DOT_B (0x1038 & RC5_MASK) /*!< Taste A.B (gleicher Code wie Taste TV/VCR) */
+ #define RC5_CODE_WAIT (0x002F & RC5_MASK) /*!< Taste Pause-Symbol */
+ #define RC5_CODE_GREEN (0x002C & RC5_MASK) /*!< Taste Gruen & Stop-Symbol */
+ #define RC5_CODE_RECORD (0x102E & RC5_MASK) /*!< Taste Aufnahme-Symbol */
+ #define RC5_CODE_BOX (0x103F & RC5_MASK) /*!< Taste Quadrat */
+ #define RC5_CODE_RED (0x002B & RC5_MASK) /*!< Taste Rot & << */
+ #define RC5_CODE_YELLOW (0x002D & RC5_MASK) /*!< Taste Gelb & > */
+ #define RC5_CODE_BLUE (0x002E & RC5_MASK) /*!< Taste Blau & >> */
+ #define RC5_CODE_BOX_WITH_3_EQUAL_LINES (0x103C & RC5_MASK) /*!< Taste Quadrat mit 3 gleichlangen Linien */
+ #define RC5_CODE_GREEN_UP (0x0010 & RC5_MASK) /*!< Taste hoch (gruen) */
+ #define RC5_CODE_GREEN_LEFT (0x0015 & RC5_MASK) /*!< Taste links (gruen) */
+ #define RC5_CODE_GREEN_RIGHT (0x0016 & RC5_MASK) /*!< Taste rechts (gruen) */
+ #define RC5_CODE_GREEN_DOWN (0x0011 & RC5_MASK) /*!< Taste runter (gruen) */
+ #define RC5_CODE_BOX_WITH_BOX (0x1029 & RC5_MASK) /*!< Taste Quadrat mit innerem Rechteck und Pfeilen */
+ #define RC5_CODE_BOX_WITH_3_UNEQUAL_LINES (0x102E & RC5_MASK) /*!< Taste Quadrat mit 3 ungleichlangen Linien */
+ #define RC5_CODE_OK (0x1023 & RC5_MASK) /*!< Taste OK (gruen) */
+ #define RC5_CODE_MENU (0x0012 & RC5_MASK) /*!< Taste MENU */
+ #define RC5_CODE_EXIT (0x1022 & RC5_MASK) /*!< Taste EXIT (gleicher Code wie Taste Return) */
+
+ /* Vorhandene Tasten werden hier mit der Wunsch-Funktion belegt (Umwidmung)*/
+ #define RC5_CODE_UP RC5_CODE_CH_PLUS /*!< Taste CH + wird genutzt fuer UP-Funktion */
+ #define RC5_CODE_DOWN RC5_CODE_CH_MINUS /*!< Taste CH - wird genutzt fuer DOWN-Funktion */
+ #define RC5_CODE_LEFT RC5_CODE_VOL_MINUS /*!< Taste VOL - wird genutzt fuer LEFT-Funktion */
+ #define RC5_CODE_RIGHT RC5_CODE_VOL_PLUS /*!< Taste VOL + wird genutzt fuer RIGHT-Funktion */
+ #define RC5_CODE_VIEW RC5_CODE_TV_VCR /*!< Taste TV/VCR & A.B werden genutzt fuer VIEW-Funktion*/
+ #define RC5_CODE_SELECT RC5_CODE_RETURN /*!< Taste Return & Exit werden genutzt fuer SELECT-Funktion */
+ #define RC5_CODE_BWD RC5_CODE_GREEN_LEFT /*!< Taste links (gruen) wird genutzt fuer BWD-Funktion (backward)*/
+ #define RC5_CODE_FWD RC5_CODE_GREEN_RIGHT /*!< Taste rechts (gruen) wird genutzt fuer FWD-Funktion (forward)*/
+
+ #define RC5_CODE_I_II RC5_CODE_SELECT
+ #define RC5_CODE_TV_VCR RC5_CODE_VIEW
+#endif /* RC_HAVE_VIVANCO_UR89_TV_CODE_089 */
+
+/*!
+ * Fernbedienung Technisat_TTS35AI (Receiver Digit CIP)
+ * @author Joerg Bullmann
+ */
+#ifdef RC_HAVE_Technisat_TTS35AI
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_NOT_AVAIL (0xFFFF) /*!< Code fuer Taste nicht vorhanden */
+
+ #define RC5_CODE_0 (0x1289 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x1281 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x1282 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x1283 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x1284 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x1285 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x1286 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x1287 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x1288 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x1289 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_PWR (0x128C & RC5_MASK) /*!< Taste An, Aus */
+ #define RC5_CODE_INFO (0x028F & RC5_MASK) /*!< Taste i */
+ #define RC5_CODE_OK (0x0297 & RC5_MASK) /*!< Taste ok */
+
+ #define RC5_CODE_UP (0x12A0 & RC5_MASK) /*!< Taste Hoch */
+ #define RC5_CODE_DOWN (0x12A1 & RC5_MASK) /*!< Taste Runter */
+ #define RC5_CODE_LEFT (0x1291 & RC5_MASK) /*!< Taste Links */
+ #define RC5_CODE_RIGHT (0x1290 & RC5_MASK) /*!< Taste Rechts */
+
+ #define RC5_CODE_TV (0x0293 & RC5_MASK) /*!< Taste TV */
+ #define RC5_CODE_MENU (0x0292 & RC5_MASK) /*!< Taste Menu */
+ #define RC5_CODE_RED (0x02AB & RC5_MASK) /*!< rote Taste */
+ #define RC5_CODE_GREEN (0x02AC & RC5_MASK) /*!< gruene Taste */
+ #define RC5_CODE_YELLOW (0x02AD & RC5_MASK) /*!< gelbe Taste */
+ #define RC5_CODE_BLUE (0x02AE & RC5_MASK) /*!< blaue Taste */
+
+ #define RC5_CODE_FWD RC5_CODE_TV /*!< Taste TV - umgewidmet als FWD-Taste */
+ #define RC5_CODE_BWD RC5_CODE_MENU /*!< Taste Menu - umgewidmet als BWD-Taste */
+ #define RC5_CODE_TV_VCR RC5_CODE_INFO /*!< Taste INFO - umgewidmet als View-Taste */
+ #define RC5_CODE_I_II RC5_CODE_OK /*!< Taste OK - umgewidmet als Select-Taste */
+
+#endif /* RC_HAVE_Technisat_TTS35AI */
+
+/*!
+ * Fernbedienung Lifetec LT3607 (aeltere, lernfaehige Medion-Fernbedienung)
+ */
+#ifdef RC_HAVE_LIFETEC_LT3607
+ #define RC_HAVE_CODES /*!< Definiert Codes */
+ #undef JOG_DIAL /*!< Hat keinen Jog Dial */
+
+ #define RC5_MASK (RC5_COMMAND)
+ #define RC5_NOT_AVAIL (0xFFFF) /*!< Code fuer Taste nicht vorhanden */
+
+ #define RC5_CODE_0 (0x3000 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x3001 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x3002 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x3003 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x3004 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x3005 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x3006 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x3007 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x3008 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x3009 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_PWR (0x300C & RC5_MASK) /*!< Taste Power */
+ #define RC5_CODE_VIEW (0x303F & RC5_MASK) /*!< Taste OSD */
+ #define RC5_CODE_SELECT (0x303C & RC5_MASK) /*!< Taste Videotext */
+ #define RC5_CH_PLUS (0x3020 & RC5_MASK) /*!< Ch + Taste */
+ #define RC5_CH_MINUS (0x3021 & RC5_MASK) /*!< Ch - Taste */
+
+ #define RC5_CODE_UP (0x3020 & RC5_MASK) /*!< Taste CH + */
+ #define RC5_CODE_DOWN (0x3021 & RC5_MASK) /*!< Taste CH - */
+ #define RC5_CODE_LEFT (0x3011 & RC5_MASK) /*!< Taste VOL- */
+ #define RC5_CODE_RIGHT (0x3010 & RC5_MASK) /*!< Taste VOL+ */
+ #define RC5_CODE_I_II (0x3038 & RC5_MASK) /*!< A/B-Taste */
+ #define RC5_CODE_FWD (0x302B & RC5_MASK) /*!< Taste Mischbild */
+ #define RC5_CODE_BWD (0x302E & RC5_MASK) /*!< Taste Ueberblenden */
+ #define RC5_CODE_RED (0x3037 & RC5_MASK) /*!< Taste FRWD / Rot */
+ #define RC5_CODE_GREEN (0x3036 & RC5_MASK) /*!< Taste STOP / Gruen */
+ #define RC5_CODE_YELLOW (0x3032 & RC5_MASK) /*!< Taste PLAY / Gelb */
+ #define RC5_CODE_BLUE (0x3034 & RC5_MASK) /*!< Taste FFWD / Blau */
+ #define RC5_CODE_TV_VCR RC5_NOT_AVAIL
+#endif /* RC_HAVE_LIFETEC_LT3607 */
+
+/*!
+ * Default-Philips-Fernbedienung mit Jog-Dial-Rad
+ */
+
+#ifdef RC_HAVE_DEFAULT /*!< Default RC5-Codes falls keine FB definiert wurde */
+
+ #undef JOG_DIAL
+
+ #define RC5_CODE_0 (0x3940 & RC5_MASK) /*!< Taste 0 */
+ #define RC5_CODE_1 (0x3941 & RC5_MASK) /*!< Taste 1 */
+ #define RC5_CODE_2 (0x3942 & RC5_MASK) /*!< Taste 2 */
+ #define RC5_CODE_3 (0x3943 & RC5_MASK) /*!< Taste 3 */
+ #define RC5_CODE_4 (0x3944 & RC5_MASK) /*!< Taste 4 */
+ #define RC5_CODE_5 (0x3945 & RC5_MASK) /*!< Taste 5 */
+ #define RC5_CODE_6 (0x3946 & RC5_MASK) /*!< Taste 6 */
+ #define RC5_CODE_7 (0x3947 & RC5_MASK) /*!< Taste 7 */
+ #define RC5_CODE_8 (0x3948 & RC5_MASK) /*!< Taste 8 */
+ #define RC5_CODE_9 (0x3949 & RC5_MASK) /*!< Taste 9 */
+
+ #define RC5_CODE_UP (0x2950 & RC5_MASK) /*!< Taste Hoch */
+ #define RC5_CODE_DOWN (0x2951 & RC5_MASK) /*!< Taste Runter */
+ #define RC5_CODE_LEFT (0x2955 & RC5_MASK) /*!< Taste Links */
+ #define RC5_CODE_RIGHT (0x2956 & RC5_MASK) /*!< Taste Rechts */
+
+ #define RC5_CODE_PWR (0x394C & RC5_MASK) /*!< Taste An/Aus */
+
+ #define RC5_CODE_RED (0x100B & RC5_MASK) /*!< Rote Taste */
+ #define RC5_CODE_GREEN (0x102E & RC5_MASK) /*!< Gruene Taste */
+ #define RC5_CODE_YELLOW (0x1038 & RC5_MASK) /*!< Gelbe Taste */
+ #define RC5_CODE_BLUE (0x1029 & RC5_MASK) /*!< Blaue Taste */
+ #define RC5_CODE_VIEW (0x000F & RC5_MASK) /*!< Instant View Taste */
+
+ #define RC5_CODE_SELECT (0x100B & RC5_MASK) /*!< Select Taste */
+
+ #define RC5_CODE_BWD (0x1025 & RC5_MASK) /*!< Backward Taste */
+ #define RC5_CODE_FWD (0x1026 & RC5_MASK) /*!< Forward Taste */
+
+ #define RC5_CODE_I_II RC5_CODE_SELECT
+ #define RC5_CODE_TV_VCR RC5_CODE_VIEW
+
+ #define RC5_CH_PLUS RC5_NOT_AVAIL /*!< Ch + Taste */
+ #define RC5_CH_MINUS RC5_NOT_AVAIL /*!< Ch - Taste */
+
+ #ifdef JOG_DIAL
+ /* Jogdial geht nur inkl. Adresscode */
+ #undef RC5_MASK
+ #define RC5_MASK (RC5_COMMAND | RC5_ADDRESS)
+
+ #define RC5_CODE_JOG_MID (0x3969 & RC5_MASK) /*!< Taste Jog-Dial Mitte */
+ #define RC5_CODE_JOG_L1 (0x3962 & RC5_MASK) /*!< Taste Jog-Dial Links 1 */
+ #define RC5_CODE_JOG_L2 (0x396F & RC5_MASK) /*!< Taste Jog-Dial Links 2 */
+ #define RC5_CODE_JOG_L3 (0x395F & RC5_MASK) /*!< Taste Jog-Dial Links 3 */
+ #define RC5_CODE_JOG_L4 (0x3A6C & RC5_MASK) /*!< Taste Jog-Dial Links 4 */
+ #define RC5_CODE_JOG_L5 (0x3A6B & RC5_MASK) /*!< Taste Jog-Dial Links 5 */
+ #define RC5_CODE_JOG_L6 (0x396C & RC5_MASK) /*!< Taste Jog-Dial Links 6 */
+ #define RC5_CODE_JOG_L7 (0x3A6A & RC5_MASK) /*!< Taste Jog-Dial Links 7 */
+
+ #define RC5_CODE_JOG_R1 (0x3968 & RC5_MASK) /*!< Taste Jog-Dial Rechts 1 */
+ #define RC5_CODE_JOG_R2 (0x3975 & RC5_MASK) /*!< Taste Jog-Dial Rechts 2 */
+ #define RC5_CODE_JOG_R3 (0x396A & RC5_MASK) /*!< Taste Jog-Dial Rechts 3 */
+ #define RC5_CODE_JOG_R4 (0x3A6D & RC5_MASK) /*!< Taste Jog-Dial Rechts 4 */
+ #define RC5_CODE_JOG_R5 (0x3A6E & RC5_MASK) /*!< Taste Jog-Dial Rechts 5 */
+ #define RC5_CODE_JOG_R6 (0x396E & RC5_MASK) /*!< Taste Jog-Dial Rechts 6 */
+ #define RC5_CODE_JOG_R7 (0x3A6F & RC5_MASK) /*!< Taste Jog-Dial Rechts 7 */
+ #endif /* JOG_DIAL */
+
+#endif /* !RC_HAVE_CODES */
+
+#endif /* RC5CODE_H_ */