[tuxdroid-svn] r416 - daemon/trunk/libs
Status: Beta
Brought to you by:
ks156
From: neimad <c2m...@c2...> - 2007-06-23 16:53:37
|
Author: neimad Date: 2007-06-23 18:53:35 +0200 (Sat, 23 Jun 2007) New Revision: 416 Modified: daemon/trunk/libs/USBDaemon_command_tux.c daemon/trunk/libs/USBDaemon_usb.c daemon/trunk/libs/USBDaemon_usb.h Log: * Defined functions usb_{read,write}bytes_TuxDroid() for low-level access to the USB device. This hides the details of USB access from USBDaemon_command_tux.c. Modified: daemon/trunk/libs/USBDaemon_command_tux.c =================================================================== --- daemon/trunk/libs/USBDaemon_command_tux.c 2007-06-23 16:32:33 UTC (rev 415) +++ daemon/trunk/libs/USBDaemon_command_tux.c 2007-06-23 16:53:35 UTC (rev 416) @@ -946,7 +946,6 @@ unsigned char param1, unsigned char param2, unsigned char param3) { unsigned char data[TUX_SEND_LENGTH]; - int ret; data[0] = USB_DONGLE_CMD; data[1] = cmd; @@ -955,9 +954,8 @@ data[4] = param3; log_debug("USB PC->Dongle: %#x, %#x, %#x, %#x, %#x\n", data[0], data[1], data[2], data[3], data[4]); - ret = usb_interrupt_write(tux_handle, TUX_WRITE_EP, (char *)data, - TUX_SEND_LENGTH, TUX_WRITE_TIMEOUT); - return ret; + + return usb_writebytes_TuxDroid(data, TUX_SEND_LENGTH); } /** Modified: daemon/trunk/libs/USBDaemon_usb.c =================================================================== --- daemon/trunk/libs/USBDaemon_usb.c 2007-06-23 16:32:33 UTC (rev 415) +++ daemon/trunk/libs/USBDaemon_usb.c 2007-06-23 16:53:35 UTC (rev 416) @@ -168,6 +168,32 @@ } /** + * Write data on Tux droid's USB device. + * + * @param[in] buf Buffer to write + * @param[in] size Size of buffer + * + * \return number of bytes written if successful, < 0 otherwise + */ +int usb_writebytes_TuxDroid(const void *buf, size_t size) +{ + return usb_interrupt_write(tux_handle, TUX_WRITE_EP, (char *)buf, size, + TUX_WRITE_TIMEOUT); +} + +/** + * Read data from Tux droid's USB device. + * + * @param[out] buf Buffer to store data in + * @param[in] size Size of buffer + */ +int usb_readbytes_TuxDroid(void *buf, size_t size) +{ + return usb_interrupt_read(tux_handle, TUX_READ_EP, (char *)buf, size, + TUX_READ_TIMEOUT); +} + +/** * Get Tux droid's status. * * FIXME: the status of *what* exactly ? @@ -185,13 +211,11 @@ if (usb_connection_status != USB_CONNECTED) return; - idx = usb_interrupt_write(tux_handle, TUX_WRITE_EP, (char *)cmd_send, - sizeof(cmd_send), TUX_WRITE_TIMEOUT); + idx = usb_writebytes_TuxDroid(cmd_send, sizeof(cmd_send)); if (idx <= 0) return; - idx = usb_interrupt_read(tux_handle, TUX_READ_EP, (char *)data, - sizeof(data), TUX_READ_TIMEOUT); + idx = usb_readbytes_TuxDroid(data, sizeof(data)); if (idx <= 0) return; @@ -228,7 +252,6 @@ */ unsigned char usb_write_TuxDroid(unsigned char data[TUX_SEND_LENGTH]) { - int idx; unsigned char counter; unsigned char csf; @@ -237,8 +260,7 @@ /* Send data */ cmd_status_flag = 1; - idx = usb_interrupt_write(tux_handle, TUX_WRITE_EP, (char *)data, - TUX_SEND_LENGTH, TUX_WRITE_TIMEOUT); + usb_writebytes_TuxDroid(data, TUX_SEND_LENGTH); counter = 0; csf = cmd_status_flag; Modified: daemon/trunk/libs/USBDaemon_usb.h =================================================================== --- daemon/trunk/libs/USBDaemon_usb.h 2007-06-23 16:32:33 UTC (rev 415) +++ daemon/trunk/libs/USBDaemon_usb.h 2007-06-23 16:53:35 UTC (rev 416) @@ -71,6 +71,9 @@ extern int usb_capture_TuxDroid(void); extern void usb_release_TuxDroid(void); +extern int usb_writebytes_TuxDroid(const void *buf, size_t size); +extern int usb_readbytes_TuxDroid(void *buf, size_t size); + extern void usb_get_status_TuxDroid(void); extern unsigned char usb_write_TuxDroid(unsigned char datas[]); |