heise online · c't · iX · Technology Review · Telepolis · mobil · Security · Netze · heise open · heise resale · Autos · c't-TV · Jobs · Kiosk
Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

RE: [ct-bot] Ziffern Tasten mehrfach nutzen

Absender: Timo Sandmann
Datum: Di, 21.03.2006 21:22:22
In-reply-to: <BCF016D5ED5AC34FBB655D109519ABCF083DC7@xxxxxxxxxxxxxxxxxxxx>


Hallo, 

> Ich habe einen Patch eingereicht, mit dem man die 
> Zifferntasten mehrfach nutzen kann.
> 
> Herr Benz bat nun darum das bevor er aufgenommen wird, dieses 
> hier zu diskutieren.
> 
> Meine Idee, ist abhängig vom Screen den Tsten 
> unterschiedliche Funktionen geben zu können.

die Idee gefällt mir sehr gut, nur finde ich den Code mit den
verschachtelten switches etwas unübersichtlich. Was vielleicht auch eine
(IMHO übersichtlichere) Möglichkeit wäre:

- Es gibt für jeden Screen eine Funktion void actual_display_action(uint8
key), in der steht, was bei den Tasten 0-9 zu tun ist.
- Es gibt einen Zeiger auf diesen Funktionstyp, der immer auf die Funktion
zeigt, "deren" Display gerade angezeigt wird. 
- Es gibt eine weitere Konstante wie DISPLAY_SCREEN_TOGGLE, z.B.
DISPLAY_ACTION, die benutzt wird, um der Funktion rc5_screen_set()
mitzuteilen, dass eine Zifferntaste, die displayspezifisch verwendet werden
soll, gedrückt wurde.
- RC5_CODE_X wird jeweils rc5_screen_set, {DISPLAY_ACTION, X } zugewiesen. 
- Der zweite Parameter (bei rc5_screen_set() bisher ungenutzt) ist die
gedrückte Taste. 
- In rc5_screen_set() setze ich im Fall von !DISPLAY_ACTION den o.a. Zeiger
auf die Funktion für's "neue" Display.
- Im Fall von DISPLAY_ACTION rufe ich actual_display_action(par->value2)
auf.

So das wäre mein erster Einfall dazu. Das ganze ist vielleicht ein bisschen
mehr Code, aber ich fände es strukturierter / übersichtlicher. 

Mit freundlichen Grüßen
Timo Sandmann




Copyright © 2007 Heise Zeitschriften Verlag Kritik, Anregungen bitte an c't-WWW Datenschutzhinweis   Impressum