2 Skelton for retropc emulator
3 Author : Takeda.Toshiya
4 Port to Qt : K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 History : 2015.11.10 Split from qt_main.h
8 [ win32 main ] -> [ Qt main ] -> [Emu Thread]
10 #ifndef _CSP_QT_EMU_THREAD_H
11 #define _CSP_QT_EMU_THREAD_H
16 #include "commonclasses.h"
20 #include "menuclasses.h"
21 #include "mainwidget.h"
22 #include "commonclasses.h"
24 class META_MainWindow;
34 #define MAX_COMMAND_LEN 64
36 class EmuThreadClass : public QThread {
44 char dbg_prev_command[MAX_COMMAND_LEN];
46 int get_interval(void);
50 QWaitCondition *drawCond;
51 class META_MainWindow *MainWindow;
54 bool bSpecialResetReq;
57 bool bUpdateConfigReq;
58 bool bStartRecordSoundReq;
59 bool bStopRecordSoundReq;
61 bool doing_debug_command;
64 uint32 update_fps_time;
73 QString fd_text[MAX_FD];
79 QString clipBoardText;
81 void sample_access_drv(void);
83 EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, QObject *parent = 0);
88 void set_tape_play(bool);
89 void run() { doWork("");}
90 EmuThreadClass *currentHandler();
91 void resize_screen(int sw, int sh, int stw, int sth);
94 void doWork(const QString ¶m);
96 void print_framerate(int frames);
98 void doSpecialReset();
101 void doUpdateConfig();
102 void doStartRecordSound();
103 void doStopRecordSound();
104 void doSetDisplaySize(int w, int h, int ww, int wh);
106 void moved_mouse(int, int);
107 void button_pressed_mouse(Qt::MouseButton);
108 void button_released_mouse(Qt::MouseButton);
109 #if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
110 defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
111 void do_write_protect_disk(int drv, bool flag);
112 void do_close_disk(int);
113 void do_open_disk(int, QString, int);
116 void do_play_tape(QString name);
117 void do_rec_tape(QString name);
118 void do_close_tape(void);
119 # ifdef USE_TAPE_BUTTON
120 void do_cmt_push_play(void);
121 void do_cmt_push_stop(void);
122 void do_cmt_push_fast_forward(void);
123 void do_cmt_push_fast_rewind(void);
124 void do_cmt_push_apss_forward(void);
125 void do_cmt_push_apss_rewind(void);
129 void do_write_protect_quickdisk(int drv, bool flag);
130 void do_close_quickdisk(int drv);
131 void do_open_quickdisk(int drv, QString path);
134 void do_close_cart(int drv);
135 void do_open_cart(int drv, QString path);
137 #ifdef USE_LASER_DISK
138 void do_close_laser_disk(void);
139 void do_open_laser_disk(QString path);
141 #ifdef USE_BINARY_FILE1
142 void do_load_binary(int drv, QString path);
143 void do_save_binary(int drv, QString path);
145 void do_start_auto_key(QString text);
146 void do_stop_auto_key(void);
147 void do_draw_timing(bool);
148 void do_call_debugger_command(QString s);
149 void do_close_debugger(void);
152 int message_changed(QString);
153 int sig_draw_thread(bool);
154 int quit_draw_thread(void);
155 int sig_screen_aspect(int);
156 int sig_screen_size(int, int);
157 int sig_finished(void);
158 int call_emu_thread(EMU *);
159 int sig_check_grab_mouse(bool);
160 int sig_mouse_enable(bool);
161 #if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
162 defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
163 int sig_update_recent_disk(int);
164 int sig_change_osd_fd(int, QString);
166 #if defined(USE_QD1) || defined(USE_QD2) || defined(USE_QD3) || defined(USE_QD4)
167 int sig_change_osd_qd(int, QString);
169 #if defined(USE_TAPE)
170 int sig_change_osd_cmt(QString);
172 #if defined(USE_DIG_RESOLUTION)
173 int sig_set_grid_vertical(int, bool);
174 int sig_set_grid_horizonal(int, bool);
176 #ifdef SUPPORT_DUMMY_DEVICE_LED
177 int sig_send_data_led(quint32);
179 int sig_resize_screen(int, int);
180 int sig_resize_uibar(int, int);
181 int sig_auto_key_string(QByteArray);
182 int sig_debugger_input(QString);
183 int sig_quit_debugger();