Update of /cvsroot/pure-data/externals/io/hidio In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31865
Modified Files: hidio.c hidio.h hidio_windows.c Log Message: added plattform_specific_new and a pointer to my Windows specific stuff in t_hid struct
Index: hidio.c =================================================================== RCS file: /cvsroot/pure-data/externals/io/hidio/hidio.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** hidio.c 2 Jan 2007 05:37:06 -0000 1.17 --- hidio.c 2 Jan 2007 22:00:00 -0000 1.18 *************** *** 398,404 **** static void hidio_open(t_hidio *x, t_symbol *s, int argc, t_atom *argv) { - debug_post(LOG_DEBUG,"hid_%s",s->s_name); short new_device_number = get_device_number_from_arguments(argc, argv); t_int started = x->x_started; // store state to restore after device is opened if (new_device_number > -1) --- 398,404 ---- static void hidio_open(t_hidio *x, t_symbol *s, int argc, t_atom *argv) { short new_device_number = get_device_number_from_arguments(argc, argv); t_int started = x->x_started; // store state to restore after device is opened + debug_post(LOG_DEBUG,"hid_%s",s->s_name); if (new_device_number > -1) *************** *** 555,562 **** x->x_delay = DEFAULT_DELAY; for(i=0; i<MAX_DEVICES; ++i) last_execute_time[i] = 0; ! #ifdef _WIN32 ! x->x_fd = INVALID_HANDLE_VALUE; ! #endif /* _WIN32 */ ! x->x_device_number = get_device_number_from_arguments(argc, argv);
--- 555,561 ---- x->x_delay = DEFAULT_DELAY; for(i=0; i<MAX_DEVICES; ++i) last_execute_time[i] = 0; ! #ifdef _WINDOWS ! x->x_hid_device = hidio_platform_specific_new(x); ! #endif x->x_device_number = get_device_number_from_arguments(argc, argv);
Index: hidio.h =================================================================== RCS file: /cvsroot/pure-data/externals/io/hidio/hidio.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** hidio.h 2 Jan 2007 20:45:40 -0000 1.17 --- hidio.h 2 Jan 2007 22:00:00 -0000 1.18 *************** *** 83,87 **** #endif #ifdef _WIN32 ! HANDLE x_fd; #endif #ifdef __linux__ --- 83,87 ---- #endif #ifdef _WIN32 ! void *x_hid_device; #endif #ifdef __linux__ *************** *** 187,191 **** extern void hidio_print(t_hidio* x); /* print info to the console */ extern void hidio_platform_specific_info(t_hidio* x); /* device info on the status outlet */ ! extern void hidio_platform_specific_free(t_hidio *x); extern short get_device_number_by_id(unsigned short vendor_id, unsigned short product_id); /* TODO: this function should probably accept the single unsigned for the combined usage_page and usage, instead of two separate variables */ --- 187,192 ---- extern void hidio_print(t_hidio* x); /* print info to the console */ extern void hidio_platform_specific_info(t_hidio* x); /* device info on the status outlet */ ! extern void hidio_platform_specific_free(t_hidio *x); ! extern void *hidio_platform_specific_new(t_hidio *x); extern short get_device_number_by_id(unsigned short vendor_id, unsigned short product_id); /* TODO: this function should probably accept the single unsigned for the combined usage_page and usage, instead of two separate variables */ *************** *** 195,200 ****
/* cross-platform force feedback functions */ ! extern void hidio_ff_autocenter(t_hidio *x, t_float value); ! extern void hidio_ff_gain(t_hidio *x, t_float value); extern t_int hidio_ff_motors(t_hidio *x, t_float value); extern t_int hidio_ff_continue(t_hidio *x); --- 196,201 ----
/* cross-platform force feedback functions */ ! extern t_int hidio_ff_autocenter(t_hidio *x, t_float value); ! extern t_int hidio_ff_gain(t_hidio *x, t_float value); extern t_int hidio_ff_motors(t_hidio *x, t_float value); extern t_int hidio_ff_continue(t_hidio *x);
Index: hidio_windows.c =================================================================== RCS file: /cvsroot/pure-data/externals/io/hidio/hidio_windows.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** hidio_windows.c 2 Jan 2007 20:45:40 -0000 1.5 --- hidio_windows.c 2 Jan 2007 22:00:00 -0000 1.6 *************** *** 25,34 **** #include <winbase.h> #include <stdio.h> ! #include <setupapi.h> ! ! /* ! * Please note that this file needs the Microsoft Driver Developent Kit (DDK) ! * to be installed in order to compile! ! */
#ifdef _MSC_VER [...1245 lines suppressed...] + + if (self) + freebytes(self, sizeof(t_hid_device)); + }
+ void *hidio_platform_specific_new(t_hidio *x) + { + t_hid_device *self; + + debug_print(LOG_DEBUG,"hidio_platform_specific_new"); + + /* alloc memory for our instance */ + self = (t_hid_device *)getbytes(sizeof(t_hid_device)); + self->fh = INVALID_HANDLE_VALUE; + + return (void *)self; /* return void pointer to our data struct */ + }
#endif /* _WINDOWS */