Class used to watch an USB HUB for changes in the connection status of its ports.
To have the best chance of success we do things in the exact same order as Windoze98. This should not be necessary, but some devices do not follow the USB specs to the letter.
These are the events on the bus when a hub is attached:
- Get device and config descriptors (see attach code)
- Get hub descriptor (see above)
- For all ports
- turn on power
- wait for power to become stable
- For all ports
- For all ports
- get port status
- if device connected
- wait 100 ms
- turn on reset
- wait
- clear C_PORT_RESET
- get port status
- proceed with device attachment
@author Ewout Prangsma (epr@users.sourceforge.net)