summaryrefslogtreecommitdiff
path: root/handle_devices.c
diff options
context:
space:
mode:
Diffstat (limited to 'handle_devices.c')
-rw-r--r--handle_devices.c73
1 files changed, 26 insertions, 47 deletions
diff --git a/handle_devices.c b/handle_devices.c
index f32b85e..f7ae0c9 100644
--- a/handle_devices.c
+++ b/handle_devices.c
@@ -4,6 +4,8 @@
#include "global_defs.h"
#include <stdbool.h>
+
+
void open_wii(int* controller_event_fptrs, uint64_t* connected_controllers, int choice) {
//Determine if WII REMOTE is connected via bluetooth
int wii[4] = { 0 };
@@ -143,24 +145,27 @@ SKIP_CLOSE:
void print_one_event(int controller_event_fptrs[], int index, int event_number) {
struct input_event event1;
int event_size = sizeof(struct input_event);
- size_t start_sec;
- int initial_read = read(controller_event_fptrs[index], &event1, event_size);
- if (initial_read == -1) {
+ time_t start_sec;
+ char buffer[BUFSIZE];
+ int string_length;
+ if (-1 == read(controller_event_fptrs[index], &event1, event_size)) {
fprintf(stderr, "PROBLEM READING FILE!\n");
exit(-1);
}
start_sec = event1.time.tv_sec;
while (read(controller_event_fptrs[index], &event1, event_size) != -1) {
if (event1.type == 0) continue;
- printf("%d %zu.%-6zu %d %3d %9d\n",
+ string_length = snprintf(buffer, BUFSIZE - 1, "%d %5lu.%06lu %d %3d %11d\n",
event_number,
- event1.time.tv_sec - start_sec,
- event1.time.tv_usec,
+ (unsigned long) event1.time.tv_sec - start_sec,
+ (unsigned long) event1.time.tv_usec,
event1.type,
event1.code,
event1.value);
+ write(STDOUT_FILENO, buffer, string_length);
}
fprintf(stderr, "DISCONNECTED\n");
+ exit(-1);
}
void print_multiple_events(int num_exceptions, int controller_event_fptrs[], ...) {
@@ -189,73 +194,47 @@ void print_multiple_events(int num_exceptions, int controller_event_fptrs[], ...
}
//find and run code just for the parent process (first event (a.k.a. index 0))
if (isParent) {
- //printf("\nIm the parent, pid: %d\n", getpid());
- //put the code you want the parent to run here?
- char buffer[BUFSIZE+1];
- int initial_read = read(controller_event_fptrs[pairs[0].event_fptr_index], &event[0], event_size);
- if (initial_read == -1) {
+ char buffer[BUFSIZE];
+ int string_length;
+ if ( -1 == read(controller_event_fptrs[pairs[0].event_fptr_index], &event[0], event_size)) {
fprintf(stderr, "PROBLEM READING FILE!\n");
exit(-1);
}
size_t start_sec = event[0].time.tv_sec;
while (read(controller_event_fptrs[pairs[0].event_fptr_index], &event[0], event_size) != -1) {
if (event[0].type == 0) continue;
-/*
- printf("%d %zu.%-6zu %d %3d %11d\n",
- pairs[0].event_user_num,
- event[0].time.tv_sec - start_sec,
- event[0].time.tv_usec,
- event[0].type,
- event[0].code,
- event[0].value);
-*/
-
- snprintf(buffer, BUFSIZE, "%d %zu.%-6zu %d %3d %11d\n",
+ string_length = snprintf(buffer, BUFSIZE, "%d %lu.%06lu %d %3d %11d\n",
pairs[0].event_user_num,
- event[0].time.tv_sec - start_sec,
- event[0].time.tv_usec,
+ (unsigned long) event[0].time.tv_sec - start_sec,
+ (unsigned long) event[0].time.tv_usec,
event[0].type,
event[0].code,
event[0].value);
- write(STDOUT_FILENO, buffer, sizeof(buffer));
-
+ write(STDOUT_FILENO, buffer, string_length);
}
fprintf(stderr, "DISCONNECTED\n");
- }
+ }
//find the child process(es) and run the correct code for each (event #2 onwards) (a.k.a. index 1+))
sleep(1);
for (int i = 0; i < num_exceptions; ++i) {
if (pids[i] == 0) {
- //printf("Im child #%d.\n", i + 1);
- //put the rest of the code in here?
- char buffer[BUFSIZE+1];
- int initial_read = read(controller_event_fptrs[pairs[i+1].event_fptr_index], &event[i+1], event_size);
- if (initial_read == -1) {
+ char buffer[BUFSIZE];
+ int string_length;
+ if (-1 == read(controller_event_fptrs[pairs[i+1].event_fptr_index], &event[i+1], event_size)) {
fprintf(stderr, "PROBLEM READING FILE!\n");
exit(-1);
}
size_t start_sec = event[i+1].time.tv_sec;
while (read(controller_event_fptrs[pairs[i+1].event_fptr_index], &event[i+1], event_size) != -1) {
if (event[i+1].type == 0) continue;
-
- printf("%d %zu.%-6zu %d %3d %11d\n",
- pairs[i+1].event_user_num,
- event[i+1].time.tv_sec - start_sec,
- event[i+1].time.tv_usec,
- event[i+1].type,
- event[i+1].code,
- event[i+1].value);
-
-/*
- snprintf(buffer, BUFSIZE, "%d %zu.%-6zu %d %3d %11d\n",
+ string_length = snprintf(buffer, BUFSIZE, "%d %lu.%06lu %d %3d %11d\n",
pairs[i+1].event_user_num,
- event[i+1].time.tv_sec - start_sec,
- event[i+1].time.tv_usec,
+ (unsigned long) event[i+1].time.tv_sec - start_sec,
+ (unsigned long) event[i+1].time.tv_usec,
event[i+1].type,
event[i+1].code,
event[i+1].value);
- write(STDOUT_FILENO, buffer, sizeof(buffer));
-*/
+ write(STDOUT_FILENO, buffer, string_length);
}
fprintf(stderr, "DISCONNECTED\n");
}