diff --git a/Bootloaders/makefile b/Bootloaders/makefile index 5fd5aef4bc..1083587f70 100644 --- a/Bootloaders/makefile +++ b/Bootloaders/makefile @@ -26,5 +26,4 @@ all: %: make -C 'DFU/' $@ make -C 'CDC/' $@ - make -C 'MIDI/' $@ make -C 'TeensyHID/' $@ diff --git a/Demos/Host/ClassDriver/CDCHost/CDCHost.c b/Demos/Host/ClassDriver/CDCHost/CDCHost.c index fd12137c80..99c0c81727 100644 --- a/Demos/Host/ClassDriver/CDCHost/CDCHost.c +++ b/Demos/Host/ClassDriver/CDCHost/CDCHost.c @@ -50,6 +50,27 @@ USB_ClassInfo_CDC_Host_t VirtualSerial_CDC_Interface = }, }; +#if 0 +/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in + * can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string). + */ + +static int CDC_putchar(char c, FILE *stream) +{ + CDC_Host_SendByte(&VirtualSerial_CDC_Interface, c); + return 0; +} + +static int CDC_getchar(FILE *stream) +{ + if (!(CDC_Host_BytesReceived(&VirtualSerial_CDC_Interface))) + return -1; + + return CDC_Host_ReceiveByte(&VirtualSerial_CDC_Interface); +} + +static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW); +#endif /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. diff --git a/Demos/Host/LowLevel/CDCHost/CDCHost.c b/Demos/Host/LowLevel/CDCHost/CDCHost.c index 7a1788b175..0b09c5a93b 100644 --- a/Demos/Host/LowLevel/CDCHost/CDCHost.c +++ b/Demos/Host/LowLevel/CDCHost/CDCHost.c @@ -36,6 +36,52 @@ #include "CDCHost.h" +#if 0 +/* NOTE: Here you can set up a standard stream using the created virtual serial port, so that the standard stream functions in + * can be used on the virtual serial port (e.g. fprintf(&USBSerial, "Test"); to print a string). + */ + +static int CDC_putchar(char c, FILE *stream) +{ + Pipe_SelectPipe(CDC_DATAPIPE_OUT); + + if (Pipe_WaitUntilReady()) + return -1; + + Pipe_Write_Byte(c); + Pipe_ClearIN(); + + return 0; +} + +static int CDC_getchar(FILE *stream) +{ + int c; + + Pipe_SelectPipe(CDC_DATAPIPE_IN); + + for (;;) + { + if (Pipe_WaitUntilReady()) + return -1; + + if (!(Pipe_BytesInPipe())) + { + Pipe_ClearOUT(); + } + else + { + c = Pipe_Read_Byte(); + break; + } + } + + return c; +} + +static FILE USBSerial = FDEV_SETUP_STREAM(CDC_putchar, CDC_getchar, _FDEV_SETUP_RW); +#endif + /** Main program entry point. This routine configures the hardware required by the application, then * enters a loop to run the application tasks in sequence. */ diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index e0750ded44..b47097c42b 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -13,6 +13,7 @@ * - Added new HID_HOST_BOOT_PROTOCOL_ONLY compile time token to reduce the size of the HID Host Class driver when * Report protocol is not needed * - Added new MIDI LowLevel and ClassDriver Host demo, add new MIDI Host Class driver + * - Added stdio.h stream examples for the virtual CDC UART in the CDC host demos * * Changed: * - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt index 59c51b106e..2ca27ec602 100644 --- a/LUFA/ManPages/FutureChanges.txt +++ b/LUFA/ManPages/FutureChanges.txt @@ -22,7 +22,7 @@ * - Master LUFA include file rather than per-module includes * - Change makefiles to allow for absolute LUFA location to be used * - Abstract out the physical media from the Mass Storage device demos - * - Add MIDI Host Class driver + * - Add RNDIS Host Class driver * - Make new demos * -# Multiple-report HID device * -# Mouse/CDC Dual Class Device