MouseDevice.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "device.h"
  3. #include "..\..\common_h\core.h"
  4. #include "..\..\common_h\templates\string.h"
  5. struct IDirectInputDevice8A;
  6. struct IDirectInput8A;
  7. struct DIDEVICEINSTANCEA;
  8. class MouseDevice : public IDevice
  9. {
  10. enum DataItem { DeltaX, DeltaY, Wheel, X, Y, LButton, RButton, MButton,
  11. DblLButton, DblRButton, DblMButton, Last };
  12. struct Control
  13. {
  14. DataItem dataItem;
  15. string name;
  16. float value;
  17. };
  18. long m_Data[Last];
  19. HWND m_hWnd;
  20. IDirectInput8A *di;
  21. IDirectInputDevice8A *m_Device;
  22. array<Control> m_Controls;
  23. void __declspec(dllexport) InitControls();
  24. public:
  25. MouseDevice(IDirectInput8A* di, const DIDEVICEINSTANCEA& deviceInst);
  26. virtual ~MouseDevice();
  27. //////////////////////////////////////////////////////////////////////////
  28. // IDevice
  29. //////////////////////////////////////////////////////////////////////////
  30. virtual void Update(float DeltaTime);
  31. virtual void EndFrame() {}
  32. virtual long GetIndex(const char *deviceControl);
  33. virtual float GetRawValue(long controlIndex) const;
  34. virtual unsigned int GetControlsCount() const
  35. {
  36. return m_Controls.Size();
  37. }
  38. virtual const char *GetControlName(unsigned int index) const
  39. {
  40. Assert(index < m_Controls.Size());
  41. return m_Controls[index].name.c_str();
  42. }
  43. };