OSDN Git Service

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