USB OTG
OK, I needed to refresh myself with USB for a minute.
If you want to build your own instead of the $70 device, then what you want is USB On The GO (OTG). USB OTG is a special protocol designed specifically for connecting USB devices together. It allows them to emulate a USB host.
Now, you can do this with a microcontroller with a USB OTG peripheral built-in. The PIC24 and PIC32 chips have such an option. Alternatively, you could get a smaller PIC and use an SPI to USB OTG chip.
Now, what I'm thinking is probably the best approach is to use one PIC and 2 USB OTG chips. You might be able to use a PIC24 or PIC32 as it has a DMA controller. If you use the one with the USB peripheral, you could transfer quicker from one device to the PIC's internal RAM and then send that data via SPI to another USB chip to the other device.
It might be possible to do it with one USB chip or just the PIC USB controller. You'd transfer data from one device to the PIC's internal buffer and then transfer that data out the same USB controller, but have an external USB switch implemented in a CPLD. You would have to do a context switch on the USB controller registers (I don't know, but it might support dual channels for just such an application, but if not, just swapping out all the registers between transfers would allow you to do it in software).
FTDI, Maxim, Cypress and a couple of others make standalone USB chips. OTG is a USB 2.0 functionality, so I don't know if USB 1.x devices will be supported....probably since USB 2.0 is backward compatible.
Good luck if you plan on doing this. It sounds like a fun project, but such a device already does exist for $70 like I said before
-Donald
===============