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;
35 class EmuThreadClass : public QThread {
43 int get_interval(void);
46 QWaitCondition *drawCond;
47 class META_MainWindow *MainWindow;
50 bool bSpecialResetReq;
53 bool bUpdateConfigReq;
54 bool bStartRecordSoundReq;
55 bool bStopRecordSoundReq;
59 uint32 update_fps_time;
68 QString fd_text[MAX_FD];
74 QString clipBoardText;
76 void sample_access_drv(void);
78 EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, QObject *parent = 0);
83 void set_tape_play(bool);
84 void run() { doWork("");}
85 EmuThreadClass *currentHandler();
86 void resize_screen(int sw, int sh, int stw, int sth);
88 void doWork(const QString ¶m);
90 void print_framerate(int frames);
92 void doSpecialReset();
95 void doUpdateConfig();
96 void doStartRecordSound();
97 void doStopRecordSound();
98 void doSetDisplaySize(int w, int h, int ww, int wh);
100 void moved_mouse(int, int);
101 void button_pressed_mouse(Qt::MouseButton);
102 void button_released_mouse(Qt::MouseButton);
103 #if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
104 defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
105 void do_write_protect_disk(int drv, bool flag);
106 void do_close_disk(int);
107 void do_open_disk(int, QString, int);
110 void do_play_tape(QString name);
111 void do_rec_tape(QString name);
112 void do_close_tape(void);
113 # ifdef USE_TAPE_BUTTON
114 void do_cmt_push_play(void);
115 void do_cmt_push_stop(void);
116 void do_cmt_push_fast_forward(void);
117 void do_cmt_push_fast_rewind(void);
118 void do_cmt_push_apss_forward(void);
119 void do_cmt_push_apss_rewind(void);
123 void do_write_protect_quickdisk(int drv, bool flag);
124 void do_close_quickdisk(int drv);
125 void do_open_quickdisk(int drv, QString path);
128 void do_close_cart(int drv);
129 void do_open_cart(int drv, QString path);
131 #ifdef USE_LASER_DISK
132 void do_close_laser_disk(void);
133 void do_open_laser_disk(QString path);
135 #ifdef USE_BINARY_FILE1
136 void do_load_binary(int drv, QString path);
137 void do_save_binary(int drv, QString path);
139 void do_start_auto_key(QString text);
140 void do_stop_auto_key(void);
141 void do_draw_timing(bool);
143 int message_changed(QString);
144 int sig_draw_thread(bool);
145 int quit_draw_thread(void);
146 int sig_screen_aspect(int);
147 int sig_screen_size(int, int);
148 int sig_finished(void);
149 int call_emu_thread(EMU *);
150 int sig_check_grab_mouse(bool);
151 int sig_mouse_enable(bool);
152 #if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
153 defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
154 int sig_update_recent_disk(int);
155 int sig_change_osd_fd(int, QString);
157 #if defined(USE_QD1) || defined(USE_QD2) || defined(USE_QD3) || defined(USE_QD4)
158 int sig_change_osd_qd(int, QString);
160 #if defined(USE_TAPE)
161 int sig_change_osd_cmt(QString);
163 #if defined(USE_DIG_RESOLUTION)
164 int sig_set_grid_vertical(int, bool);
165 int sig_set_grid_horizonal(int, bool);
167 #ifdef SUPPORT_DUMMY_DEVICE_LED
168 int sig_send_data_led(quint32);
170 int sig_resize_screen(int, int);
171 int sig_resize_uibar(int, int);
172 int sig_auto_key_string(QByteArray);