OSVR-Core
TrackerInterfaceC.h
Go to the documentation of this file.
1 
13 /*
14 // Copyright 2014 Sensics, Inc.
15 //
16 // Licensed under the Apache License, Version 2.0 (the "License");
17 // you may not use this file except in compliance with the License.
18 // You may obtain a copy of the License at
19 //
20 // http://www.apache.org/licenses/LICENSE-2.0
21 //
22 // Unless required by applicable law or agreed to in writing, software
23 // distributed under the License is distributed on an "AS IS" BASIS,
24 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25 // See the License for the specific language governing permissions and
26 // limitations under the License.
27 */
28 
29 #ifndef INCLUDED_TrackerInterfaceC_h_GUID_FA1B5B80_FEB5_469D_8F1E_7ED54A27A7AD
30 #define INCLUDED_TrackerInterfaceC_h_GUID_FA1B5B80_FEB5_469D_8F1E_7ED54A27A7AD
31 
32 /* Internal Includes */
36 
37 /* Library/third-party includes */
38 /* none */
39 
40 /* Standard includes */
41 /* none */
42 
43 OSVR_EXTERN_C_BEGIN
44 
55 
64 OSVR_PLUGINKIT_EXPORT
65 OSVR_ReturnCode
67  OSVR_OUT_PTR OSVR_TrackerDeviceInterface *iface)
68  OSVR_FUNC_NONNULL((1, 2));
69 
73 OSVR_PLUGINKIT_EXPORT
74 OSVR_ReturnCode
76  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
77  OSVR_IN_PTR OSVR_PoseState const *val,
79  OSVR_FUNC_NONNULL((1, 2, 3));
80 
84 OSVR_PLUGINKIT_EXPORT
87  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
89  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
90  OSVR_FUNC_NONNULL((1, 2, 3, 5));
91 
95 OSVR_PLUGINKIT_EXPORT
96 OSVR_ReturnCode
98  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
100  OSVR_IN OSVR_ChannelCount sensor)
101  OSVR_FUNC_NONNULL((1, 2, 3));
102 
106 OSVR_PLUGINKIT_EXPORT
109  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
111  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
112  OSVR_FUNC_NONNULL((1, 2, 3, 5));
113 
117 OSVR_PLUGINKIT_EXPORT
118 OSVR_ReturnCode
120  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
122  OSVR_IN OSVR_ChannelCount sensor)
123  OSVR_FUNC_NONNULL((1, 2, 3));
124 
128 OSVR_PLUGINKIT_EXPORT
131  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
133  OSVR_IN OSVR_ChannelCount sensor,
134  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
135  OSVR_FUNC_NONNULL((1, 2, 3, 5));
136 
140 OSVR_PLUGINKIT_EXPORT
143  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
145  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
146  OSVR_FUNC_NONNULL((1, 2, 3, 5));
147 
151 OSVR_PLUGINKIT_EXPORT
154  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
156  OSVR_IN OSVR_ChannelCount sensor,
157  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
158  OSVR_FUNC_NONNULL((1, 2, 3, 5));
159 
163 OSVR_PLUGINKIT_EXPORT
166  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
168  OSVR_IN OSVR_ChannelCount sensor,
169  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
170  OSVR_FUNC_NONNULL((1, 2, 3, 5));
171 
175 OSVR_PLUGINKIT_EXPORT
178  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
180  OSVR_IN OSVR_ChannelCount sensor,
181  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
182  OSVR_FUNC_NONNULL((1, 2, 3, 5));
183 
187 OSVR_PLUGINKIT_EXPORT
190  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
192  OSVR_IN OSVR_ChannelCount sensor,
193  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
194  OSVR_FUNC_NONNULL((1, 2, 3, 5));
195 
199 OSVR_PLUGINKIT_EXPORT
202  OSVR_IN_PTR OSVR_TrackerDeviceInterface iface,
204  OSVR_IN OSVR_ChannelCount sensor,
205  OSVR_IN_PTR OSVR_TimeValue const *timestamp)
206  OSVR_FUNC_NONNULL((1, 2, 3, 5));
207  /* end of group */
209 
210 OSVR_EXTERN_C_END
211 
212 #endif
#define OSVR_OUT_PTR
Indicates a required pointer (non-null) function parameter that serves only as output.
Definition: AnnotationMacrosC.h:151
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendLinearVelocityTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_LinearVelocityState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the linear velocity of a sensor that doesn't report angular velocity, using the supplied times...
Struct for combined acceleration state.
Definition: ClientReportTypesC.h:107
uint32_t OSVR_ChannelCount
The integer type specifying a number of channels/sensors or a channel/sensor index.
Definition: ChannelCountC.h:51
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendAngularAccelerationTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_AngularAccelerationState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the angular acceleration of a sensor that doesn't report linear acceleration, using the supplied timestamp.
#define OSVR_IN_PTR
Indicates a required pointer (non-null) function parameter that serves only as input.
Definition: AnnotationMacrosC.h:108
A DeviceToken connects the generic device interaction code in PluginKit's C API with the workings of ...
Definition: DeviceToken.h:56
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendAccelerationTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_AccelerationState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the linear and angular Acceleration of a sensor, using the supplied timestamp.
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendLinearAccelerationTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_LinearAccelerationState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the linear acceleration of a sensor that doesn't report angular acceleration, using the supplied timestamp.
A structure defining a 3D vector, often a position/translation.
Definition: Vec3C.h:48
struct OSVR_TrackerDeviceInterfaceObject * OSVR_TrackerDeviceInterface
Opaque type used in conjunction with a device token to send data on a tracker interface.
Definition: TrackerInterfaceC.h:54
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendOrientationTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_OrientationState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the orientation of a sensor that doesn't report position, using the supplied timestamp...
A structure defining a quaternion, often a unit quaternion representing 3D rotation.
Definition: QuaternionC.h:49
#define OSVR_FUNC_NONNULL(X)
Indicates the parameter(s) that must be non-null.
Definition: AnnotationMacrosC.h:202
The quaternion represents the incremental rotation taking place over a period of dt seconds...
Definition: ClientReportTypesC.h:75
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendPositionTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_PositionState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the position of a sensor that doesn't report orientation, using the supplied timestamp...
Structure used internally to construct the desired type of device.
Definition: DeviceInitObject.h:59
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendAngularVelocityTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_AngularVelocityState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the angular velocity of a sensor that doesn't report linear velocity, using the supplied times...
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendPoseTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_PoseState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the full rigid body pose of a sensor, using the supplied timestamp.
#define OSVR_INOUT_PTR
Indicates a required pointer (non-null) function parameter that is both read and written to...
Definition: AnnotationMacrosC.h:178
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendOrientation(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_OrientationState const *val, OSVR_IN OSVR_ChannelCount sensor) OSVR_FUNC_NONNULL((1
Report the orientation of a sensor that doesn't report position, automatically generating a timestamp...
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendPose(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_PoseState const *val, OSVR_IN OSVR_ChannelCount sensor) OSVR_FUNC_NONNULL((1
Report the full rigid body pose of a sensor, automatically generating a timestamp.
Definition: TrackerInterfaceC.cpp:42
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendVelocityTimestamped(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_VelocityState const *val, OSVR_IN OSVR_ChannelCount sensor, OSVR_IN_PTR OSVR_TimeValue const *timestamp) OSVR_FUNC_NONNULL((1
Report the linear and angular velocity of a sensor, using the supplied timestamp. ...
A structure defining a 3D (6DOF) rigid body pose: translation and rotation.
Definition: Pose3C.h:54
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerConfigure(OSVR_INOUT_PTR OSVR_DeviceInitOptions opts, OSVR_OUT_PTR OSVR_TrackerDeviceInterface *iface) OSVR_FUNC_NONNULL((1
Specify that your device will implement the Tracker interface.
Struct for combined velocity state.
Definition: ClientReportTypesC.h:87
#define OSVR_IN
Indicates a required function parameter that serves only as input.
Definition: AnnotationMacrosC.h:100
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Definition: TimeValueC.h:81
Definition: ProjectionMatrix.h:77
OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode OSVR_PLUGINKIT_EXPORT OSVR_ReturnCode osvrDeviceTrackerSendPosition(OSVR_IN_PTR OSVR_DeviceToken dev, OSVR_IN_PTR OSVR_TrackerDeviceInterface iface, OSVR_IN_PTR OSVR_PositionState const *val, OSVR_IN OSVR_ChannelCount sensor) OSVR_FUNC_NONNULL((1
Report the position of a sensor that doesn't report orientation, automatically generating a timestamp...