home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / ui_utils / inputvie.lzh / Source.lha / IHandler.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-31  |  2.7 KB  |  58 lines

  1. /*----------------------------------------------------------------------------
  2.    File   :    IHandler.h
  3.    Projekt:    --
  4.    Inhalt :    defines, structs, prototypes für den InputHandler...
  5.  
  6.    Version:    0.11
  7.    Datum  :    23.März 1991
  8.    Autor  :    Uwe Röhm
  9.    Adresse:    Auber Str. 25,  W-6209 Hohenstein 4
  10.     (Semester) Wörthstr. 18    W-8390 Passau
  11.    Bemerkung:
  12.    Was soll man da noch sagen.... ne Menge!
  13.    ACHTUNG:
  14.    In der Struktur sind nur die Felder 'does_control' und 'WriteBuffer' für
  15.    das aufrufende Programm gedacht, der Rest ist PRIVAT!!!
  16.    In 'InitIHandler' wird diese Struktur richtig initialisiert,'CloseIHandler'
  17.    löscht sie wieder - und nimmt, sofern vorhanden, auch selbst den Handler
  18.    wieder raus. Jener wird mit 'LaunchIHandler' gestartet und analog mit
  19.    'CatchIHandler' wieder abgefangen.
  20. ----------------------------------------------------------------------------*/
  21. #include <exec/Types.h>
  22. #include <exec/io.h>
  23. #include <exec/tasks.h>
  24. #include <exec/ports.h>
  25. #include <exec/memory.h>
  26. #include <exec/interrupts.h>
  27. #include <devices/InputEvent.h>
  28.  
  29. /* -------------------------   Defines...   ------------------------------- */
  30. #define IHANDPORTNAME "IHandler-Port"
  31. #define IHANDMEMOPT MEMF_CLEAR|MEMF_PUBLIC
  32.  
  33.  
  34. /* ----------------------   eigene Strukturen   --------------------------- */
  35. struct IHandCom {
  36.    long   Timer,                   /* Zähler für vergangene Ticks (1/10 sec) */
  37.           TimerMax,                /* Nach wievielen Ticks ich lossenden will */
  38.           SigBit;                  /* die gemeinsame Signalmaske */
  39.    struct Task *SigTask;           /* Zeiger auf den Msg-Port meines PRGs*/
  40.    struct MsgPort *Port;           /* Zeiger auf eigenen MsgPort */
  41.    struct IOStdReq *InpDev;        /* Input-Device IO Struktur */
  42.    struct Interrupt *Inter;        /* DatenStruktur zum Starten des Hanlders */
  43.    BOOL is_launched,               /* Flag, ob der Handler gerade läuft oder nicht*/
  44.         does_control;              /* Flag, ob der Handler mit kopiert oder nur zählt*/
  45.    struct InputEvent *BufStart,    /* Der Buffer, in den ich IEvents kopieren kann, */
  46.                      *BufEnde,     /* sowie dessen Ende, */
  47.                      *BufMarke,    /* und ein Zeiger, wo darin ich gerade bin */
  48.                      *BufWrite;    /* (geradezu lyrisch ^). Und ab hier sende ich...*/
  49.    };
  50.  
  51.  
  52. /* ---------------------   Funktionsprototypen   -------------------------- */
  53. struct IHandCom *InitIHandler (struct MsgPort *, int, int);
  54. VOID CloseIHandler (struct IHandCom *);
  55. struct InputEvent* __regargs InputHandler (struct InputEvent *,struct IHandCom *);
  56. BOOL LaunchIHandler (struct IHandCom *, BYTE, char *);
  57. VOID CatchIHandler (struct IHandCom *);
  58.