Absender: Michail Brzitwa
Datum: Sa, 18.03.2006 12:21:43
In-reply-to:
<200603181146.51516.bbe@xxxxxxxx>
References:
<200603172204.17736.michail@xxxxxxxxxx> <200603181052.40665.michail@xxxxxxxxxx> <200603181146.51516.bbe@xxxxxxxx>
Am Samstag, 18. März 2006 11:46 schrieb Benjamin Benz: > Sicherlich nicht. Aber vielleicht sollte man trotzdem möglichst bald klein > Anfangen. Dann kann jeder recht schnell seine Codes als Patch einreichen. Ok, auch gut. Dann hier mein rc5-codes.h-Patch mit den Hauppauge-Codes und den "Conrad Promo 8"-Codes von Randolf. Gruß, -- Michail Brzitwa <michail@xxxxxxxxxx> +49-511-343215
Index: rc5-codes.h =================================================================== RCS file: /ctbot/ct-Bot/include/rc5-codes.h,v retrieving revision 1.4 diff -u -r1.4 rc5-codes.h --- rc5-codes.h 17 Mar 2006 17:09:24 -0000 1.4 +++ rc5-codes.h 18 Mar 2006 12:28:20 -0000 @@ -28,13 +28,123 @@ #ifndef RC5CODE_H_ #define RC5CODE_H_ + +/*! + * Definition RC5-Codes verschiedener Fernbedienungen. Wer eine neue FB + * einfügen will, sollte + * + * - eine Definition per cut&paste duplizieren, + * - eine geeignete Konstante RC_HAVE_{Herstellername}_{Fernbedienungsname} + * wählen, + * - diese Konstante in die obere Liste der FB-Selektion eintragen, + * - die alte FB-Konstante 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) + */ + + + +#define RC_HAVE_HAUPPAUGE_WINTV +#undef RC_HAVE_CONRAD_PROMO8 + + + + +/*! + * 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_MASK (RC5_COMMAND) + #define RC5_NOT_AVAIL (0xFFFF) /*!< Code für Taste nicht vorhanden */ + + #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_VIEW (0x102E & RC5_MASK) /*!< Taste Full Screen */ + #define RC5_CODE_SELECT (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 */ + +#endif /* RC_HAVE_HAUPPAUGE_WINTV */ + + +/*! + * Fernbedienung Conrad Promo 8 + */ + +#ifdef RC_HAVE_CONRAD_PROMO8 + #define RC_HAVE_CODES /*!< Definiert Codes */ + #undef JOG_DIAL /*!< Hat keinen Jog Dial */ + + #define RC5_MASK (RC5_COMMAND) + #define RC5_NOT_AVAIL (0xFFFF) /*!< Code für 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_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_PWR (0x300C & RC5_MASK) /*!< Taste An/Aus */ + + #define RC5_CODE_RED (0x202B & RC5_MASK) /*!< Rote Taste */ + #define RC5_CODE_GREEN (0x202C & RC5_MASK) /*!< Grüne 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 */ +#endif + + /*! * Fernbedienung mit Jog-Dial-Rad, * Achtung: Die Adress-Bits muessen auf die Fernbedienung angepasst werden! * Siehe hierzu rc5.c @see RC5_ADDRESS */ -#define noJOG_DIAL +#ifndef RC_HAVE_CODES /*!< Default RC5-Codes falls keine FB definiert wurde */ + +#undef JOG_DIAL #define RC5_MASK (RC5_COMMAND) /*!< Welcher Teil des Kommandos wird ausgewertet? */ #define RC5_CODE_0 (0x3940 & RC5_MASK) /*!< Taste 0 */ @@ -89,5 +199,7 @@ #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_ */