OpenCOVER
coJoystickManager.h
Go to the documentation of this file.
1/* This file is part of COVISE.
2
3 You can use it under the terms of the GNU Lesser General Public License
4 version 2.1 or later, see lgpl-2.1.txt.
5
6 * License: LGPL 2+ */
7
8#ifndef COJOYSTICKMANAGER_H
9#define COJOYSTICKMANAGER_H
10
11#include <util/coTypes.h>
12
13#include <stdio.h>
14#include <string>
15#include <vector>
16#include <map>
17#include <time.h>
18
19#include "coMenu.h"
20
21#define FORWARD 1
22#define BACKWARD -1
23#define ACTION 1
24#define SECOND_ACTION -1
25
26namespace vrui
27{
28
33class OPENVRUIEXPORT coJoystickManager
34{
35
36public:
38 static coJoystickManager *instance(); //get instance of coJoystickManager
40
41protected:
42 coJoystickManager(); //because of singleton
44
46 void setItemActive(bool b);
47 void pressActiveItem(int action);
48 void selectAction(int action);
49 void selectActionButton(int action);
50 std::vector<coMenuItem *> getGoodItems(coMenu *m);
52 void selectNextMenu(bool forward);
53
56 std::map<coMenu *, int> activeItem;
57 std::list<coMenu *> menus;
59
60 bool active;
61
63
64 int oldX;
65 int oldY;
67
74
77
79
84
86
87public:
89 void setActive(bool a);
90 bool getActive()
91 {
92 return active;
93 };
95 void setSelectOnRelease(bool b)
96 {
97 selectOnRelease = b;
98 };
100 {
101 return selectOnRelease;
102 };
104 void setBarrierXValue(float f)
105 {
106 barrierXValue = f;
107 };
109 void setBarrierYValue(float f)
110 {
111 barrierYValue = f;
112 };
114 {
115 return barrierXValue;
116 };
118 {
119 return barrierYValue;
120 };
123 {
124 barrierMilliSeconds = sec;
125 };
127 {
128 return barrierMilliSeconds;
129 };
131 void setDeltaSlider(long delta)
132 {
133 deltaSlider = delta;
134 }
136 {
137 return deltaSlider;
138 };
140 void setAccuracyFloatSlider(int accuracy)
141 {
142 accuracyFloatSlider = accuracy;
143 };
145 {
146 return accuracyFloatSlider;
147 }
150 {
151 return lastTime;
152 };
155 {
156 return actualTime;
157 };
158
160 void registerMenu(coMenu *, bool force = false);
164 void closedMenu(coMenu *oldMenu, coMenu *newMenu);
166 void selectItem(coMenuItem *item, coMenu *parentMenu);
170 void update(float x, float y, long timeStamp = -1);
172 void update(int x, int y, long timeStamp = -1);
173
175 void newUpdate(float x, float y, int button, long timeStamp = -1);
177 void newUpdate(int x, int y, int button, long timeStamp = -1);
178
179 void setAttachment(int att)
180 {
181 attachment = att;
182 };
183};
184}
185
186#endif
collaborative interface manager
Definition: coVRCommunication.h:41
Definition: coGenericSubMenuItem.h:23
Manages the joystick as input device.
Definition: coJoystickManager.h:34
void newUpdate(float x, float y, int button, long timeStamp=-1)
set the values
long lastTime
Definition: coJoystickManager.h:73
void setBarrierXValue(float f)
set barrier value for x value of slider
Definition: coJoystickManager.h:104
int oldX
save old value of x valuator
Definition: coJoystickManager.h:64
static coJoystickManager * joystickManager
static singleton variable
Definition: coJoystickManager.h:43
long actualTime
Definition: coJoystickManager.h:72
bool getActive()
Definition: coJoystickManager.h:90
void selectNextMenu(bool forward)
static coJoystickManager * instance()
get the singleton instance of coJoystickManager
bool active
flag if the joystick manager is active
Definition: coJoystickManager.h:60
void unregisterMenu(coMenu *)
unregister a rootMenu
std::map< coMenu *, int > activeItem
list of the selected items in menu and in parent menus
Definition: coJoystickManager.h:56
int barrierMilliSeconds
Definition: coJoystickManager.h:70
coMenu * activeMenu
the selected menu
Definition: coJoystickManager.h:54
void openedSubMenu(coGenericSubMenuItem *item, coMenu *subMenu)
opend a submenu via pickray
void setBarrierYValue(float f)
set barrier value for y value of slider
Definition: coJoystickManager.h:109
coMenu * oldActiveMenu
selected menu before
Definition: coJoystickManager.h:55
long getActualTime()
get time of the actual update
Definition: coJoystickManager.h:154
float getBarrierYValue()
Definition: coJoystickManager.h:117
long firstPressed
Definition: coJoystickManager.h:71
void setActive(bool a)
activate the selectionmode via joystick
bool secondActionPress
Definition: coJoystickManager.h:83
bool menuTypeChanged
Definition: coJoystickManager.h:85
long getDeltaSlider()
Definition: coJoystickManager.h:135
void selectAction(int action)
long getLastTime()
get time of the last update
Definition: coJoystickManager.h:149
float barrierYValue
Definition: coJoystickManager.h:69
void setSelectOnRelease(bool b)
set select on release
Definition: coJoystickManager.h:95
void setAttachment(int att)
Definition: coJoystickManager.h:179
float getBarrierXValue()
Definition: coJoystickManager.h:113
void setAccuracyFloatSlider(int accuracy)
set accuracy of float-slider (one step is maxValue-minValue/accuracy)
Definition: coJoystickManager.h:140
void setItemActive(bool b)
void update(int x, int y, long timeStamp=-1)
set the values of the valuator (old flystick)
bool actionRelease
Definition: coJoystickManager.h:80
void selectItem(coMenuItem *item, coMenu *parentMenu)
a item has been selected via ray
float barrierXValue
Definition: coJoystickManager.h:68
bool isDocument(coMenu *m)
void pressActiveItem(int action)
void registerMenu(coMenu *, bool force=false)
register a rootMenu
bool getSelectOnRelease()
Definition: coJoystickManager.h:99
void setBarrierMilliSeconds(int sec)
set milliseconds to wait until a action is called (release action)
Definition: coJoystickManager.h:122
int oldButton
Definition: coJoystickManager.h:66
bool actionPress
Definition: coJoystickManager.h:81
bool selectOnRelease
Definition: coJoystickManager.h:62
void closedMenu(coMenu *oldMenu, coMenu *newMenu)
a submenu has been closed select the parentMenu
bool secondActionRelease
Definition: coJoystickManager.h:82
void setDeltaSlider(long delta)
set milliseconds after a slider updates its value
Definition: coJoystickManager.h:131
void update(float x, float y, long timeStamp=-1)
set the values of the valuator (new flystick)
std::vector< coMenuItem * > getGoodItems(coMenu *m)
void newUpdate(int x, int y, int button, long timeStamp=-1)
set the values
int accuracyFloatSlider
Definition: coJoystickManager.h:76
int getAccuracyFloatSlider()
Definition: coJoystickManager.h:144
int attachment
Definition: coJoystickManager.h:78
int oldY
save old value of y valuator
Definition: coJoystickManager.h:65
coMenu * rootMenu
root menu
Definition: coJoystickManager.h:58
std::list< coMenu * > menus
Definition: coJoystickManager.h:57
long deltaSlider
Definition: coJoystickManager.h:75
void setMenuActive(coMenu *m)
int getBarrierMilliSeconds()
Definition: coJoystickManager.h:126
void selectActionButton(int action)
Definition: coMenu.h:51
Definition: coMenuItem.h:45