OSDN Git Service

[Qt][Joystick][VM][MZ1500][MZ700][MZ800] Fix FTBFSs.
[csp-qt/common_source_project-fm7.git] / source / src / qt / common / joy_thread.h
1 /*
2         Skelton for retropc emulator
3         Author : Takeda.Toshiya
4         Port to Qt : K.Ohta <whatisthis.sowhat _at_ gmail.com>
5         Date   : 2006.08.18 -
6         License : GPLv2
7         History : 2015.11.10 Split from qt_main.h
8         [ win32 main ] -> [ Qt main ] -> [Joy Stick]
9 */
10 #ifndef _CSP_QT_JOY_THREAD_H
11 #define _CSP_QT_JOY_THREAD_H
12
13 #include <QThread>
14 #include <SDL.h>
15 #include "emu.h"
16 #include "osd.h"
17
18 class EMU;
19 class QString;
20
21 QT_BEGIN_NAMESPACE
22
23 class JoyThreadClass : public QThread {
24         Q_OBJECT
25  private:
26         int joy_num[16];
27         SDL_Event event;
28 #if defined(USE_SDL2)   
29         SDL_GameController *controller_table[16];
30 #endif  
31         SDL_Joystick *joyhandle[16];
32         QString names[16];
33         EMU *p_emu;
34         OSD *p_osd;
35  protected:
36         bool bRunThread;
37 #if defined(USE_JOYSTICK)       
38         void joystick_plugged(int num);
39         void joystick_unplugged(int num);
40         bool EventSDL(SDL_Event *);
41         void x_axis_changed(int, int);
42         void y_axis_changed(int, int);
43         void button_down(int, unsigned int);
44         void button_up(int, unsigned int);
45         int get_joy_num(int id);
46 # if defined(USE_SDL2)
47         int get_joyid_from_instanceID(SDL_JoystickID id);
48 # endif
49 #endif  
50  public:
51         JoyThreadClass(EMU *p, QObject *parent = 0);
52         ~JoyThreadClass();
53         void run() { doWork("");}
54         void SetEmu(EMU *p) {
55                 p_emu = p;
56         }
57 public slots:
58         void doWork(const QString &);
59         void doExit(void);
60  signals:
61         int sig_finished(void);
62         int call_joy_thread(EMU *);
63 };
64
65
66 QT_END_NAMESPACE
67
68 #endif