X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2FUSBConfiguration.py;fp=client%2FUSBConfiguration.py;h=cadf106658090442a6aee8898cf9362987967f5c;hp=0000000000000000000000000000000000000000;hb=96ebf28fac2e03cfee954db85282eac7b8ec8015;hpb=78533a51ab5421601b046a917dd0f6f01a402a49 diff --git a/client/USBConfiguration.py b/client/USBConfiguration.py new file mode 100644 index 0000000..cadf106 --- /dev/null +++ b/client/USBConfiguration.py @@ -0,0 +1,33 @@ +# USBConfiguration.py +# +# Contains class definition for USBConfiguration. + +class USBConfiguration: + def __init__(self, configuration_index, configuration_string, interfaces): + self.configuration_index = configuration_index + self.configuration_string = configuration_string + self.configuration_string_index = 0 + self.interfaces = interfaces + + def set_configuration_string_index(self, i): + self.configuration_string_index = i + + def get_descriptor(self): + interface_descriptors = bytearray() + for i in self.interfaces: + interface_descriptors += i.get_descriptor() + + total_len = len(interface_descriptors) + 7 + + d = bytes([ + 7, # length of descriptor in bytes + 2, # descriptor type 2 == configuration + total_len & 0xff, + (total_len >> 8) & 0xff, + len(self.interfaces), + self.configuration_index, + self.configuration_string_index + ]) + + return d + interface_descriptors +