Commit e7755aea authored by cutealien's avatar cutealien

Move SJoystickWin32Control to header. Makes code imho slightly more readable.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@5005 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 14b2983b
...@@ -55,31 +55,7 @@ namespace irr ...@@ -55,31 +55,7 @@ namespace irr
namespace irr namespace irr
{ {
struct SJoystickWin32Control SJoystickWin32Control::SJoystickWin32Control(CIrrDeviceWin32* dev) : Device(dev)
{
CIrrDeviceWin32* Device;
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
IDirectInput8* DirectInputDevice;
#endif
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_)
struct JoystickInfo
{
u32 Index;
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
core::stringc Name;
GUID guid;
LPDIRECTINPUTDEVICE8 lpdijoy;
DIDEVCAPS devcaps;
u8 axisValid[8];
#else
JOYCAPS Caps;
#endif
};
core::array<JoystickInfo> ActiveJoysticks;
#endif
SJoystickWin32Control(CIrrDeviceWin32* dev) : Device(dev)
{ {
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_) #if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
DirectInputDevice=0; DirectInputDevice=0;
...@@ -90,7 +66,8 @@ struct SJoystickWin32Control ...@@ -90,7 +66,8 @@ struct SJoystickWin32Control
} }
#endif #endif
} }
~SJoystickWin32Control()
SJoystickWin32Control::~SJoystickWin32Control()
{ {
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_) #if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
for(u32 joystick = 0; joystick < ActiveJoysticks.size(); ++joystick) for(u32 joystick = 0; joystick < ActiveJoysticks.size(); ++joystick)
...@@ -109,13 +86,13 @@ struct SJoystickWin32Control ...@@ -109,13 +86,13 @@ struct SJoystickWin32Control
} }
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_) #if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
static BOOL CALLBACK EnumJoysticks(LPCDIDEVICEINSTANCE lpddi, LPVOID cp) BOOL CALLBACK SJoystickWin32Control::EnumJoysticks(LPCDIDEVICEINSTANCE lpddi, LPVOID cp)
{ {
SJoystickWin32Control* p=(SJoystickWin32Control*)cp; SJoystickWin32Control* p=(SJoystickWin32Control*)cp;
p->directInputAddJoystick(lpddi); p->directInputAddJoystick(lpddi);
return DIENUM_CONTINUE; return DIENUM_CONTINUE;
} }
void directInputAddJoystick(LPCDIDEVICEINSTANCE lpddi) void SJoystickWin32Control::directInputAddJoystick(LPCDIDEVICEINSTANCE lpddi)
{ {
//Get the GUID of the joystuck //Get the GUID of the joystuck
const GUID guid = lpddi->guidInstance; const GUID guid = lpddi->guidInstance;
...@@ -187,7 +164,7 @@ struct SJoystickWin32Control ...@@ -187,7 +164,7 @@ struct SJoystickWin32Control
} }
#endif #endif
void pollJoysticks() void SJoystickWin32Control::pollJoysticks()
{ {
#if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ #if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ #ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
...@@ -359,7 +336,7 @@ void pollJoysticks() ...@@ -359,7 +336,7 @@ void pollJoysticks()
#endif // _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ #endif // _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
} }
bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo) bool SJoystickWin32Control::activateJoysticks(core::array<SJoystickInfo> & joystickInfo)
{ {
#if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ #if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ #ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
...@@ -434,7 +411,6 @@ bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo) ...@@ -434,7 +411,6 @@ bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo)
return false; return false;
#endif // _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ #endif // _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
} }
};
} // end namespace irr } // end namespace irr
// Get the codepage from the locale language id // Get the codepage from the locale language id
......
...@@ -421,6 +421,43 @@ namespace irr ...@@ -421,6 +421,43 @@ namespace irr
SJoystickWin32Control* JoyControl; SJoystickWin32Control* JoyControl;
}; };
struct SJoystickWin32Control
{
CIrrDeviceWin32* Device;
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
IDirectInput8* DirectInputDevice;
#endif
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_)
struct JoystickInfo
{
u32 Index;
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
core::stringc Name;
GUID guid;
LPDIRECTINPUTDEVICE8 lpdijoy;
DIDEVCAPS devcaps;
u8 axisValid[8];
#else
JOYCAPS Caps;
#endif
};
core::array<JoystickInfo> ActiveJoysticks;
#endif
SJoystickWin32Control(CIrrDeviceWin32* dev);
~SJoystickWin32Control();
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
static BOOL CALLBACK EnumJoysticks(LPCDIDEVICEINSTANCE lpddi, LPVOID cp);
void directInputAddJoystick(LPCDIDEVICEINSTANCE lpddi)
#endif
void pollJoysticks();
bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo);
};
} // end namespace irr } // end namespace irr
#endif // _IRR_COMPILE_WITH_WINDOWS_DEVICE_ #endif // _IRR_COMPILE_WITH_WINDOWS_DEVICE_
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment