X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Output%2FpjrcUSB%2Farm%2Fusb_dev.h;h=827f843b6f75e9837fd0cb0a6d67b0be0f153440;hb=46765e85c57e19b89754f4f9c26c8f18b35148e5;hp=96b5f84eb4674711057c043098deceb888ebf99f;hpb=54c11ebd0785676b078e85cf3f9f57e72c1e5dc3;p=kiibohd-controller.git diff --git a/Output/pjrcUSB/arm/usb_dev.h b/Output/pjrcUSB/arm/usb_dev.h index 96b5f84..827f843 100644 --- a/Output/pjrcUSB/arm/usb_dev.h +++ b/Output/pjrcUSB/arm/usb_dev.h @@ -1,6 +1,7 @@ /* Teensyduino Core Library * http://www.pjrc.com/teensy/ * Copyright (c) 2013 PJRC.COM, LLC. + * Modifications by Jacob Alexander 2014-2015 * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the @@ -10,10 +11,10 @@ * 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 + * 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 + * 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. @@ -28,56 +29,59 @@ * SOFTWARE. */ -#ifndef _usb_dev_h_ -#define _usb_dev_h_ +#pragma once -// This header is NOT meant to be included when compiling -// user sketches in Arduino. The low-level functions -// provided by usb_dev.c are meant to be called only by -// code which provides higher-level interfaces to the user. +// ----- Includes ----- +// Local Includes #include "usb_mem.h" #include "usb_desc.h" -void usb_init(); -uint8_t usb_configured(); // is the USB port configured -void usb_isr(); -usb_packet_t *usb_rx(uint32_t endpoint); -uint32_t usb_tx_byte_count(uint32_t endpoint); -uint32_t usb_tx_packet_count(uint32_t endpoint); -void usb_tx(uint32_t endpoint, usb_packet_t *packet); -void usb_tx_isr(uint32_t endpoint, usb_packet_t *packet); -void usb_device_reload(); + +// ----- Defines ----- + +#define usb_device_software_reset() SOFTWARE_RESET() + + + +// ----- Variables ----- extern volatile uint8_t usb_configuration; extern uint16_t usb_rx_byte_count_data[NUM_ENDPOINTS]; -static inline uint32_t usb_rx_byte_count(uint32_t endpoint) __attribute__((always_inline)); -static inline uint32_t usb_rx_byte_count(uint32_t endpoint) -{ - endpoint--; - if (endpoint >= NUM_ENDPOINTS) return 0; - return usb_rx_byte_count_data[endpoint]; -} -#ifdef CDC_DATA_INTERFACE -extern uint32_t usb_cdc_line_coding[2]; +extern volatile uint8_t usb_cdc_line_coding[7]; extern volatile uint8_t usb_cdc_line_rtsdtr; extern volatile uint8_t usb_cdc_transmit_flush_timer; -extern void usb_serial_flush_callback(void); -#endif -#ifdef KEYBOARD_INTERFACE -extern uint8_t keyboard_modifier_keys; -extern uint8_t keyboard_keys[6]; -extern uint8_t keyboard_protocol; -extern uint8_t keyboard_idle_config; -extern uint8_t keyboard_idle_count; -extern volatile uint8_t keyboard_leds; -#endif +// ----- Functions ----- + +uint8_t usb_configured(); // is the USB port configured +uint8_t usb_init(); // Returns 1 on success, 0 if no cable is attached + +void usb_isr(); +void usb_tx( uint32_t endpoint, usb_packet_t *packet ); +void usb_tx_isr( uint32_t endpoint, usb_packet_t *packet ); + +uint32_t usb_tx_byte_count( uint32_t endpoint ); +uint32_t usb_tx_packet_count( uint32_t endpoint ); + +usb_packet_t *usb_rx( uint32_t endpoint ); + +static inline uint32_t usb_rx_byte_count(uint32_t endpoint) __attribute__((always_inline)); +static inline uint32_t usb_rx_byte_count(uint32_t endpoint) +{ + endpoint--; + if ( endpoint >= NUM_ENDPOINTS ) + return 0; + return usb_rx_byte_count_data[ endpoint ]; +} + +void usb_device_reload(); +void usb_device_check(); -#endif +extern void usb_serial_flush_callback();