#include #include #include "../../../headers/input/touch/touch_data.h" touch_event* touch_event_new(){ touch_event* te = malloc( sizeof( touch_event)); te->slot_number = 0; te->tracking_id = 0; te->position.x = 0; te->position.y = 0; return te; } /* could use memcpy...*/ void touch_event_copy( touch_event *dst, touch_event *src){ dst->slot_number = src->slot_number; dst->tracking_id = src->tracking_id; dst->position.x = src->position.x; dst->position.y = src->position.y; } touch_coordinates* new_touch_coordinates_buffer( uint8_t count){ if( ! count){ return NULL; } touch_coordinates* buffer = malloc( count * sizeof( touch_coordinates)); return buffer; } void free_touch_coordinates_buffer( touch_coordinates* buffer){ if( buffer){ free( buffer); } } void print_touch_event( touch_event *event){ printf("touch_event info : %p\n", (void*) event); printf("slot_number : %ld\n", event->slot_number); printf("tracking_id : %ld\n", event->tracking_id); printf("position_x : %ld\n", event->position.x); printf("position_y : %ld\n", event->position.y); printf("touch_event info end\n"); } void touch_events_array_copy( touch_event ***dst, touch_event **src, uint8_t count){ //printf("begin copy\n"); if( ! count){ //printf("nothing to copy\n"); *dst = NULL; return; } *dst = malloc( count * sizeof( touch_event*)); //printf("will copy %d items, into %p, taken from %p\n", count, ( void*) (*dst), ( void*) src); for( uint8_t i ; i < count; i++){ //print_touch_event( src[i]); ( *dst)[i] = touch_event_new(); //print_touch_event( ( *dst)[i]); touch_event_copy( ( *dst)[i], src[i]); //print_touch_event( ( *dst)[i]); } //printf("end copy\n"); } void free_touch_events_array( touch_event **buffer, uint8_t count){ for( uint8_t i; i < count; i++){ free( buffer[i]); } free( buffer); }