1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-15 01:24:29 +02:00

more refactoring

This commit is contained in:
Kelly Brazil
2023-01-05 11:27:00 -08:00
parent 90277c1d87
commit bd2a757fcd

View File

@ -97,6 +97,28 @@ Schema:
] ]
} }
}, },
"videocontrol_descriptors": [
{
"<item>": {
"value": string,
"description": string,
"attributes": [
string
]
}
}
],
"videostreaming_descriptors": [
{
"<item>": {
"value": string,
"description": string,
"attributes": [
string
]
}
}
],
"endpoint_descriptors": [ "endpoint_descriptors": [
{ {
"<item>": { "<item>": {
@ -477,7 +499,7 @@ class _LsUsb():
self.videostreaming_interface_descriptors = _descriptor_list('videostreaming_interface_descriptor') self.videostreaming_interface_descriptors = _descriptor_list('videostreaming_interface_descriptor')
self.hid_device_descriptor = _descriptor_obj('hid_device_descriptor') self.hid_device_descriptor = _descriptor_obj('hid_device_descriptor')
self.report_descriptors_list = [] self.report_descriptors_list = []
self.hub_descriptor_list = [] self.hub_descriptor = _root_obj('hub_descriptor')
self.hub_port_status_list = [] self.hub_port_status_list = []
self.device_qualifier_list = [] self.device_qualifier_list = []
self.device_status_list = [] self.device_status_list = []
@ -693,7 +715,7 @@ class _LsUsb():
'videocontrol_interface_descriptor': self.videocontrol_interface_descriptors.list, 'videocontrol_interface_descriptor': self.videocontrol_interface_descriptors.list,
'videostreaming_interface_descriptor': self.videostreaming_interface_descriptors.list, 'videostreaming_interface_descriptor': self.videostreaming_interface_descriptors.list,
'endpoint_descriptor': self.endpoint_descriptors.list, 'endpoint_descriptor': self.endpoint_descriptors.list,
'hub_descriptor': self.hub_descriptor_list, 'hub_descriptor': self.hub_descriptor.list,
'device_qualifier': self.device_qualifier_list 'device_qualifier': self.device_qualifier_list
} }
@ -871,36 +893,27 @@ class _LsUsb():
# add the object to the list of interface descriptors # add the object to the list of interface descriptors
self.output_line['device_descriptor']['configuration_descriptor']['interface_descriptors'].append(i_desc_obj) self.output_line['device_descriptor']['configuration_descriptor']['interface_descriptors'].append(i_desc_obj)
for hd in self.hub_descriptor_list: # add hub_descriptor key if it doesn't exist and there are
keyname = tuple(hd.keys())[0] # entries for this interface_descriptor
if '_state' in hd[keyname] and hd[keyname]['_state']['bus_idx'] == idx: if self.hub_descriptor._entries_for_this_bus_exist(idx):
self.hub_descriptor._update_output(idx, self.output_line)
# is this a top level value or an attribute?
if hd[keyname]['_state']['attribute_value']:
last_item = hd[keyname]['_state']['last_item']
if 'attributes' not in self.output_line['hub_descriptor'][last_item]:
self.output_line['hub_descriptor'][last_item]['attributes'] = []
this_attribute = f'{keyname} {hd[keyname].get("value", "")} {hd[keyname].get("description", "")}'.strip()
self.output_line['hub_descriptor'][last_item]['attributes'].append(this_attribute)
continue
self.output_line['hub_descriptor'].update(hd)
del self.output_line['hub_descriptor'][keyname]['_state']
for hps in self.hub_port_status_list: for hps in self.hub_port_status_list:
keyname = tuple(hps.keys())[0] keyname = tuple(hps.keys())[0]
if '_state' in hps[keyname] and hps[keyname]['_state']['bus_idx'] == idx: if '_state' in hps[keyname] and hps[keyname]['_state']['bus_idx'] == idx:
self.output_line['hub_descriptor']['hub_port_status'].update(hps) self.output_line['hub_descriptor']['hub_port_status'].update(hps)
del self.output_line['hub_descriptor']['hub_port_status'][keyname]['_state'] del self.output_line['hub_descriptor']['hub_port_status'][keyname]['_state']
for dq in self.device_qualifier_list: for dq in self.device_qualifier_list:
keyname = tuple(dq.keys())[0] keyname = tuple(dq.keys())[0]
if '_state' in dq[keyname] and dq[keyname]['_state']['bus_idx'] == idx: if '_state' in dq[keyname] and dq[keyname]['_state']['bus_idx'] == idx:
self.output_line['device_qualifier'].update(dq) self.output_line['device_qualifier'].update(dq)
del self.output_line['device_qualifier'][keyname]['_state'] del self.output_line['device_qualifier'][keyname]['_state']
for ds in self.device_status_list: for ds in self.device_status_list:
if '_state' in ds and ds['_state']['bus_idx'] == idx: if '_state' in ds and ds['_state']['bus_idx'] == idx:
self.output_line['device_status'].update(ds) self.output_line['device_status'].update(ds)
del self.output_line['device_status']['_state'] del self.output_line['device_status']['_state']