X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=teensy3%2Fusb_rawhid.c;h=d46b0be98b22725f0d01014961b2f94fcf992416;hb=HEAD;hp=03210bb0a0e8f2131ce1826341ef45ec05a34dab;hpb=35f00b6caaac4a8b93247913f0863bcd8f419041;p=megadrive.git diff --git a/teensy3/usb_rawhid.c b/teensy3/usb_rawhid.c deleted file mode 100644 index 03210bb..0000000 --- a/teensy3/usb_rawhid.c +++ /dev/null @@ -1,88 +0,0 @@ -/* Teensyduino Core Library - * http://www.pjrc.com/teensy/ - * Copyright (c) 2013 PJRC.COM, LLC. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * 1. The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * 2. If the Software is incorporated into a build system that allows - * selection among a list of target devices, then similar target - * devices manufactured by PJRC.COM must be included in the list of - * target devices and selectable in the same manner. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include "usb_dev.h" -#include "usb_rawhid.h" -#include "core_pins.h" // for yield(), millis() -#include // for memcpy() -//#include "HardwareSerial.h" - -#ifdef RAWHID_INTERFACE // defined by usb_dev.h -> usb_desc.h - -int usb_rawhid_recv(void *buffer, uint32_t timeout) -{ - usb_packet_t *rx_packet; - uint32_t begin = millis(); - - while (1) { - if (!usb_configuration) return -1; - rx_packet = usb_rx(RAWHID_RX_ENDPOINT); - if (rx_packet) break; - if (millis() - begin > timeout || !timeout) return 0; - yield(); - } - memcpy(buffer, rx_packet->buf, RAWHID_RX_SIZE); - usb_free(rx_packet); - return RAWHID_RX_SIZE; -} - -int usb_rawhid_available(void) -{ - uint32_t count; - - if (!usb_configuration) return 0; - count = usb_rx_byte_count(RAWHID_RX_ENDPOINT); - return count; -} - -// Maximum number of transmit packets to queue so we don't starve other endpoints for memory -#define TX_PACKET_LIMIT 4 - -int usb_rawhid_send(const void *buffer, uint32_t timeout) -{ - usb_packet_t *tx_packet; - uint32_t begin = millis(); - - while (1) { - if (!usb_configuration) return -1; - if (usb_tx_packet_count(RAWHID_TX_ENDPOINT) < TX_PACKET_LIMIT) { - tx_packet = usb_malloc(); - if (tx_packet) break; - } - if (millis() - begin > timeout) return 0; - yield(); - } - memcpy(tx_packet->buf, buffer, RAWHID_TX_SIZE); - tx_packet->len = RAWHID_TX_SIZE; - usb_tx(RAWHID_TX_ENDPOINT, tx_packet); - return RAWHID_TX_SIZE; -} - -#endif // RAWHID_INTERFACE