xref: /haiku/src/add-ons/input_server/devices/wacom/PointingDevice.h (revision dc1bdabb92cf7b72403fc3f2a8eb9ef75d4926f2)
1*dc1bdabbSStephan Aßmus /*
2*dc1bdabbSStephan Aßmus  * Copyright 2005-2008 Stephan Aßmus <superstippi@gmx.de>. All rights reserved.
3*dc1bdabbSStephan Aßmus  * Distributed under the terms of the MIT license.
4*dc1bdabbSStephan Aßmus  */
5*dc1bdabbSStephan Aßmus #ifndef POINTING_DEVICE_H
6*dc1bdabbSStephan Aßmus #define POINTING_DEVICE_H
7*dc1bdabbSStephan Aßmus 
8*dc1bdabbSStephan Aßmus #include <SupportDefs.h>
9*dc1bdabbSStephan Aßmus 
10*dc1bdabbSStephan Aßmus class DeviceReader;
11*dc1bdabbSStephan Aßmus class MasterServerDevice;
12*dc1bdabbSStephan Aßmus 
13*dc1bdabbSStephan Aßmus class PointingDevice {
14*dc1bdabbSStephan Aßmus  public:
15*dc1bdabbSStephan Aßmus 								PointingDevice(MasterServerDevice* parent,
16*dc1bdabbSStephan Aßmus 											   DeviceReader* reader);
17*dc1bdabbSStephan Aßmus 	virtual						~PointingDevice();
18*dc1bdabbSStephan Aßmus 
19*dc1bdabbSStephan Aßmus 	virtual status_t			InitCheck();
20*dc1bdabbSStephan Aßmus 
21*dc1bdabbSStephan Aßmus 	virtual	status_t			Start() = 0;
22*dc1bdabbSStephan Aßmus 	virtual	status_t			Stop() = 0;
23*dc1bdabbSStephan Aßmus 
24*dc1bdabbSStephan Aßmus 	virtual	void				SetActive(bool active);
25*dc1bdabbSStephan Aßmus 			bool				IsActive() const;
26*dc1bdabbSStephan Aßmus 
27*dc1bdabbSStephan Aßmus 								// forwards the device path of the reader
28*dc1bdabbSStephan Aßmus 			const char*			DevicePath() const;
29*dc1bdabbSStephan Aßmus 
30*dc1bdabbSStephan Aßmus 								// hook function to determine if
31*dc1bdabbSStephan Aßmus 								// PS/2 Mouse thread should be disabled
32*dc1bdabbSStephan Aßmus 	virtual	bool				DisablePS2() const;
33*dc1bdabbSStephan Aßmus 
34*dc1bdabbSStephan Aßmus 			// query the device for information
35*dc1bdabbSStephan Aßmus 			uint16				VendorID() const;
36*dc1bdabbSStephan Aßmus 			uint16				ProductID() const;
37*dc1bdabbSStephan Aßmus 
38*dc1bdabbSStephan Aßmus  protected:
39*dc1bdabbSStephan Aßmus 	MasterServerDevice*			fParent;
40*dc1bdabbSStephan Aßmus 	DeviceReader*				fReader;
41*dc1bdabbSStephan Aßmus 
42*dc1bdabbSStephan Aßmus 	volatile bool				fActive;
43*dc1bdabbSStephan Aßmus };
44*dc1bdabbSStephan Aßmus 
45*dc1bdabbSStephan Aßmus #endif // POINTING_DEVICE_H
46