OSDN Git Service

2dd6dd9ef38dca0e56e85c6b310429d75d382980
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / 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 "common.h"
16
17 class EMU;
18 class OSD;
19 class QString;
20 class USING_FLAGS;
21
22 QT_BEGIN_NAMESPACE
23
24 class DLL_PREFIX JoyThreadClass : public QThread {
25         Q_OBJECT
26  private:
27         int joy_num[16];
28         SDL_Event event;
29 #if defined(USE_SDL2)   
30         SDL_GameController *controller_table[16];
31 #endif  
32         SDL_Joystick *joyhandle[16];
33         QString names[16];
34         EMU *p_emu;
35         OSD *p_osd;
36         USING_FLAGS *using_flags;
37  protected:
38         bool bRunThread;
39         void joystick_plugged(int num);
40         void joystick_unplugged(int num);
41         bool EventSDL(SDL_Event *);
42         void x_axis_changed(int, int);
43         void y_axis_changed(int, int);
44         void button_down(int, unsigned int);
45         void button_up(int, unsigned int);
46         int get_joy_num(int id);
47 # if defined(USE_SDL2)
48         int get_joyid_from_instanceID(SDL_JoystickID id);
49 # endif
50  public:
51         JoyThreadClass(EMU *p, OSD *o, USING_FLAGS *pflags, 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