OSDN Git Service

[UI][Qt][I18N] Update translations.
[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 class QGridLayout;
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         QMenu *menu_DispVirtualMedias;
191         QActionGroup *actionGroup_DispVirtualMedias;
192         class Action_Control *action_DispVirtualMedias[5];
193         class Action_Control *action_FocusWithClick;
194         class Action_Control *action_UseRomaKana;
195         class Action_Control *action_Logging_FDC;
196         class Action_Control *action_LogToSyslog;
197         class Action_Control *action_LogToConsole;
198         class Action_Control *action_LogRecord;
199         class Action_Control *action_DevLogToSyslog[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1];
200         class Action_Control *action_DevLogToConsole[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1];
201         class Action_Control *action_DevLogRecord[CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1];
202         // Emulator
203         class Action_Control *action_SetupJoystick;
204         class Action_Control *action_SetupKeyboard;
205         class Action_Control *action_LogView;
206
207         QMenu *menu_EmulateCursorAs;
208         QActionGroup *actionGroup_EmulateCursorAs;
209         class Action_Control *action_EmulateCursorAs[4];
210
211         // Help
212         class Action_Control *actionHelp_README_BIOS;
213         class Action_Control *actionHelp_README;
214         class Action_Control *actionHelp_README_QT;
215         class Action_Control *actionHelp_README_MR_TANAM;
216         class Action_Control *actionHelp_README_Artane;
217         class Action_Control *actionHelp_README_Umaiboux;
218         class Action_Control *actionHelp_README_FAQ;
219         class Action_Control *actionHelp_README_FAQ_JP;
220         class Action_Control *actionHelp_README_FM7;
221         class Action_Control *actionHelp_README_FM7_JP;
222         class Action_Control *actionHelp_History;
223         class Action_Control *actionHelp_History_Relnote;
224         class Action_Control *actionHelp_History_ChangeLog;
225         class Action_Control *actionHelp_History_MR_TANAM;
226         class Action_Control *actionHelp_License;
227         class Action_Control *actionHelp_License_JP;
228         
229         // Led: OSD.
230         bool flags_led[32];
231         bool flags_led_bak[32];
232         QGraphicsView *led_graphicsView;
233         QGraphicsScene *led_gScene;
234         QGraphicsEllipseItem *led_leds[32];
235         uint32_t osd_led_data;
236
237         // Inner functions
238         void ConfigCpuSpeed(void);
239         void ConfigControlMenu(void);
240         void connectActions_ControlMenu(void);
241         void ConfigFloppyMenu(void);
242         void ConfigSoundMenu(void);
243         void CreateSoundMenu(void);
244
245         void CreateEmulatorMenu(void);
246         void ConfigEmulatorMenu(void);
247         
248         void CreateFloppyMenu(int drv, int drv_base);
249         void CreateFloppyPulldownMenu(int drv);
250         void ConfigFloppyMenuSub(int drv);
251         // Bubble
252         void CreateBubbleMenu(int drv, int drv_base);
253         void CreateBubblePulldownMenu(int drv);
254         void ConfigBubbleMenuSub(int drv);
255         void ConfigBubbleMenu(void);
256         
257         void CreateCMTMenu(int drive);
258         void ConfigCMTMenu(void);
259    
260         void ConfigQuickDiskMenu(void);
261         void ConfigQuickDiskMenuSub(int drv);
262         void CreateQuickDiskPulldownMenu(int drv);
263         void CreateQuickDiskMenu(int drv, int drv_base);
264
265         void CreateCartMenu(int drv, int drv_base);
266         void CreateCartPulldownMenu(int drv);
267         void ConfigCartMenuSub(int drv);
268         void ConfigCartMenu(void);
269
270         void CreateCDROMMenu(void);
271         void ConfigCDROMMenu(void);
272         void ConfigCDROMMenuSub(void);
273         void CreateCDROMPulldownMenu(void);
274         
275         void CreateLaserdiscMenu(void);
276         void ConfigLaserdiscMenu(void);
277         void ConfigLaserdiscMenuSub(void);
278         void CreateLaserdiscPulldownMenu(void);
279
280         void ConfigBinaryMenu(void);
281         void ConfigScreenMenu(void);
282         void ConfigScreenMenu_List(void);
283         void CreateScreenMenu(void);
284         void ConfigDeviceType(void);
285         void ConfigKeyboardType(void);
286         void ConfigJoystickType(void);
287         void ConfigMouseType(void);
288         void ConfigDriveType(void);
289         void ConfigSoundDeviceType(void);
290         void ConfigPrinterType(void);
291
292         // About Status bar
293         int Calc_OSD_Wfactor(void);
294 protected:
295         USING_FLAGS *using_flags;
296         config_t *p_config;
297         CSP_Logger *csp_logger;
298         QMainWindow *MainWindow;
299         QApplication *CoreApplication;
300         
301         GLDrawClass *graphicsView;
302         CSP_DockDisks *driveData;
303         QWidget *pCentralWidget;
304         QVBoxLayout *pCentralLayout;
305         QStatusBar  *statusbar;
306         QMenuBar    *menubar;
307
308         QTimer *statusUpdateTimer;
309         QTimer *ledUpdateTimer;
310
311         int screen_mode_count;
312         // Virtual medias.
313         QStringList listCARTs[8];
314         QStringList listQDs[8];
315         QStringList listCMT[8];
316         bool cmt_write_protect[8];
317         QStringList listCDROM;
318         QStringList listLaserdisc;
319         QStringList listBINs[8];
320         QStringList listFDs[16];
321         QStringList listD88[16];
322         QStringList listBubbles[8];
323         QStringList listB77[8];
324
325         // Some Functions
326         QActionGroup *actionGroup_BootMode;
327         QActionGroup *actionGroup_CpuType;
328         class Action_Control *actionReset;
329         class Action_Control *actionSpecial_Reset;
330         class Action_Control *actionExit_Emulator;
331         class Action_Control *actionCpuType[8];
332         class Action_Control *actionBootMode[8];
333         class Action_Control *actionDebugger[_MAX_DEBUGGER];
334         class Action_Control *actionSave_State[10];
335         class Action_Control *actionLoad_State[10];
336         //class Action_Control *actionClose_Debuggers;
337         class Action_Control *actionScreenSize[32];
338         class Action_Control *actionAbout;
339         class Action_Control *actionMouseEnable;
340         class Action_Control *actionHelp_AboutQt;
341
342         // Screen
343         class Action_Control *actionCapture_Screen;
344         class Action_Control *action_SetRenderMode[8];
345         // Sound
346         class Action_Control *action_Freq[8];
347         class Action_Control *action_Latency[6];
348         class Action_Control *actionStart_Record;
349         class Action_Control *actionStop_Record;
350
351         // Emulator
352         QActionGroup *actionGroup_DeviceType;
353         QActionGroup *actionGroup_KeyboardType;
354         QActionGroup *actionGroup_JoystickType;
355         QActionGroup *actionGroup_MouseType;
356         QActionGroup *actionGroup_DriveType;
357         QActionGroup *actionGroup_SoundDevice;
358         QActionGroup *actionGroup_PrintDevice;
359         QMenu *menuDeviceType;
360         QMenu *menuKeyboardType;
361         QMenu *menuJoystickType;
362         QMenu *menuMouseType;
363         QMenu *menuDriveType;
364         QMenu *menuSoundDevice;
365         QMenu *menuPrintDevice;
366         class Action_Control *actionDeviceType[16];
367         class Action_Control *actionKeyboardType[16];
368         class Action_Control *actionJoystickType[16];
369         class Action_Control *actionMouseType[8];
370         class Action_Control *actionDriveType[8];
371         class Action_Control *actionSoundDevice[32]; //
372         class Action_Control *actionPrintDevice[16];
373         class Action_Control *action_SetRenderPlatform[MAX_RENDER_PLATFORMS];
374         
375         class Action_Control *actionStart_Record_Movie;
376         class Action_Control *actionStop_Record_Movie;
377         class Action_Control *action_SetupMovie; // 15, 24, 30, 60
378
379         // Menus    
380         QMenu *menuControl;
381         QMenu *menuState;
382         QMenu *menuCopy_Paste;
383         QMenu *menuCpu_Speed;
384         QMenu *menuDebugger;
385         QMenu *menuScreen;
386         QMenu *menuStretch_Mode;
387         QMenu *menuScreenSize;
388         QMenu *menuScreen_Render;
389         
390         QMenu *menuCpuType;
391         QMenu *menuBootMode;
392         QMenu *menuSound;
393         QMenu *menuOutput_Frequency;
394         QMenu *menuSound_Latency;
395         QMenu *menuMachine;
396         QMenu *menuRecord;
397         QMenu *menuRecord_sound;
398         QMenu *menuRecord_as_movie;
399         QMenu *menuEmulator;
400         QMenu *menuHELP;
401         QMenu *menuHelp_Readme;
402         QMenu *menuHelp_Histories;
403         Menu_FDClass *menu_fds[16];
404         Menu_QDClass *menu_QDs[8];
405         Menu_CMTClass *menu_CMT[8];
406         Menu_CompactDiscClass *menu_CDROM;
407         Menu_LaserdiscClass *menu_Laserdisc;
408         Menu_CartClass *menu_Cart[8];
409         Menu_BinaryClass *menu_BINs[8];
410         Menu_BubbleClass *menu_bubbles[8];
411         // Status Bar
412         QWidget *dummyStatusArea1;
413         QLabel *messagesStatusBar;
414         QWidget *dummyStatusArea2;
415
416         QLabel *cdrom_StatusBar;
417         QString osd_str_cdrom;
418         
419         QLabel *laserdisc_StatusBar;
420         QString osd_str_laserdisc;
421         QLabel *bubble_StatusBar[8];
422         QString osd_str_bubble[8];
423         QImage *bitmapImage;
424         QClipboard *ClipBoard;
425         // Constructor
426         EmuThreadClass *hRunEmu;
427         class DrawThreadClass *hDrawEmu;
428         class JoyThreadClass *hRunJoy;
429         class MOVIE_SAVER *hSaveMovieThread;
430         
431         int max_vm_nodes;
432         bool ui_retranslate_completed;
433
434         // CPU Type
435         void ConfigCPUTypes(int num);
436         void ConfigCPUBootMode(int num);
437         // Translate UIs.
438         void retranslateControlMenu(const char *SpecialResetTitle,  bool WithSpecialReset);
439         void retranslateFloppyMenu(int drv, int basedrv);
440         void retranslateFloppyMenu(int drv, int basedrv, QString specName);
441         void retranslateBubbleMenu(int drv, int basedrv);
442         void retranslateCMTMenu(int drive);
443         void retranslateQuickDiskMenu(int drv, int basedrv);
444
445         void retranslateCDROMMenu(void);
446         void retranslateLaserdiscMenu(void);
447         void retranslateScreenMenu(void);
448         void retranslateMachineMenu(void);
449         void retranslateBinaryMenu(int drv, int basedrv);
450         void retranslateSoundMenu(void);
451 public:
452         Ui_MainWindowBase(USING_FLAGS *p, CSP_Logger *logger, QWidget *parent = 0);
453         ~Ui_MainWindowBase();
454
455         // Initializer : using from InitContext.
456         void setCoreApplication(QApplication *p);
457         void createContextMenu(void);
458         void setupUi(void);
459         virtual void set_window(int mode);
460         // Belows are able to re-implement.
461         virtual void retranslateUi(void);
462         virtual void retranslateUI_Help(void);
463         virtual void retranslateCartMenu(int drv, int basedrv);
464         virtual void retranslateVolumeLabels(Ui_SoundDialog *);
465         virtual void retranslateEmulatorMenu(void);
466         virtual void retranselateUi_Depended_OSD(void);
467         // About Status bar
468         virtual void initStatusBar(void);
469         // EmuThread
470         void StopEmuThread(void);
471         virtual void LaunchEmuThread(void);
472         // JoyThread
473         virtual void StopJoyThread(void);
474         virtual void LaunchJoyThread(void);
475         // Screen
476         virtual void OnWindowMove(void);
477         virtual void OnWindowRedraw(void);
478    
479         // Getting important widgets.
480         QMainWindow *getWindow(void) { return MainWindow; }
481         QMenuBar    *getMenuBar(void) { return menubar;}
482         GLDrawClass *getGraphicsView(void) { return graphicsView; }
483         QStatusBar *getStatusBar(void) { return statusbar;}
484         QImage *getBitmapImage(void) { return bitmapImage; }
485         
486         virtual void OnMainWindowClosed(void);
487         // Basic Action Definition
488         void OnCpuPower(int mode);
489         bool get_wave_shaper(int drive);
490         bool get_direct_load_mzt(int drive);
491         virtual bool GetPowerState(void);
492         void set_logger(CSP_Logger *logger) { csp_logger = logger; }
493         // Basic slots
494 public slots:
495         void delete_emu_thread(void);
496         void doChangeMessage_EmuThread(QString str);
497         void do_emu_update_config(void);
498         virtual void delete_joy_thread(void);
499         virtual void do_set_window_title(QString s);
500         virtual void redraw_status_bar(void);
501         virtual void redraw_leds(void);
502         void do_recv_data_led(quint32 d);
503
504         void do_update_volume(int level);
505         void set_screen_aspect(int num);
506         void set_screen_size(int w, int h);
507         void OnReset(void);
508         void OnSpecialReset(void);
509         virtual void do_set_mouse_enable(bool flag);
510         virtual void do_toggle_mouse(void);
511         void do_set_sound_device(int);
512         void do_emu_update_volume_balance(int num, int level);
513         void do_emu_update_volume_level(int num, int level);
514         void rise_log_viewer(void);
515         void rise_volume_dialog(void);
516         void rise_joystick_dialog(void);
517         void rise_keyboard_dialog(void);
518         virtual void rise_movie_dialog(void);
519         void do_stop_saving_movie(void);
520         void do_start_saving_movie(void);
521         void do_set_state_saving_movie(bool state);
522         
523         virtual void OnOpenDebugger(int n);
524         virtual void OnCloseDebugger(void);
525         
526         void set_screen_rotate(bool);
527         void set_gl_crt_filter(bool);
528         void set_cpu_power(int pw) {
529                 OnCpuPower(pw);
530         }
531         virtual void on_actionExit_triggered();
532
533         void OnStartAutoKey(void);
534         void OnStopAutoKey(void);
535         void eject_cart(int);
536         void set_recent_cart(int, int);
537
538         int set_recent_cdrom(int drv, int num);
539         void do_eject_cdrom(int drv);
540         void do_open_cdrom(int drv, QString path);
541
542         int set_recent_laserdisc(int drv, int num); 
543         void do_eject_laserdisc(int drv); 
544         void do_open_laserdisc(int drv, QString path);
545
546         void CreateBinaryMenu(int drv, int drv_base);
547         void CreateBinaryPulldownMenu(int drv);
548         void ConfigBinaryMenuSub(int drv);
549         int set_recent_binary_load(int drv, int num);
550         int set_recent_binary_save(int drv, int num);
551         void _open_binary_load(int drive, const QString fname);
552         void _open_binary_save(int drive, const QString fname);
553
554         void open_quick_disk_dialog(int drv);
555         int set_recent_quick_disk(int drive, int num); 
556         int write_protect_Qd(int drv, bool flag);
557         void _open_quick_disk(int drv, const QString fname);
558         void eject_Qd(int drv);
559
560
561         virtual void _open_disk(int drv, const QString fname);
562         void _open_cart(int drv, const QString fname);
563         void eject_cmt(int drv);
564         void do_change_boot_mode(int mode);
565         void do_change_cpu_type(int mode);
566         void do_write_protect_cmt(int drv, bool flag);
567         int  set_recent_cmt(int drv, int num);
568         void set_wave_shaper(int drive, bool f);
569         void set_direct_load_from_mzt(int drive, bool f);
570         void do_open_write_cmt(int drive, QString);
571         void do_open_read_cmt(int drive, QString path);
572
573         void do_push_play_tape(int drive);
574         void do_push_stop_tape(int drive);
575         void do_push_fast_forward_tape(int drive);
576         void do_push_rewind_tape(int drive);
577         void do_push_apss_forward_tape(int drive);
578         void do_push_apss_rewind_tape(int drive);
579         void set_cmt_sound(bool);
580
581         int write_protect_fd(int drv, bool flag);
582         void eject_fd(int drv);
583         virtual void do_update_recent_disk(int);
584         virtual int set_d88_slot(int drive, int num);
585         virtual int set_recent_disk(int, int);
586
587         // Bubble Casette
588         int write_protect_bubble(int drv, bool flag);
589
590         virtual int set_b77_slot(int drive, int num);
591         virtual void do_update_recent_bubble(int drv);
592         virtual int set_recent_bubble(int drv, int num);
593
594         virtual void _open_bubble(int drv, const QString fname);
595         virtual void eject_bubble(int drv);
596
597         void start_record_sound(bool rec);
598         void set_freq(int);
599         void set_latency(int);
600         void set_sound_device(int);
601         void do_set_sound_strict_rendering(bool f);
602         void do_set_sound_play_tape(bool f);
603         
604         void set_monitor_type(int);
605         void message_status_bar(QString);
606         void resize_statusbar(int w, int h);
607         virtual void do_release_emu_resources(void);
608         virtual void set_window_title();
609         void set_device_type(int);
610         void set_mouse_type(int);
611         void set_keyboard_type(int);
612         void set_joystick_type(int);
613         void set_drive_type(int);
614         void set_scan_line(bool);
615         void set_gl_scan_line_vert(bool);
616         void set_gl_scan_line_horiz(bool);
617         void set_printer_device(int);
618         void do_show_about(void);
619         void do_browse_document(QString);
620         void set_dipsw(int num, bool flag);
621         bool get_dipsw(int num);
622
623         void do_set_sound_files_fdd(bool f);
624         void do_set_sound_files_relay(bool f);
625         void do_set_conslog(bool);
626         void do_set_syslog(bool);
627         void do_update_device_node_name(int id, const _TCHAR *name);    
628         void do_set_dev_log_to_console(int id, bool f);
629         void do_set_dev_log_to_syslog(int id, bool f);
630         void do_set_roma_kana(bool f);
631         void do_set_render_mode_std(void);
632         void do_set_render_mode_tv(void);
633         void do_select_render_platform(int num);
634         void do_set_window_focus_type(bool flag);
635
636         void do_set_visible_virtual_media_none();
637         void do_set_visible_virtual_media_upper();
638         void do_set_visible_virtual_media_lower();
639         void do_set_visible_virtual_media_left();
640         void do_set_visible_virtual_media_right();
641
642         void do_set_emulate_cursor_as(int num);
643         void do_set_logging_fdc(bool onoff);    
644 signals:
645         int message_changed(QString);
646         int quit_emu_thread();
647         int call_joy_thread(EMU *);
648         int quit_joy_thread();
649         int quit_draw_thread();
650         int sig_quit_movie_thread();
651         int sig_stop_saving_movie(void);
652         int sig_start_saving_movie(void);
653         int on_boot_mode(int);
654         int on_cpu_type(int);
655         int on_cpu_power(int);
656         int on_open_debugger(int);
657         int on_insert_fd(int);
658         int on_eject_fd(int);
659         int do_open_disk(int, QString);
660         int closed(void);
661         int sig_quit_all(void);
662         int sig_vm_reset(void);
663         int sig_vm_specialreset(void);
664         int sig_check_grab_mouse(bool);
665         int sig_resize_uibar(int, int);
666         int sig_resize_screen(int, int);
667         int sig_update_screen(void);
668         int sig_emu_update_config(void);
669         int sig_emu_start_rec_sound(void);
670         int sig_emu_stop_rec_sound(void);
671         int sig_emu_set_display_size(int, int, int, int);
672         int sig_emu_update_volume_level(int, int);
673         int sig_emu_update_volume_balance(int, int);
674
675         int sig_resize_osd(int);
676         
677         int sig_write_protect_disk(int drv, bool flag);
678         int sig_open_disk(int, QString, int);
679         int sig_close_disk(int);
680         int sig_play_tape(int ,QString);
681         int sig_rec_tape(int, QString);
682         int sig_close_tape(int);
683         int sig_cmt_push_play(int);
684         int sig_cmt_push_stop(int);
685         int sig_cmt_push_fast_forward(int);
686         int sig_cmt_push_fast_rewind(int);
687         int sig_cmt_push_apss_forward(int);
688         int sig_cmt_push_apss_rewind(int);
689         int sig_write_protect_quickdisk(int drv, bool flag);
690         int sig_close_quickdisk(int drv);
691         int sig_open_quickdisk(int drv, QString path);
692         int sig_close_cart(int drv);
693         int sig_open_cart(int drv, QString path);
694         int sig_open_cdrom(QString path);
695         int sig_close_cdrom(void);
696         int sig_close_laserdisc(void);
697         int sig_open_laserdisc(QString path);
698         int sig_load_binary(int drv, QString path);
699         int sig_save_binary(int drv, QString path);
700         int sig_write_protect_bubble(int, bool);
701         int sig_open_bubble(int, QString , int);
702         int sig_close_bubble(int);
703         int sig_led_update(QRectF);
704         int sig_start_auto_key(QString);
705         int sig_stop_auto_key(void);
706         int sig_set_display_osd(bool);
707         int sig_display_osd_leds(int,bool);
708         int sig_set_led_width(int);
709         int sig_set_orientation_osd(int);
710
711         int quit_debugger_thread(void);
712         int sig_quit_widgets(void);
713
714         int sig_load_state(QString);
715         int sig_save_state(QString);
716         
717 };
718 QT_END_NAMESPACE
719
720 #endif