mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Make device enumeration use the device transport data
This removes some special-case code for Uemis, replacing it with simply passing in the device transport information. This makes device enumeration work for the Garmin Descent (if it is listed by libdivecomputer as a USB storage device, that is). I don't actually do any of the libdivecomputer parsing yet, and only have a stub for the Garmin Descent, but now the directory selection works with that stub. The actual download obviously does not. [Dirk Hohndel: removed obsolete FIXME from code] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
bb067b6ee4
commit
270e9eccad
13 changed files with 40 additions and 33 deletions
|
@ -398,11 +398,11 @@ static void fillDeviceList(const char *name, void *data)
|
|||
comboBox->addItem(name);
|
||||
}
|
||||
|
||||
void ConfigureDiveComputerDialog::fill_device_list(int dc_type)
|
||||
void ConfigureDiveComputerDialog::fill_device_list(unsigned int transport)
|
||||
{
|
||||
int deviceIndex;
|
||||
ui.device->clear();
|
||||
deviceIndex = enumerate_devices(fillDeviceList, ui.device, dc_type);
|
||||
deviceIndex = enumerate_devices(fillDeviceList, ui.device, transport);
|
||||
if (deviceIndex >= 0)
|
||||
ui.device->setCurrentIndex(deviceIndex);
|
||||
}
|
||||
|
@ -1445,12 +1445,12 @@ void ConfigureDiveComputerDialog::on_DiveComputerList_currentRowChanged(int curr
|
|||
return;
|
||||
}
|
||||
|
||||
int dcType = DC_TYPE_SERIAL;
|
||||
unsigned int transport = DC_TRANSPORT_SERIAL;
|
||||
|
||||
|
||||
if (selected_vendor == QString("Uemis"))
|
||||
dcType = DC_TYPE_UEMIS;
|
||||
fill_device_list(dcType);
|
||||
transport = DC_TRANSPORT_USBSTORAGE;
|
||||
fill_device_list(transport);
|
||||
}
|
||||
|
||||
void ConfigureDiveComputerDialog::checkLogFile(int state)
|
||||
|
|
|
@ -102,7 +102,7 @@ private:
|
|||
device_data_t device_data;
|
||||
void getDeviceData();
|
||||
|
||||
void fill_device_list(int dc_type);
|
||||
void fill_device_list(unsigned int transport);
|
||||
|
||||
DeviceDetails *deviceDetails;
|
||||
void populateDeviceDetails();
|
||||
|
|
|
@ -143,7 +143,7 @@ void DownloadFromDCWidget::updateState(states state)
|
|||
return;
|
||||
|
||||
if (state == INITIAL) {
|
||||
fill_device_list(DC_TYPE_OTHER);
|
||||
fill_device_list(~0);
|
||||
ui.progressBar->hide();
|
||||
markChildrenAsEnabled();
|
||||
timer->stop();
|
||||
|
@ -231,13 +231,14 @@ void DownloadFromDCWidget::updateState(states state)
|
|||
|
||||
void DownloadFromDCWidget::on_vendor_currentIndexChanged(const QString &vendor)
|
||||
{
|
||||
int dcType = DC_TYPE_SERIAL;
|
||||
unsigned int transport;
|
||||
dc_descriptor_t *descriptor;
|
||||
productModel.setStringList(productList[vendor]);
|
||||
ui.product->setCurrentIndex(0);
|
||||
|
||||
if (vendor == QString("Uemis"))
|
||||
dcType = DC_TYPE_UEMIS;
|
||||
fill_device_list(dcType);
|
||||
descriptor = descriptorLookup.value(ui.vendor->currentText() + ui.product->currentText());
|
||||
transport = dc_descriptor_get_transports(descriptor);
|
||||
fill_device_list(transport);
|
||||
}
|
||||
|
||||
void DownloadFromDCWidget::on_product_currentIndexChanged(const QString &)
|
||||
|
@ -475,7 +476,7 @@ void DownloadFromDCWidget::updateDeviceEnabled()
|
|||
descriptor = descriptorLookup.value(ui.vendor->currentText() + ui.product->currentText());
|
||||
|
||||
// call dc_descriptor_get_transport to see if the dc_transport_t is DC_TRANSPORT_SERIAL
|
||||
if (dc_descriptor_get_transports(descriptor) & DC_TRANSPORT_SERIAL) {
|
||||
if (dc_descriptor_get_transports(descriptor) & (DC_TRANSPORT_SERIAL | DC_TRANSPORT_USBSTORAGE)) {
|
||||
// if the dc_transport_t is DC_TRANSPORT_SERIAL, then enable the device node box.
|
||||
ui.device->setEnabled(true);
|
||||
} else {
|
||||
|
@ -567,11 +568,11 @@ static void fillDeviceList(const char *name, void *data)
|
|||
comboBox->addItem(name);
|
||||
}
|
||||
|
||||
void DownloadFromDCWidget::fill_device_list(int dc_type)
|
||||
void DownloadFromDCWidget::fill_device_list(unsigned int transport)
|
||||
{
|
||||
int deviceIndex;
|
||||
ui.device->clear();
|
||||
deviceIndex = enumerate_devices(fillDeviceList, ui.device, dc_type);
|
||||
deviceIndex = enumerate_devices(fillDeviceList, ui.device, transport);
|
||||
if (deviceIndex >= 0)
|
||||
ui.device->setCurrentIndex(deviceIndex);
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ private:
|
|||
|
||||
int previousLast;
|
||||
|
||||
void fill_device_list(int dc_type);
|
||||
void fill_device_list(unsigned int transport);
|
||||
QTimer *timer;
|
||||
bool dumpWarningShown;
|
||||
OstcFirmwareCheck *ostcFirmwareCheck;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue