/////////////////////////////////////////////////////////////////////////////
-// Name: src/osx/corefoundation/hid.cpp
+// Name: src/osx/core/hid.cpp
// Purpose: DARWIN HID layer for WX Implementation
// Author: Ryan Norton
// Modified by:
#pragma hdrstop
#endif
-//DARWIN _ONLY_
-#ifdef __DARWIN__
+#if wxOSX_USE_COCOA_OR_CARBON
#include "wx/osx/core/hid.h"
CFMutableDictionaryRef pDictionary = IOServiceMatching(kIOHIDDeviceKey);
if(pDictionary == NULL)
{
- wxLogSysError( _T("IOServiceMatching(kIOHIDDeviceKey) failed") );
+ wxLogSysError( wxT("IOServiceMatching(kIOHIDDeviceKey) failed") );
return false;
}
if( IOServiceGetMatchingServices(m_pPort,
pDictionary, &pIterator) != kIOReturnSuccess )
{
- wxLogSysError(_T("No Matching HID Services"));
+ wxLogSysError(wxT("No Matching HID Services"));
return false;
}
kNilOptions
) != KERN_SUCCESS )
{
- wxLogDebug(_T("IORegistryEntryCreateCFProperties failed"));
+ wxLogDebug(wxT("IORegistryEntryCreateCFProperties failed"));
}
//
//open the HID interface...
if ( (*m_ppDevice)->open(m_ppDevice, 0) != S_OK )
- wxLogDebug(_T("HID device: open failed"));
+ {
+ wxLogDebug(wxT("HID device: open failed"));
+ }
//
//Now the hard part - in order to scan things we need "cookies"
CFMutableDictionaryRef pDictionary = IOServiceMatching(kIOHIDDeviceKey);
if(pDictionary == NULL)
{
- wxLogSysError( _T("IOServiceMatching(kIOHIDDeviceKey) failed") );
+ wxLogSysError( wxT("IOServiceMatching(kIOHIDDeviceKey) failed") );
return false;
}
if( IOServiceGetMatchingServices(pPort,
pDictionary, &pIterator) != kIOReturnSuccess )
{
- wxLogSysError(_T("No Matching HID Services"));
+ wxLogSysError(wxT("No Matching HID Services"));
return false;
}
//3rd Param flags (none yet)
AddCookie(Data, i);
if ( (*m_ppQueue)->addElement(m_ppQueue, m_pCookies[i], 0) != S_OK )
- wxLogDebug(_T("HID device: adding element failed"));
+ {
+ wxLogDebug(wxT("HID device: adding element failed"));
+ }
}
// ----------------------------------------------------------------------------
m_ppQueue = (*m_ppDevice)->allocQueue(m_ppDevice);
if ( !m_ppQueue )
{
- wxLogDebug(_T("HID device: allocQueue failed"));
+ wxLogDebug(wxT("HID device: allocQueue failed"));
return;
}
//Param 2, flags, none yet
if ( (*m_ppQueue)->create(m_ppQueue, 0, 512) != S_OK )
{
- wxLogDebug(_T("HID device: create failed"));
+ wxLogDebug(wxT("HID device: create failed"));
}
}
WXK_RSHIFT = 400,
WXK_RALT,
WXK_RCONTROL,
- WXK_RMENU
+ WXK_RAW_RCONTROL,
};
// ----------------------------------------------------------------------------
void wxHIDKeyboard::DoBuildCookies(CFArrayRef Array)
{
//Now go through each possible cookie
- int i,
- nUsage;
+ int i;
+ long nUsage;
// bool bEOTriggered = false;
for (i = 0; i < CFArrayGetCount(Array); ++i)
{
//Menu keys, Shift, other specials
case kHIDUsage_KeyboardLeftControl:
- AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_CONTROL);
+ AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RAW_CONTROL);
break;
case kHIDUsage_KeyboardLeftShift:
AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_SHIFT);
AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_ALT);
break;
case kHIDUsage_KeyboardLeftGUI:
- AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_MENU);
+ AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_CONTROL);
break;
case kHIDUsage_KeyboardRightControl:
- AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RCONTROL);
+ AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RAW_RCONTROL);
break;
case kHIDUsage_KeyboardRightShift:
AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RSHIFT);
AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RALT);
break;
case kHIDUsage_KeyboardRightGUI:
- AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RMENU);
+ AddCookie(CFArrayGetValueAtIndex(Array, i),WXK_RCONTROL);
break;
//Default
{
for(size_t i = 0; i < sm_keyboards.GetCount(); ++i)
delete (wxHIDKeyboard*) sm_keyboards[i];
+ sm_keyboards.Clear();
}
};
return true;
}
break;
- case WXK_MENU:
- if( keyboard->IsActive(WXK_MENU) ||
- keyboard->IsActive(WXK_RMENU) )
+ case WXK_RAW_CONTROL:
+ if( keyboard->IsActive(WXK_RAW_CONTROL) ||
+ keyboard->IsActive(WXK_RAW_RCONTROL) )
{
return true;
}