kopia lustrzana https://github.com/FreeSpacenav/spnavcfg
updated for the latest libspnav changes
rodzic
a49c36be6c
commit
1082fedfc6
|
@ -15,6 +15,7 @@ RCC ?= rcc
|
|||
warn = -pedantic -Wall
|
||||
incdir = -I.
|
||||
|
||||
CFLAGS = $(warn) $(dbg) $(opt) $(incdir) -fPIC $(add_cflags) -MMD
|
||||
CXXFLAGS = $(warn) $(dbg) $(opt) $(incdir) -fPIC `pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets` \
|
||||
$(add_cflags) -MMD
|
||||
LDFLAGS = `pkg-config --libs Qt5Core Qt5Gui Qt5Widgets` -lspnav $(add_ldflags)
|
||||
|
|
|
@ -9,16 +9,38 @@ struct config cfg;
|
|||
|
||||
int read_devinfo(struct device_info *inf)
|
||||
{
|
||||
inf->name = strdup(spnav_dev_name(0, 0));
|
||||
inf->path = strdup(spnav_dev_path(0, 0));
|
||||
inf->nbuttons = spnav_dev_buttons();
|
||||
inf->naxes = spnav_dev_axes();
|
||||
int sz;
|
||||
|
||||
free(inf->name);
|
||||
free(inf->path);
|
||||
memset(inf, 0, sizeof *inf);
|
||||
|
||||
if((sz = spnav_dev_name(0, 0)) > 0) {
|
||||
if((inf->name = malloc(sz))) {
|
||||
spnav_dev_name(inf->name, sz);
|
||||
}
|
||||
}
|
||||
if((sz = spnav_dev_path(0, 0)) > 0) {
|
||||
if((inf->path = malloc(sz))) {
|
||||
spnav_dev_path(inf->path, sz);
|
||||
}
|
||||
}
|
||||
if((inf->nbuttons = spnav_dev_buttons()) > MAX_BUTTONS) {
|
||||
inf->nbuttons = MAX_BUTTONS;
|
||||
}
|
||||
if((inf->naxes = spnav_dev_axes()) > MAX_AXES) {
|
||||
inf->naxes = MAX_AXES;
|
||||
}
|
||||
inf->type = spnav_dev_type();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int read_cfg(struct config *cfg)
|
||||
{
|
||||
int i;
|
||||
int i, sz;
|
||||
|
||||
free(cfg->serdev);
|
||||
memset(cfg, 0, sizeof *cfg);
|
||||
|
||||
cfg->sens = spnav_cfg_get_sens();
|
||||
spnav_cfg_get_axis_sens(cfg->sens_axis);
|
||||
|
@ -27,16 +49,20 @@ int read_cfg(struct config *cfg)
|
|||
cfg->led = spnav_cfg_get_led();
|
||||
cfg->grab = spnav_cfg_get_grab();
|
||||
|
||||
for(i=0; i<MAX_AXES; i++) {
|
||||
for(i=0; i<devinfo.naxes; i++) {
|
||||
cfg->map_axis[i] = spnav_cfg_get_axismap(i);
|
||||
cfg->dead_thres[i] = spnav_cfg_get_deadzone(i);
|
||||
}
|
||||
for(i=0; i<MAX_BUTTONS; i++) {
|
||||
for(i=0; i<devinfo.nbuttons; i++) {
|
||||
cfg->map_bn[i] = spnav_cfg_get_bnmap(i);
|
||||
}
|
||||
|
||||
free(cfg->serdev);
|
||||
cfg->serdev = strdup(spnav_cfg_get_serial(0, 0));
|
||||
if((sz = spnav_cfg_get_serial(0, 0)) > 0) {
|
||||
if((cfg->serdev = malloc(sz))) {
|
||||
spnav_cfg_get_serial(cfg->serdev, sz);
|
||||
}
|
||||
}
|
||||
|
||||
update_ui();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
#define SPNAVCFG_H_
|
||||
|
||||
struct device_info {
|
||||
char *name, *path;
|
||||
char *name;
|
||||
char *path;
|
||||
int nbuttons, naxes;
|
||||
int type;
|
||||
};
|
||||
|
||||
enum {TX, TY, TZ, RX, RY, RZ};
|
||||
#define MAX_BUTTONS 64
|
||||
#define MAX_AXES 64
|
||||
#define MAX_BUTTONS 128
|
||||
#define MAX_AXES 128
|
||||
|
||||
struct config {
|
||||
float sens, sens_axis[6];
|
||||
|
|
Ładowanie…
Reference in New Issue