event.h
  1  /* vim: set tabstop=3 expandtab:
  2  **
  3  ** Nofrendo (c) 1998-2000 Matthew Conte (matt@conte.com)
  4  **
  5  **
  6  ** This program is free software; you can redistribute it and/or
  7  ** modify it under the terms of version 2 of the GNU Library General 
  8  ** Public License as published by the Free Software Foundation.
  9  **
 10  ** This program is distributed in the hope that it will be useful, 
 11  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
 12  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 13  ** Library General Public License for more details.  To obtain a 
 14  ** copy of the GNU Library General Public License, write to the Free 
 15  ** Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 16  **
 17  ** Any permitted reproduction of these routines, in whole or in part,
 18  ** must bear this legend.
 19  **
 20  **
 21  ** event.h
 22  **
 23  ** OS-independent event handling
 24  ** $Id: event.h,v 1.2 2001/04/27 14:37:11 neil Exp $
 25  */
 26  
 27  #ifndef _EVENT_H_
 28  #define _EVENT_H_
 29  
 30  #include "nofrendo.h"
 31  
 32  enum
 33  {
 34     event_none = 0,
 35     event_quit,
 36     event_insert,
 37     event_eject,
 38     event_togglepause,
 39     event_soft_reset,
 40     event_hard_reset,
 41     event_snapshot,
 42     event_toggle_frameskip,
 43     /* saves */
 44     event_state_save,
 45     event_state_load,
 46     event_state_slot_0,
 47     event_state_slot_1,
 48     event_state_slot_2,
 49     event_state_slot_3,
 50     event_state_slot_4,
 51     event_state_slot_5,
 52     event_state_slot_6,
 53     event_state_slot_7,
 54     event_state_slot_8,
 55     event_state_slot_9,
 56     /* GUI */
 57     event_gui_toggle_oam,
 58     event_gui_toggle_wave,
 59     event_gui_toggle_pattern,
 60     event_gui_pattern_color_up,
 61     event_gui_pattern_color_down,
 62     event_gui_toggle_fps,
 63     event_gui_display_info,
 64     event_gui_toggle,
 65     /* sound */
 66     event_toggle_channel_0,
 67     event_toggle_channel_1,
 68     event_toggle_channel_2,
 69     event_toggle_channel_3,
 70     event_toggle_channel_4,
 71     event_toggle_channel_5,
 72     event_set_filter_0,
 73     event_set_filter_1,
 74     event_set_filter_2,
 75     /* picture */
 76     event_toggle_sprites,
 77     event_palette_hue_up,
 78     event_palette_hue_down,
 79     event_palette_tint_up,
 80     event_palette_tint_down,
 81     event_palette_set_default,
 82     event_palette_set_shady,
 83     /* joypad 1 */
 84     event_joypad1_a,
 85     event_joypad1_b, 
 86     event_joypad1_start,
 87     event_joypad1_select,
 88     event_joypad1_up,
 89     event_joypad1_down,
 90     event_joypad1_left,
 91     event_joypad1_right,
 92     /* joypad 2 */
 93     event_joypad2_a,
 94     event_joypad2_b,
 95     event_joypad2_start,
 96     event_joypad2_select,
 97     event_joypad2_up,
 98     event_joypad2_down,
 99     event_joypad2_left,
100     event_joypad2_right,
101     /* NSF control */
102     event_songup,
103     event_songdown,
104     event_startsong,
105     /* OS specific */
106     event_osd_1,
107     event_osd_2,
108     event_osd_3,
109     event_osd_4,
110     event_osd_5,
111     event_osd_6,
112     event_osd_7,
113     event_osd_8,
114     event_osd_9,
115     /* last */
116     event_last
117  };
118  
119  typedef void (*event_t)(int code);
120  
121  extern void event_init(void);
122  extern void event_set(int index, event_t handler);
123  extern event_t event_get(int index);
124  extern void event_set_system(system_t type);
125  
126  #endif /* !_EVENT_H_ */
127  
128  /*
129  ** $Log: event.h,v $
130  ** Revision 1.2  2001/04/27 14:37:11  neil
131  ** wheeee
132  **
133  ** Revision 1.1.1.1  2001/04/27 07:03:54  neil
134  ** initial
135  **
136  ** Revision 1.6  2000/11/01 14:15:35  matt
137  ** multi-system event system, or whatever
138  **
139  ** Revision 1.5  2000/10/10 13:03:54  matt
140  ** Mr. Clean makes a guest appearance
141  **
142  ** Revision 1.4  2000/07/31 04:28:46  matt
143  ** one million cleanups
144  **
145  ** Revision 1.3  2000/07/26 21:36:13  neil
146  ** Big honkin' change -- see the mailing list
147  **
148  ** Revision 1.2  2000/07/21 04:27:40  matt
149  ** don't mind me...
150  **
151  ** Revision 1.1  2000/07/21 04:26:38  matt
152  ** initial revision
153  **
154  */