the info.cpp sample from usbkit-99-03-23.tgz
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19902 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
9b84f25119
commit
a081d007e8
|
@ -0,0 +1,82 @@
|
|||
|
||||
#include <USBKit.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void DumpInterface(const USBInterface *ifc)
|
||||
{
|
||||
int i;
|
||||
const USBEndpoint *ept;
|
||||
if(!ifc) return;
|
||||
printf(" Class .............. %d\n",ifc->Class());
|
||||
printf(" Subclass ........... %d\n",ifc->Subclass());
|
||||
printf(" Protocol ........... %d\n",ifc->Protocol());
|
||||
for(i=0;i<ifc->CountEndpoints();i++){
|
||||
if(ept = ifc->EndpointAt(i)){
|
||||
printf(" [Endpoint %d]\n",i);
|
||||
printf(" MaxPacketSize .... %d\n",ept->MaxPacketSize());
|
||||
printf(" Interval ......... %d\n",ept->Interval());
|
||||
if(ept->IsBulk()){
|
||||
printf(" Type ............. Bulk\n");
|
||||
}
|
||||
if(ept->IsIsochronous()){
|
||||
printf(" Type ............. Isochronous\n");
|
||||
}
|
||||
if(ept->IsInterrupt()){
|
||||
printf(" Type ............. Interrupt\n");
|
||||
}
|
||||
if(ept->IsInput()){
|
||||
printf(" Direction ........ Input\n");
|
||||
} else {
|
||||
printf(" Direction ........ Output\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DumpConfiguration(const USBConfiguration *conf)
|
||||
{
|
||||
int i;
|
||||
if(!conf) return;
|
||||
for(i=0;i<conf->CountInterfaces();i++){
|
||||
printf(" [Interface %d]\n",i);
|
||||
DumpInterface(conf->InterfaceAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
void DumpInfo(USBDevice &dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
printf("[Device]\n");
|
||||
printf("Class .................. %d\n",dev.Class());
|
||||
printf("Subclass ............... %d\n",dev.Subclass());
|
||||
printf("Protocol ............... %d\n",dev.Protocol());
|
||||
printf("Vendor ID .............. 0x%04x\n",dev.VendorID());
|
||||
printf("Product ID ............. 0x%04x\n",dev.ProductID());
|
||||
printf("Version ................ 0x%04x\n",dev.Version());
|
||||
printf("Manufacturer String .... \"%s\"\n",dev.ManufacturerString());
|
||||
printf("Product String ......... \"%s\"\n",dev.ProductString());
|
||||
printf("Serial Number .......... \"%s\"\n",dev.SerialNumberString());
|
||||
|
||||
for(i=0;i<dev.CountConfigurations();i++){
|
||||
printf(" [Configuration %d]\n",i);
|
||||
DumpConfiguration(dev.ConfigurationAt(i));
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if(argc == 2){
|
||||
USBDevice dev(argv[1]);
|
||||
if(dev.InitCheck()){
|
||||
printf("Cannot open USB device: %s\n",argv[1]);
|
||||
return 1;
|
||||
} else {
|
||||
DumpInfo(dev);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
printf("Usage: info <device>\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue