00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "VMDApp.h"
00019 #include "ResizeArray.h"
00020 #include "P_Buttons.h"
00021 #include "SpaceballButtons.h"
00022 #include "Inform.h"
00023
00024 SpaceballButtons::SpaceballButtons(VMDApp *vmdapp) {
00025 app = vmdapp;
00026 numButtons = 31;
00027 }
00028
00029 int SpaceballButtons::do_start(const SensorConfig *) {
00030 msgInfo << "Opening VMD console Spaceball device (buttons)." << sendmsg;
00031 return 1;
00032 }
00033
00034 void SpaceballButtons::update() {
00035 float tx, ty, tz, rx, ry, rz;
00036 tx=ty=tz=rx=ry=rz=0.0f;
00037 int buttons;
00038 buttons=0;
00039
00040
00041 if (app != NULL) {
00042 app->spaceball_get_tracker_status(tx, ty, tz, rx, ry, rz, buttons);
00043 }
00044
00045 stat[0] = 0;
00046 for(int i = 0; i < numButtons; i++) {
00047 stat[i] = (buttons >> i) & 1;
00048 stat[0] |= (buttons >> i) & 1;
00049 }
00050 }
00051