raSystem  1.0 bata
raInput.cpp
Go to the documentation of this file.
1 #include "..\include\raMain.h"
2 
3 namespace System
4 {
6  {
7  }
8 
10  {
11  }
12  long raInput::OnInput(HWND wnd, WPARAM wParam, LPARAM lParam)
13  {
14  UINT dwSize;
15 
16  GetRawInputData((HRAWINPUT)lParam, RID_INPUT, NULL, &dwSize, sizeof(RAWINPUTHEADER));
17  LPBYTE lpb = new BYTE[dwSize];
18 
19  if (lpb == NULL)
20  {
21  return 0;
22  }
23 
24  int readSize = GetRawInputData( (HRAWINPUT)lParam, RID_INPUT, lpb, &dwSize, sizeof(RAWINPUTHEADER) ) ;
25 
26  if( readSize != dwSize )
27  RERROR( "GetRawInputData" ) ;
28 
29  RAWINPUT* raw = (RAWINPUT*)lpb;
30 
31  for(int i=0; i<= m_devices.GetSize()-1;i++)
32  {
33  m_devices[i]->OnInput(*raw);
34  }
35  /*if (raw->header.dwType == RIM_TYPEKEYBOARD)
36  {
37  if( raw->data.keyboard.VKey == VK_SPACE )
38  {
39  puts( "You are pressing space" ) ;
40  }
41  }
42  else if (raw->header.dwType == RIM_TYPEMOUSE)
43  {
44  int dx = raw->data.mouse.lLastX ;
45  int dy = raw->data.mouse.lLastY ;
46 
47  printf( "%d %d\n", dx, dy ) ;
48  } */
49 
50  delete[] lpb;
51  return 0;
52  }
53  long raInput::OnInputDeviceChange(HWND wnd, WPARAM wParam, LPARAM lParam)
54  {
55  return 0;
56  }
58  {
59  if(m_devices.Add(device) == S_OK)
60  {
61  RINFO("Neues RawDevice Hinzugefügt");
62  return true;
63  }
64  return false;
65  }
66  bool raInput::Create(HWND hWnd, bool legacy)
67  {
68  RAWINPUTDEVICE *dev = new RAWINPUTDEVICE[m_devices.GetSize()]();
69 
70  for(int i = 0; i<=m_devices.GetSize()-1;i++)
71  {
72  dev[i] = m_devices[i]->Create(hWnd, legacy);
73 
74  RINFO("rawDevice Erstellt");
75  }
76 
77  if(RegisterRawInputDevices(dev, m_devices.GetSize(), sizeof(dev[0])))
78  {
79  RINFO("rawDevices dem Fenster hinzugefügt");
80  return true;
81  }
82  else
83  {
84  RERROR("RegisterRawInputDevices");
85  return false;
86  }
87  }
88 }
virtual long OnInputDeviceChange(HWND wnd, WPARAM wParam, LPARAM lParam)
Definition: raInput.cpp:53
virtual long OnInput(HWND wnd, WPARAM wParam, LPARAM lParam)
Definition: raInput.cpp:12
bool AddNewDevice(IRARawDevice *device)
Definition: raInput.cpp:57
~raInput(void)
Definition: raInput.cpp:9
void RAPI RINFO(raString x)
Definition: raMain.cpp:119
bool Create(HWND hWnd, bool legacy=true)
Definition: raInput.cpp:66
void RAPI RERROR(raString x)
Definition: raMain.cpp:129
raInput(void)
Definition: raInput.cpp:5