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 extern int gui_init (void);
10 extern int gui_update (void);
11 extern void gui_exit (void);
12 extern void gui_led (int, int);
13 extern void gui_handle_events (void);
14 extern void gui_filename (int, const TCHAR *);
15 extern void gui_fps (int fps, int idle, int color);
16 extern void gui_changesettings (void);
17 extern void gui_lock (void);
18 extern void gui_unlock (void);
19 extern void gui_flicker_led (int, int, int);
20 extern void gui_disk_image_change (int, const TCHAR *, bool writeprotected);
21 extern unsigned int gui_ledstate;
22 extern void gui_display (int shortcut);
23 
24 extern void gui_gameport_button_change (int port, int button, int onoff);
25 extern void gui_gameport_axis_change (int port, int axis, int state, int max);
26 
27 extern bool no_gui, quit_to_gui;
28 
29 #define LED_CD_ACTIVE 1
30 #define LED_CD_ACTIVE2 2
31 #define LED_CD_AUDIO 4
32 
33 #define LED_POWER 0
34 #define LED_DF0 1
35 #define LED_DF1 2
36 #define LED_DF2 3
37 #define LED_DF3 4
38 #define LED_HD 5
39 #define LED_CD 6
40 #define LED_FPS 7
41 #define LED_CPU 8
42 #define LED_SND 9
43 #define LED_MD 10
44 #define LED_NET 11
45 #define LED_MAX 12
46 
47 struct gui_info
48 {
49 	bool drive_motor[4];		/* motor on off */
50 	uae_u8 drive_track[4];		/* rw-head track */
51 	bool drive_writing[4];		/* drive is writing */
52 	bool drive_disabled[4];		/* drive is disabled */
53 	bool powerled;			    /* state of power led */
54 	uae_u8 powerled_brightness;	/* 0 to 255 */
55 	uae_s8 drive_side;		    /* floppy side */
56 	uae_s8 hd;			        /* harddrive */
57 	uae_s8 cd;			        /* CD */
58 	uae_s8 md;			        /* CD32 or CDTV internal storage */
59 	uae_s8 net;                 /* network */
60 	int cpu_halted;
61 	int fps, idle;
62 	int fps_color;
63 	int sndbuf, sndbuf_status;
64 	bool sndbuf_avail;
65 	TCHAR df[4][256];		/* inserted image */
66 	uae_u32 crc32[4];		/* crc32 of image */
67 };
68 #define NUM_LEDS (LED_MAX)
69 #define VISIBLE_LEDS (LED_MAX - 1)
70 
71 extern struct gui_info gui_data;
72 
73 /* Functions to be called when prefs are changed by non-gui code.  */
74 extern void gui_update_gfx (void);
75 
76 #define notify_user gui_message
77 #define NUMSG_NEEDEXT2      "The software uses a non-standard floppy disk format. You may need to use a custom floppy disk image file instead of a standard one. This message will not appear again."
78 #define NUMSG_NOROMKEY      "Could not find system ROM key file."
79 #define NUMSG_KSROMCRCERROR "System ROM checksum incorrect. The system ROM image file may be corrupt."
80 #define NUMSG_KSROMREADERROR "Error while reading system ROM."
81 #define NUMSG_NOEXTROM      "No extended ROM found."
82 #define NUMSG_MODRIP_NOTFOUND "No music modules or packed data found."
83 #define NUMSG_MODRIP_FINISHED "Scan finished.\n"
84 #define NUMSG_MODRIP_SAVE   "Module/packed data found\n%s\nStart address %08.8X, Size %d bytes\nWould you like to save it?"
85 #define NUMSG_KS68020       "The selected system ROM requires a 68020 with 32-bit addressing or 68030 or higher CPU."
86 #define NUMSG_ROMNEED       "One of the following system ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
87 #define NUMSG_STATEHD       "WARNING: Current configuration is not fully compatible with state saves.\nThis message will not appear again."
88 #define NUMSG_NOCAPS        "Selected disk image needs the SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
89 #define NUMSG_OLDCAPS       "You need an updated SPS plugin\nwhich is available from\nhttp//www.softpres.org/"
90 #define NUMSG_KS68EC020     "The selected system ROM requires a 68020 with 24-bit addressing or higher CPU."
91 #define NUMSG_KICKREP       "You need to have a floppy disk (image file) in DF0: to use the system ROM replacement."
92 #define NUMSG_KICKREPNO     "The floppy disk (image file) in DF0: is not compatible with the system ROM replacement functionality."
93 #define NUMSG_NOROM         "Could not load system ROM, trying system ROM replacement.\n"
94 #define NUMSG_EXPROMNEED    "One of the following expansion boot ROMs is required:\n\n%s\n\nCheck the System ROM path in the Paths panel and click Rescan ROMs."
95 #define NUMSG_KS68030       "The selected system ROM requires a 68030 CPU."
96 #define NUMSG_KS68030PLUS   "The selected system ROM requires a 68030 or higher CPU."
97 
98