65 * } |
66 * } |
66 */ |
67 */ |
67 } |
68 } |
68 |
69 |
69 // For stopping this thread by pressing both buttons: |
70 // For stopping this thread by pressing both buttons: |
70 // bool pressed0 = false; |
71 bool pressed0 = false; |
71 // bool pressed1 = false; |
72 bool pressed1 = false; |
72 |
73 |
73 while (spnav_wait_event(&event)) { |
74 while (spnav_wait_event(&event)) { |
74 if (event.type == SPNAV_EVENT_MOTION) { |
75 if (event.type == SPNAV_EVENT_MOTION) { |
75 std::wcout << L"motion event: t(" << event.motion.x << L", " << event.motion.y << L", " << event.motion.z << L") "; |
76 std::wcout << L"motion event: t(" << event.motion.x << L", " << event.motion.y << L", " << event.motion.z << L") "; |
76 std::wcout << L"r(" << event.motion.rx << L", " << event.motion.ry << L", " << event.motion.rz << L")" << std::endl; |
77 std::wcout << L"r(" << event.motion.rx << L", " << event.motion.ry << L", " << event.motion.rz << L")" << std::endl; |
77 |
78 |
78 } else { /* SPNAV_EVENT_BUTTON */ |
79 } else { /* SPNAV_EVENT_BUTTON */ |
79 std::wcout << L"button " << (event.button.press ? "press" : "release") << L" event b(" << event.button.bnum << L")" << std::endl; |
80 std::wcout << L"button " << (event.button.press ? "press" : "release") << L" event b(" << event.button.bnum << L")" << std::endl; |
80 |
81 |
81 // if (sev.button.bnum == 0) pressed0 = sev.button.press; |
82 if (event.button.bnum == 0) pressed0 = event.button.press; |
82 // if (sev.button.bnum == 1) pressed1 = sev.button.press; |
83 if (event.button.bnum == 1) pressed1 = event.button.press; |
83 // if (pressed0 && pressed1) break; |
84 if (pressed0 && pressed1) { |
|
85 std::wcout << L"both buttons pressed → stop receiving events" << std::endl; |
|
86 break; |
|
87 } |
84 } |
88 } |
85 emit spacenavEvent(event); |
89 emit spacenavEvent(event); |
86 } |
90 } |
87 |
91 |
88 } |
92 } |