add z & w joystick values to sender

This commit is contained in:
tTh 2024-03-31 21:12:40 +02:00
parent 16917ad551
commit 7879c84020
4 changed files with 46 additions and 24 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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,