OSDN Git Service

[UI][Qt] (Maybe, maybe) Fix FTBFSs.
[csp-qt/common_source_project-fm7.git] / source / src / qt / common / emu_thread.h
index f20db11..9c83511 100644 (file)
@@ -11,6 +11,8 @@
 #define _CSP_QT_EMU_THREAD_H
 
 #include <QThread>
+#include <QQueue>
+#include <QString>
 #include <QElapsedTimer>
 
 #include "common.h"
 #include "menuclasses.h"
 #include "mainwidget.h"
 #include "commonclasses.h"
+#include "config.h"
+#include "../gui/emu_thread_tmpl.h"
+
+#ifndef MAX_HISTORY
+#define MAX_HISTORY 8
+#endif
+#define MAX_COMMAND_LEN        64
+
 
 class META_MainWindow;
 class EMU;
-class QString;
 class QWaitCondition;
 class USING_FLAGS;
 
-#ifndef MAX_HISTORY
-#define MAX_HISTORY 8
-#endif
-
 QT_BEGIN_NAMESPACE
-#define MAX_COMMAND_LEN        64
 
-class EmuThreadClass : public QThread {
+class EmuThreadClass : public EmuThreadClassBase {
        Q_OBJECT
-private:
-       bool calc_message;
-       bool tape_play_flag;
-       bool tape_rec_flag;
-       int tape_pos;
-       bool mouse_flag;
-       int mouse_x;
-       int mouse_y;
-       
+protected:
        char dbg_prev_command[MAX_COMMAND_LEN];
+  
+       void button_pressed_mouse_sub(Qt::MouseButton button);
+       void button_released_mouse_sub(Qt::MouseButton button);
+       void get_qd_string(void);
+       void get_fd_string(void);
+       void get_tape_string(void);
+       void get_cd_string(void);
+       void get_bubble_string(void);
 
-       int get_interval(void);
-       bool key_repeat;
-       uint32_t key_down_code;
-       uint32_t key_up_code;
-       uint32_t key_mod_code;
-       bool key_changed;
- protected:
-       EMU *p_emu;
-       USING_FLAGS *using_flags;
-       QWaitCondition *drawCond;
-       class META_MainWindow *MainWindow;
-       QElapsedTimer tick_timer;
-       
-       bool bRunThread;
-       bool bResetReq;
-       bool bSpecialResetReq;
-       bool bLoadStateReq;
-       bool bSaveStateReq;
-       bool bUpdateConfigReq;
-       bool bStartRecordSoundReq;
-       bool bStopRecordSoundReq;
-       bool bStartRecordMovieReq;
-
-       bool draw_timing;
-       bool doing_debug_command;
-       bool bUpdateVolumeReq[32];
-       int volume_balance[32];
-       int volume_avg[32];
-       int record_fps;
+       const _TCHAR *get_emu_message(void);
+       double get_emu_frame_rate(void);
+       int get_message_count(void);
+       void dec_message_count(void);
+       const _TCHAR *get_device_name(void);
+       bool get_power_state(void);
 
-       qint64 next_time;
-       qint64 update_fps_time;
-       bool prev_skip;
-       int total_frames;
-       int draw_frames;
-       int skip_frames;
-       QString qd_text[8];
-       QString fd_text[16];
-       QString cmt_text;
-       QString cdrom_text;
-       QString laserdisc_text;
-       QString bubble_text[16];
-       QString clipBoardText;
-       void sample_access_drv(void);
-       void calc_volume_from_balance(int num, int balance);
-       void calc_volume_from_level(int num, int level);
 public:
-       EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, USING_FLAGS *p, QObject *parent = 0);
+       EmuThreadClass(META_MainWindow *rootWindow, USING_FLAGS *p, QObject *parent = 0);
        ~EmuThreadClass();
-       void SetEmu(EMU *p) {
-               p_emu = p;
-       }
-       void set_tape_play(bool);
        void run() { doWork("");}
-       EmuThreadClass *currentHandler();
-       void resize_screen(int sw, int sh, int stw, int sth);
        bool now_debugging();
+       int get_interval(void);
+
 public slots:
        void doWork(const QString &param);
-       void doExit(void);
-       void print_framerate(int frames);
-       void doReset();
-       void doSpecialReset();
-       void doLoadState();
-       void doSaveState();
-       void doUpdateConfig();
-       void doStartRecordSound();
-       void doStopRecordSound();
-       void doStartRecordVideo(int fps);
-       void doStopRecordVideo();
-
-       void doSetDisplaySize(int w, int h, int ww, int wh);
-       void doUpdateVolumeLevel(int num, int level);
-       void doUpdateVolumeBalance(int num, int level);
-
+       
+       void do_set_display_size(int w, int h, int ww, int wh);
        void moved_mouse(int, int);
-       void button_pressed_mouse(Qt::MouseButton);
-       void button_released_mouse(Qt::MouseButton);
+
        void do_write_protect_disk(int drv, bool flag);
        void do_close_disk(int);
        void do_open_disk(int, QString, int);
-       void do_play_tape(QString name);
-       void do_rec_tape(QString name);
-       void do_close_tape(void);
-       void do_cmt_push_play(void);
-       void do_cmt_push_stop(void);
-       void do_cmt_push_fast_forward(void);
-       void do_cmt_push_fast_rewind(void);
-       void do_cmt_push_apss_forward(void);
-       void do_cmt_push_apss_rewind(void);
+       void do_close_hard_disk(int);
+       void do_open_hard_disk(int, QString);
+       void do_play_tape(int drv, QString name);
+       void do_rec_tape(int drv, QString name);
+       void do_close_tape(int drv);
+       void do_cmt_push_play(int drv);
+       void do_cmt_push_stop(int drv);
+       void do_cmt_push_fast_forward(int drv);
+       void do_cmt_push_fast_rewind(int drv);
+       void do_cmt_push_apss_forward(int drv);
+       void do_cmt_push_apss_rewind(int drv);
        void do_write_protect_quickdisk(int drv, bool flag);
        void do_close_quickdisk(int drv);
        void do_open_quickdisk(int drv, QString path);
        void do_close_cart(int drv);
        void do_open_cart(int drv, QString path);
-       void do_close_laser_disk(void);
-       void do_open_laser_disk(QString path);
-       void do_eject_cdrom(void);
-       void do_open_cdrom(QString path);
+       void do_close_laser_disc(int drv);
+       void do_open_laser_disc(int drv, QString path);
+       void do_eject_cdrom(int drv);
+       void do_open_cdrom(int drv, QString path);
        void do_load_binary(int drv, QString path);
        void do_save_binary(int drv, QString path);
        void do_write_protect_bubble_casette(int drv, bool flag);
@@ -154,38 +102,12 @@ public slots:
        void do_open_bubble_casette(int, QString, int);
        void do_start_auto_key(QString text);
        void do_stop_auto_key(void);
-       void do_draw_timing(bool);
-       void do_call_debugger_command(QString s);
+       void set_romakana(bool flag);
        void do_close_debugger(void);
-       void do_key_down(uint32_t vk, uint32_t mod, bool repeat);
-       void do_key_up(uint32_t vk, uint32_t mod);
+
 signals:
-       int message_changed(QString);
-       int window_title_changed(QString);
-       int sig_draw_thread(bool);
-       int quit_draw_thread(void);
-       int sig_screen_aspect(int);
-       int sig_screen_size(int, int);
-       int sig_finished(void);
-       int call_emu_thread(EMU *);
-       int sig_check_grab_mouse(bool);
-       int sig_mouse_enable(bool);
-       int sig_update_recent_disk(int);
-       int sig_change_osd_fd(int, QString);
-       int sig_change_osd_qd(int, QString);
-       int sig_change_osd_cmt(QString);
-       int sig_change_osd_cdrom(QString);
-       int sig_change_osd_laserdisc(QString);
-       int sig_update_recent_bubble(int);
-       int sig_change_osd_bubble(int, QString);
-       int sig_set_grid_vertical(int, bool);
-       int sig_set_grid_horizonal(int, bool);
-       int sig_send_data_led(quint32);
-       int sig_resize_screen(int, int);
-       int sig_resize_uibar(int, int);
-       int sig_is_enable_mouse(bool);
-       int sig_debugger_input(QString);
-       int sig_quit_debugger();
+       int sig_set_draw_fps(double);
+       int sig_draw_one_turn(bool);
 };
 
 QT_END_NAMESPACE