1 /*
2 * UAE - The Un*x Amiga Emulator
3 *
4 * Interface to the Tcl/Tk GUI
5 *
6 * Copyright 1996 Bernd Schmidt
7 */
8
9 #include "sysconfig.h"
10 #include "sysdeps.h"
11
12 #include "options.h"
13 #include "gui.h"
14
gui_init(void)15 int gui_init (void)
16 {
17 }
18
gui_fps(int fps,int idle,int color)19 void gui_fps (int fps, int idle, int color)
20 {
21 gui_data.fps = fps;
22 gui_data.idle = idle;
23 }
24
gui_flicker_led(int led,int unitnum,int status)25 void gui_flicker_led (int led, int unitnum, int status)
26 {
27 }
28
gui_led(int led,int on)29 void gui_led (int led, int on)
30 {
31 }
32
gui_filename(int num,const char * name)33 void gui_filename (int num, const char *name)
34 {
35 }
36
gui_handle_events(void)37 void gui_handle_events (void)
38 {
39 }
40
gui_update(void)41 int gui_update (void)
42 {
43 return 0;
44 }
45
gui_exit(void)46 void gui_exit (void)
47 {
48 }
49
gui_display(int shortcut)50 void gui_display(int shortcut)
51 {
52 }
53
gui_message(const char * format,...)54 void gui_message (const char *format,...)
55 {
56 char msg[2048];
57 va_list parms;
58
59 va_start (parms,format);
60 vsprintf ( msg, format, parms);
61 va_end (parms);
62
63 write_log (msg);
64 }
65
gui_disk_image_change(int unitnum,const TCHAR * name,bool writeprotected)66 void gui_disk_image_change (int unitnum, const TCHAR *name, bool writeprotected) {}
gui_lock(void)67 void gui_lock (void) {}
gui_unlock(void)68 void gui_unlock (void) {}
69
70 static int guijoybutton[MAX_JPORTS];
71 static int guijoyaxis[MAX_JPORTS][4];
72 static bool guijoychange;
73
gui_gameport_button_change(int port,int button,int onoff)74 void gui_gameport_button_change (int port, int button, int onoff)
75 {
76 //write_log ("%d %d %d\n", port, button, onoff);
77 #ifdef RETROPLATFORM
78 int mask = 0;
79 if (button == JOYBUTTON_CD32_PLAY)
80 mask = RP_JOYSTICK_BUTTON5;
81 if (button == JOYBUTTON_CD32_RWD)
82 mask = RP_JOYSTICK_BUTTON6;
83 if (button == JOYBUTTON_CD32_FFW)
84 mask = RP_JOYSTICK_BUTTON7;
85 if (button == JOYBUTTON_CD32_GREEN)
86 mask = RP_JOYSTICK_BUTTON4;
87 if (button == JOYBUTTON_3 || button == JOYBUTTON_CD32_YELLOW)
88 mask = RP_JOYSTICK_BUTTON3;
89 if (button == JOYBUTTON_1 || button == JOYBUTTON_CD32_RED)
90 mask = RP_JOYSTICK_BUTTON1;
91 if (button == JOYBUTTON_2 || button == JOYBUTTON_CD32_BLUE)
92 mask = RP_JOYSTICK_BUTTON2;
93 rp_update_gameport (port, mask, onoff);
94 #endif
95 if (onoff)
96 guijoybutton[port] |= 1 << button;
97 else
98 guijoybutton[port] &= ~(1 << button);
99 guijoychange = true;
100 }
101
gui_gameport_axis_change(int port,int axis,int state,int max)102 void gui_gameport_axis_change (int port, int axis, int state, int max)
103 {
104 int onoff = state ? 100 : 0;
105 if (axis < 0 || axis > 3)
106 return;
107 if (max < 0) {
108 if (guijoyaxis[port][axis] == 0)
109 return;
110 if (guijoyaxis[port][axis] > 0)
111 guijoyaxis[port][axis]--;
112 } else {
113 if (state > max)
114 state = max;
115 if (state < 0)
116 state = 0;
117 guijoyaxis[port][axis] = max ? state * 127 / max : onoff;
118 #ifdef RETROPLATFORM
119 if (axis == DIR_LEFT_BIT)
120 rp_update_gameport (port, RP_JOYSTICK_LEFT, onoff);
121 if (axis == DIR_RIGHT_BIT)
122 rp_update_gameport (port, DIR_RIGHT_BIT, onoff);
123 if (axis == DIR_UP_BIT)
124 rp_update_gameport (port, DIR_UP_BIT, onoff);
125 if (axis == DIR_DOWN_BIT)
126 rp_update_gameport (port, DIR_DOWN_BIT, onoff);
127 #endif
128 }
129 guijoychange = true;
130 }
131
132