3 # Contains class definition for USBConfiguration.
5 class USBConfiguration:
6 def __init__(self, configuration_index, configuration_string, interfaces):
7 self.configuration_index = configuration_index
8 self.configuration_string = configuration_string
9 self.configuration_string_index = 0
10 self.interfaces = interfaces
12 self.attributes = 0xe0
17 for i in self.interfaces:
18 i.set_configuration(self)
20 def set_device(self, device):
23 def set_configuration_string_index(self, i):
24 self.configuration_string_index = i
26 def get_descriptor(self):
27 interface_descriptors = bytearray()
28 for i in self.interfaces:
29 interface_descriptors += i.get_descriptor()
31 total_len = len(interface_descriptors) + 9
34 9, # length of descriptor in bytes
35 2, # descriptor type 2 == configuration
37 (total_len >> 8) & 0xff,
39 self.configuration_index,
40 self.configuration_string_index,
45 return d + interface_descriptors