aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-06-02 10:54:32 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-06-02 10:54:32 +0000
commit7c5444b89a49df7cb671b0b041567990d2a3012e (patch)
tree481a5b56d9f360773112b00761aa430d8121d976 /LUFA
parent74b7c07e96562158de294f92baed4c83b4fce970 (diff)
downloadlufa-7c5444b89a49df7cb671b0b041567990d2a3012e.tar.gz
lufa-7c5444b89a49df7cb671b0b041567990d2a3012e.tar.bz2
lufa-7c5444b89a49df7cb671b0b041567990d2a3012e.zip
Removed new Start of Frame event from the library; performance suffered far too much and it was only useful in one of the standard classes (HID). Altered HID demos to use the previous method of tracking millisecond periods via a hardware timer rather than the SOF events.
Fixed MIDI class driver blocking on unread events to the host.
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/ChangeLog.txt1
-rw-r--r--LUFA/Drivers/USB/Class/Device/HID.c26
-rw-r--r--LUFA/Drivers/USB/Class/Device/HID.h3
-rw-r--r--LUFA/Drivers/USB/Class/Device/MIDI.c28
-rw-r--r--LUFA/Drivers/USB/HighLevel/Events.h6
-rw-r--r--LUFA/Drivers/USB/HighLevel/USBInterrupt.c18
-rw-r--r--LUFA/Drivers/USB/LowLevel/LowLevel.c5
7 files changed, 10 insertions, 77 deletions
diff --git a/LUFA/ChangeLog.txt b/LUFA/ChangeLog.txt
index fe3b63360..67f88b9a3 100644
--- a/LUFA/ChangeLog.txt
+++ b/LUFA/ChangeLog.txt
@@ -38,7 +38,6 @@
* LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs
* - Moved out each demos' functionality library files (e.g. Ring Buffer library) to /Lib directories for a better directory structure
* - Removed Tx interrupt from the USBtoSerial demo; now sends characters via polling to ensure more time for the Rx interrupt
- * - Added new EVENT_USB_StartOfFrame event in the library to indicate the start of each USB frame (when generated)
* - Removed psuedo-scheduler, dynamic memory block allocator from the library (no longer needed and not used respectively)
*
*
diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c
index fbc5e3a5c..5f8ccfbae 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.c
+++ b/LUFA/Drivers/USB/Class/Device/HID.c
@@ -45,7 +45,7 @@ void USB_HID_ProcessControlPacket(USB_ClassInfo_HID_t* HIDInterfaceInfo)
{
Endpoint_ClearSETUP();
- uint8_t ReportINData[HIDInterfaceInfo->ReportBufferSize];
+ uint8_t ReportINData[HIDInterfaceInfo->ReportINBufferSize];
uint16_t ReportINSize;
memset(ReportINData, 0, sizeof(ReportINData));
@@ -146,12 +146,6 @@ bool USB_HID_ConfigureEndpoints(USB_ClassInfo_HID_t* HIDInterfaceInfo)
return true;
}
-
-void USB_HID_RegisterStartOfFrame(USB_ClassInfo_HID_t* HIDInterfaceInfo)
-{
- if (HIDInterfaceInfo->IdleMSRemaining)
- HIDInterfaceInfo->IdleMSRemaining--;
-}
void USB_HID_USBTask(USB_ClassInfo_HID_t* HIDInterfaceInfo)
{
@@ -166,7 +160,7 @@ void USB_HID_USBTask(USB_ClassInfo_HID_t* HIDInterfaceInfo)
if (HIDInterfaceInfo->IdleCount && !(HIDInterfaceInfo->IdleMSRemaining))
HIDInterfaceInfo->IdleMSRemaining = HIDInterfaceInfo->IdleCount;
- uint8_t ReportINData[HIDInterfaceInfo->ReportBufferSize];
+ uint8_t ReportINData[HIDInterfaceInfo->ReportINBufferSize];
uint16_t ReportINSize;
memset(ReportINData, 0, sizeof(ReportINData));
@@ -174,13 +168,7 @@ void USB_HID_USBTask(USB_ClassInfo_HID_t* HIDInterfaceInfo)
ReportINSize = CALLBACK_USB_HID_CreateNextHIDReport(HIDInterfaceInfo, ReportINData);
if (ReportINSize)
- {
- Endpoint_Write_Stream_LE(ReportINData, ReportINSize
- #if !defined(NO_STREAM_CALLBACKS)
- , NO_STREAM_CALLBACK
- #endif
- );
- }
+ Endpoint_Write_Stream_LE(ReportINData, ReportINSize, NO_STREAM_CALLBACK);
Endpoint_ClearIN();
}
@@ -195,13 +183,7 @@ void USB_HID_USBTask(USB_ClassInfo_HID_t* HIDInterfaceInfo)
uint8_t ReportOUTData[ReportOUTSize];
if (ReportOUTSize)
- {
- Endpoint_Read_Stream_LE(ReportOUTData, ReportOUTSize
- #if !defined(NO_STREAM_CALLBACKS)
- , NO_STREAM_CALLBACK
- #endif
- );
- }
+ Endpoint_Read_Stream_LE(ReportOUTData, ReportOUTSize, NO_STREAM_CALLBACK);
CALLBACK_USB_HID_ProcessReceivedHIDReport(HIDInterfaceInfo, ReportOUTData, ReportOUTSize);
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 8fdeb064a..4501fcb1c 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -96,7 +96,7 @@
uint8_t ReportOUTEndpointNumber; /**< Endpoint number of the HID interface's OUT report endpoint, if used */
uint16_t ReportOUTEndpointSize; /**< Size in bytes of the HID interface's OUT report endpoint, if used */
- uint8_t ReportBufferSize;
+ uint8_t ReportINBufferSize;
bool UsingReportProtocol; /**< Indicates if the HID interface is set to Boot or Report protocol mode */
uint16_t IdleCount; /**< Report idle period, in ms, set by the host */
@@ -106,7 +106,6 @@
/* Function Prototypes: */
bool USB_HID_ConfigureEndpoints(USB_ClassInfo_HID_t* HIDInterfaceInfo);
void USB_HID_ProcessControlPacket(USB_ClassInfo_HID_t* HIDInterfaceInfo);
- void USB_HID_RegisterStartOfFrame(USB_ClassInfo_HID_t* HIDInterfaceInfo);
void USB_HID_USBTask(USB_ClassInfo_HID_t* HIDInterfaceInfo);
uint16_t CALLBACK_USB_HID_CreateNextHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, void* ReportData);
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.c b/LUFA/Drivers/USB/Class/Device/MIDI.c
index 9b4cd4b04..42c06904b 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.c
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.c
@@ -55,36 +55,18 @@ bool USB_MIDI_ConfigureEndpoints(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo)
return true;
}
-void USB_MIDI_SendNoteChange(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo, const uint8_t Pitch, const bool OnOff,
- const uint8_t CableID, const uint8_t Channel)
-{
- if (!(USB_IsConnected))
- return;
-
- Endpoint_SelectEndpoint(MIDIInterfaceInfo->DataINEndpointNumber);
- while (!(Endpoint_IsReadWriteAllowed()));
-
- uint8_t Command = ((OnOff)? MIDI_COMMAND_NOTE_ON : MIDI_COMMAND_NOTE_OFF);
-
- Endpoint_Write_Byte((CableID << 4) | (Command >> 4));
-
- Endpoint_Write_Byte(Command | Channel);
- Endpoint_Write_Byte(Pitch);
- Endpoint_Write_Byte(MIDI_STANDARD_VELOCITY);
-
- Endpoint_ClearIN();
-}
-
void USB_MIDI_SendEventPacket(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo, USB_MIDI_EventPacket_t* Event)
{
if (!(USB_IsConnected))
return;
Endpoint_SelectEndpoint(MIDIInterfaceInfo->DataINEndpointNumber);
- while (!(Endpoint_IsReadWriteAllowed()));
- Endpoint_Write_Stream_LE(Event, sizeof(USB_MIDI_EventPacket_t), NO_STREAM_CALLBACK);
- Endpoint_ClearIN();
+ if (Endpoint_IsReadWriteAllowed());
+ {
+ Endpoint_Write_Stream_LE(Event, sizeof(USB_MIDI_EventPacket_t), NO_STREAM_CALLBACK);
+ Endpoint_ClearIN();
+ }
}
bool USB_MIDI_ReceiveEventPacket(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo, USB_MIDI_EventPacket_t* Event)
diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h
index ded027b12..e6d2beaa7 100644
--- a/LUFA/Drivers/USB/HighLevel/Events.h
+++ b/LUFA/Drivers/USB/HighLevel/Events.h
@@ -267,11 +267,6 @@
* \ref Group_USBManagement documentation).
*/
void EVENT_USB_Reset(void);
-
- /** Event for the USB start of frame interrupt, firing once each millisecond in either device or host
- * mode, while USB frames are being generated or recieved.
- */
- void EVENT_USB_StartOfFrame(void);
#endif
/* Private Interface - For use in library only: */
@@ -308,7 +303,6 @@
void EVENT_USB_Suspend(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_WakeUp(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_Reset(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
- void EVENT_USB_StartOfFrame(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
#endif
#endif
diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
index 0ccbe6155..0b9d08223 100644
--- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
+++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.c
@@ -180,15 +180,6 @@ ISR(USB_GEN_vect, ISR_BLOCK)
EVENT_USB_Reset();
}
-
- if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
- {
- USB_INT_Clear(USB_INT_SOFI);
-
- FrameElapsed = true;
-
- EVENT_USB_StartOfFrame();
- }
#endif
#if defined(USB_CAN_BE_HOST)
@@ -241,15 +232,6 @@ ISR(USB_GEN_vect, ISR_BLOCK)
USB_ResetInterface();
}
-
- if (USB_INT_HasOccurred(USB_INT_HSOFI) && USB_INT_IsEnabled(USB_INT_HSOFI))
- {
- USB_INT_Clear(USB_INT_HSOFI);
-
- FrameElapsed = true;
-
- EVENT_USB_StartOfFrame();
- }
#endif
#if defined(USB_CAN_BE_BOTH)
diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.c b/LUFA/Drivers/USB/LowLevel/LowLevel.c
index 255a6ef29..82705db96 100644
--- a/LUFA/Drivers/USB/LowLevel/LowLevel.c
+++ b/LUFA/Drivers/USB/LowLevel/LowLevel.c
@@ -228,8 +228,6 @@ void USB_ResetInterface(void)
#if defined(USB_DEVICE_ONLY)
USB_INT_Enable(USB_INT_SUSPEND);
USB_INT_Enable(USB_INT_EORSTI);
- USB_INT_Enable(USB_INT_SOFI);
-
#if defined(CONTROL_ONLY_DEVICE)
UENUM = ENDPOINT_CONTROLEP;
#endif
@@ -245,13 +243,11 @@ void USB_ResetInterface(void)
USB_INT_Enable(USB_INT_SRPI);
USB_INT_Enable(USB_INT_BCERRI);
- USB_INT_Enable(USB_INT_HSOFI);
#else
if (USB_CurrentMode == USB_MODE_DEVICE)
{
USB_INT_Enable(USB_INT_SUSPEND);
USB_INT_Enable(USB_INT_EORSTI);
- USB_INT_Enable(USB_INT_SOFI);
#if defined(CONTROL_ONLY_DEVICE)
UENUM = ENDPOINT_CONTROLEP;
@@ -269,7 +265,6 @@ void USB_ResetInterface(void)
USB_INT_Enable(USB_INT_SRPI);
USB_INT_Enable(USB_INT_BCERRI);
- USB_INT_Enable(USB_INT_HSOFI);
}
#endif
}