1 /*
2  * ui.h
3  *
4  * user interface interface
5  */
6 
7 /* $Id: ui.h,v 1.11 2000/06/29 01:06:05 nyef Exp $ */
8 
9 #ifndef UI_H
10 #define UI_H
11 
12 #include "types.h"
13 
14 /* debug console interface */
15 
16 void deb_printf(const char *fmt, ...);
17 
18 
19 /* timeslicer interface */
20 
21 void set_timeslice(void (*proc)(void *), void *data);
22 void unset_timeslice(void);
23 
24 
25 /* shutdown callback */
26 
27 typedef void (*shutdown_t)(void);
28 extern shutdown_t dn_shutdown;
29 
30 
31 /* joypad interface */
32 
33 /*
34  * joypad buttons are: UP, DOWN, LEFT, RIGHT, whatever,
35  *    START (opt), SELECT (opt)
36  */
37 
38 struct joypad_button_template {
39     int num_buttons;
40     unsigned long buttons[0];
41 };
42 
43 struct joypad {
44     const struct joypad_button_template *button_template;
45     unsigned long data;
46 };
47 
48 int ui_register_joypad(struct joypad *pad);
49 void ui_update_joypad(struct joypad *pad);
50 
51 /* keypad interface */
52 
53 struct keypad {
54     u16 data;
55 };
56 
57 int keypad_register(struct keypad *pad);
58 void keypad_update(struct keypad *pad);
59 
60 #define KPD_0 0x0001
61 #define KPD_1 0x0002
62 #define KPD_2 0x0004
63 #define KPD_3 0x0008
64 #define KPD_4 0x0010
65 #define KPD_5 0x0020
66 #define KPD_6 0x0040
67 #define KPD_7 0x0080
68 #define KPD_8 0x0100
69 #define KPD_9 0x0200
70 #define KPD_STAR 0x0400
71 #define KPD_HASH 0x0800
72 #define KPD_A 0x1000 /* Unused */
73 #define KPD_B 0x2000 /* Unused */
74 #define KPD_C 0x4000 /* Unused */
75 #define KPD_D 0x8000 /* Unused */
76 
77 #endif /* UI_H */
78 
79 /*
80  * $Log: ui.h,v $
81  * Revision 1.11  2000/06/29 01:06:05  nyef
82  * moved menu interface out from ui.h to menu.h
83  *
84  * Revision 1.10  2000/06/29 00:57:16  nyef
85  * fixed redundant include guards (not supposed to start with underbars)
86  *
87  * Revision 1.9  2000/06/25 19:22:47  nyef
88  * added ui_{en,dis}able_item() for controling menu items
89  *
90  * Revision 1.8  2000/06/25 18:57:19  nyef
91  * added support for parameters with menu callbacks
92  * added support for changing the label on a menu
93  *
94  * Revision 1.7  2000/06/25 17:20:14  nyef
95  * added per-driver menu interface
96  *
97  * Revision 1.6  2000/05/07 00:24:12  nyef
98  * changed joypad interface to not break on C++ compilers
99  *
100  * Revision 1.5  2000/01/01 03:22:52  nyef
101  * added preliminary keypad interface
102  *
103  * Revision 1.4  1999/06/05 02:42:04  nyef
104  * added new joypad interface
105  *
106  * Revision 1.3  1999/04/17 20:11:27  nyef
107  * changed shutdown() to dn_shutdown().
108  *
109  * Revision 1.2  1998/12/21 02:58:13  nyef
110  * added a shutdown callback.
111  *
112  * Revision 1.1  1998/08/02 04:13:25  nyef
113  * Initial revision
114  *
115  */
116