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"
26 class META_MainWindow;
37 #define MAX_COMMAND_LEN 64
39 class EmuThreadClass : public QThread {
50 char dbg_prev_command[MAX_COMMAND_LEN];
52 int get_interval(void);
54 uint32_t key_down_code;
56 uint32_t key_mod_code;
60 USING_FLAGS *using_flags;
63 QWaitCondition *drawCond;
64 class META_MainWindow *MainWindow;
65 QElapsedTimer tick_timer;
69 bool bSpecialResetReq;
72 bool bUpdateConfigReq;
73 bool bStartRecordSoundReq;
74 bool bStopRecordSoundReq;
75 bool bStartRecordMovieReq;
78 bool doing_debug_command;
79 bool bUpdateVolumeReq[32];
80 int volume_balance[32];
85 qint64 update_fps_time;
94 QString laserdisc_text;
95 QString bubble_text[16];
96 QString clipBoardText;
97 void sample_access_drv(void);
98 void calc_volume_from_balance(int num, int balance);
99 void calc_volume_from_level(int num, int level);
101 EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, USING_FLAGS *p, QObject *parent = 0);
103 void SetEmu(EMU *p) {
106 void set_tape_play(bool);
107 void run() { doWork("");}
108 EmuThreadClass *currentHandler();
109 void resize_screen(int sw, int sh, int stw, int sth);
110 bool now_debugging();
112 void doWork(const QString ¶m);
114 void print_framerate(int frames);
116 void doSpecialReset();
119 void doUpdateConfig();
120 void doStartRecordSound();
121 void doStopRecordSound();
122 void doStartRecordVideo(int fps);
123 void doStopRecordVideo();
125 void doSetDisplaySize(int w, int h, int ww, int wh);
126 void doUpdateVolumeLevel(int num, int level);
127 void doUpdateVolumeBalance(int num, int level);
129 void moved_mouse(int, int);
130 void button_pressed_mouse(Qt::MouseButton);
131 void button_released_mouse(Qt::MouseButton);
132 void do_write_protect_disk(int drv, bool flag);
133 void do_close_disk(int);
134 void do_open_disk(int, QString, int);
135 void do_play_tape(QString name);
136 void do_rec_tape(QString name);
137 void do_close_tape(void);
138 void do_cmt_push_play(void);
139 void do_cmt_push_stop(void);
140 void do_cmt_push_fast_forward(void);
141 void do_cmt_push_fast_rewind(void);
142 void do_cmt_push_apss_forward(void);
143 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);
147 void do_close_cart(int drv);
148 void do_open_cart(int drv, QString path);
149 void do_close_laser_disk(void);
150 void do_open_laser_disk(QString path);
151 void do_eject_cdrom(void);
152 void do_open_cdrom(QString path);
153 void do_load_binary(int drv, QString path);
154 void do_save_binary(int drv, QString path);
155 void do_write_protect_bubble_casette(int drv, bool flag);
156 void do_close_bubble_casette(int);
157 void do_open_bubble_casette(int, QString, int);
158 void do_start_auto_key(QString text);
159 void do_stop_auto_key(void);
160 void do_draw_timing(bool);
161 void do_call_debugger_command(QString s);
162 void do_close_debugger(void);
163 void do_key_down(uint32_t vk, uint32_t mod, bool repeat);
164 void do_key_up(uint32_t vk, uint32_t mod);
166 int message_changed(QString);
167 int window_title_changed(QString);
168 int sig_draw_thread(bool);
169 int quit_draw_thread(void);
170 int sig_screen_aspect(int);
171 int sig_screen_size(int, int);
172 int sig_finished(void);
173 int call_emu_thread(EMU *);
174 int sig_check_grab_mouse(bool);
175 int sig_mouse_enable(bool);
176 int sig_update_recent_disk(int);
177 int sig_change_osd_fd(int, QString);
178 int sig_change_osd_qd(int, QString);
179 int sig_change_osd_cmt(QString);
180 int sig_change_osd_cdrom(QString);
181 int sig_change_osd_laserdisc(QString);
182 int sig_update_recent_bubble(int);
183 int sig_change_osd_bubble(int, QString);
184 int sig_set_grid_vertical(int, bool);
185 int sig_set_grid_horizonal(int, bool);
186 int sig_send_data_led(quint32);
187 int sig_resize_screen(int, int);
188 int sig_resize_uibar(int, int);
189 int sig_is_enable_mouse(bool);
190 int sig_debugger_input(QString);
191 int sig_quit_debugger();