OSVR-Core  0.6-1962-g59773924
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
AnalogCallback.cpp
Go to the documentation of this file.
1 
11 // Copyright 2014 Sensics, Inc.
12 //
13 // Licensed under the Apache License, Version 2.0 (the "License");
14 // you may not use this file except in compliance with the License.
15 // You may obtain a copy of the License at
16 //
17 // http://www.apache.org/licenses/LICENSE-2.0
18 //
19 // Unless required by applicable law or agreed to in writing, software
20 // distributed under the License is distributed on an "AS IS" BASIS,
21 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 // See the License for the specific language governing permissions and
23 // limitations under the License.
24 
25 // Internal Includes
26 #include <osvr/ClientKit/Context.h>
28 
29 // Library/third-party includes
30 // - none
31 
32 // Standard includes
33 #include <iostream>
34 
35 void myAnalogCallback(void * /*userdata*/, const OSVR_TimeValue * /*timestamp*/,
36  const OSVR_AnalogReport *report) {
37  std::cout << "Got report: channel is " << report->state << std::endl;
38 }
39 
40 int main() {
42  "com.osvr.exampleclients.AnalogCallback");
43 
44  // This is just one of the paths: specifically, the Hydra's left
45  // controller's analog trigger. More are in the docs and/or listed on
46  // startup
47  osvr::clientkit::Interface analogTrigger =
48  context.getInterface("/controller/left/trigger");
49 
50  analogTrigger.registerCallback(&myAnalogCallback, NULL);
51 
52  // Pretend that this is your application's mainloop.
53  for (int i = 0; i < 1000000; ++i) {
54  context.update();
55  }
56 
57  context.log(OSVR_LOGLEVEL_NOTICE, "Library shut down, exiting.");
58  return 0;
59 }
Interface handle object. Typically acquired from a ClientContext.
Client context object: Create and keep one in your application. Handles lifetime management and provi...
Definition: Context_decl.h:57
Header.
OSVR_AnalogState state
The analog state.
Header containing the inline implementation of Interface.
Report type for a callback on an analog interface.
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Definition: TimeValueC.h:81