add z & w joystick values to sender
This commit is contained in:
parent
16917ad551
commit
7879c84020
20
README.md
20
README.md
@ -26,14 +26,15 @@ cd functions
|
|||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
Et ensuite `make` dans le répertoire de base...
|
Et ensuite `make` dans le répertoire de base, je pense que c'est
|
||||||
|
assez simple, et parfois ça marche...
|
||||||
|
|
||||||
# Les programmes
|
# Les programmes
|
||||||
|
|
||||||
## osc-joy
|
## osc-joy
|
||||||
|
|
||||||
Lecture d'une manette de jeu USB et envoi des coordonnées x/y et des boutons
|
Lecture d'une manette de jeu USB et envoi des coordonnées x/y/z/w
|
||||||
vers un écouteur OSC.
|
et des boutons vers un écouteur OSC.
|
||||||
|
|
||||||
L'option `-o NN` rajoute NN au numéro de bouton.
|
L'option `-o NN` rajoute NN au numéro de bouton.
|
||||||
Voir les [générateurs](generators/) pour les détails.
|
Voir les [générateurs](generators/) pour les détails.
|
||||||
@ -48,17 +49,8 @@ Pour faire __beep__ vers Chuck...
|
|||||||
|
|
||||||
## showbuttons
|
## showbuttons
|
||||||
|
|
||||||
Presque fini depuis quelques mois.
|
Presque fini depuis quelques mois/années.
|
||||||
|
|
||||||
# Le reste
|
|
||||||
|
|
||||||
## Loth Project
|
|
||||||
|
|
||||||
Voir README.md
|
|
||||||
|
|
||||||
## Teamlaser
|
|
||||||
|
|
||||||
Voir asyncburp.c
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,19 @@ if (verbosity > 2) {
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
|
/* function added Sun Mar 31 18:51:46 UTC 2024 */
|
||||||
|
int send_data_zw(lo_address dst, int w, int z)
|
||||||
|
{
|
||||||
|
int foo;
|
||||||
|
|
||||||
|
if (verbosity) fprintf(stderr, "sending w z %7d %7d\n", w, z);
|
||||||
|
foo = lo_send(dst, "/joystick/wz", "ii", w, z);
|
||||||
|
if (verbosity > 2) {
|
||||||
|
fprintf(stderr, "lo_send -> %d\n", foo);
|
||||||
|
}
|
||||||
|
return foo;
|
||||||
|
}
|
||||||
|
/* ----------------------------------------------------------------- */
|
||||||
int send_data_button(lo_address dst, int n, int v)
|
int send_data_button(lo_address dst, int n, int v)
|
||||||
{
|
{
|
||||||
int foo;
|
int foo;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
/* ------------------------------------------------------- */
|
/* ------------------------------------------------------- */
|
||||||
|
|
||||||
int send_data_xy(lo_address dst, int x, int y);
|
int send_data_xy(lo_address dst, int x, int y);
|
||||||
|
int send_data_zw(lo_address dst, int w, int z);
|
||||||
int send_data_button(lo_address dst, int n, int v);
|
int send_data_button(lo_address dst, int n, int v);
|
||||||
int send_data_id(lo_address dst, char *s);
|
int send_data_id(lo_address dst, char *s);
|
||||||
|
|
||||||
|
34
osc-joy.c
34
osc-joy.c
@ -54,7 +54,7 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
int foo, joy_fd;
|
int foo, joy_fd;
|
||||||
struct js_event js;
|
struct js_event js;
|
||||||
int x_pos, y_pos, flag;
|
int x_pos, y_pos, z_pos, w_pos, what;
|
||||||
char joy_name[128];
|
char joy_name[128];
|
||||||
int opt;
|
int opt;
|
||||||
char *remote_host = REMOTE_HOST;
|
char *remote_host = REMOTE_HOST;
|
||||||
@ -107,7 +107,7 @@ if (verbosity) {
|
|||||||
|
|
||||||
send_data_id(t, my_id);
|
send_data_id(t, my_id);
|
||||||
|
|
||||||
x_pos = y_pos = 0;
|
x_pos = y_pos = z_pos = w_pos = 0;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
foo = read(joy_fd, &js, sizeof(struct js_event));
|
foo = read(joy_fd, &js, sizeof(struct js_event));
|
||||||
if (8 != foo) {
|
if (8 != foo) {
|
||||||
@ -122,22 +122,38 @@ for (;;) {
|
|||||||
js.time, js.type, js.number, js.value);
|
js.time, js.type, js.number, js.value);
|
||||||
}
|
}
|
||||||
if (2==js.type) { /* oscillating stick */
|
if (2==js.type) { /* oscillating stick */
|
||||||
flag = 0;
|
what = 0;
|
||||||
switch (js.number) {
|
switch (js.number) {
|
||||||
case 0:
|
case 0:
|
||||||
x_pos = js.value;
|
x_pos = js.value;
|
||||||
flag = 1;
|
what = 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
y_pos = js.value;
|
y_pos = js.value;
|
||||||
flag = 1;
|
what = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
z_pos = js.value;
|
||||||
|
what = 2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
w_pos = js.value;
|
||||||
|
what = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (flag) {
|
/* now, send the datas */
|
||||||
foo = send_data_xy(t, x_pos, y_pos);
|
// fprintf(stderr, "\t\twhat = %d\n", what);
|
||||||
flag = 0;
|
switch (what) {
|
||||||
|
case 1:
|
||||||
|
foo = send_data_xy(t, x_pos, y_pos);
|
||||||
|
what = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
foo = send_data_zw(t, z_pos, w_pos);
|
||||||
|
what = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (1==js.type) { /* it's a button */
|
if (1==js.type) { /* it's a button */
|
||||||
foo = send_data_button(t, js.number+button_offset,
|
foo = send_data_button(t, js.number+button_offset,
|
||||||
|
Loading…
Reference in New Issue
Block a user