OSVR-Core  0.6-1962-g59773924
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ButtonCallback.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 myButtonCallback(void * /*userdata*/, const OSVR_TimeValue * /*timestamp*/,
36  const OSVR_ButtonReport *report) {
37  std::cout << "Got report: button is "
38  << (report->state ? "pressed" : "released") << std::endl;
39 }
40 
41 int main() {
43  "com.osvr.exampleclients.ButtonCallback");
44 
45  // This is just one of the paths: specifically, the Hydra's left
46  // controller's button labelled "1". More are in the docs and/or listed on
47  // startup
49  context.getInterface("/controller/left/1");
50 
51  button1.registerCallback(&myButtonCallback, NULL);
52 
53  // Pretend that this is your application's mainloop.
54  for (int i = 0; i < 1000000; ++i) {
55  context.update();
56  }
57 
58  std::cout << "Library shut down, exiting." << std::endl;
59  return 0;
60 }
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.
Report type for a callback on a button interface.
OSVR_ButtonState state
The button state: 1 is pressed, 0 is not pressed.
Header containing the inline implementation of Interface.
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Definition: TimeValueC.h:81