OSDN Git Service

[UI][Qt] Menu: Make macro to be easier constructing.
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / mainwidget_base.h
1 /*
2  * MainWidget : Defines
3  * Modified by K.Ohta <whatisthis.sowhat _at_ gmail.com>
4  * Please use this file as templete.
5  */
6
7 #ifndef _CSP_QT_MAINWIDGET_BASE_H
8 #define _CSP_QT_MAINWIDGET_BASE_H
9
10 #include <QVariant>
11 #include <QObject>
12 #include <QApplication>
13 #include <QMainWindow>
14 #include <QIcon>
15 #include <QString>
16 #include <QStringList>
17 #include <QMenu>
18 #include <QMenuBar>
19
20 #include "common.h"
21 #include "config.h"
22 #include "menu_flags.h"
23 #include "csp_logger.h"
24
25 class DLL_PREFIX_I MOVIE_SAVER;
26
27 #include "qt_main.h"
28 #define _MAX_DEBUGGER 8
29
30 enum {
31         CSP_MAINWIDGET_SAVE_MOVIE_STOP = 0,
32         CSP_MAINWIDGET_SAVE_MOVIE_15FPS = 1,
33         CSP_MAINWIDGET_SAVE_MOVIE_24FPS,
34         CSP_MAINWIDGET_SAVE_MOVIE_30FPS,
35         CSP_MAINWIDGET_SAVE_MOVIE_60FPS,
36         CSP_MAINWIDGET_SAVE_MOVIE_END,
37 };
38
39 #define MAX_RENDER_PLATFORMS 8
40
41 enum {
42         RENDER_PLATFORMS_OPENGL3_MAIN = 0,
43         RENDER_PLATFORMS_OPENGL2_MAIN,
44         RENDER_PLATFORMS_OPENGL_CORE,
45         RENDER_PLATFORMS_END
46 };
47
48 QT_BEGIN_NAMESPACE
49
50
51 #define SET_ACTION_SINGLE(__action,__checkable,__enabled,__cfgif) \
52                 __action = new Action_Control(this, using_flags);                 \
53                 __action->setCheckable(__checkable);                                      \
54                 __action->setEnabled(__enabled);                                                  \
55                 __action->setChecked(false);                                                      \
56                 if(__cfgif) {                                                                                     \
57                         __action->setChecked(true);                                                       \
58                 }                                                                                                                 \
59
60 #define SET_ACTION_CHECKABLE_SINGLE_CONNECT(__menu,__action,__objname,__cond,__signal1,__slot1) \
61         __action = new Action_Control(this, using_flags);                                       \
62         __action->setObjectName(QString::fromUtf8(__objname));                          \
63         __action->setCheckable(true);                                                                           \
64         if(__cond) __action->setChecked(true);                                                          \
65         connect(__action, __signal1, this, __slot1);                                            \
66         __menu->addAction(__action);
67
68
69 #define SET_HELP_MENUENTRY(__menu,__action,__objname,__txtname) \
70         __action = new Action_Control(this, using_flags); \
71         __action->setObjectName(QString::fromUtf8(__objname)); \
72         __action->do_set_string(QString::fromUtf8(__txtname)); \
73         connect(__action, SIGNAL(triggered()), __action, SLOT(do_send_string())); \
74         connect(__action, SIGNAL(sig_send_string(QString)), this, SLOT(do_browse_document(QString))); \
75         __menu->addAction(__action);
76         
77
78 #define SET_ACTION_CONTROL_ARRAY(__start,__end,                                                 \
79                                                                  __parent,__using_flags,                                \
80                                                                  __menu,__action,                                               \
81                                                                  __checkable,__enabled,__cnf,                   \
82                                                                  __signal1,__slot1,                                             \
83                                                                  __signal2,__slot2)                                     \
84         for(int _i = __start; _i < __end;  _i++) {                                                      \
85                 __action[_i] = new Action_Control(__parent, __using_flags);             \
86                 __action[_i]->setCheckable(__checkable);                                                \
87                 __action[_i]->setEnabled(__enabled);                                                    \
88                 __action[_i]->binds->setValue1(_i);                                                             \
89                 __menu->addAction(__action[_i]);                                                                \
90                 if(using_flags->get_config_ptr()->__cnf[_i][0]) __action[_i]->setChecked(true); \
91                 connect(__action[_i], __signal1, __action[_i], __slot1);                \
92                 connect(__action[_i], __signal2, this, __slot2);                                \
93         }                                                                                                                                       \
94
95
96 class QVariant;
97 class QAction;
98 class QActionGroup;
99 class QButtonGroup;
100 class QGraphicsView;
101 class QGraphicsScene;
102 class QHeaderView;
103
104 class QStatusBar;
105 class QWidget;
106 class QLabel;
107 class QGraphicsEllipseItem;
108 class QClipboard;
109 class QDockWidget;
110 class QHBoxLayout;
111 class QVBoxLayout;
112
113 class Ui_SoundDialog;
114 class GLDrawClass;
115 class Action_Control;
116 class Menu_MetaClass;
117 class Menu_FDClass;
118 class Menu_CMTClass;
119 class Menu_CartClass;
120 class Menu_QDClass;
121 class Menu_BinaryClass;
122 class Menu_BubbleClass;
123 class Menu_CompactDiscClass;
124 class Menu_LaserdiscClass;
125 class CSP_DockDisks;
126 class MOVIE_SAVER;
127 class EmuThreadClass;
128 class DLL_PREFIX Ui_MainWindowBase : public QMainWindow
129 {
130         Q_OBJECT
131 private:
132         QIcon WindowIcon;
133         QIcon InsertIcon;
134         QIcon EjectIcon;
135         QIcon StopIcon;
136         QIcon RecordSoundIcon;
137         QIcon ResetIcon;
138         QIcon ExitIcon;
139         QIcon VolumeMutedIcon;
140         QIcon VolumeLowIcon;
141         QIcon VolumeMidIcon;
142         QIcon VolumeHighIcon;
143
144         // File
145         QActionGroup *actionGroup_CpuSpeed;
146         class Action_Control *actionSpeed_x1;
147         class Action_Control *actionSpeed_x2;
148         class Action_Control *actionSpeed_x4;
149         class Action_Control *actionSpeed_x8;
150         class Action_Control *actionSpeed_x16;
151         class Action_Control *actionPaste_from_Clipboard;
152         class Action_Control *actionStop_Pasting;
153         QMenu *menuSave_State;
154         QMenu *menuLoad_State;
155
156         // Screen
157         QActionGroup *actionGroup_Stretch;
158         QActionGroup *actionGroup_SetRenderPlatform;
159         class Action_Control *actionZoom;
160         class Action_Control *actionDisplay_Mode;
161         class Action_Control *actionScanLine;
162         class Action_Control *actionGLScanLineHoriz;
163         class Action_Control *actionGLScanLineVert;
164         class Action_Control *actionRotate;
165         class Action_Control *actionCRT_Filter;
166         class Action_Control *actionOpenGL_Filter;
167         class Action_Control *actionDot_by_Dot;
168         class Action_Control *actionReferToX_Display;
169         class Action_Control *actionReferToY_Display;
170         class Action_Control *actionFill_Display;
171         QActionGroup *actionGroup_ScreenSize;
172         QActionGroup *actionGroup_RenderMode;
173
174         // Sound
175         QActionGroup   *actionGroup_Sound_Freq;
176         QActionGroup   *actionGroup_Sound_Latency;
177         //class Action_Control *actionSoundCMT;
178         class Action_Control *action_VolumeDialog;
179         class Action_Control *actionSoundPlayTape;
180         class Action_Control *actionSoundStrictRendering;
181         class Action_Control *action_SoundFilesFDD;
182         class Action_Control *action_SoundFilesRelay;
183         //QMenu *menuLogToConsole;
184         //QMenu *menuLogToSyslog;
185         QMenu *menuDevLogToConsole;
186         QMenu *menuDevLogToSyslog;
187         QMenu *menu_SetRenderPlatform;
188
189         // Misc
190         class Action_Control *action_DispVirtualMedias;
191         class Action_Control *action_UseRomaKana;
192         class Action_Control *action_LogToSyslog;
193         class Action_Control *action_LogToConsole;
194         class Action_Control *action_LogRecord;
195         class Action_Control *action_DevLogToSyslog[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1];
196         class Action_Control *action_DevLogToConsole[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1];
197         class Action_Control *action_DevLogRecord[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1];
198         // Emulator
199         class Action_Control *action_SetupJoystick;
200         class Action_Control *action_SetupKeyboard;
201         class Action_Control *action_LogView;
202
203         // Help
204         class Action_Control *actionHelp_README_BIOS;
205         class Action_Control *actionHelp_README;
206         class Action_Control *actionHelp_README_QT;
207         class Action_Control *actionHelp_README_MR_TANAM;
208         class Action_Control *actionHelp_README_Artane;
209         class Action_Control *actionHelp_README_Umaiboux;
210         class Action_Control *actionHelp_README_FAQ;
211         class Action_Control *actionHelp_README_FAQ_JP;
212         class Action_Control *actionHelp_README_FM7;
213         class Action_Control *actionHelp_README_FM7_JP;
214         class Action_Control *actionHelp_History;
215         class Action_Control *actionHelp_History_Relnote;
216         class Action_Control *actionHelp_History_ChangeLog;
217         class Action_Control *actionHelp_History_MR_TANAM;
218         class Action_Control *actionHelp_License;
219         class Action_Control *actionHelp_License_JP;
220         
221         // Led: OSD.
222         bool flags_led[32];
223         bool flags_led_bak[32];
224         QGraphicsView *led_graphicsView;
225         QGraphicsScene *led_gScene;
226         QGraphicsEllipseItem *led_leds[32];
227         uint32_t osd_led_data;
228
229         // Inner functions
230         void ConfigCpuSpeed(void);
231         void ConfigControlMenu(void);
232         void connectActions_ControlMenu(void);
233         void ConfigFloppyMenu(void);
234         void ConfigSoundMenu(void);
235         void CreateSoundMenu(void);
236
237         void CreateEmulatorMenu(void);
238         void ConfigEmulatorMenu(void);
239         
240         void CreateFloppyMenu(int drv, int drv_base);
241         void CreateFloppyPulldownMenu(int drv);
242         void ConfigFloppyMenuSub(int drv);
243         // Bubble
244         void CreateBubbleMenu(int drv, int drv_base);
245         void CreateBubblePulldownMenu(int drv);
246         void ConfigBubbleMenuSub(int drv);
247         void ConfigBubbleMenu(void);
248         
249         void CreateCMTMenu(int drive);
250         void ConfigCMTMenu(void);
251    
252         void ConfigQuickDiskMenu(void);
253         void ConfigQuickDiskMenuSub(int drv);
254         void CreateQuickDiskPulldownMenu(int drv);
255         void CreateQuickDiskMenu(int drv, int drv_base);
256
257         void CreateCartMenu(int drv, int drv_base);
258         void CreateCartPulldownMenu(int drv);
259         void ConfigCartMenuSub(int drv);
260         void ConfigCartMenu(void);
261
262         void CreateCDROMMenu(void);
263         void ConfigCDROMMenu(void);
264         void ConfigCDROMMenuSub(void);
265         void CreateCDROMPulldownMenu(void);
266         
267         void CreateLaserdiscMenu(void);
268         void ConfigLaserdiscMenu(void);
269         void ConfigLaserdiscMenuSub(void);
270         void CreateLaserdiscPulldownMenu(void);
271
272         void ConfigBinaryMenu(void);
273         void ConfigScreenMenu(void);
274         void ConfigScreenMenu_List(void);
275         void CreateScreenMenu(void);
276         void ConfigDeviceType(void);
277         void ConfigKeyboardType(void);
278         void ConfigJoystickType(void);
279         void ConfigMouseType(void);
280         void ConfigDriveType(void);
281         void ConfigSoundDeviceType(void);
282         void ConfigPrinterType(void);
283
284         // About Status bar
285         int Calc_OSD_Wfactor(void);
286 protected:
287         USING_FLAGS *using_flags;
288         config_t *p_config;
289         CSP_Logger *csp_logger;
290         QMainWindow *MainWindow;
291         QApplication *CoreApplication;
292         
293         GLDrawClass *graphicsView;
294         CSP_DockDisks *driveData;
295         QWidget *pCentralWidget;
296         QVBoxLayout *pCentralLayout;
297         QStatusBar  *statusbar;
298         QMenuBar    *menubar;
299
300         QTimer *statusUpdateTimer;
301         QTimer *ledUpdateTimer;
302
303         int screen_mode_count;
304         // Virtual medias.
305         QStringList listCARTs[8];
306         QStringList listQDs[8];
307         QStringList listCMT[8];
308         bool cmt_write_protect[8];
309         QStringList listCDROM;
310         QStringList listLaserdisc;
311         QStringList listBINs[8];
312         QStringList listFDs[16];
313         QStringList listD88[16];
314         QStringList listBubbles[8];
315         QStringList listB77[8];
316
317         // Some Functions
318         QActionGroup *actionGroup_BootMode;
319         QActionGroup *actionGroup_CpuType;
320         class Action_Control *actionReset;
321         class Action_Control *actionSpecial_Reset;
322         class Action_Control *actionExit_Emulator;
323         class Action_Control *actionCpuType[8];
324         class Action_Control *actionBootMode[8];
325         class Action_Control *actionDebugger[_MAX_DEBUGGER];
326         class Action_Control *actionSave_State[10];
327         class Action_Control *actionLoad_State[10];
328         //class Action_Control *actionClose_Debuggers;
329         class Action_Control *actionScreenSize[32];
330         class Action_Control *actionAbout;
331         class Action_Control *actionMouseEnable;
332         class Action_Control *actionHelp_AboutQt;
333
334         // Screen
335         class Action_Control *actionCapture_Screen;
336         class Action_Control *action_SetRenderMode[8];
337         // Sound
338         class Action_Control *action_Freq[8];
339         class Action_Control *action_Latency[6];
340         class Action_Control *actionStart_Record;
341         class Action_Control *actionStop_Record;
342
343         // Emulator
344         QActionGroup *actionGroup_DeviceType;
345         QActionGroup *actionGroup_KeyboardType;
346         QActionGroup *actionGroup_JoystickType;
347         QActionGroup *actionGroup_MouseType;
348         QActionGroup *actionGroup_DriveType;
349         QActionGroup *actionGroup_SoundDevice;
350         QActionGroup *actionGroup_PrintDevice;
351         QMenu *menuDeviceType;
352         QMenu *menuKeyboardType;
353         QMenu *menuJoystickType;
354         QMenu *menuMouseType;
355         QMenu *menuDriveType;
356         QMenu *menuSoundDevice;
357         QMenu *menuPrintDevice;
358         class Action_Control *actionDeviceType[16];
359         class Action_Control *actionKeyboardType[16];
360         class Action_Control *actionJoystickType[16];
361         class Action_Control *actionMouseType[8];
362         class Action_Control *actionDriveType[8];
363         class Action_Control *actionSoundDevice[32]; //
364         class Action_Control *actionPrintDevice[16];
365         class Action_Control *action_SetRenderPlatform[MAX_RENDER_PLATFORMS];
366         
367         class Action_Control *actionStart_Record_Movie;
368         class Action_Control *actionStop_Record_Movie;
369         class Action_Control *action_SetupMovie; // 15, 24, 30, 60
370
371         // Menus    
372         QMenu *menuControl;
373         QMenu *menuState;
374         QMenu *menuCopy_Paste;
375         QMenu *menuCpu_Speed;
376         QMenu *menuDebugger;
377         QMenu *menuScreen;
378         QMenu *menuStretch_Mode;
379         QMenu *menuScreenSize;
380         QMenu *menuScreen_Render;
381         
382         QMenu *menuCpuType;
383         QMenu *menuBootMode;
384         QMenu *menuSound;
385         QMenu *menuOutput_Frequency;
386         QMenu *menuSound_Latency;
387         QMenu *menuMachine;
388         QMenu *menuRecord;
389         QMenu *menuRecord_sound;
390         QMenu *menuRecord_as_movie;
391         QMenu *menuEmulator;
392         QMenu *menuHELP;
393         QMenu *menuHelp_Readme;
394         QMenu *menuHelp_Histories;
395         Menu_FDClass *menu_fds[16];
396         Menu_QDClass *menu_QDs[8];
397         Menu_CMTClass *menu_CMT[8];
398         Menu_CompactDiscClass *menu_CDROM;
399         Menu_LaserdiscClass *menu_Laserdisc;
400         Menu_CartClass *menu_Cart[8];
401         Menu_BinaryClass *menu_BINs[8];
402         Menu_BubbleClass *menu_bubbles[8];
403         // Status Bar
404         QWidget *dummyStatusArea1;
405         QLabel *messagesStatusBar;
406         QWidget *dummyStatusArea2;
407
408         QLabel *cdrom_StatusBar;
409         QString osd_str_cdrom;
410         
411         QLabel *laserdisc_StatusBar;
412         QString osd_str_laserdisc;
413         QLabel *bubble_StatusBar[8];
414         QString osd_str_bubble[8];
415         QImage *bitmapImage;
416         QClipboard *ClipBoard;
417         // Constructor
418         EmuThreadClass *hRunEmu;
419         class DrawThreadClass *hDrawEmu;
420         class JoyThreadClass *hRunJoy;
421         class MOVIE_SAVER *hSaveMovieThread;
422         
423         int max_vm_nodes;
424         bool ui_retranslate_completed;
425
426         // CPU Type
427         void ConfigCPUTypes(int num);
428         void ConfigCPUBootMode(int num);
429         // Translate UIs.
430         void retranslateControlMenu(const char *SpecialResetTitle,  bool WithSpecialReset);
431         void retranslateFloppyMenu(int drv, int basedrv);
432         void retranslateBubbleMenu(int drv, int basedrv);
433         void retranslateCMTMenu(int drive);
434         void retranslateQuickDiskMenu(int drv, int basedrv);
435
436         void retranslateCDROMMenu(void);
437         void retranslateLaserdiscMenu(void);
438         void retranslateScreenMenu(void);
439         void retranslateMachineMenu(void);
440         void retranslateBinaryMenu(int drv, int basedrv);
441         void retranslateSoundMenu(void);
442 public:
443         Ui_MainWindowBase(USING_FLAGS *p, CSP_Logger *logger, QWidget *parent = 0);
444         ~Ui_MainWindowBase();
445
446         // Initializer : using from InitContext.
447         void setCoreApplication(QApplication *p);
448         void createContextMenu(void);
449         void setupUi(void);
450         virtual void set_window(int mode);
451         // Belows are able to re-implement.
452         virtual void retranslateUi(void);
453         virtual void retranslateUI_Help(void);
454         virtual void retranslateCartMenu(int drv, int basedrv);
455         virtual void retranslateVolumeLabels(Ui_SoundDialog *);
456         virtual void retranslateEmulatorMenu(void);
457         virtual void retranselateUi_Depended_OSD(void);
458         // About Status bar
459         virtual void initStatusBar(void);
460         // EmuThread
461         void StopEmuThread(void);
462         virtual void LaunchEmuThread(void);
463         // JoyThread
464         virtual void StopJoyThread(void);
465         virtual void LaunchJoyThread(void);
466         // Screen
467         virtual void OnWindowResize(void);
468         virtual void OnWindowMove(void);
469         virtual void OnWindowRedraw(void);
470    
471         // Getting important widgets.
472         QMainWindow *getWindow(void) { return MainWindow; }
473         QMenuBar    *getMenuBar(void) { return menubar;}
474         GLDrawClass *getGraphicsView(void) { return graphicsView; }
475         QStatusBar *getStatusBar(void) { return statusbar;}
476         QImage *getBitmapImage(void) { return bitmapImage; }
477         
478         virtual void OnMainWindowClosed(void);
479         // Basic Action Definition
480         void OnCpuPower(int mode);
481         bool get_wave_shaper(int drive);
482         bool get_direct_load_mzt(int drive);
483         virtual bool GetPowerState(void);
484         void set_logger(CSP_Logger *logger) { csp_logger = logger; }
485         // Basic slots
486 public slots:
487         void delete_emu_thread(void);
488         void doChangeMessage_EmuThread(QString str);
489         void do_emu_update_config(void);
490         virtual void delete_joy_thread(void);
491         virtual void do_set_window_title(QString s);
492         virtual void redraw_status_bar(void);
493         virtual void redraw_leds(void);
494         void do_recv_data_led(quint32 d);
495
496         void do_update_volume(int level);
497         void set_screen_aspect(int num);
498         void set_screen_size(int w, int h);
499         void OnReset(void);
500         void OnSpecialReset(void);
501         virtual void do_set_mouse_enable(bool flag);
502         virtual void do_toggle_mouse(void);
503         void do_set_sound_device(int);
504         void do_emu_update_volume_balance(int num, int level);
505         void do_emu_update_volume_level(int num, int level);
506         void rise_log_viewer(void);
507         void rise_volume_dialog(void);
508         void rise_joystick_dialog(void);
509         void rise_keyboard_dialog(void);
510         virtual void rise_movie_dialog(void);
511         void do_stop_saving_movie(void);
512         void do_start_saving_movie(void);
513         void do_set_state_saving_movie(bool state);
514         
515         virtual void OnOpenDebugger(int n);
516         virtual void OnCloseDebugger(void);
517         
518         void set_screen_rotate(bool);
519         void set_gl_crt_filter(bool);
520         void set_cpu_power(int pw) {
521                 OnCpuPower(pw);
522         }
523         virtual void on_actionExit_triggered();
524
525         void OnStartAutoKey(void);
526         void OnStopAutoKey(void);
527         void eject_cart(int);
528         void set_recent_cart(int, int);
529
530         int set_recent_cdrom(int drv, int num);
531         void do_eject_cdrom(int drv);
532         void do_open_cdrom(int drv, QString path);
533
534         int set_recent_laserdisc(int drv, int num); 
535         void do_eject_laserdisc(int drv); 
536         void do_open_laserdisc(int drv, QString path);
537
538         void CreateBinaryMenu(int drv, int drv_base);
539         void CreateBinaryPulldownMenu(int drv);
540         void ConfigBinaryMenuSub(int drv);
541         int set_recent_binary_load(int drv, int num);
542         int set_recent_binary_save(int drv, int num);
543         void _open_binary_load(int drive, const QString fname);
544         void _open_binary_save(int drive, const QString fname);
545
546         void open_quick_disk_dialog(int drv);
547         int set_recent_quick_disk(int drive, int num); 
548         int write_protect_Qd(int drv, bool flag);
549         void _open_quick_disk(int drv, const QString fname);
550         void eject_Qd(int drv);
551
552
553         virtual void _open_disk(int drv, const QString fname);
554         void _open_cart(int drv, const QString fname);
555         void eject_cmt(int drv);
556         void do_change_boot_mode(int mode);
557         void do_change_cpu_type(int mode);
558         void do_write_protect_cmt(int drv, bool flag);
559         int  set_recent_cmt(int drv, int num);
560         void set_wave_shaper(int drive, bool f);
561         void set_direct_load_from_mzt(int drive, bool f);
562         void do_open_write_cmt(int drive, QString);
563         void do_open_read_cmt(int drive, QString path);
564
565         void do_push_play_tape(int drive);
566         void do_push_stop_tape(int drive);
567         void do_push_fast_forward_tape(int drive);
568         void do_push_rewind_tape(int drive);
569         void do_push_apss_forward_tape(int drive);
570         void do_push_apss_rewind_tape(int drive);
571         void set_cmt_sound(bool);
572
573         int write_protect_fd(int drv, bool flag);
574         void eject_fd(int drv);
575         virtual void do_update_recent_disk(int);
576         virtual int set_d88_slot(int drive, int num);
577         virtual int set_recent_disk(int, int);
578
579         // Bubble Casette
580         int write_protect_bubble(int drv, bool flag);
581
582         virtual int set_b77_slot(int drive, int num);
583         virtual void do_update_recent_bubble(int drv);
584         virtual int set_recent_bubble(int drv, int num);
585
586         virtual void _open_bubble(int drv, const QString fname);
587         virtual void eject_bubble(int drv);
588
589         void start_record_sound(bool rec);
590         void set_freq(int);
591         void set_latency(int);
592         void set_sound_device(int);
593         void do_set_sound_strict_rendering(bool f);
594         void do_set_sound_play_tape(bool f);
595         
596         void set_monitor_type(int);
597         void message_status_bar(QString);
598         void resize_statusbar(int w, int h);
599         virtual void do_release_emu_resources(void);
600         virtual void set_window_title();
601         void set_device_type(int);
602         void set_mouse_type(int);
603         void set_keyboard_type(int);
604         void set_joystick_type(int);
605         void set_drive_type(int);
606         void set_scan_line(bool);
607         void set_gl_scan_line_vert(bool);
608         void set_gl_scan_line_horiz(bool);
609         void set_printer_device(int);
610         void do_show_about(void);
611         void do_browse_document(QString);
612         void set_dipsw(int num, bool flag);
613         bool get_dipsw(int num);
614
615         void do_set_sound_files_fdd(bool f);
616         void do_set_sound_files_relay(bool f);
617         void do_set_conslog(bool);
618         void do_set_syslog(bool);
619         void do_update_device_node_name(int id, const _TCHAR *name);    
620         void do_set_dev_log_to_console(int id, bool f);
621         void do_set_dev_log_to_syslog(int id, bool f);
622         void do_set_roma_kana(bool f);
623         void do_set_render_mode_std(void);
624         void do_set_render_mode_tv(void);
625         void do_select_render_platform(int num);
626         void do_set_visible_virtual_medias(bool f);
627 signals:
628         int message_changed(QString);
629         int quit_emu_thread();
630         int call_joy_thread(EMU *);
631         int quit_joy_thread();
632         int quit_draw_thread();
633         int sig_quit_movie_thread();
634         int sig_stop_saving_movie(void);
635         int sig_start_saving_movie(void);
636         int on_boot_mode(int);
637         int on_cpu_type(int);
638         int on_cpu_power(int);
639         int on_open_debugger(int);
640         int on_insert_fd(int);
641         int on_eject_fd(int);
642         int do_open_disk(int, QString);
643         int closed(void);
644         int sig_quit_all(void);
645         int sig_vm_reset(void);
646         int sig_vm_specialreset(void);
647         int sig_check_grab_mouse(bool);
648         int sig_resize_uibar(int, int);
649         int sig_resize_screen(int, int);
650         int sig_update_screen(void);
651         int sig_emu_update_config(void);
652         int sig_emu_start_rec_sound(void);
653         int sig_emu_stop_rec_sound(void);
654         int sig_emu_set_display_size(int, int, int, int);
655         int sig_emu_update_volume_level(int, int);
656         int sig_emu_update_volume_balance(int, int);
657         
658         int sig_write_protect_disk(int drv, bool flag);
659         int sig_open_disk(int, QString, int);
660         int sig_close_disk(int);
661         int sig_play_tape(int ,QString);
662         int sig_rec_tape(int, QString);
663         int sig_close_tape(int);
664         int sig_cmt_push_play(int);
665         int sig_cmt_push_stop(int);
666         int sig_cmt_push_fast_forward(int);
667         int sig_cmt_push_fast_rewind(int);
668         int sig_cmt_push_apss_forward(int);
669         int sig_cmt_push_apss_rewind(int);
670         int sig_write_protect_quickdisk(int drv, bool flag);
671         int sig_close_quickdisk(int drv);
672         int sig_open_quickdisk(int drv, QString path);
673         int sig_close_cart(int drv);
674         int sig_open_cart(int drv, QString path);
675         int sig_open_cdrom(QString path);
676         int sig_close_cdrom(void);
677         int sig_close_laserdisc(void);
678         int sig_open_laserdisc(QString path);
679         int sig_load_binary(int drv, QString path);
680         int sig_save_binary(int drv, QString path);
681         int sig_write_protect_bubble(int, bool);
682         int sig_open_bubble(int, QString , int);
683         int sig_close_bubble(int);
684         int sig_led_update(QRectF);
685         int sig_start_auto_key(QString);
686         int sig_stop_auto_key(void);
687    
688         int quit_debugger_thread(void);
689         int sig_quit_widgets(void);
690
691         int sig_load_state(QString);
692         int sig_save_state(QString);
693         
694 };
695 QT_END_NAMESPACE
696
697 #endif