home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / The Hacks! / Talking KeyBoard / Source / filter.h < prev    next >
Encoding:
Text File  |  1998-04-24  |  1.6 KB  |  47 lines  |  [TEXT/CWIE]

  1. // Program Author: Paul Baxter pbaxter@assistivetech.com
  2. // This program may be freely distributed.
  3. //
  4. //
  5.  
  6. // Constant offsets into jGNEFilter for inline data
  7. #define kNextFilterOffset        0x02
  8. #define kEventHelperOffset        0x06
  9. #define kEventHelperDataOffset    0x0A
  10.  
  11. #define ____USE_FRALLOC____
  12.  
  13. // Cleanest Solution for PPC - Stuff Raw 68k into a SystemPtr
  14. #define kGNEFilterHexData "\p600C0000000000000000000000004E56000048E7E0E0207AFFEE2008\
  15. 4A80670E2F3AFFE82F09207AFFDE4E90508F4CDF07074E5E207AFFCC4ED08B4576656E7446696C7465720000"
  16.  
  17. // Declare a Guide for Passing the Filter Helper, for Universal Headers
  18. #if !GENERATINGPOWERPC
  19.     typedef void (*FilterHelperProcPtr)(EventRecord *theEvent, Ptr helperData);
  20.     typedef FilterHelperProcPtr FilterHelperUPP;
  21.     enum {
  22.         uppFilterHelperProcInfo = 0
  23.     };
  24.     #define NewFilterHelperProc(proc)    (FilterHelperUPP)(proc)
  25. #else
  26.     typedef UniversalProcPtr FilterHelperUPP;
  27.     enum {
  28.         uppFilterHelperProcInfo = kCStackBased
  29.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(EventRecord *)))
  30.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  31.     };
  32.     #define NewFilterHelperProc(proc) (FilterHelperUPP) \
  33.             NewRoutineDescriptor((ProcPtr)(proc), uppFilterHelperProcInfo, GetCurrentArchitecture())
  34. #endif GENERATINGPOWERPC
  35.  
  36. #if GENERATING68K
  37.     asm void EventFilter(void);
  38.     void EndEventFilter(void);
  39. #endif GENERATING68K
  40.  
  41. // Function Prototypes
  42. extern Ptr InstallEventFilter(FilterHelperUPP helperProc, Ptr helperData);
  43. extern Ptr ReleaseEventFilter(Ptr filterProc);
  44. extern Boolean GetFloaterEvent(EventRecord *theEvent);
  45. extern void EventFilterHelper(EventRecord *theEvent, Ptr helperData);
  46. extern void InstallFilter(void);
  47.