home *** CD-ROM | disk | FTP | other *** search
- /*----------------------------------------------------------------------------
- File : IHandler.h
- Projekt: --
- Inhalt : defines, structs, prototypes für den InputHandler...
-
- Version: 0.11
- Datum : 23.März 1991
- Autor : Uwe Röhm
- Adresse: Auber Str. 25, W-6209 Hohenstein 4
- (Semester) Wörthstr. 18 W-8390 Passau
- Bemerkung:
- Was soll man da noch sagen.... ne Menge!
- ACHTUNG:
- In der Struktur sind nur die Felder 'does_control' und 'WriteBuffer' für
- das aufrufende Programm gedacht, der Rest ist PRIVAT!!!
- In 'InitIHandler' wird diese Struktur richtig initialisiert,'CloseIHandler'
- löscht sie wieder - und nimmt, sofern vorhanden, auch selbst den Handler
- wieder raus. Jener wird mit 'LaunchIHandler' gestartet und analog mit
- 'CatchIHandler' wieder abgefangen.
- ----------------------------------------------------------------------------*/
- #include <exec/Types.h>
- #include <exec/io.h>
- #include <exec/tasks.h>
- #include <exec/ports.h>
- #include <exec/memory.h>
- #include <exec/interrupts.h>
- #include <devices/InputEvent.h>
-
- /* ------------------------- Defines... ------------------------------- */
- #define IHANDPORTNAME "IHandler-Port"
- #define IHANDMEMOPT MEMF_CLEAR|MEMF_PUBLIC
-
-
- /* ---------------------- eigene Strukturen --------------------------- */
- struct IHandCom {
- long Timer, /* Zähler für vergangene Ticks (1/10 sec) */
- TimerMax, /* Nach wievielen Ticks ich lossenden will */
- SigBit; /* die gemeinsame Signalmaske */
- struct Task *SigTask; /* Zeiger auf den Msg-Port meines PRGs*/
- struct MsgPort *Port; /* Zeiger auf eigenen MsgPort */
- struct IOStdReq *InpDev; /* Input-Device IO Struktur */
- struct Interrupt *Inter; /* DatenStruktur zum Starten des Hanlders */
- BOOL is_launched, /* Flag, ob der Handler gerade läuft oder nicht*/
- does_control; /* Flag, ob der Handler mit kopiert oder nur zählt*/
- struct InputEvent *BufStart, /* Der Buffer, in den ich IEvents kopieren kann, */
- *BufEnde, /* sowie dessen Ende, */
- *BufMarke, /* und ein Zeiger, wo darin ich gerade bin */
- *BufWrite; /* (geradezu lyrisch ^). Und ab hier sende ich...*/
- };
-
-
- /* --------------------- Funktionsprototypen -------------------------- */
- struct IHandCom *InitIHandler (struct MsgPort *, int, int);
- VOID CloseIHandler (struct IHandCom *);
- struct InputEvent* __regargs InputHandler (struct InputEvent *,struct IHandCom *);
- BOOL LaunchIHandler (struct IHandCom *, BYTE, char *);
- VOID CatchIHandler (struct IHandCom *);
-