macros/src/main.c
2022-12-05 03:05:39 +01:00

165 lines
3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "read_events.h"
#include "read_file.h"
/*
#include <X11/Xlib.h>
#include <xdo.h>
#include <fcntl.h>
*/
/*
void write_mouse_event(mouse_event *event, FILE *file)
{
fwrite(event, sizeof(mouse_event), 1, file);
fflush(file);
}
*/
/*
void listen() {
FILE *ptr = fopen("t", "a");
if (ptr == NULL) return -1;
mouse_event *my_event = (mouse_event *) malloc(sizeof(mouse_event));
Display *display;
Window root_window;
XEvent event;
display = XOpenDisplay(0);
root_window = DefaultRootWindow(display);
int fd, bytes;
unsigned char data[3];
const char *pDevice = "/dev/input/mice";
// Open Mouse
fd = open(pDevice, O_RDWR);
if(fd == -1)
{
printf("ERROR Opening %s\n", pDevice);
return -1;
}
int left = 0;
int right = 0;
int middle = 0;
signed char x, y;
while(!left || !right)
{
// Read Mouse
bytes = read(fd, data, sizeof(data));
if(bytes > 0)
{
left = data[0] & 0x1;
right = data[0] & 0x2;
middle = data[0] & 0x4;
XQueryPointer(
display,
root_window,
&event.xbutton.root,
&event.xbutton.subwindow,
&event.xbutton.x_root,
&event.xbutton.y_root,
&event.xbutton.x,
&event.xbutton.y,
&event.xbutton.state);
if ((left || right) && !(left && right)) {
my_event->infos &= 0x00; // rese;t
my_event->infos = 0x80 | (0x01 * left) | (0x02 * right) | (0x03 * middle);
my_event->x = event.xmotion.x;
my_event->y = event.xmotion.y;
printf("%d - %d\n", my_event->x, my_event->y);
write_mouse_event(my_event, ptr);
}
//printf("====== %d\n", event.xbutton.button);
printf("x=%d, y=%d, left=%d, middle=%d, right=%d\n", event.xmotion.x, event.xmotion.y, left, middle, right);
}
}
// flush the middle button
bytes = read(fd, data, sizeof(data));
fclose(ptr);
return 0;
// TODO on ecoute la souris
// TODO on repete ce qu'on a entre
}
*/
/*
void readfile() {
FILE *ptr = fopen("t", "r");
xdo_t *x_t = xdo_new(NULL);
if (ptr == NULL) return -1;
mouse_event *my_event = (mouse_event *) malloc(sizeof(mouse_event));
int left, right, x, y;
while (!feof(ptr))
{
printf("Souris \n");
fread(my_event, sizeof(mouse_event), 1, ptr);
left = my_event->infos & 0x01;
right = my_event->infos & 0x02;
x = my_event->x;
y = my_event->y;
printf("%d - %d - %d\n", my_event->infos, x, y);
xdo_move_mouse(x_t, x, y, 0);
sleep(1);
if (left) {
xdo_click_window(x_t, CURRENTWINDOW, 1);
}
if (right) {
xdo_click_window(x_t, CURRENTWINDOW, 3);
}
sleep(5);
}
xdo_free(x_t);
}
*/
int main()
{
FILE *file = fopen("t", "w+");
if (file == NULL) return -1;
int t = listen(file);
if (t) return t;
printf("Fin\n");
rewind(file);
printf("On commence\n");
sleep(5);
readfile(file);
fclose(file);
return 0;
}