代码拉取完成,页面将自动刷新
同步操作将从 ianaxe/vrpn 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef VRPN_3DCONNEXION_H
#define VRPN_3DCONNEXION_H
#include <stddef.h> // for size_t
#include "vrpn_Analog.h" // for vrpn_Analog
#include "vrpn_Button.h" // for vrpn_Button_Filter
#include "vrpn_Configure.h" // for VRPN_API, VRPN_USE_HID
#include "vrpn_Connection.h" // for vrpn_Connection (ptr only), etc
#include "vrpn_HumanInterface.h" // for vrpn_HidAcceptor (ptr only), etc
#include "vrpn_Shared.h" // for timeval
#include "vrpn_Types.h" // for vrpn_uint32, vrpn_uint8
// Device drivers for the 3DConnexion SpaceNavigator and SpaceTraveler
// SpaceExplorer, SpaceMouse, SpaceMousePro, Spaceball5000, SpacePilot
// devices, connecting to them as HID devices (USB).
// Exposes two VRPN device classes: Button and Analog.
// Analogs are mapped to the six channels, each in the range (-1..1).
// This is the base driver for the devices. The Navigator has
// only two buttons and has product ID 50726, the traveler has 8
// buttons and ID 50723. The derived classes just construct with
// the appropriate number of buttons and an acceptor for the proper
// product ID; the baseclass does all the work.
#if defined(VRPN_USE_HID)
class VRPN_API vrpn_3DConnexion: public vrpn_Button_Filter, public vrpn_Analog, protected vrpn_HidInterface {
public:
vrpn_3DConnexion(vrpn_HidAcceptor *filter, unsigned num_buttons,
const char *name, vrpn_Connection *c = 0,
vrpn_uint16 vendor = 0, vrpn_uint16 product = 0);
virtual ~vrpn_3DConnexion();
virtual void mainloop();
protected:
// Set up message handlers, etc.
void on_data_received(size_t bytes, vrpn_uint8 *buffer);
virtual void decodePacket(size_t bytes, vrpn_uint8 *buffer);
struct timeval _timestamp;
vrpn_HidAcceptor *_filter;
// Send report iff changed
void report_changes (vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
// Send report whether or not changed
void report (vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
// NOTE: class_of_service is only applied to vrpn_Analog
// values, not vrpn_Button or vrpn_Dial
};
#else // not VRPN_USE_HID
class VRPN_API vrpn_3DConnexion: public vrpn_Button_Filter, public vrpn_Analog {
public:
vrpn_3DConnexion(vrpn_HidAcceptor *filter, unsigned num_buttons,
const char *name, vrpn_Connection *c = 0,
vrpn_uint16 vendor = 0, vrpn_uint16 product = 0);
virtual ~vrpn_3DConnexion();
virtual void mainloop();
protected:
struct timeval _timestamp;
vrpn_HidAcceptor *_filter;
int fd;
// Send report iff changed
void report_changes(vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
// Send report whether or not changed
void report(vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
// NOTE: class_of_service is only applied to vrpn_Analog
// values, not vrpn_Button or vrpn_Dial
// There is a non-HID Linux-based driver for this device that has a capability
// not implemented in the HID interface.
#if defined(linux) && !defined(VRPN_USE_HID)
int set_led(int led_state);
#endif
};
#endif // not VRPN_USE_HID
class VRPN_API vrpn_3DConnexion_Navigator: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_Navigator(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_Navigator() {};
protected:
};
class VRPN_API vrpn_3DConnexion_Navigator_for_Notebooks: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_Navigator_for_Notebooks(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_Navigator_for_Notebooks() {};
protected:
};
class VRPN_API vrpn_3DConnexion_Traveler: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_Traveler(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_Traveler() {};
protected:
};
class VRPN_API vrpn_3DConnexion_SpaceMouse: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_SpaceMouse(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_SpaceMouse() {};
protected:
};
/*
The button numbers are labeled as follows (the ones similar to <x> have a graphic on the button and are referred to the text enclosed text in the help):
0=Menu
1=Fit
2=<T>
4=<R>
5=<F>
8=<Roll+>
12=1
13=2
14=3
15=4
22=Esc
23=Alt
24=Shift
25=Ctrl
26=<Rot>
*/
class VRPN_API vrpn_3DConnexion_SpaceMousePro: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_SpaceMousePro(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_SpaceMousePro() {};
protected:
};
class VRPN_API vrpn_3DConnexion_SpaceMouseWireless : public vrpn_3DConnexion {
public:
vrpn_3DConnexion_SpaceMouseWireless(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_SpaceMouseWireless() {};
protected:
};
class VRPN_API vrpn_3DConnexion_SpaceExplorer : public vrpn_3DConnexion {
public:
vrpn_3DConnexion_SpaceExplorer(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_SpaceExplorer() {};
protected:
};
class VRPN_API vrpn_3DConnexion_SpaceBall5000: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_SpaceBall5000(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_SpaceBall5000() {};
protected:
};
class VRPN_API vrpn_3DConnexion_SpacePilot: public vrpn_3DConnexion {
public:
vrpn_3DConnexion_SpacePilot(const char *name, vrpn_Connection *c = 0);
virtual ~vrpn_3DConnexion_SpacePilot() {};
protected:
};
// end of VRPN_3DCONNEXION_H
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。