mac mouse stuff in progress; this won't compile but luckily it's not in anyone's config yet
This commit is contained in:
@@ -1,10 +1,16 @@
|
||||
#include "global.h"
|
||||
#include "MouseDevice.h"
|
||||
|
||||
using __gnu_cxx::hash_map;
|
||||
|
||||
Mouse::Mouse() : id( InputDevice_Invalid ),
|
||||
{
|
||||
}
|
||||
|
||||
bool MouseDevice::AddLogicalDevice( int usagePage, int usage )
|
||||
{
|
||||
// Mice can either be kHIDUsage_GD_Mouse or kHIDUsage_GD_Pointer...
|
||||
// Let's just go with kHIDUsage_GD_Mouse for now.
|
||||
// Let's just go with kHIDUsage_GD_Mouse for now. -aj
|
||||
return usagePage == kHIDPage_GenericDesktop && usage == kHIDUsage_GD_Mouse;
|
||||
}
|
||||
|
||||
@@ -13,12 +19,38 @@ void MouseDevice::AddElement( int usagePage, int usage, IOHIDElementCookie cooki
|
||||
if( usagePage != kHIDPage_GenericDesktop )
|
||||
return;
|
||||
|
||||
DeviceButton button;
|
||||
if( usagePage == kHIDPage_Button )
|
||||
{
|
||||
const DeviceButton buttonID = enum_add2( MOUSE_LEFT, usage - kHIDUsage_Button_1 );
|
||||
|
||||
bool mouseWheel = (buttonID == MOUSE_WHEELUP || buttonID == MOUSE_WHEELDOWN);
|
||||
if( buttonID <= MOUSE_MIDDLE || mouseWheel )
|
||||
mapping[cookie] = buttonID;
|
||||
else
|
||||
LOG->Warn( "Button id too large: %d.", int(buttonID) );
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
if( UsbKeyToDeviceButton(usage,button) )
|
||||
m_Mapping[cookie] = button;
|
||||
*/
|
||||
}
|
||||
|
||||
void MouseDevice::Open()
|
||||
{
|
||||
// I hate coding blind...
|
||||
for( hash_map<IOHIDElementCookie,DeviceButton>::const_iterator i = m_Mapping.begin(); i != m_Mapping.end(); ++i )
|
||||
{
|
||||
AddElementToQueue( i->first );
|
||||
}
|
||||
}
|
||||
|
||||
void MouseDevice::GetButtonPresses( vector<DeviceInput>& vPresses, IOHIDElementCookie cookie, int value, const RageTimer& now ) const
|
||||
{
|
||||
// hmm...
|
||||
}
|
||||
|
||||
void MouseDeviceDevice::GetDevicesAndDescriptions( vector<InputDeviceInfo>& vDevices ) const
|
||||
{
|
||||
vDevices.push_back( InputDeviceInfo(DEVICE_MOUSE, "Mouse") );
|
||||
}
|
||||
@@ -3,6 +3,15 @@
|
||||
|
||||
#include "HIDDevice.h"
|
||||
|
||||
struct Mouse
|
||||
{
|
||||
InputDevice id;
|
||||
// map cookie to button
|
||||
__gnu_cxx::hash_map<IOHIDElementCookie, DeviceButton> mapping;
|
||||
|
||||
Mouse();
|
||||
};
|
||||
|
||||
class MouseDevice : public HIDDevice
|
||||
{
|
||||
private:
|
||||
@@ -14,6 +23,8 @@ protected:
|
||||
void Open()
|
||||
|
||||
public:
|
||||
void GetButtonPresses( vector<DeviceInput>& vPresses, IOHIDElementCookie cookie, int value, const RageTimer& now ) const;
|
||||
void GetDevicesAndDescriptions( vector<InputDeviceInfo>& vDevices ) const;
|
||||
// even more stuff
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user