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
14 #include <QElapsedTimer>
17 #include "commonclasses.h"
21 #include "menuclasses.h"
22 #include "mainwidget.h"
23 #include "commonclasses.h"
25 class META_MainWindow;
35 #define MAX_COMMAND_LEN 64
37 class EmuThreadClass : public QThread {
48 char dbg_prev_command[MAX_COMMAND_LEN];
50 int get_interval(void);
54 QWaitCondition *drawCond;
55 class META_MainWindow *MainWindow;
56 QElapsedTimer tick_timer;
60 bool bSpecialResetReq;
63 bool bUpdateConfigReq;
64 bool bStartRecordSoundReq;
65 bool bStopRecordSoundReq;
67 bool doing_debug_command;
68 #if defined(USE_SOUND_VOLUME)
69 bool bUpdateVolumeReq[USE_SOUND_VOLUME];
70 int volume_balance[USE_SOUND_VOLUME];
71 int volume_avg[USE_SOUND_VOLUME];
75 qint64 update_fps_time;
84 QString fd_text[MAX_FD];
90 QString clipBoardText;
92 void sample_access_drv(void);
93 void calc_volume_from_balance(int num, int balance);
94 void calc_volume_from_level(int num, int level);
96 EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, QObject *parent = 0);
101 void set_tape_play(bool);
102 void run() { doWork("");}
103 EmuThreadClass *currentHandler();
104 void resize_screen(int sw, int sh, int stw, int sth);
105 bool now_debugging();
107 void doWork(const QString ¶m);
109 void print_framerate(int frames);
111 void doSpecialReset();
114 void doUpdateConfig();
115 void doStartRecordSound();
116 void doStopRecordSound();
117 void doSetDisplaySize(int w, int h, int ww, int wh);
118 void doUpdateVolumeLevel(int num, int level);
119 void doUpdateVolumeBalance(int num, int level);
121 void moved_mouse(int, int);
122 void button_pressed_mouse(Qt::MouseButton);
123 void button_released_mouse(Qt::MouseButton);
124 #if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
125 defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
126 void do_write_protect_disk(int drv, bool flag);
127 void do_close_disk(int);
128 void do_open_disk(int, QString, int);
131 void do_play_tape(QString name);
132 void do_rec_tape(QString name);
133 void do_close_tape(void);
134 # ifdef USE_TAPE_BUTTON
135 void do_cmt_push_play(void);
136 void do_cmt_push_stop(void);
137 void do_cmt_push_fast_forward(void);
138 void do_cmt_push_fast_rewind(void);
139 void do_cmt_push_apss_forward(void);
140 void do_cmt_push_apss_rewind(void);
144 void do_write_protect_quickdisk(int drv, bool flag);
145 void do_close_quickdisk(int drv);
146 void do_open_quickdisk(int drv, QString path);
149 void do_close_cart(int drv);
150 void do_open_cart(int drv, QString path);
152 #ifdef USE_LASER_DISK
153 void do_close_laser_disk(void);
154 void do_open_laser_disk(QString path);
156 #ifdef USE_BINARY_FILE1
157 void do_load_binary(int drv, QString path);
158 void do_save_binary(int drv, QString path);
160 void do_start_auto_key(QString text);
161 void do_stop_auto_key(void);
162 void do_draw_timing(bool);
163 void do_call_debugger_command(QString s);
164 void do_close_debugger(void);
167 int message_changed(QString);
168 int window_title_changed(QString);
169 int sig_draw_thread(bool);
170 int quit_draw_thread(void);
171 int sig_screen_aspect(int);
172 int sig_screen_size(int, int);
173 int sig_finished(void);
174 int call_emu_thread(EMU *);
175 int sig_check_grab_mouse(bool);
176 int sig_mouse_enable(bool);
177 #if defined(USE_FD1) || defined(USE_FD2) || defined(USE_FD3) || defined(USE_FD4) || \
178 defined(USE_FD5) || defined(USE_FD6) || defined(USE_FD7) || defined(USE_FD8)
179 int sig_update_recent_disk(int);
180 int sig_change_osd_fd(int, QString);
182 #if defined(USE_QD1) || defined(USE_QD2) || defined(USE_QD3) || defined(USE_QD4)
183 int sig_change_osd_qd(int, QString);
185 #if defined(USE_TAPE)
186 int sig_change_osd_cmt(QString);
188 #if defined(USE_DIG_RESOLUTION)
189 int sig_set_grid_vertical(int, bool);
190 int sig_set_grid_horizonal(int, bool);
192 #ifdef USE_LED_DEVICE
193 int sig_send_data_led(quint32);
196 int sig_resize_screen(int, int);
197 int sig_resize_uibar(int, int);
198 int sig_debugger_input(QString);
199 int sig_quit_debugger();