diff --git a/core/configuredivecomputer.cpp b/core/configuredivecomputer.cpp index be5507768..d49b31b01 100644 --- a/core/configuredivecomputer.cpp +++ b/core/configuredivecomputer.cpp @@ -41,7 +41,7 @@ void ConfigureDiveComputer::readSettings(device_data_t *data) readThread->start(); } -void ConfigureDiveComputer::saveDeviceDetails(DeviceDetails *details, device_data_t *data) +void ConfigureDiveComputer::saveDeviceDetails(const DeviceDetails &details, device_data_t *data) { setState(WRITING); @@ -65,7 +65,7 @@ static QString writeGasDetails(gas g) }).join(QLatin1Char(',')); } -bool ConfigureDiveComputer::saveXMLBackup(const QString &fileName, DeviceDetails *details, device_data_t *data) +bool ConfigureDiveComputer::saveXMLBackup(const QString &fileName, const DeviceDetails &details, device_data_t *data) { QString xml = ""; QString vendor = data->vendor; @@ -80,37 +80,37 @@ bool ConfigureDiveComputer::saveXMLBackup(const QString &fileName, DeviceDetails writer.writeTextElement("Product", product); writer.writeEndElement(); writer.writeStartElement("Settings"); - writer.writeTextElement("CustomText", details->customText); + writer.writeTextElement("CustomText", details.customText); //Add gasses - writer.writeTextElement("Gas1", writeGasDetails(details->gas1)); - writer.writeTextElement("Gas2", writeGasDetails(details->gas2)); - writer.writeTextElement("Gas3", writeGasDetails(details->gas3)); - writer.writeTextElement("Gas4", writeGasDetails(details->gas4)); - writer.writeTextElement("Gas5", writeGasDetails(details->gas5)); + writer.writeTextElement("Gas1", writeGasDetails(details.gas1)); + writer.writeTextElement("Gas2", writeGasDetails(details.gas2)); + writer.writeTextElement("Gas3", writeGasDetails(details.gas3)); + writer.writeTextElement("Gas4", writeGasDetails(details.gas4)); + writer.writeTextElement("Gas5", writeGasDetails(details.gas5)); // //Add dil values - writer.writeTextElement("Dil1", writeGasDetails(details->dil1)); - writer.writeTextElement("Dil2", writeGasDetails(details->dil2)); - writer.writeTextElement("Dil3", writeGasDetails(details->dil3)); - writer.writeTextElement("Dil4", writeGasDetails(details->dil4)); - writer.writeTextElement("Dil5", writeGasDetails(details->dil5)); + writer.writeTextElement("Dil1", writeGasDetails(details.dil1)); + writer.writeTextElement("Dil2", writeGasDetails(details.dil2)); + writer.writeTextElement("Dil3", writeGasDetails(details.dil3)); + writer.writeTextElement("Dil4", writeGasDetails(details.dil4)); + writer.writeTextElement("Dil5", writeGasDetails(details.dil5)); //Add setpoint values QString sp1 = QString("%1,%2") - .arg(QString::number(details->sp1.sp), - QString::number(details->sp1.depth)); + .arg(QString::number(details.sp1.sp), + QString::number(details.sp1.depth)); QString sp2 = QString("%1,%2") - .arg(QString::number(details->sp2.sp), - QString::number(details->sp2.depth)); + .arg(QString::number(details.sp2.sp), + QString::number(details.sp2.depth)); QString sp3 = QString("%1,%2") - .arg(QString::number(details->sp3.sp), - QString::number(details->sp3.depth)); + .arg(QString::number(details.sp3.sp), + QString::number(details.sp3.depth)); QString sp4 = QString("%1,%2") - .arg(QString::number(details->sp4.sp), - QString::number(details->sp4.depth)); + .arg(QString::number(details.sp4.sp), + QString::number(details.sp4.depth)); QString sp5 = QString("%1,%2") - .arg(QString::number(details->sp5.sp), - QString::number(details->sp5.depth)); + .arg(QString::number(details.sp5.sp), + QString::number(details.sp5.depth)); writer.writeTextElement("SetPoint1", sp1); writer.writeTextElement("SetPoint2", sp2); writer.writeTextElement("SetPoint3", sp3); @@ -118,60 +118,60 @@ bool ConfigureDiveComputer::saveXMLBackup(const QString &fileName, DeviceDetails writer.writeTextElement("SetPoint5", sp5); //Other Settings - writer.writeTextElement("DiveMode", QString::number(details->diveMode)); - writer.writeTextElement("Saturation", QString::number(details->saturation)); - writer.writeTextElement("Desaturation", QString::number(details->desaturation)); - writer.writeTextElement("LastDeco", QString::number(details->lastDeco)); - writer.writeTextElement("Brightness", QString::number(details->brightness)); - writer.writeTextElement("Units", QString::number(details->units)); - writer.writeTextElement("SamplingRate", QString::number(details->samplingRate)); - writer.writeTextElement("Salinity", QString::number(details->salinity)); - writer.writeTextElement("DiveModeColor", QString::number(details->diveModeColor)); - writer.writeTextElement("Language", QString::number(details->language)); - writer.writeTextElement("DateFormat", QString::number(details->dateFormat)); - writer.writeTextElement("CompassGain", QString::number(details->compassGain)); - writer.writeTextElement("SafetyStop", QString::number(details->safetyStop)); - writer.writeTextElement("GfHigh", QString::number(details->gfHigh)); - writer.writeTextElement("GfLow", QString::number(details->gfLow)); - writer.writeTextElement("PressureSensorOffset", QString::number(details->pressureSensorOffset)); - writer.writeTextElement("PpO2Min", QString::number(details->ppO2Min)); - writer.writeTextElement("PpO2Max", QString::number(details->ppO2Max)); - writer.writeTextElement("FutureTTS", QString::number(details->futureTTS)); - writer.writeTextElement("CcrMode", QString::number(details->ccrMode)); - writer.writeTextElement("DecoType", QString::number(details->decoType)); - writer.writeTextElement("AGFSelectable", QString::number(details->aGFSelectable)); - writer.writeTextElement("AGFHigh", QString::number(details->aGFHigh)); - writer.writeTextElement("AGFLow", QString::number(details->aGFLow)); - writer.writeTextElement("CalibrationGas", QString::number(details->calibrationGas)); - writer.writeTextElement("FlipScreen", QString::number(details->flipScreen)); - writer.writeTextElement("SetPointFallback", QString::number(details->setPointFallback)); - writer.writeTextElement("LeftButtonSensitivity", QString::number(details->leftButtonSensitivity)); - writer.writeTextElement("RightButtonSensitivity", QString::number(details->rightButtonSensitivity)); - writer.writeTextElement("BottomGasConsumption", QString::number(details->bottomGasConsumption)); - writer.writeTextElement("DecoGasConsumption", QString::number(details->decoGasConsumption)); - writer.writeTextElement("ModWarning", QString::number(details->modWarning)); - writer.writeTextElement("DynamicAscendRate", QString::number(details->dynamicAscendRate)); - writer.writeTextElement("GraphicalSpeedIndicator", QString::number(details->graphicalSpeedIndicator)); - writer.writeTextElement("AlwaysShowppO2", QString::number(details->alwaysShowppO2)); + writer.writeTextElement("DiveMode", QString::number(details.diveMode)); + writer.writeTextElement("Saturation", QString::number(details.saturation)); + writer.writeTextElement("Desaturation", QString::number(details.desaturation)); + writer.writeTextElement("LastDeco", QString::number(details.lastDeco)); + writer.writeTextElement("Brightness", QString::number(details.brightness)); + writer.writeTextElement("Units", QString::number(details.units)); + writer.writeTextElement("SamplingRate", QString::number(details.samplingRate)); + writer.writeTextElement("Salinity", QString::number(details.salinity)); + writer.writeTextElement("DiveModeColor", QString::number(details.diveModeColor)); + writer.writeTextElement("Language", QString::number(details.language)); + writer.writeTextElement("DateFormat", QString::number(details.dateFormat)); + writer.writeTextElement("CompassGain", QString::number(details.compassGain)); + writer.writeTextElement("SafetyStop", QString::number(details.safetyStop)); + writer.writeTextElement("GfHigh", QString::number(details.gfHigh)); + writer.writeTextElement("GfLow", QString::number(details.gfLow)); + writer.writeTextElement("PressureSensorOffset", QString::number(details.pressureSensorOffset)); + writer.writeTextElement("PpO2Min", QString::number(details.ppO2Min)); + writer.writeTextElement("PpO2Max", QString::number(details.ppO2Max)); + writer.writeTextElement("FutureTTS", QString::number(details.futureTTS)); + writer.writeTextElement("CcrMode", QString::number(details.ccrMode)); + writer.writeTextElement("DecoType", QString::number(details.decoType)); + writer.writeTextElement("AGFSelectable", QString::number(details.aGFSelectable)); + writer.writeTextElement("AGFHigh", QString::number(details.aGFHigh)); + writer.writeTextElement("AGFLow", QString::number(details.aGFLow)); + writer.writeTextElement("CalibrationGas", QString::number(details.calibrationGas)); + writer.writeTextElement("FlipScreen", QString::number(details.flipScreen)); + writer.writeTextElement("SetPointFallback", QString::number(details.setPointFallback)); + writer.writeTextElement("LeftButtonSensitivity", QString::number(details.leftButtonSensitivity)); + writer.writeTextElement("RightButtonSensitivity", QString::number(details.rightButtonSensitivity)); + writer.writeTextElement("BottomGasConsumption", QString::number(details.bottomGasConsumption)); + writer.writeTextElement("DecoGasConsumption", QString::number(details.decoGasConsumption)); + writer.writeTextElement("ModWarning", QString::number(details.modWarning)); + writer.writeTextElement("DynamicAscendRate", QString::number(details.dynamicAscendRate)); + writer.writeTextElement("GraphicalSpeedIndicator", QString::number(details.graphicalSpeedIndicator)); + writer.writeTextElement("AlwaysShowppO2", QString::number(details.alwaysShowppO2)); // Suunto vyper settings. - writer.writeTextElement("Altitude", QString::number(details->altitude)); - writer.writeTextElement("PersonalSafety", QString::number(details->personalSafety)); - writer.writeTextElement("TimeFormat", QString::number(details->timeFormat)); + writer.writeTextElement("Altitude", QString::number(details.altitude)); + writer.writeTextElement("PersonalSafety", QString::number(details.personalSafety)); + writer.writeTextElement("TimeFormat", QString::number(details.timeFormat)); writer.writeStartElement("Light"); - writer.writeAttribute("enabled", QString::number(details->lightEnabled)); - writer.writeCharacters(QString::number(details->light)); + writer.writeAttribute("enabled", QString::number(details.lightEnabled)); + writer.writeCharacters(QString::number(details.light)); writer.writeEndElement(); writer.writeStartElement("AlarmTime"); - writer.writeAttribute("enabled", QString::number(details->alarmTimeEnabled)); - writer.writeCharacters(QString::number(details->alarmTime)); + writer.writeAttribute("enabled", QString::number(details.alarmTimeEnabled)); + writer.writeCharacters(QString::number(details.alarmTime)); writer.writeEndElement(); writer.writeStartElement("AlarmDepth"); - writer.writeAttribute("enabled", QString::number(details->alarmDepthEnabled)); - writer.writeCharacters(QString::number(details->alarmDepth)); + writer.writeAttribute("enabled", QString::number(details.alarmDepthEnabled)); + writer.writeCharacters(QString::number(details.alarmDepth)); writer.writeEndElement(); writer.writeEndElement(); @@ -192,7 +192,7 @@ bool ConfigureDiveComputer::saveXMLBackup(const QString &fileName, DeviceDetails return true; } -bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDetails *details) +bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDetails &details) { QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { @@ -211,7 +211,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta QString keyString = reader.text().toString(); if (settingName == "CustomText") - details->customText = keyString; + details.customText = keyString; if (settingName == "Gas1") { QStringList gasData = keyString.split(","); @@ -220,7 +220,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta gas1.helium = gasData.at(1).toInt(); gas1.type = gasData.at(2).toInt(); gas1.depth = gasData.at(3).toInt(); - details->gas1 = gas1; + details.gas1 = gas1; } if (settingName == "Gas2") { @@ -230,7 +230,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta gas2.helium = gasData.at(1).toInt(); gas2.type = gasData.at(2).toInt(); gas2.depth = gasData.at(3).toInt(); - details->gas2 = gas2; + details.gas2 = gas2; } if (settingName == "Gas3") { @@ -240,7 +240,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta gas3.helium = gasData.at(1).toInt(); gas3.type = gasData.at(2).toInt(); gas3.depth = gasData.at(3).toInt(); - details->gas3 = gas3; + details.gas3 = gas3; } if (settingName == "Gas4") { @@ -250,7 +250,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta gas4.helium = gasData.at(1).toInt(); gas4.type = gasData.at(2).toInt(); gas4.depth = gasData.at(3).toInt(); - details->gas4 = gas4; + details.gas4 = gas4; } if (settingName == "Gas5") { @@ -260,7 +260,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta gas5.helium = gasData.at(1).toInt(); gas5.type = gasData.at(2).toInt(); gas5.depth = gasData.at(3).toInt(); - details->gas5 = gas5; + details.gas5 = gas5; } if (settingName == "Dil1") { @@ -270,7 +270,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta dil1.helium = dilData.at(1).toInt(); dil1.type = dilData.at(2).toInt(); dil1.depth = dilData.at(3).toInt(); - details->dil1 = dil1; + details.dil1 = dil1; } if (settingName == "Dil2") { @@ -280,7 +280,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta dil2.helium = dilData.at(1).toInt(); dil2.type = dilData.at(2).toInt(); dil2.depth = dilData.at(3).toInt(); - details->dil1 = dil2; + details.dil1 = dil2; } if (settingName == "Dil3") { @@ -290,7 +290,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta dil3.helium = dilData.at(1).toInt(); dil3.type = dilData.at(2).toInt(); dil3.depth = dilData.at(3).toInt(); - details->dil3 = dil3; + details.dil3 = dil3; } if (settingName == "Dil4") { @@ -300,7 +300,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta dil4.helium = dilData.at(1).toInt(); dil4.type = dilData.at(2).toInt(); dil4.depth = dilData.at(3).toInt(); - details->dil4 = dil4; + details.dil4 = dil4; } if (settingName == "Dil5") { @@ -310,7 +310,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta dil5.helium = dilData.at(1).toInt(); dil5.type = dilData.at(2).toInt(); dil5.depth = dilData.at(3).toInt(); - details->dil5 = dil5; + details.dil5 = dil5; } if (settingName == "SetPoint1") { @@ -318,7 +318,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta setpoint sp1; sp1.sp = spData.at(0).toInt(); sp1.depth = spData.at(1).toInt(); - details->sp1 = sp1; + details.sp1 = sp1; } if (settingName == "SetPoint2") { @@ -326,7 +326,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta setpoint sp2; sp2.sp = spData.at(0).toInt(); sp2.depth = spData.at(1).toInt(); - details->sp2 = sp2; + details.sp2 = sp2; } if (settingName == "SetPoint3") { @@ -334,7 +334,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta setpoint sp3; sp3.sp = spData.at(0).toInt(); sp3.depth = spData.at(1).toInt(); - details->sp3 = sp3; + details.sp3 = sp3; } if (settingName == "SetPoint4") { @@ -342,7 +342,7 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta setpoint sp4; sp4.sp = spData.at(0).toInt(); sp4.depth = spData.at(1).toInt(); - details->sp4 = sp4; + details.sp4 = sp4; } if (settingName == "SetPoint5") { @@ -350,139 +350,139 @@ bool ConfigureDiveComputer::restoreXMLBackup(const QString &fileName, DeviceDeta setpoint sp5; sp5.sp = spData.at(0).toInt(); sp5.depth = spData.at(1).toInt(); - details->sp5 = sp5; + details.sp5 = sp5; } if (settingName == "Saturation") - details->saturation = keyString.toInt(); + details.saturation = keyString.toInt(); if (settingName == "Desaturation") - details->desaturation = keyString.toInt(); + details.desaturation = keyString.toInt(); if (settingName == "DiveMode") - details->diveMode = keyString.toInt(); + details.diveMode = keyString.toInt(); if (settingName == "LastDeco") - details->lastDeco = keyString.toInt(); + details.lastDeco = keyString.toInt(); if (settingName == "Brightness") - details->brightness = keyString.toInt(); + details.brightness = keyString.toInt(); if (settingName == "Units") - details->units = keyString.toInt(); + details.units = keyString.toInt(); if (settingName == "SamplingRate") - details->samplingRate = keyString.toInt(); + details.samplingRate = keyString.toInt(); if (settingName == "Salinity") - details->salinity = keyString.toInt(); + details.salinity = keyString.toInt(); if (settingName == "DiveModeColour") - details->diveModeColor = keyString.toInt(); + details.diveModeColor = keyString.toInt(); if (settingName == "Language") - details->language = keyString.toInt(); + details.language = keyString.toInt(); if (settingName == "DateFormat") - details->dateFormat = keyString.toInt(); + details.dateFormat = keyString.toInt(); if (settingName == "CompassGain") - details->compassGain = keyString.toInt(); + details.compassGain = keyString.toInt(); if (settingName == "SafetyStop") - details->safetyStop = keyString.toInt(); + details.safetyStop = keyString.toInt(); if (settingName == "GfHigh") - details->gfHigh = keyString.toInt(); + details.gfHigh = keyString.toInt(); if (settingName == "GfLow") - details->gfLow = keyString.toInt(); + details.gfLow = keyString.toInt(); if (settingName == "PressureSensorOffset") - details->pressureSensorOffset = keyString.toInt(); + details.pressureSensorOffset = keyString.toInt(); if (settingName == "PpO2Min") - details->ppO2Min = keyString.toInt(); + details.ppO2Min = keyString.toInt(); if (settingName == "PpO2Max") - details->ppO2Max = keyString.toInt(); + details.ppO2Max = keyString.toInt(); if (settingName == "FutureTTS") - details->futureTTS = keyString.toInt(); + details.futureTTS = keyString.toInt(); if (settingName == "CcrMode") - details->ccrMode = keyString.toInt(); + details.ccrMode = keyString.toInt(); if (settingName == "DecoType") - details->decoType = keyString.toInt(); + details.decoType = keyString.toInt(); if (settingName == "AGFSelectable") - details->aGFSelectable = keyString.toInt(); + details.aGFSelectable = keyString.toInt(); if (settingName == "AGFHigh") - details->aGFHigh = keyString.toInt(); + details.aGFHigh = keyString.toInt(); if (settingName == "AGFLow") - details->aGFLow = keyString.toInt(); + details.aGFLow = keyString.toInt(); if (settingName == "CalibrationGas") - details->calibrationGas = keyString.toInt(); + details.calibrationGas = keyString.toInt(); if (settingName == "FlipScreen") - details->flipScreen = keyString.toInt(); + details.flipScreen = keyString.toInt(); if (settingName == "SetPointFallback") - details->setPointFallback = keyString.toInt(); + details.setPointFallback = keyString.toInt(); if (settingName == "LeftButtonSensitivity") - details->leftButtonSensitivity = keyString.toInt(); + details.leftButtonSensitivity = keyString.toInt(); if (settingName == "RightButtonSensitivity") - details->rightButtonSensitivity = keyString.toInt(); + details.rightButtonSensitivity = keyString.toInt(); if (settingName == "BottomGasConsumption") - details->bottomGasConsumption = keyString.toInt(); + details.bottomGasConsumption = keyString.toInt(); if (settingName == "DecoGasConsumption") - details->decoGasConsumption = keyString.toInt(); + details.decoGasConsumption = keyString.toInt(); if (settingName == "ModWarning") - details->modWarning = keyString.toInt(); + details.modWarning = keyString.toInt(); if (settingName == "DynamicAscendRate") - details->dynamicAscendRate = keyString.toInt(); + details.dynamicAscendRate = keyString.toInt(); if (settingName == "GraphicalSpeedIndicator") - details->graphicalSpeedIndicator = keyString.toInt(); + details.graphicalSpeedIndicator = keyString.toInt(); if (settingName == "AlwaysShowppO2") - details->alwaysShowppO2 = keyString.toInt(); + details.alwaysShowppO2 = keyString.toInt(); if (settingName == "Altitude") - details->altitude = keyString.toInt(); + details.altitude = keyString.toInt(); if (settingName == "PersonalSafety") - details->personalSafety = keyString.toInt(); + details.personalSafety = keyString.toInt(); if (settingName == "TimeFormat") - details->timeFormat = keyString.toInt(); + details.timeFormat = keyString.toInt(); if (settingName == "Light") { if (attributes.hasAttribute("enabled")) - details->lightEnabled = attributes.value("enabled").toString().toInt(); - details->light = keyString.toInt(); + details.lightEnabled = attributes.value("enabled").toString().toInt(); + details.light = keyString.toInt(); } if (settingName == "AlarmDepth") { if (attributes.hasAttribute("enabled")) - details->alarmDepthEnabled = attributes.value("enabled").toString().toInt(); - details->alarmDepth = keyString.toInt(); + details.alarmDepthEnabled = attributes.value("enabled").toString().toInt(); + details.alarmDepth = keyString.toInt(); } if (settingName == "AlarmTime") { if (attributes.hasAttribute("enabled")) - details->alarmTimeEnabled = attributes.value("enabled").toString().toInt(); - details->alarmTime = keyString.toInt(); + details.alarmTimeEnabled = attributes.value("enabled").toString().toInt(); + details.alarmTime = keyString.toInt(); } } reader.readNext(); diff --git a/core/configuredivecomputer.h b/core/configuredivecomputer.h index 3abe72b9e..b4d6f79fe 100644 --- a/core/configuredivecomputer.h +++ b/core/configuredivecomputer.h @@ -32,10 +32,10 @@ public: QString lastError; states currentState; - void saveDeviceDetails(DeviceDetails *details, device_data_t *data); + void saveDeviceDetails(const DeviceDetails &details, device_data_t *data); void fetchDeviceDetails(); - bool saveXMLBackup(const QString &fileName, DeviceDetails *details, device_data_t *data); - bool restoreXMLBackup(const QString &fileName, DeviceDetails *details); + bool saveXMLBackup(const QString &fileName, const DeviceDetails &details, device_data_t *data); + bool restoreXMLBackup(const QString &fileName, DeviceDetails &details); void startFirmwareUpdate(const QString &fileName, device_data_t *data, bool forceUpdate); void resetSettings(device_data_t *data); @@ -48,7 +48,7 @@ signals: void message(QString msg); void error(QString err); void stateChanged(states newState); - void deviceDetailsChanged(DeviceDetails *newDetails); + void deviceDetailsChanged(DeviceDetails newDetails); private: ReadSettingsThread *readThread; diff --git a/core/configuredivecomputerthreads.cpp b/core/configuredivecomputerthreads.cpp index 72ef227e4..db58a2dea 100644 --- a/core/configuredivecomputerthreads.cpp +++ b/core/configuredivecomputerthreads.cpp @@ -148,7 +148,7 @@ static void write_ostc_cf(unsigned char data[], unsigned char cf, unsigned char progress_cb(device, DC_EVENT_PROGRESS, &progress, userdata); \ } while (0) -static dc_status_t read_suunto_vyper_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t read_suunto_vyper_settings(dc_device_t *device, DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { unsigned char data[SUUNTO_VYPER_CUSTOM_TEXT_LENGTH + 1]; dc_status_t rc; @@ -163,7 +163,7 @@ static dc_status_t read_suunto_vyper_settings(dc_device_t *device, DeviceDetails if (desc) { // We found a supported device // we can safely proceed with reading/writing to this device. - m_deviceDetails->model = dc_descriptor_get_product(desc); + deviceDetails.model = dc_descriptor_get_product(desc); dc_descriptor_free(desc); } else { return DC_STATUS_UNSUPPORTED; @@ -176,86 +176,86 @@ static dc_status_t read_suunto_vyper_settings(dc_device_t *device, DeviceDetails return rc; // in ft * 128.0 int depth = feet_to_mm(data[0] << 8 ^ data[1]) / 128; - m_deviceDetails->maxDepth = depth; + deviceDetails.maxDepth = depth; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_TOTAL_TIME, data, 2); if (rc != DC_STATUS_SUCCESS) return rc; int total_time = data[0] << 8 ^ data[1]; - m_deviceDetails->totalTime = total_time; + deviceDetails.totalTime = total_time; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_NUMBEROFDIVES, data, 2); if (rc != DC_STATUS_SUCCESS) return rc; int number_of_dives = data[0] << 8 ^ data[1]; - m_deviceDetails->numberOfDives = number_of_dives; + deviceDetails.numberOfDives = number_of_dives; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_FIRMWARE, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->firmwareVersion = QString::number(data[0]) + ".0.0"; + deviceDetails.firmwareVersion = QString::number(data[0]) + ".0.0"; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_SERIALNUMBER, data, 4); if (rc != DC_STATUS_SUCCESS) return rc; int serial_number = data[0] * 1000000 + data[1] * 10000 + data[2] * 100 + data[3]; - m_deviceDetails->serialNo = QString::number(serial_number); + deviceDetails.serialNo = QString::number(serial_number); EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_CUSTOM_TEXT, data, SUUNTO_VYPER_CUSTOM_TEXT_LENGTH); if (rc != DC_STATUS_SUCCESS) return rc; data[SUUNTO_VYPER_CUSTOM_TEXT_LENGTH] = 0; - m_deviceDetails->customText = (const char *)data; + deviceDetails.customText = (const char *)data; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_SAMPLING_RATE, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->samplingRate = (int)data[0]; + deviceDetails.samplingRate = (int)data[0]; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_ALTITUDE_SAFETY, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->altitude = data[0] & 0x03; - m_deviceDetails->personalSafety = data[0] >> 2 & 0x03; + deviceDetails.altitude = data[0] & 0x03; + deviceDetails.personalSafety = data[0] >> 2 & 0x03; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_TIMEFORMAT, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->timeFormat = data[0] & 0x01; + deviceDetails.timeFormat = data[0] & 0x01; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_UNITS, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->units = data[0] & 0x01; + deviceDetails.units = data[0] & 0x01; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_MODEL, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->diveMode = data[0] & 0x03; + deviceDetails.diveMode = data[0] & 0x03; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_LIGHT, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->lightEnabled = data[0] >> 7; - m_deviceDetails->light = data[0] & 0x7F; + deviceDetails.lightEnabled = data[0] >> 7; + deviceDetails.light = data[0] & 0x7F; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_ALARM_DEPTH_TIME, data, 1); if (rc != DC_STATUS_SUCCESS) return rc; - m_deviceDetails->alarmTimeEnabled = data[0] & 0x01; - m_deviceDetails->alarmDepthEnabled = data[0] >> 1 & 0x01; + deviceDetails.alarmTimeEnabled = data[0] & 0x01; + deviceDetails.alarmDepthEnabled = data[0] >> 1 & 0x01; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_ALARM_TIME, data, 2); @@ -263,22 +263,22 @@ static dc_status_t read_suunto_vyper_settings(dc_device_t *device, DeviceDetails return rc; int time = data[0] << 8 ^ data[1]; // The stinger stores alarm time in seconds instead of minutes. - if (m_deviceDetails->model == "Stinger") + if (deviceDetails.model == "Stinger") time /= 60; - m_deviceDetails->alarmTime = time; + deviceDetails.alarmTime = time; EMIT_PROGRESS(); rc = dc_device_read(device, SUUNTO_VYPER_ALARM_DEPTH, data, 2); if (rc != DC_STATUS_SUCCESS) return rc; depth = feet_to_mm(data[0] << 8 ^ data[1]) / 128; - m_deviceDetails->alarmDepth = depth; + deviceDetails.alarmDepth = depth; EMIT_PROGRESS(); return DC_STATUS_SUCCESS; } -static dc_status_t write_suunto_vyper_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t write_suunto_vyper_settings(dc_device_t *device, DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { dc_status_t rc; dc_event_progress_t progress; @@ -290,62 +290,62 @@ static dc_status_t write_suunto_vyper_settings(dc_device_t *device, DeviceDetail // Maybee we should read the model from the device to sanity check it here too.. // For now we just check that we actually read a device before writing to one. - if (m_deviceDetails->model == "") + if (deviceDetails.model == "") return DC_STATUS_UNSUPPORTED; rc = dc_device_write(device, SUUNTO_VYPER_CUSTOM_TEXT, // Convert the customText to a 30 char wide padded with " " - (const unsigned char *)qPrintable(QString("%1").arg(m_deviceDetails->customText, -30, QChar(' '))), + (const unsigned char *)qPrintable(QString("%1").arg(deviceDetails.customText, -30, QChar(' '))), SUUNTO_VYPER_CUSTOM_TEXT_LENGTH); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->samplingRate; + data = deviceDetails.samplingRate; rc = dc_device_write(device, SUUNTO_VYPER_SAMPLING_RATE, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->personalSafety << 2 ^ m_deviceDetails->altitude; + data = deviceDetails.personalSafety << 2 ^ deviceDetails.altitude; rc = dc_device_write(device, SUUNTO_VYPER_ALTITUDE_SAFETY, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->timeFormat; + data = deviceDetails.timeFormat; rc = dc_device_write(device, SUUNTO_VYPER_TIMEFORMAT, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->units; + data = deviceDetails.units; rc = dc_device_write(device, SUUNTO_VYPER_UNITS, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->diveMode; + data = deviceDetails.diveMode; rc = dc_device_write(device, SUUNTO_VYPER_MODEL, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->lightEnabled << 7 ^ (m_deviceDetails->light & 0x7F); + data = deviceDetails.lightEnabled << 7 ^ (deviceDetails.light & 0x7F); rc = dc_device_write(device, SUUNTO_VYPER_LIGHT, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - data = m_deviceDetails->alarmDepthEnabled << 1 ^ m_deviceDetails->alarmTimeEnabled; + data = deviceDetails.alarmDepthEnabled << 1 ^ deviceDetails.alarmTimeEnabled; rc = dc_device_write(device, SUUNTO_VYPER_ALARM_DEPTH_TIME, &data, 1); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); // The stinger stores alarm time in seconds instead of minutes. - time = m_deviceDetails->alarmTime; - if (m_deviceDetails->model == "Stinger") + time = deviceDetails.alarmTime; + if (deviceDetails.model == "Stinger") time *= 60; data2[0] = time >> 8; data2[1] = time & 0xFF; @@ -354,14 +354,14 @@ static dc_status_t write_suunto_vyper_settings(dc_device_t *device, DeviceDetail return rc; EMIT_PROGRESS(); - data2[0] = (int)(mm_to_feet(m_deviceDetails->alarmDepth) * 128) >> 8; - data2[1] = (int)(mm_to_feet(m_deviceDetails->alarmDepth) * 128) & 0x0FF; + data2[0] = (int)(mm_to_feet(deviceDetails.alarmDepth) * 128) >> 8; + data2[1] = (int)(mm_to_feet(deviceDetails.alarmDepth) * 128) & 0x0FF; rc = dc_device_write(device, SUUNTO_VYPER_ALARM_DEPTH, data2, 2); EMIT_PROGRESS(); return rc; } -static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { // This code is really similar to the OSTC3 code, but there are minor // differences in what the data means, and how to communicate with the @@ -426,11 +426,11 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev gas5.depth = gasData[3]; EMIT_PROGRESS(); - m_deviceDetails->gas1 = gas1; - m_deviceDetails->gas2 = gas2; - m_deviceDetails->gas3 = gas3; - m_deviceDetails->gas4 = gas4; - m_deviceDetails->gas5 = gas5; + deviceDetails.gas1 = gas1; + deviceDetails.gas2 = gas2; + deviceDetails.gas3 = gas3; + deviceDetails.gas4 = gas4; + deviceDetails.gas5 = gas5; EMIT_PROGRESS(); //Read Dil Values @@ -486,11 +486,11 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev dil5.depth = dilData[3]; EMIT_PROGRESS(); - m_deviceDetails->dil1 = dil1; - m_deviceDetails->dil2 = dil2; - m_deviceDetails->dil3 = dil3; - m_deviceDetails->dil4 = dil4; - m_deviceDetails->dil5 = dil5; + deviceDetails.dil1 = dil1; + deviceDetails.dil2 = dil2; + deviceDetails.dil3 = dil3; + deviceDetails.dil4 = dil4; + deviceDetails.dil5 = dil5; //Read setpoint Values setpoint sp1; @@ -535,11 +535,11 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev sp5.depth = spData[1]; EMIT_PROGRESS(); - m_deviceDetails->sp1 = sp1; - m_deviceDetails->sp2 = sp2; - m_deviceDetails->sp3 = sp3; - m_deviceDetails->sp4 = sp4; - m_deviceDetails->sp5 = sp5; + deviceDetails.sp1 = sp1; + deviceDetails.sp2 = sp2; + deviceDetails.sp3 = sp3; + deviceDetails.sp4 = sp4; + deviceDetails.sp5 = sp5; //Read other settings unsigned char uData[4] = { 0 }; @@ -549,7 +549,7 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev rc = hw_ostc3_device_config_read(device, _OSTC4_SETTING, uData, sizeof(uData)); \ if (rc != DC_STATUS_SUCCESS) \ return rc; \ - m_deviceDetails->_DEVICE_DETAIL = uData[0]; \ + deviceDetails._DEVICE_DETAIL = uData[0]; \ EMIT_PROGRESS(); \ } while (0) @@ -597,14 +597,14 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev if (rc != DC_STATUS_SUCCESS) return rc; // OSTC3 stores the pressureSensorOffset in two-complement - m_deviceDetails->pressureSensorOffset = (signed char)uData[0]; + deviceDetails.pressureSensorOffset = (signed char)uData[0]; EMIT_PROGRESS(); rc = hw_ostc3_device_config_read(device, OSTC3_TEMP_SENSOR_OFFSET, uData, sizeof(uData)); if (rc != DC_STATUS_SUCCESS) return rc; // OSTC3 stores the tempSensorOffset in two-complement - m_deviceDetails->tempSensorOffset = (signed char)uData[0]; + deviceDetails.tempSensorOffset = (signed char)uData[0]; EMIT_PROGRESS(); //read firmware settings @@ -613,22 +613,22 @@ static dc_status_t read_ostc4_settings(dc_device_t *device, DeviceDetails *m_dev if (rc != DC_STATUS_SUCCESS) return rc; int serial = fData[0] + (fData[1] << 8); - m_deviceDetails->serialNo = QString::number(serial); + deviceDetails.serialNo = QString::number(serial); unsigned char X, Y, Z, beta; unsigned int firmwareOnDevice = (fData[3] << 8) + fData[2]; X = (firmwareOnDevice & 0xF800) >> 11; Y = (firmwareOnDevice & 0x07C0) >> 6; Z = (firmwareOnDevice & 0x003E) >> 1; beta = firmwareOnDevice & 0x0001; - m_deviceDetails->firmwareVersion = QString("%1.%2.%3%4").arg(X).arg(Y).arg(Z).arg(beta?" beta":""); + deviceDetails.firmwareVersion = QString("%1.%2.%3%4").arg(X).arg(Y).arg(Z).arg(beta?" beta":""); QByteArray ar((char *)fData + 4, 60); - m_deviceDetails->customText = ar.trimmed(); + deviceDetails.customText = ar.trimmed(); EMIT_PROGRESS(); return rc; } -static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t write_ostc4_settings(dc_device_t *device, const DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { // This code is really similar to the OSTC3 code, but there are minor // differences in what the data means, and how to communicate with the @@ -640,38 +640,38 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de //write gas values unsigned char gas1Data[4] = { - m_deviceDetails->gas1.oxygen, - m_deviceDetails->gas1.helium, - m_deviceDetails->gas1.type, - m_deviceDetails->gas1.depth + deviceDetails.gas1.oxygen, + deviceDetails.gas1.helium, + deviceDetails.gas1.type, + deviceDetails.gas1.depth }; unsigned char gas2Data[4] = { - m_deviceDetails->gas2.oxygen, - m_deviceDetails->gas2.helium, - m_deviceDetails->gas2.type, - m_deviceDetails->gas2.depth + deviceDetails.gas2.oxygen, + deviceDetails.gas2.helium, + deviceDetails.gas2.type, + deviceDetails.gas2.depth }; unsigned char gas3Data[4] = { - m_deviceDetails->gas3.oxygen, - m_deviceDetails->gas3.helium, - m_deviceDetails->gas3.type, - m_deviceDetails->gas3.depth + deviceDetails.gas3.oxygen, + deviceDetails.gas3.helium, + deviceDetails.gas3.type, + deviceDetails.gas3.depth }; unsigned char gas4Data[4] = { - m_deviceDetails->gas4.oxygen, - m_deviceDetails->gas4.helium, - m_deviceDetails->gas4.type, - m_deviceDetails->gas4.depth + deviceDetails.gas4.oxygen, + deviceDetails.gas4.helium, + deviceDetails.gas4.type, + deviceDetails.gas4.depth }; unsigned char gas5Data[4] = { - m_deviceDetails->gas5.oxygen, - m_deviceDetails->gas5.helium, - m_deviceDetails->gas5.type, - m_deviceDetails->gas5.depth + deviceDetails.gas5.oxygen, + deviceDetails.gas5.helium, + deviceDetails.gas5.type, + deviceDetails.gas5.depth }; //gas 1 rc = hw_ostc3_device_config_write(device, OSTC3_GAS1, gas1Data, sizeof(gas1Data)); @@ -701,28 +701,28 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de //write setpoint values unsigned char sp1Data[4] = { - m_deviceDetails->sp1.sp, - m_deviceDetails->sp1.depth + deviceDetails.sp1.sp, + deviceDetails.sp1.depth }; unsigned char sp2Data[4] = { - m_deviceDetails->sp2.sp, - m_deviceDetails->sp2.depth + deviceDetails.sp2.sp, + deviceDetails.sp2.depth }; unsigned char sp3Data[4] = { - m_deviceDetails->sp3.sp, - m_deviceDetails->sp3.depth + deviceDetails.sp3.sp, + deviceDetails.sp3.depth }; unsigned char sp4Data[4] = { - m_deviceDetails->sp4.sp, - m_deviceDetails->sp4.depth + deviceDetails.sp4.sp, + deviceDetails.sp4.depth }; unsigned char sp5Data[4] = { - m_deviceDetails->sp5.sp, - m_deviceDetails->sp5.depth + deviceDetails.sp5.sp, + deviceDetails.sp5.depth }; //sp 1 @@ -753,38 +753,38 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de //write dil values unsigned char dil1Data[4] = { - m_deviceDetails->dil1.oxygen, - m_deviceDetails->dil1.helium, - m_deviceDetails->dil1.type, - m_deviceDetails->dil1.depth + deviceDetails.dil1.oxygen, + deviceDetails.dil1.helium, + deviceDetails.dil1.type, + deviceDetails.dil1.depth }; unsigned char dil2Data[4] = { - m_deviceDetails->dil2.oxygen, - m_deviceDetails->dil2.helium, - m_deviceDetails->dil2.type, - m_deviceDetails->dil2.depth + deviceDetails.dil2.oxygen, + deviceDetails.dil2.helium, + deviceDetails.dil2.type, + deviceDetails.dil2.depth }; unsigned char dil3Data[4] = { - m_deviceDetails->dil3.oxygen, - m_deviceDetails->dil3.helium, - m_deviceDetails->dil3.type, - m_deviceDetails->dil3.depth + deviceDetails.dil3.oxygen, + deviceDetails.dil3.helium, + deviceDetails.dil3.type, + deviceDetails.dil3.depth }; unsigned char dil4Data[4] = { - m_deviceDetails->dil4.oxygen, - m_deviceDetails->dil4.helium, - m_deviceDetails->dil4.type, - m_deviceDetails->dil4.depth + deviceDetails.dil4.oxygen, + deviceDetails.dil4.helium, + deviceDetails.dil4.type, + deviceDetails.dil4.depth }; unsigned char dil5Data[4] = { - m_deviceDetails->dil5.oxygen, - m_deviceDetails->dil5.helium, - m_deviceDetails->dil5.type, - m_deviceDetails->dil5.depth + deviceDetails.dil5.oxygen, + deviceDetails.dil5.helium, + deviceDetails.dil5.type, + deviceDetails.dil5.depth }; //dil 1 rc = hw_ostc3_device_config_write(device, OSTC3_DIL1, dil1Data, sizeof(gas1Data)); @@ -814,7 +814,7 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de //write general settings //custom text - rc = hw_ostc3_device_customtext(device, qPrintable(m_deviceDetails->customText)); + rc = hw_ostc3_device_customtext(device, qPrintable(deviceDetails.customText)); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); @@ -822,7 +822,7 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de unsigned char data[4] = { 0 }; #define WRITE_SETTING(_OSTC4_SETTING, _DEVICE_DETAIL) \ do { \ - data[0] = m_deviceDetails->_DEVICE_DETAIL; \ + data[0] = deviceDetails._DEVICE_DETAIL; \ rc = hw_ostc3_device_config_write(device, _OSTC4_SETTING, data, sizeof(data)); \ if (rc != DC_STATUS_SUCCESS) \ return rc; \ @@ -870,14 +870,14 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de #undef WRITE_SETTING // OSTC3 stores the pressureSensorOffset in two-complement - data[0] = (unsigned char)m_deviceDetails->pressureSensorOffset; + data[0] = (unsigned char)deviceDetails.pressureSensorOffset; rc = hw_ostc3_device_config_write(device, OSTC3_PRESSURE_SENSOR_OFFSET, data, sizeof(data)); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); // OSTC3 stores the tempSensorOffset in two-complement - data[0] = (unsigned char)m_deviceDetails->tempSensorOffset; + data[0] = (unsigned char)deviceDetails.tempSensorOffset; rc = hw_ostc3_device_config_write(device, OSTC3_TEMP_SENSOR_OFFSET, data, sizeof(data)); if (rc != DC_STATUS_SUCCESS) return rc; @@ -885,7 +885,7 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de //sync date and time - if (m_deviceDetails->syncTime) { + if (deviceDetails.syncTime) { dc_datetime_t now; dc_datetime_localtime(&now, dc_datetime_now()); @@ -897,7 +897,7 @@ static dc_status_t write_ostc4_settings(dc_device_t *device, DeviceDetails *m_de return rc; } -static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { dc_status_t rc; dc_event_progress_t progress; @@ -912,14 +912,14 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev dc_descriptor_t *desc = get_descriptor(DC_FAMILY_HW_OSTC3, hardware[0]); if (desc) { - m_deviceDetails->model = dc_descriptor_get_product(desc); + deviceDetails.model = dc_descriptor_get_product(desc); dc_descriptor_free(desc); } else { return DC_STATUS_UNSUPPORTED; } - if (m_deviceDetails->model == "OSTC 4") - return read_ostc4_settings(device, m_deviceDetails, progress_cb, userdata); + if (deviceDetails.model == "OSTC 4") + return read_ostc4_settings(device, deviceDetails, progress_cb, userdata); EMIT_PROGRESS(); @@ -976,11 +976,11 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev gas5.depth = gasData[3]; EMIT_PROGRESS(); - m_deviceDetails->gas1 = gas1; - m_deviceDetails->gas2 = gas2; - m_deviceDetails->gas3 = gas3; - m_deviceDetails->gas4 = gas4; - m_deviceDetails->gas5 = gas5; + deviceDetails.gas1 = gas1; + deviceDetails.gas2 = gas2; + deviceDetails.gas3 = gas3; + deviceDetails.gas4 = gas4; + deviceDetails.gas5 = gas5; EMIT_PROGRESS(); //Read Dil Values @@ -1036,11 +1036,11 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev dil5.depth = dilData[3]; EMIT_PROGRESS(); - m_deviceDetails->dil1 = dil1; - m_deviceDetails->dil2 = dil2; - m_deviceDetails->dil3 = dil3; - m_deviceDetails->dil4 = dil4; - m_deviceDetails->dil5 = dil5; + deviceDetails.dil1 = dil1; + deviceDetails.dil2 = dil2; + deviceDetails.dil3 = dil3; + deviceDetails.dil4 = dil4; + deviceDetails.dil5 = dil5; //Read setpoint Values setpoint sp1; @@ -1085,11 +1085,11 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev sp5.depth = spData[1]; EMIT_PROGRESS(); - m_deviceDetails->sp1 = sp1; - m_deviceDetails->sp2 = sp2; - m_deviceDetails->sp3 = sp3; - m_deviceDetails->sp4 = sp4; - m_deviceDetails->sp5 = sp5; + deviceDetails.sp1 = sp1; + deviceDetails.sp2 = sp2; + deviceDetails.sp3 = sp3; + deviceDetails.sp4 = sp4; + deviceDetails.sp5 = sp5; //Read other settings unsigned char uData[1] = { 0 }; @@ -1099,7 +1099,7 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev rc = hw_ostc3_device_config_read(device, _OSTC3_SETTING, uData, sizeof(uData)); \ if (rc != DC_STATUS_SUCCESS) \ return rc; \ - m_deviceDetails->_DEVICE_DETAIL = uData[0]; \ + deviceDetails._DEVICE_DETAIL = uData[0]; \ EMIT_PROGRESS(); \ } while (0) @@ -1147,14 +1147,14 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev if (rc != DC_STATUS_SUCCESS) return rc; // OSTC3 stores the pressureSensorOffset in two-complement - m_deviceDetails->pressureSensorOffset = (signed char)uData[0]; + deviceDetails.pressureSensorOffset = (signed char)uData[0]; EMIT_PROGRESS(); rc = hw_ostc3_device_config_read(device, OSTC3_TEMP_SENSOR_OFFSET, uData, sizeof(uData)); if (rc != DC_STATUS_SUCCESS) return rc; // OSTC3 stores the tempSensorOffset in two-complement - m_deviceDetails->tempSensorOffset = (signed char)uData[0]; + deviceDetails.tempSensorOffset = (signed char)uData[0]; EMIT_PROGRESS(); //read firmware settings @@ -1163,16 +1163,16 @@ static dc_status_t read_ostc3_settings(dc_device_t *device, DeviceDetails *m_dev if (rc != DC_STATUS_SUCCESS) return rc; int serial = fData[0] + (fData[1] << 8); - m_deviceDetails->serialNo = QString::number(serial); - m_deviceDetails->firmwareVersion = QString::number(fData[2]) + "." + QString::number(fData[3]); + deviceDetails.serialNo = QString::number(serial); + deviceDetails.firmwareVersion = QString::number(fData[2]) + "." + QString::number(fData[3]); QByteArray ar((char *)fData + 4, 60); - m_deviceDetails->customText = ar.trimmed(); + deviceDetails.customText = ar.trimmed(); EMIT_PROGRESS(); return rc; } -static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t write_ostc3_settings(dc_device_t *device, const DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { dc_status_t rc; dc_event_progress_t progress; @@ -1181,38 +1181,38 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de //write gas values unsigned char gas1Data[4] = { - m_deviceDetails->gas1.oxygen, - m_deviceDetails->gas1.helium, - m_deviceDetails->gas1.type, - m_deviceDetails->gas1.depth + deviceDetails.gas1.oxygen, + deviceDetails.gas1.helium, + deviceDetails.gas1.type, + deviceDetails.gas1.depth }; unsigned char gas2Data[4] = { - m_deviceDetails->gas2.oxygen, - m_deviceDetails->gas2.helium, - m_deviceDetails->gas2.type, - m_deviceDetails->gas2.depth + deviceDetails.gas2.oxygen, + deviceDetails.gas2.helium, + deviceDetails.gas2.type, + deviceDetails.gas2.depth }; unsigned char gas3Data[4] = { - m_deviceDetails->gas3.oxygen, - m_deviceDetails->gas3.helium, - m_deviceDetails->gas3.type, - m_deviceDetails->gas3.depth + deviceDetails.gas3.oxygen, + deviceDetails.gas3.helium, + deviceDetails.gas3.type, + deviceDetails.gas3.depth }; unsigned char gas4Data[4] = { - m_deviceDetails->gas4.oxygen, - m_deviceDetails->gas4.helium, - m_deviceDetails->gas4.type, - m_deviceDetails->gas4.depth + deviceDetails.gas4.oxygen, + deviceDetails.gas4.helium, + deviceDetails.gas4.type, + deviceDetails.gas4.depth }; unsigned char gas5Data[4] = { - m_deviceDetails->gas5.oxygen, - m_deviceDetails->gas5.helium, - m_deviceDetails->gas5.type, - m_deviceDetails->gas5.depth + deviceDetails.gas5.oxygen, + deviceDetails.gas5.helium, + deviceDetails.gas5.type, + deviceDetails.gas5.depth }; //gas 1 rc = hw_ostc3_device_config_write(device, OSTC3_GAS1, gas1Data, sizeof(gas1Data)); @@ -1242,28 +1242,28 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de //write setpoint values unsigned char sp1Data[2] = { - m_deviceDetails->sp1.sp, - m_deviceDetails->sp1.depth + deviceDetails.sp1.sp, + deviceDetails.sp1.depth }; unsigned char sp2Data[2] = { - m_deviceDetails->sp2.sp, - m_deviceDetails->sp2.depth + deviceDetails.sp2.sp, + deviceDetails.sp2.depth }; unsigned char sp3Data[2] = { - m_deviceDetails->sp3.sp, - m_deviceDetails->sp3.depth + deviceDetails.sp3.sp, + deviceDetails.sp3.depth }; unsigned char sp4Data[2] = { - m_deviceDetails->sp4.sp, - m_deviceDetails->sp4.depth + deviceDetails.sp4.sp, + deviceDetails.sp4.depth }; unsigned char sp5Data[2] = { - m_deviceDetails->sp5.sp, - m_deviceDetails->sp5.depth + deviceDetails.sp5.sp, + deviceDetails.sp5.depth }; //sp 1 @@ -1294,38 +1294,38 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de //write dil values unsigned char dil1Data[4] = { - m_deviceDetails->dil1.oxygen, - m_deviceDetails->dil1.helium, - m_deviceDetails->dil1.type, - m_deviceDetails->dil1.depth + deviceDetails.dil1.oxygen, + deviceDetails.dil1.helium, + deviceDetails.dil1.type, + deviceDetails.dil1.depth }; unsigned char dil2Data[4] = { - m_deviceDetails->dil2.oxygen, - m_deviceDetails->dil2.helium, - m_deviceDetails->dil2.type, - m_deviceDetails->dil2.depth + deviceDetails.dil2.oxygen, + deviceDetails.dil2.helium, + deviceDetails.dil2.type, + deviceDetails.dil2.depth }; unsigned char dil3Data[4] = { - m_deviceDetails->dil3.oxygen, - m_deviceDetails->dil3.helium, - m_deviceDetails->dil3.type, - m_deviceDetails->dil3.depth + deviceDetails.dil3.oxygen, + deviceDetails.dil3.helium, + deviceDetails.dil3.type, + deviceDetails.dil3.depth }; unsigned char dil4Data[4] = { - m_deviceDetails->dil4.oxygen, - m_deviceDetails->dil4.helium, - m_deviceDetails->dil4.type, - m_deviceDetails->dil4.depth + deviceDetails.dil4.oxygen, + deviceDetails.dil4.helium, + deviceDetails.dil4.type, + deviceDetails.dil4.depth }; unsigned char dil5Data[4] = { - m_deviceDetails->dil5.oxygen, - m_deviceDetails->dil5.helium, - m_deviceDetails->dil5.type, - m_deviceDetails->dil5.depth + deviceDetails.dil5.oxygen, + deviceDetails.dil5.helium, + deviceDetails.dil5.type, + deviceDetails.dil5.depth }; //dil 1 rc = hw_ostc3_device_config_write(device, OSTC3_DIL1, dil1Data, sizeof(gas1Data)); @@ -1355,14 +1355,14 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de //write general settings //custom text - rc = hw_ostc3_device_customtext(device, qPrintable(m_deviceDetails->customText)); + rc = hw_ostc3_device_customtext(device, qPrintable(deviceDetails.customText)); if (rc != DC_STATUS_SUCCESS) return rc; unsigned char data[1] = { 0 }; #define WRITE_SETTING(_OSTC3_SETTING, _DEVICE_DETAIL) \ do { \ - data[0] = m_deviceDetails->_DEVICE_DETAIL; \ + data[0] = deviceDetails._DEVICE_DETAIL; \ rc = hw_ostc3_device_config_write(device, _OSTC3_SETTING, data, sizeof(data)); \ if (rc != DC_STATUS_SUCCESS) \ return rc; \ @@ -1410,21 +1410,21 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de #undef WRITE_SETTING // OSTC3 stores the pressureSensorOffset in two-complement - data[0] = (unsigned char)m_deviceDetails->pressureSensorOffset; + data[0] = (unsigned char)deviceDetails.pressureSensorOffset; rc = hw_ostc3_device_config_write(device, OSTC3_PRESSURE_SENSOR_OFFSET, data, sizeof(data)); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); // OSTC3 stores the tempSensorOffset in two-complement - data[0] = (unsigned char)m_deviceDetails->tempSensorOffset; + data[0] = (unsigned char)deviceDetails.tempSensorOffset; rc = hw_ostc3_device_config_write(device, OSTC3_TEMP_SENSOR_OFFSET, data, sizeof(data)); if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); //sync date and time - if (m_deviceDetails->syncTime) { + if (deviceDetails.syncTime) { dc_datetime_t now; dc_datetime_localtime(&now, dc_datetime_now()); @@ -1435,7 +1435,7 @@ static dc_status_t write_ostc3_settings(dc_device_t *device, DeviceDetails *m_de return rc; } -static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { dc_status_t rc; dc_event_progress_t progress; @@ -1451,8 +1451,8 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi if (rc != DC_STATUS_SUCCESS) return rc; EMIT_PROGRESS(); - m_deviceDetails->serialNo = QString::number(data[1] << 8 ^ data[0]); - m_deviceDetails->numberOfDives = data[3] << 8 ^ data[2]; + deviceDetails.serialNo = QString::number(data[1] << 8 ^ data[0]); + deviceDetails.numberOfDives = data[3] << 8 ^ data[2]; //Byte5-6: //Gas 1 default (%O2=21, %He=0) gas gas1; @@ -1480,7 +1480,7 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi gas5.helium = data[23]; //Byte25-26: //Gas 6 current (%O2, %He) - m_deviceDetails->salinity = data[26]; + deviceDetails.salinity = data[26]; // Active Gas Flag Register gas1.type = data[27] & 0x01; gas2.type = (data[27] & 0x02) >> 1; @@ -1516,15 +1516,15 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi break; } // Data filled up, set the gases. - m_deviceDetails->gas1 = gas1; - m_deviceDetails->gas2 = gas2; - m_deviceDetails->gas3 = gas3; - m_deviceDetails->gas4 = gas4; - m_deviceDetails->gas5 = gas5; - m_deviceDetails->decoType = data[34]; + deviceDetails.gas1 = gas1; + deviceDetails.gas2 = gas2; + deviceDetails.gas3 = gas3; + deviceDetails.gas4 = gas4; + deviceDetails.gas5 = gas5; + deviceDetails.decoType = data[34]; //Byte36: //Use O2 Sensor Module in CC Modes (0= OFF, 1= ON) (Only available in old OSTC1 - unused for OSTC Mk.2/2N) - //m_deviceDetails->ccrMode = data[35]; + //deviceDetails.ccrMode = data[35]; setpoint sp1; sp1.sp = data[36]; sp1.depth = 0; @@ -1534,9 +1534,9 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi setpoint sp3; sp3.sp = data[38]; sp3.depth = 0; - m_deviceDetails->sp1 = sp1; - m_deviceDetails->sp2 = sp2; - m_deviceDetails->sp3 = sp3; + deviceDetails.sp1 = sp1; + deviceDetails.sp2 = sp2; + deviceDetails.sp3 = sp3; // Byte41-42: // Lowest Battery voltage seen (in mV) // Byte43: @@ -1586,7 +1586,7 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi char *term = strchr((char *)data + 65, (int)'}'); if (term) *term = 0; - m_deviceDetails->customText = (const char *)data + 65; + deviceDetails.customText = (const char *)data + 65; } // Byte91: // Dim OLED in Divemode (>0), Normal mode (=0) @@ -1595,7 +1595,7 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi // =0: MM/DD/YY // =1: DD/MM/YY // =2: YY/MM/DD - m_deviceDetails->dateFormat = data[91]; + deviceDetails.dateFormat = data[91]; // Byte93: // Total number of CF used in installed firmware #ifdef DEBUG_OSTC_CF @@ -1652,11 +1652,11 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi //Error? break; } - m_deviceDetails->dil1 = dil1; - m_deviceDetails->dil2 = dil2; - m_deviceDetails->dil3 = dil3; - m_deviceDetails->dil4 = dil4; - m_deviceDetails->dil5 = dil5; + deviceDetails.dil1 = dil1; + deviceDetails.dil2 = dil2; + deviceDetails.dil3 = dil3; + deviceDetails.dil4 = dil4; + deviceDetails.dil5 = dil5; // Byte117-128: // not used/reserved // Byte129-256: @@ -1664,17 +1664,17 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi // Decode the relevant ones // CF11: Factor for saturation processes - m_deviceDetails->saturation = read_ostc_cf(data, 11); + deviceDetails.saturation = read_ostc_cf(data, 11); // CF12: Factor for desaturation processes - m_deviceDetails->desaturation = read_ostc_cf(data, 12); + deviceDetails.desaturation = read_ostc_cf(data, 12); // CF17: Lower threshold for ppO2 warning - m_deviceDetails->ppO2Min = read_ostc_cf(data, 17); + deviceDetails.ppO2Min = read_ostc_cf(data, 17); // CF18: Upper threshold for ppO2 warning - m_deviceDetails->ppO2Max = read_ostc_cf(data, 18); + deviceDetails.ppO2Max = read_ostc_cf(data, 18); // CF20: Depth sampling rate for Profile storage - m_deviceDetails->samplingRate = read_ostc_cf(data, 20); + deviceDetails.samplingRate = read_ostc_cf(data, 20); // CF29: Depth of last decompression stop - m_deviceDetails->lastDeco = read_ostc_cf(data, 29); + deviceDetails.lastDeco = read_ostc_cf(data, 29); #ifdef DEBUG_OSTC_CF for (int cf = 0; cf <= 31 && cf <= max_CF; cf++) @@ -1689,7 +1689,7 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi // Logbook version indicator (Not writable!) // Byte2-3: // Last Firmware installed, 1st Byte.2nd Byte (e.g. „1.90“) (Not writable!) - m_deviceDetails->firmwareVersion = QString::number(data[1]) + "." + QString::number(data[2]); + deviceDetails.firmwareVersion = QString::number(data[1]) + "." + QString::number(data[2]); // Byte4: // OLED brightness (=0: Eco, =1 High) (Not writable!) // Byte5-11: @@ -1701,15 +1701,15 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi // Decode the relevant ones // CF32: Gradient Factor low - m_deviceDetails->gfLow = read_ostc_cf(data, 32); + deviceDetails.gfLow = read_ostc_cf(data, 32); // CF33: Gradient Factor high - m_deviceDetails->gfHigh = read_ostc_cf(data, 33); + deviceDetails.gfHigh = read_ostc_cf(data, 33); // CF56: Bottom gas consumption - m_deviceDetails->bottomGasConsumption = read_ostc_cf(data, 56); + deviceDetails.bottomGasConsumption = read_ostc_cf(data, 56); // CF57: Ascent gas consumption - m_deviceDetails->decoGasConsumption = read_ostc_cf(data, 57); + deviceDetails.decoGasConsumption = read_ostc_cf(data, 57); // CF58: Future time to surface setFutureTTS - m_deviceDetails->futureTTS = read_ostc_cf(data, 58); + deviceDetails.futureTTS = read_ostc_cf(data, 58); #ifdef DEBUG_OSTC_CF for (int cf = 32; cf <= 63 && cf <= max_CF; cf++) @@ -1729,23 +1729,23 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi // Decode the relevant ones // CF60: Graphic velocity - m_deviceDetails->graphicalSpeedIndicator = read_ostc_cf(data, 60); + deviceDetails.graphicalSpeedIndicator = read_ostc_cf(data, 60); // CF65: Show safety stop - m_deviceDetails->safetyStop = read_ostc_cf(data, 65); + deviceDetails.safetyStop = read_ostc_cf(data, 65); // CF67: Alternaitve Gradient Factor low - m_deviceDetails->aGFLow = read_ostc_cf(data, 67); + deviceDetails.aGFLow = read_ostc_cf(data, 67); // CF68: Alternative Gradient Factor high - m_deviceDetails->aGFHigh = read_ostc_cf(data, 68); + deviceDetails.aGFHigh = read_ostc_cf(data, 68); // CF69: Allow Gradient Factor change - m_deviceDetails->aGFSelectable = read_ostc_cf(data, 69); + deviceDetails.aGFSelectable = read_ostc_cf(data, 69); // CF70: Safety Stop Duration [s] - m_deviceDetails->safetyStopLength = read_ostc_cf(data, 70); + deviceDetails.safetyStopLength = read_ostc_cf(data, 70); // CF71: Safety Stop Start Depth [m] - m_deviceDetails->safetyStopStartDepth = read_ostc_cf(data, 71); + deviceDetails.safetyStopStartDepth = read_ostc_cf(data, 71); // CF72: Safety Stop End Depth [m] - m_deviceDetails->safetyStopEndDepth = read_ostc_cf(data, 72); + deviceDetails.safetyStopEndDepth = read_ostc_cf(data, 72); // CF73: Safety Stop Reset Depth [m] - m_deviceDetails->safetyStopResetDepth = read_ostc_cf(data, 73); + deviceDetails.safetyStopResetDepth = read_ostc_cf(data, 73); // CF74: Battery Timeout [min] #ifdef DEBUG_OSTC_CF @@ -1756,7 +1756,7 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi return rc; } -static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_deviceDetails, dc_event_callback_t progress_cb, void *userdata) +static dc_status_t write_ostc_settings(dc_device_t *device, const DeviceDetails &deviceDetails, dc_event_callback_t progress_cb, void *userdata) { dc_status_t rc; dc_event_progress_t progress; @@ -1773,32 +1773,32 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev EMIT_PROGRESS(); //Byte5-6: //Gas 1 default (%O2=21, %He=0) - gas gas1 = m_deviceDetails->gas1; + gas gas1 = deviceDetails.gas1; data[6] = gas1.oxygen; data[7] = gas1.helium; //Byte9-10: //Gas 2 default (%O2=21, %He=0) - gas gas2 = m_deviceDetails->gas2; + gas gas2 = deviceDetails.gas2; data[10] = gas2.oxygen; data[11] = gas2.helium; //Byte13-14: //Gas 3 default (%O2=21, %He=0) - gas gas3 = m_deviceDetails->gas3; + gas gas3 = deviceDetails.gas3; data[14] = gas3.oxygen; data[15] = gas3.helium; //Byte17-18: //Gas 4 default (%O2=21, %He=0) - gas gas4 = m_deviceDetails->gas4; + gas gas4 = deviceDetails.gas4; data[18] = gas4.oxygen; data[19] = gas4.helium; //Byte21-22: //Gas 5 default (%O2=21, %He=0) - gas gas5 = m_deviceDetails->gas5; + gas gas5 = deviceDetails.gas5; data[22] = gas5.oxygen; data[23] = gas5.helium; //Byte25-26: //Gas 6 current (%O2, %He) - data[26] = m_deviceDetails->salinity; + data[26] = deviceDetails.salinity; // Gas types, 0=Disabled, 1=Active, 2=Fist // Active Gas Flag Register data[27] = 0; @@ -1835,13 +1835,13 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // Set gas 1 to first data[33] = 1; - data[34] = m_deviceDetails->decoType; + data[34] = deviceDetails.decoType; //Byte36: //Use O2 Sensor Module in CC Modes (0= OFF, 1= ON) (Only available in old OSTC1 - unused for OSTC Mk.2/2N) - //m_deviceDetails->ccrMode = data[35]; - data[36] = m_deviceDetails->sp1.sp; - data[37] = m_deviceDetails->sp2.sp; - data[38] = m_deviceDetails->sp3.sp; + //deviceDetails.ccrMode = data[35]; + data[36] = deviceDetails.sp1.sp; + data[37] = deviceDetails.sp2.sp; + data[38] = deviceDetails.sp3.sp; // Byte41-42: // Lowest Battery voltage seen (in mV) // Byte43: @@ -1883,15 +1883,15 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // Byte66-90: // (25Bytes): Custom Text for Surfacemode (Real text must end with "}") // Example: "OSTC Dive Computer}" (19 Characters incl. "}") Bytes 85-90 will be ignored. - if (m_deviceDetails->customText == "") { + if (deviceDetails.customText == "") { data[64] = 0; } else { data[64] = 1; // Copy the string to the right place in the memory, padded with 0x20 (" ") - strncpy((char *)data + 65, qPrintable(QString("%1").arg(m_deviceDetails->customText, -23, QChar(' '))), 23); + strncpy((char *)data + 65, qPrintable(QString("%1").arg(deviceDetails.customText, -23, QChar(' '))), 23); // And terminate the string. - if (m_deviceDetails->customText.length() <= 23) - data[65 + m_deviceDetails->customText.length()] = '}'; + if (deviceDetails.customText.length() <= 23) + data[65 + deviceDetails.customText.length()] = '}'; else data[90] = '}'; } @@ -1902,7 +1902,7 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // =0: MM/DD/YY // =1: DD/MM/YY // =2: YY/MM/DD - data[91] = m_deviceDetails->dateFormat; + data[91] = deviceDetails.dateFormat; // Byte93: // Total number of CF used in installed firmware max_CF = data[92]; @@ -1914,35 +1914,35 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // Diluent 1 Default (%O2,%He) // Byte98-99: // Diluent 1 Current (%O2,%He) - gas dil1 = m_deviceDetails->dil1; + gas dil1 = deviceDetails.dil1; data[97] = dil1.oxygen; data[98] = dil1.helium; // Byte100-101: // Gasuent 2 Default (%O2,%He) // Byte102-103: // Gasuent 2 Current (%O2,%He) - gas dil2 = m_deviceDetails->dil2; + gas dil2 = deviceDetails.dil2; data[101] = dil2.oxygen; data[102] = dil2.helium; // Byte104-105: // Gasuent 3 Default (%O2,%He) // Byte106-107: // Gasuent 3 Current (%O2,%He) - gas dil3 = m_deviceDetails->dil3; + gas dil3 = deviceDetails.dil3; data[105] = dil3.oxygen; data[106] = dil3.helium; // Byte108-109: // Gasuent 4 Default (%O2,%He) // Byte110-111: // Gasuent 4 Current (%O2,%He) - gas dil4 = m_deviceDetails->dil4; + gas dil4 = deviceDetails.dil4; data[109] = dil4.oxygen; data[110] = dil4.helium; // Byte112-113: // Gasuent 5 Default (%O2,%He) // Byte114-115: // Gasuent 5 Current (%O2,%He) - gas dil5 = m_deviceDetails->dil5; + gas dil5 = deviceDetails.dil5; data[113] = dil5.oxygen; data[114] = dil5.helium; // Byte116: @@ -1969,17 +1969,17 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // Write the relevant ones // CF11: Factor for saturation processes - write_ostc_cf(data, 11, max_CF, m_deviceDetails->saturation); + write_ostc_cf(data, 11, max_CF, deviceDetails.saturation); // CF12: Factor for desaturation processes - write_ostc_cf(data, 12, max_CF, m_deviceDetails->desaturation); + write_ostc_cf(data, 12, max_CF, deviceDetails.desaturation); // CF17: Lower threshold for ppO2 warning - write_ostc_cf(data, 17, max_CF, m_deviceDetails->ppO2Min); + write_ostc_cf(data, 17, max_CF, deviceDetails.ppO2Min); // CF18: Upper threshold for ppO2 warning - write_ostc_cf(data, 18, max_CF, m_deviceDetails->ppO2Max); + write_ostc_cf(data, 18, max_CF, deviceDetails.ppO2Max); // CF20: Depth sampling rate for Profile storage - write_ostc_cf(data, 20, max_CF, m_deviceDetails->samplingRate); + write_ostc_cf(data, 20, max_CF, deviceDetails.samplingRate); // CF29: Depth of last decompression stop - write_ostc_cf(data, 29, max_CF, m_deviceDetails->lastDeco); + write_ostc_cf(data, 29, max_CF, deviceDetails.lastDeco); #ifdef DEBUG_OSTC_CF for (int cf = 0; cf <= 31 && cf <= max_CF; cf++) @@ -2009,15 +2009,15 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // Decode the relevant ones // CF32: Gradient Factor low - write_ostc_cf(data, 32, max_CF, m_deviceDetails->gfLow); + write_ostc_cf(data, 32, max_CF, deviceDetails.gfLow); // CF33: Gradient Factor high - write_ostc_cf(data, 33, max_CF, m_deviceDetails->gfHigh); + write_ostc_cf(data, 33, max_CF, deviceDetails.gfHigh); // CF56: Bottom gas consumption - write_ostc_cf(data, 56, max_CF, m_deviceDetails->bottomGasConsumption); + write_ostc_cf(data, 56, max_CF, deviceDetails.bottomGasConsumption); // CF57: Ascent gas consumption - write_ostc_cf(data, 57, max_CF, m_deviceDetails->decoGasConsumption); + write_ostc_cf(data, 57, max_CF, deviceDetails.decoGasConsumption); // CF58: Future time to surface setFutureTTS - write_ostc_cf(data, 58, max_CF, m_deviceDetails->futureTTS); + write_ostc_cf(data, 58, max_CF, deviceDetails.futureTTS); #ifdef DEBUG_OSTC_CF for (int cf = 32; cf <= 63 && cf <= max_CF; cf++) printf("CF %d: %d\n", cf, read_ostc_cf(data, cf)); @@ -2040,23 +2040,23 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev // Decode the relevant ones // CF60: Graphic velocity - write_ostc_cf(data, 60, max_CF, m_deviceDetails->graphicalSpeedIndicator); + write_ostc_cf(data, 60, max_CF, deviceDetails.graphicalSpeedIndicator); // CF65: Show safety stop - write_ostc_cf(data, 65, max_CF, m_deviceDetails->safetyStop); + write_ostc_cf(data, 65, max_CF, deviceDetails.safetyStop); // CF67: Alternaitve Gradient Factor low - write_ostc_cf(data, 67, max_CF, m_deviceDetails->aGFLow); + write_ostc_cf(data, 67, max_CF, deviceDetails.aGFLow); // CF68: Alternative Gradient Factor high - write_ostc_cf(data, 68, max_CF, m_deviceDetails->aGFHigh); + write_ostc_cf(data, 68, max_CF, deviceDetails.aGFHigh); // CF69: Allow Gradient Factor change - write_ostc_cf(data, 69, max_CF, m_deviceDetails->aGFSelectable); + write_ostc_cf(data, 69, max_CF, deviceDetails.aGFSelectable); // CF70: Safety Stop Duration [s] - write_ostc_cf(data, 70, max_CF, m_deviceDetails->safetyStopLength); + write_ostc_cf(data, 70, max_CF, deviceDetails.safetyStopLength); // CF71: Safety Stop Start Depth [m] - write_ostc_cf(data, 71, max_CF, m_deviceDetails->safetyStopStartDepth); + write_ostc_cf(data, 71, max_CF, deviceDetails.safetyStopStartDepth); // CF72: Safety Stop End Depth [m] - write_ostc_cf(data, 72, max_CF, m_deviceDetails->safetyStopEndDepth); + write_ostc_cf(data, 72, max_CF, deviceDetails.safetyStopEndDepth); // CF73: Safety Stop Reset Depth [m] - write_ostc_cf(data, 73, max_CF, m_deviceDetails->safetyStopResetDepth); + write_ostc_cf(data, 73, max_CF, deviceDetails.safetyStopResetDepth); // CF74: Battery Timeout [min] #ifdef DEBUG_OSTC_CF @@ -2069,7 +2069,7 @@ static dc_status_t write_ostc_settings(dc_device_t *device, DeviceDetails *m_dev EMIT_PROGRESS(); //sync date and time - if (m_deviceDetails->syncTime) { + if (deviceDetails.syncTime) { QDateTime timeToSet = QDateTime::currentDateTime(); dc_datetime_t time = { 0 }; time.year = timeToSet.date().year(); @@ -2119,12 +2119,12 @@ void ReadSettingsThread::run() { dc_status_t rc; - DeviceDetails *m_deviceDetails = new DeviceDetails(0); + DeviceDetails deviceDetails; switch (dc_device_get_type(m_data->device)) { case DC_FAMILY_SUUNTO_VYPER: - rc = read_suunto_vyper_settings(m_data->device, m_deviceDetails, DeviceThread::event_cb, this); + rc = read_suunto_vyper_settings(m_data->device, deviceDetails, DeviceThread::event_cb, this); if (rc == DC_STATUS_SUCCESS) { - emit devicedetails(m_deviceDetails); + emit devicedetails(std::move(deviceDetails)); } else if (rc == DC_STATUS_UNSUPPORTED) { emit error(tr("This feature is not yet available for the selected dive computer.")); } else { @@ -2132,9 +2132,9 @@ void ReadSettingsThread::run() } break; case DC_FAMILY_HW_OSTC3: - rc = read_ostc3_settings(m_data->device, m_deviceDetails, DeviceThread::event_cb, this); + rc = read_ostc3_settings(m_data->device, deviceDetails, DeviceThread::event_cb, this); if (rc == DC_STATUS_SUCCESS) - emit devicedetails(m_deviceDetails); + emit devicedetails(std::move(deviceDetails)); else emit error(tr("Failed!")); break; @@ -2143,9 +2143,9 @@ void ReadSettingsThread::run() case DC_FAMILY_NULL: #endif case DC_FAMILY_HW_OSTC: - rc = read_ostc_settings(m_data->device, m_deviceDetails, DeviceThread::event_cb, this); + rc = read_ostc_settings(m_data->device, deviceDetails, DeviceThread::event_cb, this); if (rc == DC_STATUS_SUCCESS) - emit devicedetails(m_deviceDetails); + emit devicedetails(std::move(deviceDetails)); else emit error(tr("Failed!")); break; @@ -2156,12 +2156,11 @@ void ReadSettingsThread::run() } WriteSettingsThread::WriteSettingsThread(QObject *parent, device_data_t *data) : - DeviceThread(parent, data), - m_deviceDetails(NULL) + DeviceThread(parent, data) { } -void WriteSettingsThread::setDeviceDetails(DeviceDetails *details) +void WriteSettingsThread::setDeviceDetails(const DeviceDetails &details) { m_deviceDetails = details; } @@ -2181,7 +2180,7 @@ void WriteSettingsThread::run() break; case DC_FAMILY_HW_OSTC3: // Is this the best way? - if (m_deviceDetails->model == "OSTC 4") + if (m_deviceDetails.model == "OSTC 4") rc = write_ostc4_settings(m_data->device, m_deviceDetails, DeviceThread::event_cb, this); else rc = write_ostc3_settings(m_data->device, m_deviceDetails, DeviceThread::event_cb, this); diff --git a/core/configuredivecomputerthreads.h b/core/configuredivecomputerthreads.h index c6dcefe23..23bcdabf3 100644 --- a/core/configuredivecomputerthreads.h +++ b/core/configuredivecomputerthreads.h @@ -27,18 +27,18 @@ public: ReadSettingsThread(QObject *parent, device_data_t *data); void run(); signals: - void devicedetails(DeviceDetails *newDeviceDetails); + void devicedetails(DeviceDetails newDeviceDetails); }; class WriteSettingsThread : public DeviceThread { Q_OBJECT public: WriteSettingsThread(QObject *parent, device_data_t *data); - void setDeviceDetails(DeviceDetails *details); + void setDeviceDetails(const DeviceDetails &details); void run(); private: - DeviceDetails *m_deviceDetails; + DeviceDetails m_deviceDetails; }; class FirmwareUpdateThread : public DeviceThread { diff --git a/core/devicedetails.cpp b/core/devicedetails.cpp index 1fe1fed00..05bf3e8a4 100644 --- a/core/devicedetails.cpp +++ b/core/devicedetails.cpp @@ -11,8 +11,7 @@ setpoint::setpoint(unsigned char sp, unsigned char depth) : { } -DeviceDetails::DeviceDetails(QObject *parent) : - QObject(parent), +DeviceDetails::DeviceDetails() : syncTime(false), setPointFallback(0), ccrMode(0), diff --git a/core/devicedetails.h b/core/devicedetails.h index b8dbfd490..867969fe8 100644 --- a/core/devicedetails.h +++ b/core/devicedetails.h @@ -20,11 +20,10 @@ struct setpoint { setpoint(unsigned char sp = 0, unsigned char depth = 0); }; -class DeviceDetails : public QObject +class DeviceDetails { - Q_OBJECT public: - explicit DeviceDetails(QObject *parent = 0); + DeviceDetails(); QString serialNo; QString firmwareVersion; @@ -103,5 +102,6 @@ public: unsigned safetyStopResetDepth; }; +Q_DECLARE_METATYPE(DeviceDetails); #endif // DEVICEDETAILS_H diff --git a/desktop-widgets/configuredivecomputerdialog.cpp b/desktop-widgets/configuredivecomputerdialog.cpp index de43658dc..52578be3f 100644 --- a/desktop-widgets/configuredivecomputerdialog.cpp +++ b/desktop-widgets/configuredivecomputerdialog.cpp @@ -120,15 +120,11 @@ static const DiveComputerEntry supportedDiveComputers[] = { ConfigureDiveComputerDialog::ConfigureDiveComputerDialog(QWidget *parent) : QDialog(parent), config(0), #ifdef BT_SUPPORT - deviceDetails(0), btDeviceSelectionDialog(0) -#else - deviceDetails(0) #endif { ui.setupUi(this); - deviceDetails = new DeviceDetails(this); config = new ConfigureDiveComputer(); connect(config, &ConfigureDiveComputer::progress, ui.progressBar, &QProgressBar::setValue); connect(config, &ConfigureDiveComputer::error, this, &ConfigureDiveComputerDialog::configError); @@ -466,47 +462,47 @@ void ConfigureDiveComputerDialog::populateDeviceDetails() void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3() { - deviceDetails->customText = ui.customTextLlineEdit->text(); - deviceDetails->diveMode = ui.diveModeComboBox->currentIndex(); - deviceDetails->saturation = ui.saturationSpinBox->value(); - deviceDetails->desaturation = ui.desaturationSpinBox->value(); - deviceDetails->lastDeco = ui.lastDecoSpinBox->value(); - deviceDetails->brightness = ui.brightnessComboBox->currentIndex(); - deviceDetails->units = ui.unitsComboBox->currentIndex(); - deviceDetails->samplingRate = ui.samplingRateComboBox->currentIndex(); - deviceDetails->salinity = ui.salinitySpinBox->value(); - deviceDetails->diveModeColor = ui.diveModeColour->currentIndex(); - deviceDetails->language = ui.languageComboBox->currentIndex(); - deviceDetails->dateFormat = ui.dateFormatComboBox->currentIndex(); - deviceDetails->compassGain = ui.compassGainComboBox->currentIndex(); - deviceDetails->syncTime = ui.dateTimeSyncCheckBox->isChecked(); - deviceDetails->safetyStop = ui.safetyStopCheckBox->isChecked(); - deviceDetails->gfHigh = ui.gfHighSpinBox->value(); - deviceDetails->gfLow = ui.gfLowSpinBox->value(); - deviceDetails->pressureSensorOffset = ui.pressureSensorOffsetSpinBox->value(); - deviceDetails->ppO2Min = ui.ppO2MinSpinBox->value(); - deviceDetails->ppO2Max = ui.ppO2MaxSpinBox->value(); - deviceDetails->futureTTS = ui.futureTTSSpinBox->value(); - deviceDetails->ccrMode = ui.ccrModeComboBox->currentIndex(); - deviceDetails->decoType = ui.decoTypeComboBox->currentIndex(); - deviceDetails->aGFSelectable = ui.aGFSelectableCheckBox->isChecked(); - deviceDetails->aGFHigh = ui.aGFHighSpinBox->value(); - deviceDetails->aGFLow = ui.aGFLowSpinBox->value(); - deviceDetails->calibrationGas = ui.calibrationGasSpinBox->value(); - deviceDetails->flipScreen = ui.flipScreenCheckBox->isChecked(); - deviceDetails->leftButtonSensitivity = ui.leftButtonSensitivity->value(); - deviceDetails->rightButtonSensitivity = ui.rightButtonSensitivity->value(); - deviceDetails->bottomGasConsumption = ui.bottomGasConsumption->value(); - deviceDetails->decoGasConsumption = ui.decoGasConsumption->value(); - deviceDetails->modWarning = ui.modWarning->isChecked(); - deviceDetails->dynamicAscendRate = ui.dynamicAscendRate->isChecked(); - deviceDetails->graphicalSpeedIndicator = ui.graphicalSpeedIndicator->isChecked(); - deviceDetails->alwaysShowppO2 = ui.alwaysShowppO2->isChecked(); - deviceDetails->tempSensorOffset = lrint(ui.tempSensorOffsetDoubleSpinBox->value() * 10); - deviceDetails->safetyStopLength = ui.safetyStopLengthSpinBox->value(); - deviceDetails->safetyStopStartDepth = lrint(ui.safetyStopStartDepthDoubleSpinBox->value() * 10); - deviceDetails->safetyStopEndDepth = lrint(ui.safetyStopEndDepthDoubleSpinBox->value() * 10); - deviceDetails->safetyStopResetDepth = lrint(ui.safetyStopResetDepthDoubleSpinBox->value() * 10); + deviceDetails.customText = ui.customTextLlineEdit->text(); + deviceDetails.diveMode = ui.diveModeComboBox->currentIndex(); + deviceDetails.saturation = ui.saturationSpinBox->value(); + deviceDetails.desaturation = ui.desaturationSpinBox->value(); + deviceDetails.lastDeco = ui.lastDecoSpinBox->value(); + deviceDetails.brightness = ui.brightnessComboBox->currentIndex(); + deviceDetails.units = ui.unitsComboBox->currentIndex(); + deviceDetails.samplingRate = ui.samplingRateComboBox->currentIndex(); + deviceDetails.salinity = ui.salinitySpinBox->value(); + deviceDetails.diveModeColor = ui.diveModeColour->currentIndex(); + deviceDetails.language = ui.languageComboBox->currentIndex(); + deviceDetails.dateFormat = ui.dateFormatComboBox->currentIndex(); + deviceDetails.compassGain = ui.compassGainComboBox->currentIndex(); + deviceDetails.syncTime = ui.dateTimeSyncCheckBox->isChecked(); + deviceDetails.safetyStop = ui.safetyStopCheckBox->isChecked(); + deviceDetails.gfHigh = ui.gfHighSpinBox->value(); + deviceDetails.gfLow = ui.gfLowSpinBox->value(); + deviceDetails.pressureSensorOffset = ui.pressureSensorOffsetSpinBox->value(); + deviceDetails.ppO2Min = ui.ppO2MinSpinBox->value(); + deviceDetails.ppO2Max = ui.ppO2MaxSpinBox->value(); + deviceDetails.futureTTS = ui.futureTTSSpinBox->value(); + deviceDetails.ccrMode = ui.ccrModeComboBox->currentIndex(); + deviceDetails.decoType = ui.decoTypeComboBox->currentIndex(); + deviceDetails.aGFSelectable = ui.aGFSelectableCheckBox->isChecked(); + deviceDetails.aGFHigh = ui.aGFHighSpinBox->value(); + deviceDetails.aGFLow = ui.aGFLowSpinBox->value(); + deviceDetails.calibrationGas = ui.calibrationGasSpinBox->value(); + deviceDetails.flipScreen = ui.flipScreenCheckBox->isChecked(); + deviceDetails.leftButtonSensitivity = ui.leftButtonSensitivity->value(); + deviceDetails.rightButtonSensitivity = ui.rightButtonSensitivity->value(); + deviceDetails.bottomGasConsumption = ui.bottomGasConsumption->value(); + deviceDetails.decoGasConsumption = ui.decoGasConsumption->value(); + deviceDetails.modWarning = ui.modWarning->isChecked(); + deviceDetails.dynamicAscendRate = ui.dynamicAscendRate->isChecked(); + deviceDetails.graphicalSpeedIndicator = ui.graphicalSpeedIndicator->isChecked(); + deviceDetails.alwaysShowppO2 = ui.alwaysShowppO2->isChecked(); + deviceDetails.tempSensorOffset = lrint(ui.tempSensorOffsetDoubleSpinBox->value() * 10); + deviceDetails.safetyStopLength = ui.safetyStopLengthSpinBox->value(); + deviceDetails.safetyStopStartDepth = lrint(ui.safetyStopStartDepthDoubleSpinBox->value() * 10); + deviceDetails.safetyStopEndDepth = lrint(ui.safetyStopEndDepthDoubleSpinBox->value() * 10); + deviceDetails.safetyStopResetDepth = lrint(ui.safetyStopResetDepthDoubleSpinBox->value() * 10); //set gas values gas gas1; @@ -540,11 +536,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3() gas5.type = GET_INT_FROM(ui.ostc3GasTable->item(4, 3), 0); gas5.depth = GET_INT_FROM(ui.ostc3GasTable->item(4, 4), 0); - deviceDetails->gas1 = gas1; - deviceDetails->gas2 = gas2; - deviceDetails->gas3 = gas3; - deviceDetails->gas4 = gas4; - deviceDetails->gas5 = gas5; + deviceDetails.gas1 = gas1; + deviceDetails.gas2 = gas2; + deviceDetails.gas3 = gas3; + deviceDetails.gas4 = gas4; + deviceDetails.gas5 = gas5; //set dil values gas dil1; @@ -578,11 +574,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3() dil5.type = GET_INT_FROM(ui.ostc3DilTable->item(4, 3), 0); dil5.depth = GET_INT_FROM(ui.ostc3DilTable->item(4, 4), 0); - deviceDetails->dil1 = dil1; - deviceDetails->dil2 = dil2; - deviceDetails->dil3 = dil3; - deviceDetails->dil4 = dil4; - deviceDetails->dil5 = dil5; + deviceDetails.dil1 = dil1; + deviceDetails.dil2 = dil2; + deviceDetails.dil3 = dil3; + deviceDetails.dil4 = dil4; + deviceDetails.dil5 = dil5; //set setpoint details setpoint sp1; @@ -606,40 +602,40 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC3() sp5.sp = GET_INT_FROM(ui.ostc3SetPointTable->item(4, 1), 140); sp5.depth = GET_INT_FROM(ui.ostc3SetPointTable->item(4, 2), 70); - deviceDetails->sp1 = sp1; - deviceDetails->sp2 = sp2; - deviceDetails->sp3 = sp3; - deviceDetails->sp4 = sp4; - deviceDetails->sp5 = sp5; + deviceDetails.sp1 = sp1; + deviceDetails.sp2 = sp2; + deviceDetails.sp3 = sp3; + deviceDetails.sp4 = sp4; + deviceDetails.sp5 = sp5; } void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC() { - deviceDetails->customText = ui.customTextLlineEdit_3->text(); - deviceDetails->saturation = ui.saturationSpinBox_3->value(); - deviceDetails->desaturation = ui.desaturationSpinBox_3->value(); - deviceDetails->lastDeco = ui.lastDecoSpinBox_3->value(); - deviceDetails->samplingRate = ui.samplingRateSpinBox_3->value(); - deviceDetails->salinity = lrint(ui.salinityDoubleSpinBox_3->value() * 100); - deviceDetails->dateFormat = ui.dateFormatComboBox_3->currentIndex(); - deviceDetails->syncTime = ui.dateTimeSyncCheckBox_3->isChecked(); - deviceDetails->safetyStop = ui.safetyStopCheckBox_3->isChecked(); - deviceDetails->gfHigh = ui.gfHighSpinBox_3->value(); - deviceDetails->gfLow = ui.gfLowSpinBox_3->value(); - deviceDetails->ppO2Min = ui.ppO2MinSpinBox_3->value(); - deviceDetails->ppO2Max = ui.ppO2MaxSpinBox_3->value(); - deviceDetails->futureTTS = ui.futureTTSSpinBox_3->value(); - deviceDetails->decoType = ui.decoTypeComboBox_3->currentIndex(); - deviceDetails->aGFSelectable = ui.aGFSelectableCheckBox_3->isChecked(); - deviceDetails->aGFHigh = ui.aGFHighSpinBox_3->value(); - deviceDetails->aGFLow = ui.aGFLowSpinBox_3->value(); - deviceDetails->bottomGasConsumption = ui.bottomGasConsumption_3->value(); - deviceDetails->decoGasConsumption = ui.decoGasConsumption_3->value(); - deviceDetails->graphicalSpeedIndicator = ui.graphicalSpeedIndicator_3->isChecked(); - deviceDetails->safetyStopLength = ui.safetyStopLengthSpinBox_3->value(); - deviceDetails->safetyStopStartDepth = lrint(ui.safetyStopStartDepthDoubleSpinBox_3->value() * 10); - deviceDetails->safetyStopEndDepth = lrint(ui.safetyStopEndDepthDoubleSpinBox_3->value() * 10); - deviceDetails->safetyStopResetDepth = lrint(ui.safetyStopResetDepthDoubleSpinBox_3->value() * 10); + deviceDetails.customText = ui.customTextLlineEdit_3->text(); + deviceDetails.saturation = ui.saturationSpinBox_3->value(); + deviceDetails.desaturation = ui.desaturationSpinBox_3->value(); + deviceDetails.lastDeco = ui.lastDecoSpinBox_3->value(); + deviceDetails.samplingRate = ui.samplingRateSpinBox_3->value(); + deviceDetails.salinity = lrint(ui.salinityDoubleSpinBox_3->value() * 100); + deviceDetails.dateFormat = ui.dateFormatComboBox_3->currentIndex(); + deviceDetails.syncTime = ui.dateTimeSyncCheckBox_3->isChecked(); + deviceDetails.safetyStop = ui.safetyStopCheckBox_3->isChecked(); + deviceDetails.gfHigh = ui.gfHighSpinBox_3->value(); + deviceDetails.gfLow = ui.gfLowSpinBox_3->value(); + deviceDetails.ppO2Min = ui.ppO2MinSpinBox_3->value(); + deviceDetails.ppO2Max = ui.ppO2MaxSpinBox_3->value(); + deviceDetails.futureTTS = ui.futureTTSSpinBox_3->value(); + deviceDetails.decoType = ui.decoTypeComboBox_3->currentIndex(); + deviceDetails.aGFSelectable = ui.aGFSelectableCheckBox_3->isChecked(); + deviceDetails.aGFHigh = ui.aGFHighSpinBox_3->value(); + deviceDetails.aGFLow = ui.aGFLowSpinBox_3->value(); + deviceDetails.bottomGasConsumption = ui.bottomGasConsumption_3->value(); + deviceDetails.decoGasConsumption = ui.decoGasConsumption_3->value(); + deviceDetails.graphicalSpeedIndicator = ui.graphicalSpeedIndicator_3->isChecked(); + deviceDetails.safetyStopLength = ui.safetyStopLengthSpinBox_3->value(); + deviceDetails.safetyStopStartDepth = lrint(ui.safetyStopStartDepthDoubleSpinBox_3->value() * 10); + deviceDetails.safetyStopEndDepth = lrint(ui.safetyStopEndDepthDoubleSpinBox_3->value() * 10); + deviceDetails.safetyStopResetDepth = lrint(ui.safetyStopResetDepthDoubleSpinBox_3->value() * 10); //set gas values gas gas1; @@ -673,11 +669,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC() gas5.type = GET_INT_FROM(ui.ostcGasTable->item(4, 3), 0); gas5.depth = GET_INT_FROM(ui.ostcGasTable->item(4, 4), 0); - deviceDetails->gas1 = gas1; - deviceDetails->gas2 = gas2; - deviceDetails->gas3 = gas3; - deviceDetails->gas4 = gas4; - deviceDetails->gas5 = gas5; + deviceDetails.gas1 = gas1; + deviceDetails.gas2 = gas2; + deviceDetails.gas3 = gas3; + deviceDetails.gas4 = gas4; + deviceDetails.gas5 = gas5; //set dil values gas dil1; @@ -711,11 +707,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC() dil5.type = GET_INT_FROM(ui.ostcDilTable->item(4, 3), 0); dil5.depth = GET_INT_FROM(ui.ostcDilTable->item(4, 4), 0); - deviceDetails->dil1 = dil1; - deviceDetails->dil2 = dil2; - deviceDetails->dil3 = dil3; - deviceDetails->dil4 = dil4; - deviceDetails->dil5 = dil5; + deviceDetails.dil1 = dil1; + deviceDetails.dil2 = dil2; + deviceDetails.dil3 = dil3; + deviceDetails.dil4 = dil4; + deviceDetails.dil5 = dil5; //set setpoint details setpoint sp1; @@ -739,63 +735,63 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC() sp5.sp = GET_INT_FROM(ui.ostcSetPointTable->item(4, 1), 140); sp5.depth = GET_INT_FROM(ui.ostcSetPointTable->item(4, 2), 70); - deviceDetails->sp1 = sp1; - deviceDetails->sp2 = sp2; - deviceDetails->sp3 = sp3; - deviceDetails->sp4 = sp4; - deviceDetails->sp5 = sp5; + deviceDetails.sp1 = sp1; + deviceDetails.sp2 = sp2; + deviceDetails.sp3 = sp3; + deviceDetails.sp4 = sp4; + deviceDetails.sp5 = sp5; } void ConfigureDiveComputerDialog::populateDeviceDetailsSuuntoVyper() { - deviceDetails->customText = ui.customTextLlineEdit_1->text(); - deviceDetails->samplingRate = ui.samplingRateComboBox_1->currentIndex() == 3 ? 60 : (ui.samplingRateComboBox_1->currentIndex() + 1) * 10; - deviceDetails->altitude = ui.altitudeRangeComboBox->currentIndex(); - deviceDetails->personalSafety = ui.personalSafetyComboBox->currentIndex(); - deviceDetails->timeFormat = ui.timeFormatComboBox->currentIndex(); - deviceDetails->units = ui.unitsComboBox_1->currentIndex(); - deviceDetails->diveMode = ui.diveModeComboBox_1->currentIndex(); - deviceDetails->lightEnabled = ui.lightCheckBox->isChecked(); - deviceDetails->light = ui.lightSpinBox->value(); - deviceDetails->alarmDepthEnabled = ui.alarmDepthCheckBox->isChecked(); - deviceDetails->alarmDepth = units_to_depth(ui.alarmDepthDoubleSpinBox->value()).mm; - deviceDetails->alarmTimeEnabled = ui.alarmTimeCheckBox->isChecked(); - deviceDetails->alarmTime = ui.alarmTimeSpinBox->value(); + deviceDetails.customText = ui.customTextLlineEdit_1->text(); + deviceDetails.samplingRate = ui.samplingRateComboBox_1->currentIndex() == 3 ? 60 : (ui.samplingRateComboBox_1->currentIndex() + 1) * 10; + deviceDetails.altitude = ui.altitudeRangeComboBox->currentIndex(); + deviceDetails.personalSafety = ui.personalSafetyComboBox->currentIndex(); + deviceDetails.timeFormat = ui.timeFormatComboBox->currentIndex(); + deviceDetails.units = ui.unitsComboBox_1->currentIndex(); + deviceDetails.diveMode = ui.diveModeComboBox_1->currentIndex(); + deviceDetails.lightEnabled = ui.lightCheckBox->isChecked(); + deviceDetails.light = ui.lightSpinBox->value(); + deviceDetails.alarmDepthEnabled = ui.alarmDepthCheckBox->isChecked(); + deviceDetails.alarmDepth = units_to_depth(ui.alarmDepthDoubleSpinBox->value()).mm; + deviceDetails.alarmTimeEnabled = ui.alarmTimeCheckBox->isChecked(); + deviceDetails.alarmTime = ui.alarmTimeSpinBox->value(); } void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC4() { - deviceDetails->customText = ui.customTextLlineEdit_4->text(); - deviceDetails->diveMode = ui.diveModeComboBox_4->currentIndex(); - deviceDetails->lastDeco = ui.lastDecoSpinBox_4->value(); - deviceDetails->brightness = ui.brightnessComboBox_4->currentIndex(); - deviceDetails->units = ui.unitsComboBox_4->currentIndex(); - deviceDetails->salinity = ui.salinitySpinBox_4->value(); - deviceDetails->diveModeColor = ui.diveModeColour_4->currentIndex(); - deviceDetails->language = ui.languageComboBox_4->currentIndex(); - deviceDetails->dateFormat = ui.dateFormatComboBox_4->currentIndex(); - deviceDetails->syncTime = ui.dateTimeSyncCheckBox_4->isChecked(); - deviceDetails->safetyStop = ui.safetyStopCheckBox_4->isChecked(); - deviceDetails->gfHigh = ui.gfHighSpinBox_4->value(); - deviceDetails->gfLow = ui.gfLowSpinBox_4->value(); - deviceDetails->pressureSensorOffset = ui.pressureSensorOffsetSpinBox_4->value(); - deviceDetails->ppO2Min = ui.ppO2MinSpinBox_4->value(); - deviceDetails->ppO2Max = ui.ppO2MaxSpinBox_4->value(); - deviceDetails->futureTTS = ui.futureTTSSpinBox_4->value(); - deviceDetails->ccrMode = ui.ccrModeComboBox_4->currentIndex(); - deviceDetails->decoType = ui.decoTypeComboBox_4->currentIndex(); - deviceDetails->aGFHigh = ui.aGFHighSpinBox_4->value(); - deviceDetails->aGFLow = ui.aGFLowSpinBox_4->value(); - deviceDetails->vpmConservatism = ui.vpmConservatismSpinBox->value(); - deviceDetails->setPointFallback = ui.setPointFallbackCheckBox_4->isChecked(); - deviceDetails->buttonSensitivity = ui.buttonSensitivity_4->value(); - deviceDetails->bottomGasConsumption = ui.bottomGasConsumption_4->value(); - deviceDetails->decoGasConsumption = ui.decoGasConsumption_4->value(); - deviceDetails->travelGasConsumption = ui.travelGasConsumption_4->value(); - deviceDetails->alwaysShowppO2 = ui.alwaysShowppO2_4->isChecked(); - deviceDetails->tempSensorOffset = lrint(ui.tempSensorOffsetDoubleSpinBox_4->value() * 10); - deviceDetails->safetyStopLength = ui.safetyStopLengthSpinBox_4->value(); - deviceDetails->safetyStopStartDepth = lrint(ui.safetyStopStartDepthDoubleSpinBox_4->value() * 10); + deviceDetails.customText = ui.customTextLlineEdit_4->text(); + deviceDetails.diveMode = ui.diveModeComboBox_4->currentIndex(); + deviceDetails.lastDeco = ui.lastDecoSpinBox_4->value(); + deviceDetails.brightness = ui.brightnessComboBox_4->currentIndex(); + deviceDetails.units = ui.unitsComboBox_4->currentIndex(); + deviceDetails.salinity = ui.salinitySpinBox_4->value(); + deviceDetails.diveModeColor = ui.diveModeColour_4->currentIndex(); + deviceDetails.language = ui.languageComboBox_4->currentIndex(); + deviceDetails.dateFormat = ui.dateFormatComboBox_4->currentIndex(); + deviceDetails.syncTime = ui.dateTimeSyncCheckBox_4->isChecked(); + deviceDetails.safetyStop = ui.safetyStopCheckBox_4->isChecked(); + deviceDetails.gfHigh = ui.gfHighSpinBox_4->value(); + deviceDetails.gfLow = ui.gfLowSpinBox_4->value(); + deviceDetails.pressureSensorOffset = ui.pressureSensorOffsetSpinBox_4->value(); + deviceDetails.ppO2Min = ui.ppO2MinSpinBox_4->value(); + deviceDetails.ppO2Max = ui.ppO2MaxSpinBox_4->value(); + deviceDetails.futureTTS = ui.futureTTSSpinBox_4->value(); + deviceDetails.ccrMode = ui.ccrModeComboBox_4->currentIndex(); + deviceDetails.decoType = ui.decoTypeComboBox_4->currentIndex(); + deviceDetails.aGFHigh = ui.aGFHighSpinBox_4->value(); + deviceDetails.aGFLow = ui.aGFLowSpinBox_4->value(); + deviceDetails.vpmConservatism = ui.vpmConservatismSpinBox->value(); + deviceDetails.setPointFallback = ui.setPointFallbackCheckBox_4->isChecked(); + deviceDetails.buttonSensitivity = ui.buttonSensitivity_4->value(); + deviceDetails.bottomGasConsumption = ui.bottomGasConsumption_4->value(); + deviceDetails.decoGasConsumption = ui.decoGasConsumption_4->value(); + deviceDetails.travelGasConsumption = ui.travelGasConsumption_4->value(); + deviceDetails.alwaysShowppO2 = ui.alwaysShowppO2_4->isChecked(); + deviceDetails.tempSensorOffset = lrint(ui.tempSensorOffsetDoubleSpinBox_4->value() * 10); + deviceDetails.safetyStopLength = ui.safetyStopLengthSpinBox_4->value(); + deviceDetails.safetyStopStartDepth = lrint(ui.safetyStopStartDepthDoubleSpinBox_4->value() * 10); //set gas values gas gas1; @@ -829,11 +825,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC4() gas5.type = GET_INT_FROM(ui.ostc4GasTable->item(4, 3), 0); gas5.depth = GET_INT_FROM(ui.ostc4GasTable->item(4, 4), 0); - deviceDetails->gas1 = gas1; - deviceDetails->gas2 = gas2; - deviceDetails->gas3 = gas3; - deviceDetails->gas4 = gas4; - deviceDetails->gas5 = gas5; + deviceDetails.gas1 = gas1; + deviceDetails.gas2 = gas2; + deviceDetails.gas3 = gas3; + deviceDetails.gas4 = gas4; + deviceDetails.gas5 = gas5; //set dil values gas dil1; @@ -867,11 +863,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC4() dil5.type = GET_INT_FROM(ui.ostc4DilTable->item(4, 3), 0); dil5.depth = GET_INT_FROM(ui.ostc4DilTable->item(4, 4), 0); - deviceDetails->dil1 = dil1; - deviceDetails->dil2 = dil2; - deviceDetails->dil3 = dil3; - deviceDetails->dil4 = dil4; - deviceDetails->dil5 = dil5; + deviceDetails.dil1 = dil1; + deviceDetails.dil2 = dil2; + deviceDetails.dil3 = dil3; + deviceDetails.dil4 = dil4; + deviceDetails.dil5 = dil5; //set setpoint details setpoint sp1; @@ -895,11 +891,11 @@ void ConfigureDiveComputerDialog::populateDeviceDetailsOSTC4() sp5.sp = GET_INT_FROM(ui.ostc4SetPointTable->item(4, 1), 140); sp5.depth = GET_INT_FROM(ui.ostc4SetPointTable->item(4, 2), 70); - deviceDetails->sp1 = sp1; - deviceDetails->sp2 = sp2; - deviceDetails->sp3 = sp3; - deviceDetails->sp4 = sp4; - deviceDetails->sp5 = sp5; + deviceDetails.sp1 = sp1; + deviceDetails.sp2 = sp2; + deviceDetails.sp3 = sp3; + deviceDetails.sp4 = sp4; + deviceDetails.sp5 = sp5; } void ConfigureDiveComputerDialog::readSettings() @@ -976,9 +972,9 @@ void ConfigureDiveComputerDialog::on_saveSettingsPushButton_clicked() config->saveDeviceDetails(deviceDetails, &device_data); } -void ConfigureDiveComputerDialog::deviceDetailsReceived(DeviceDetails *newDeviceDetails) +void ConfigureDiveComputerDialog::deviceDetailsReceived(DeviceDetails newDeviceDetails) { - deviceDetails = newDeviceDetails; + deviceDetails = std::move(newDeviceDetails); reloadValues(); } @@ -1006,129 +1002,129 @@ void ConfigureDiveComputerDialog::reloadValues() void ConfigureDiveComputerDialog::reloadValuesOSTC3() { - ui.serialNoLineEdit->setText(deviceDetails->serialNo); - ui.firmwareVersionLineEdit->setText(deviceDetails->firmwareVersion); - ui.customTextLlineEdit->setText(deviceDetails->customText); - ui.modelLineEdit->setText(deviceDetails->model); - ui.diveModeComboBox->setCurrentIndex(deviceDetails->diveMode); - ui.saturationSpinBox->setValue(deviceDetails->saturation); - ui.desaturationSpinBox->setValue(deviceDetails->desaturation); - ui.lastDecoSpinBox->setValue(deviceDetails->lastDeco); - ui.brightnessComboBox->setCurrentIndex(deviceDetails->brightness); - ui.unitsComboBox->setCurrentIndex(deviceDetails->units); - ui.samplingRateComboBox->setCurrentIndex(deviceDetails->samplingRate); - ui.salinitySpinBox->setValue(deviceDetails->salinity); - ui.diveModeColour->setCurrentIndex(deviceDetails->diveModeColor); - ui.languageComboBox->setCurrentIndex(deviceDetails->language); - ui.dateFormatComboBox->setCurrentIndex(deviceDetails->dateFormat); - ui.compassGainComboBox->setCurrentIndex(deviceDetails->compassGain); - ui.safetyStopCheckBox->setChecked(deviceDetails->safetyStop); - ui.gfHighSpinBox->setValue(deviceDetails->gfHigh); - ui.gfLowSpinBox->setValue(deviceDetails->gfLow); - ui.pressureSensorOffsetSpinBox->setValue(deviceDetails->pressureSensorOffset); - ui.ppO2MinSpinBox->setValue(deviceDetails->ppO2Min); - ui.ppO2MaxSpinBox->setValue(deviceDetails->ppO2Max); - ui.futureTTSSpinBox->setValue(deviceDetails->futureTTS); - ui.ccrModeComboBox->setCurrentIndex(deviceDetails->ccrMode); - ui.decoTypeComboBox->setCurrentIndex(deviceDetails->decoType); - ui.aGFSelectableCheckBox->setChecked(deviceDetails->aGFSelectable); - ui.aGFHighSpinBox->setValue(deviceDetails->aGFHigh); - ui.aGFLowSpinBox->setValue(deviceDetails->aGFLow); - ui.calibrationGasSpinBox->setValue(deviceDetails->calibrationGas); - ui.flipScreenCheckBox->setChecked(deviceDetails->flipScreen); - ui.leftButtonSensitivity->setValue(deviceDetails->leftButtonSensitivity); - ui.rightButtonSensitivity->setValue(deviceDetails->rightButtonSensitivity); - ui.bottomGasConsumption->setValue(deviceDetails->bottomGasConsumption); - ui.decoGasConsumption->setValue(deviceDetails->decoGasConsumption); - ui.modWarning->setChecked(deviceDetails->modWarning); - ui.dynamicAscendRate->setChecked(deviceDetails->dynamicAscendRate); - ui.graphicalSpeedIndicator->setChecked(deviceDetails->graphicalSpeedIndicator); - ui.alwaysShowppO2->setChecked(deviceDetails->alwaysShowppO2); - ui.tempSensorOffsetDoubleSpinBox->setValue((double)deviceDetails->tempSensorOffset / 10.0); - ui.safetyStopLengthSpinBox->setValue(deviceDetails->safetyStopLength); - ui.safetyStopStartDepthDoubleSpinBox->setValue(deviceDetails->safetyStopStartDepth / 10.0); - ui.safetyStopEndDepthDoubleSpinBox->setValue(deviceDetails->safetyStopEndDepth / 10.0); - ui.safetyStopResetDepthDoubleSpinBox->setValue(deviceDetails->safetyStopResetDepth / 10.0); + ui.serialNoLineEdit->setText(deviceDetails.serialNo); + ui.firmwareVersionLineEdit->setText(deviceDetails.firmwareVersion); + ui.customTextLlineEdit->setText(deviceDetails.customText); + ui.modelLineEdit->setText(deviceDetails.model); + ui.diveModeComboBox->setCurrentIndex(deviceDetails.diveMode); + ui.saturationSpinBox->setValue(deviceDetails.saturation); + ui.desaturationSpinBox->setValue(deviceDetails.desaturation); + ui.lastDecoSpinBox->setValue(deviceDetails.lastDeco); + ui.brightnessComboBox->setCurrentIndex(deviceDetails.brightness); + ui.unitsComboBox->setCurrentIndex(deviceDetails.units); + ui.samplingRateComboBox->setCurrentIndex(deviceDetails.samplingRate); + ui.salinitySpinBox->setValue(deviceDetails.salinity); + ui.diveModeColour->setCurrentIndex(deviceDetails.diveModeColor); + ui.languageComboBox->setCurrentIndex(deviceDetails.language); + ui.dateFormatComboBox->setCurrentIndex(deviceDetails.dateFormat); + ui.compassGainComboBox->setCurrentIndex(deviceDetails.compassGain); + ui.safetyStopCheckBox->setChecked(deviceDetails.safetyStop); + ui.gfHighSpinBox->setValue(deviceDetails.gfHigh); + ui.gfLowSpinBox->setValue(deviceDetails.gfLow); + ui.pressureSensorOffsetSpinBox->setValue(deviceDetails.pressureSensorOffset); + ui.ppO2MinSpinBox->setValue(deviceDetails.ppO2Min); + ui.ppO2MaxSpinBox->setValue(deviceDetails.ppO2Max); + ui.futureTTSSpinBox->setValue(deviceDetails.futureTTS); + ui.ccrModeComboBox->setCurrentIndex(deviceDetails.ccrMode); + ui.decoTypeComboBox->setCurrentIndex(deviceDetails.decoType); + ui.aGFSelectableCheckBox->setChecked(deviceDetails.aGFSelectable); + ui.aGFHighSpinBox->setValue(deviceDetails.aGFHigh); + ui.aGFLowSpinBox->setValue(deviceDetails.aGFLow); + ui.calibrationGasSpinBox->setValue(deviceDetails.calibrationGas); + ui.flipScreenCheckBox->setChecked(deviceDetails.flipScreen); + ui.leftButtonSensitivity->setValue(deviceDetails.leftButtonSensitivity); + ui.rightButtonSensitivity->setValue(deviceDetails.rightButtonSensitivity); + ui.bottomGasConsumption->setValue(deviceDetails.bottomGasConsumption); + ui.decoGasConsumption->setValue(deviceDetails.decoGasConsumption); + ui.modWarning->setChecked(deviceDetails.modWarning); + ui.dynamicAscendRate->setChecked(deviceDetails.dynamicAscendRate); + ui.graphicalSpeedIndicator->setChecked(deviceDetails.graphicalSpeedIndicator); + ui.alwaysShowppO2->setChecked(deviceDetails.alwaysShowppO2); + ui.tempSensorOffsetDoubleSpinBox->setValue((double)deviceDetails.tempSensorOffset / 10.0); + ui.safetyStopLengthSpinBox->setValue(deviceDetails.safetyStopLength); + ui.safetyStopStartDepthDoubleSpinBox->setValue(deviceDetails.safetyStopStartDepth / 10.0); + ui.safetyStopEndDepthDoubleSpinBox->setValue(deviceDetails.safetyStopEndDepth / 10.0); + ui.safetyStopResetDepthDoubleSpinBox->setValue(deviceDetails.safetyStopResetDepth / 10.0); //load gas 1 values - ui.ostc3GasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->gas1.oxygen))); - ui.ostc3GasTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->gas1.helium))); - ui.ostc3GasTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails->gas1.type))); - ui.ostc3GasTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails->gas1.depth))); + ui.ostc3GasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.gas1.oxygen))); + ui.ostc3GasTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.gas1.helium))); + ui.ostc3GasTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails.gas1.type))); + ui.ostc3GasTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails.gas1.depth))); //load gas 2 values - ui.ostc3GasTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->gas2.oxygen))); - ui.ostc3GasTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->gas2.helium))); - ui.ostc3GasTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails->gas2.type))); - ui.ostc3GasTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails->gas2.depth))); + ui.ostc3GasTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.gas2.oxygen))); + ui.ostc3GasTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.gas2.helium))); + ui.ostc3GasTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails.gas2.type))); + ui.ostc3GasTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails.gas2.depth))); //load gas 3 values - ui.ostc3GasTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->gas3.oxygen))); - ui.ostc3GasTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->gas3.helium))); - ui.ostc3GasTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails->gas3.type))); - ui.ostc3GasTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails->gas3.depth))); + ui.ostc3GasTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.gas3.oxygen))); + ui.ostc3GasTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.gas3.helium))); + ui.ostc3GasTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails.gas3.type))); + ui.ostc3GasTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails.gas3.depth))); //load gas 4 values - ui.ostc3GasTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->gas4.oxygen))); - ui.ostc3GasTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->gas4.helium))); - ui.ostc3GasTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails->gas4.type))); - ui.ostc3GasTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails->gas4.depth))); + ui.ostc3GasTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.gas4.oxygen))); + ui.ostc3GasTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.gas4.helium))); + ui.ostc3GasTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails.gas4.type))); + ui.ostc3GasTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails.gas4.depth))); //load gas 5 values - ui.ostc3GasTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->gas5.oxygen))); - ui.ostc3GasTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->gas5.helium))); - ui.ostc3GasTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails->gas5.type))); - ui.ostc3GasTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails->gas5.depth))); + ui.ostc3GasTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.gas5.oxygen))); + ui.ostc3GasTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.gas5.helium))); + ui.ostc3GasTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails.gas5.type))); + ui.ostc3GasTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails.gas5.depth))); //load dil 1 values - ui.ostc3DilTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->dil1.oxygen))); - ui.ostc3DilTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->dil1.helium))); - ui.ostc3DilTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails->dil1.type))); - ui.ostc3DilTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails->dil1.depth))); + ui.ostc3DilTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.dil1.oxygen))); + ui.ostc3DilTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.dil1.helium))); + ui.ostc3DilTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails.dil1.type))); + ui.ostc3DilTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails.dil1.depth))); //load dil 2 values - ui.ostc3DilTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->dil2.oxygen))); - ui.ostc3DilTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->dil2.helium))); - ui.ostc3DilTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails->dil2.type))); - ui.ostc3DilTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails->dil2.depth))); + ui.ostc3DilTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.dil2.oxygen))); + ui.ostc3DilTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.dil2.helium))); + ui.ostc3DilTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails.dil2.type))); + ui.ostc3DilTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails.dil2.depth))); //load dil 3 values - ui.ostc3DilTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->dil3.oxygen))); - ui.ostc3DilTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->dil3.helium))); - ui.ostc3DilTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails->dil3.type))); - ui.ostc3DilTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails->dil3.depth))); + ui.ostc3DilTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.dil3.oxygen))); + ui.ostc3DilTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.dil3.helium))); + ui.ostc3DilTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails.dil3.type))); + ui.ostc3DilTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails.dil3.depth))); //load dil 4 values - ui.ostc3DilTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->dil4.oxygen))); - ui.ostc3DilTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->dil4.helium))); - ui.ostc3DilTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails->dil4.type))); - ui.ostc3DilTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails->dil4.depth))); + ui.ostc3DilTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.dil4.oxygen))); + ui.ostc3DilTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.dil4.helium))); + ui.ostc3DilTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails.dil4.type))); + ui.ostc3DilTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails.dil4.depth))); //load dil 5 values - ui.ostc3DilTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->dil5.oxygen))); - ui.ostc3DilTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->dil5.helium))); - ui.ostc3DilTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails->dil5.type))); - ui.ostc3DilTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails->dil5.depth))); + ui.ostc3DilTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.dil5.oxygen))); + ui.ostc3DilTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.dil5.helium))); + ui.ostc3DilTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails.dil5.type))); + ui.ostc3DilTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails.dil5.depth))); //load setpoint 1 values - ui.ostc3SetPointTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->sp1.sp))); - ui.ostc3SetPointTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->sp1.depth))); + ui.ostc3SetPointTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.sp1.sp))); + ui.ostc3SetPointTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.sp1.depth))); //load setpoint 2 values - ui.ostc3SetPointTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->sp2.sp))); - ui.ostc3SetPointTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->sp2.depth))); + ui.ostc3SetPointTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.sp2.sp))); + ui.ostc3SetPointTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.sp2.depth))); //load setpoint 3 values - ui.ostc3SetPointTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->sp3.sp))); - ui.ostc3SetPointTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->sp3.depth))); + ui.ostc3SetPointTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.sp3.sp))); + ui.ostc3SetPointTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.sp3.depth))); //load setpoint 4 values - ui.ostc3SetPointTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->sp4.sp))); - ui.ostc3SetPointTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->sp4.depth))); + ui.ostc3SetPointTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.sp4.sp))); + ui.ostc3SetPointTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.sp4.depth))); //load setpoint 5 values - ui.ostc3SetPointTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->sp5.sp))); - ui.ostc3SetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->sp5.depth))); + ui.ostc3SetPointTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.sp5.sp))); + ui.ostc3SetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.sp5.depth))); } void ConfigureDiveComputerDialog::reloadValuesOSTC() @@ -1149,256 +1145,256 @@ setCcrMode # Not in OSTC3 setNumberOfDives */ - ui.serialNoLineEdit_3->setText(deviceDetails->serialNo); - ui.firmwareVersionLineEdit_3->setText(deviceDetails->firmwareVersion); - ui.customTextLlineEdit_3->setText(deviceDetails->customText); - ui.saturationSpinBox_3->setValue(deviceDetails->saturation); - ui.desaturationSpinBox_3->setValue(deviceDetails->desaturation); - ui.lastDecoSpinBox_3->setValue(deviceDetails->lastDeco); - ui.samplingRateSpinBox_3->setValue(deviceDetails->samplingRate); - ui.salinityDoubleSpinBox_3->setValue((double)deviceDetails->salinity / 100.0); - ui.dateFormatComboBox_3->setCurrentIndex(deviceDetails->dateFormat); - ui.safetyStopCheckBox_3->setChecked(deviceDetails->safetyStop); - ui.gfHighSpinBox_3->setValue(deviceDetails->gfHigh); - ui.gfLowSpinBox_3->setValue(deviceDetails->gfLow); - ui.ppO2MinSpinBox_3->setValue(deviceDetails->ppO2Min); - ui.ppO2MaxSpinBox_3->setValue(deviceDetails->ppO2Max); - ui.futureTTSSpinBox_3->setValue(deviceDetails->futureTTS); - ui.decoTypeComboBox_3->setCurrentIndex(deviceDetails->decoType); - ui.aGFSelectableCheckBox_3->setChecked(deviceDetails->aGFSelectable); - ui.aGFHighSpinBox_3->setValue(deviceDetails->aGFHigh); - ui.aGFLowSpinBox_3->setValue(deviceDetails->aGFLow); - ui.numberOfDivesSpinBox_3->setValue(deviceDetails->numberOfDives); - ui.bottomGasConsumption_3->setValue(deviceDetails->bottomGasConsumption); - ui.decoGasConsumption_3->setValue(deviceDetails->decoGasConsumption); - ui.graphicalSpeedIndicator_3->setChecked(deviceDetails->graphicalSpeedIndicator); - ui.safetyStopLengthSpinBox_3->setValue(deviceDetails->safetyStopLength); - ui.safetyStopStartDepthDoubleSpinBox_3->setValue(deviceDetails->safetyStopStartDepth / 10.0); - ui.safetyStopEndDepthDoubleSpinBox_3->setValue(deviceDetails->safetyStopEndDepth / 10.0); - ui.safetyStopResetDepthDoubleSpinBox_3->setValue(deviceDetails->safetyStopResetDepth / 10.0); + ui.serialNoLineEdit_3->setText(deviceDetails.serialNo); + ui.firmwareVersionLineEdit_3->setText(deviceDetails.firmwareVersion); + ui.customTextLlineEdit_3->setText(deviceDetails.customText); + ui.saturationSpinBox_3->setValue(deviceDetails.saturation); + ui.desaturationSpinBox_3->setValue(deviceDetails.desaturation); + ui.lastDecoSpinBox_3->setValue(deviceDetails.lastDeco); + ui.samplingRateSpinBox_3->setValue(deviceDetails.samplingRate); + ui.salinityDoubleSpinBox_3->setValue((double)deviceDetails.salinity / 100.0); + ui.dateFormatComboBox_3->setCurrentIndex(deviceDetails.dateFormat); + ui.safetyStopCheckBox_3->setChecked(deviceDetails.safetyStop); + ui.gfHighSpinBox_3->setValue(deviceDetails.gfHigh); + ui.gfLowSpinBox_3->setValue(deviceDetails.gfLow); + ui.ppO2MinSpinBox_3->setValue(deviceDetails.ppO2Min); + ui.ppO2MaxSpinBox_3->setValue(deviceDetails.ppO2Max); + ui.futureTTSSpinBox_3->setValue(deviceDetails.futureTTS); + ui.decoTypeComboBox_3->setCurrentIndex(deviceDetails.decoType); + ui.aGFSelectableCheckBox_3->setChecked(deviceDetails.aGFSelectable); + ui.aGFHighSpinBox_3->setValue(deviceDetails.aGFHigh); + ui.aGFLowSpinBox_3->setValue(deviceDetails.aGFLow); + ui.numberOfDivesSpinBox_3->setValue(deviceDetails.numberOfDives); + ui.bottomGasConsumption_3->setValue(deviceDetails.bottomGasConsumption); + ui.decoGasConsumption_3->setValue(deviceDetails.decoGasConsumption); + ui.graphicalSpeedIndicator_3->setChecked(deviceDetails.graphicalSpeedIndicator); + ui.safetyStopLengthSpinBox_3->setValue(deviceDetails.safetyStopLength); + ui.safetyStopStartDepthDoubleSpinBox_3->setValue(deviceDetails.safetyStopStartDepth / 10.0); + ui.safetyStopEndDepthDoubleSpinBox_3->setValue(deviceDetails.safetyStopEndDepth / 10.0); + ui.safetyStopResetDepthDoubleSpinBox_3->setValue(deviceDetails.safetyStopResetDepth / 10.0); //load gas 1 values - ui.ostcGasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->gas1.oxygen))); - ui.ostcGasTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->gas1.helium))); - ui.ostcGasTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails->gas1.type))); - ui.ostcGasTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails->gas1.depth))); + ui.ostcGasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.gas1.oxygen))); + ui.ostcGasTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.gas1.helium))); + ui.ostcGasTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails.gas1.type))); + ui.ostcGasTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails.gas1.depth))); //load gas 2 values - ui.ostcGasTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->gas2.oxygen))); - ui.ostcGasTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->gas2.helium))); - ui.ostcGasTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails->gas2.type))); - ui.ostcGasTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails->gas2.depth))); + ui.ostcGasTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.gas2.oxygen))); + ui.ostcGasTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.gas2.helium))); + ui.ostcGasTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails.gas2.type))); + ui.ostcGasTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails.gas2.depth))); //load gas 3 values - ui.ostcGasTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->gas3.oxygen))); - ui.ostcGasTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->gas3.helium))); - ui.ostcGasTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails->gas3.type))); - ui.ostcGasTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails->gas3.depth))); + ui.ostcGasTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.gas3.oxygen))); + ui.ostcGasTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.gas3.helium))); + ui.ostcGasTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails.gas3.type))); + ui.ostcGasTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails.gas3.depth))); //load gas 4 values - ui.ostcGasTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->gas4.oxygen))); - ui.ostcGasTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->gas4.helium))); - ui.ostcGasTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails->gas4.type))); - ui.ostcGasTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails->gas4.depth))); + ui.ostcGasTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.gas4.oxygen))); + ui.ostcGasTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.gas4.helium))); + ui.ostcGasTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails.gas4.type))); + ui.ostcGasTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails.gas4.depth))); //load gas 5 values - ui.ostcGasTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->gas5.oxygen))); - ui.ostcGasTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->gas5.helium))); - ui.ostcGasTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails->gas5.type))); - ui.ostcGasTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails->gas5.depth))); + ui.ostcGasTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.gas5.oxygen))); + ui.ostcGasTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.gas5.helium))); + ui.ostcGasTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails.gas5.type))); + ui.ostcGasTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails.gas5.depth))); //load dil 1 values - ui.ostcDilTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->dil1.oxygen))); - ui.ostcDilTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->dil1.helium))); - ui.ostcDilTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails->dil1.type))); - ui.ostcDilTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails->dil1.depth))); + ui.ostcDilTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.dil1.oxygen))); + ui.ostcDilTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.dil1.helium))); + ui.ostcDilTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails.dil1.type))); + ui.ostcDilTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails.dil1.depth))); //load dil 2 values - ui.ostcDilTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->dil2.oxygen))); - ui.ostcDilTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->dil2.helium))); - ui.ostcDilTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails->dil2.type))); - ui.ostcDilTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails->dil2.depth))); + ui.ostcDilTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.dil2.oxygen))); + ui.ostcDilTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.dil2.helium))); + ui.ostcDilTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails.dil2.type))); + ui.ostcDilTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails.dil2.depth))); //load dil 3 values - ui.ostcDilTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->dil3.oxygen))); - ui.ostcDilTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->dil3.helium))); - ui.ostcDilTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails->dil3.type))); - ui.ostcDilTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails->dil3.depth))); + ui.ostcDilTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.dil3.oxygen))); + ui.ostcDilTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.dil3.helium))); + ui.ostcDilTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails.dil3.type))); + ui.ostcDilTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails.dil3.depth))); //load dil 4 values - ui.ostcDilTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->dil4.oxygen))); - ui.ostcDilTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->dil4.helium))); - ui.ostcDilTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails->dil4.type))); - ui.ostcDilTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails->dil4.depth))); + ui.ostcDilTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.dil4.oxygen))); + ui.ostcDilTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.dil4.helium))); + ui.ostcDilTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails.dil4.type))); + ui.ostcDilTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails.dil4.depth))); //load dil 5 values - ui.ostcDilTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->dil5.oxygen))); - ui.ostcDilTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->dil5.helium))); - ui.ostcDilTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails->dil5.type))); - ui.ostcDilTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails->dil5.depth))); + ui.ostcDilTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.dil5.oxygen))); + ui.ostcDilTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.dil5.helium))); + ui.ostcDilTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails.dil5.type))); + ui.ostcDilTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails.dil5.depth))); //load setpoint 1 values - ui.ostcSetPointTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->sp1.sp))); - ui.ostcSetPointTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->sp1.depth))); + ui.ostcSetPointTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.sp1.sp))); + ui.ostcSetPointTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.sp1.depth))); //load setpoint 2 values - ui.ostcSetPointTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->sp2.sp))); - ui.ostcSetPointTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->sp2.depth))); + ui.ostcSetPointTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.sp2.sp))); + ui.ostcSetPointTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.sp2.depth))); //load setpoint 3 values - ui.ostcSetPointTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->sp3.sp))); - ui.ostcSetPointTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->sp3.depth))); + ui.ostcSetPointTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.sp3.sp))); + ui.ostcSetPointTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.sp3.depth))); //load setpoint 4 values - ui.ostcSetPointTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->sp4.sp))); - ui.ostcSetPointTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->sp4.depth))); + ui.ostcSetPointTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.sp4.sp))); + ui.ostcSetPointTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.sp4.depth))); //load setpoint 5 values - ui.ostcSetPointTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->sp5.sp))); - ui.ostcSetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->sp5.depth))); + ui.ostcSetPointTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.sp5.sp))); + ui.ostcSetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.sp5.depth))); } void ConfigureDiveComputerDialog::reloadValuesSuuntoVyper() { const char *depth_unit; - ui.maxDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails->maxDepth, NULL, &depth_unit)); + ui.maxDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails.maxDepth, NULL, &depth_unit)); ui.maxDepthDoubleSpinBox->setSuffix(depth_unit); - ui.totalTimeSpinBox->setValue(deviceDetails->totalTime); - ui.numberOfDivesSpinBox->setValue(deviceDetails->numberOfDives); - ui.modelLineEdit_1->setText(deviceDetails->model); - ui.firmwareVersionLineEdit_1->setText(deviceDetails->firmwareVersion); - ui.serialNoLineEdit_1->setText(deviceDetails->serialNo); - ui.customTextLlineEdit_1->setText(deviceDetails->customText); - ui.samplingRateComboBox_1->setCurrentIndex(deviceDetails->samplingRate == 60 ? 3 : (deviceDetails->samplingRate / 10) - 1); - ui.altitudeRangeComboBox->setCurrentIndex(deviceDetails->altitude); - ui.personalSafetyComboBox->setCurrentIndex(deviceDetails->personalSafety); - ui.timeFormatComboBox->setCurrentIndex(deviceDetails->timeFormat); - ui.unitsComboBox_1->setCurrentIndex(deviceDetails->units); - ui.diveModeComboBox_1->setCurrentIndex(deviceDetails->diveMode); - ui.lightCheckBox->setChecked(deviceDetails->lightEnabled); - ui.lightSpinBox->setValue(deviceDetails->light); - ui.alarmDepthCheckBox->setChecked(deviceDetails->alarmDepthEnabled); - ui.alarmDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails->alarmDepth, NULL, &depth_unit)); + ui.totalTimeSpinBox->setValue(deviceDetails.totalTime); + ui.numberOfDivesSpinBox->setValue(deviceDetails.numberOfDives); + ui.modelLineEdit_1->setText(deviceDetails.model); + ui.firmwareVersionLineEdit_1->setText(deviceDetails.firmwareVersion); + ui.serialNoLineEdit_1->setText(deviceDetails.serialNo); + ui.customTextLlineEdit_1->setText(deviceDetails.customText); + ui.samplingRateComboBox_1->setCurrentIndex(deviceDetails.samplingRate == 60 ? 3 : (deviceDetails.samplingRate / 10) - 1); + ui.altitudeRangeComboBox->setCurrentIndex(deviceDetails.altitude); + ui.personalSafetyComboBox->setCurrentIndex(deviceDetails.personalSafety); + ui.timeFormatComboBox->setCurrentIndex(deviceDetails.timeFormat); + ui.unitsComboBox_1->setCurrentIndex(deviceDetails.units); + ui.diveModeComboBox_1->setCurrentIndex(deviceDetails.diveMode); + ui.lightCheckBox->setChecked(deviceDetails.lightEnabled); + ui.lightSpinBox->setValue(deviceDetails.light); + ui.alarmDepthCheckBox->setChecked(deviceDetails.alarmDepthEnabled); + ui.alarmDepthDoubleSpinBox->setValue(get_depth_units(deviceDetails.alarmDepth, NULL, &depth_unit)); ui.alarmDepthDoubleSpinBox->setSuffix(depth_unit); - ui.alarmTimeCheckBox->setChecked(deviceDetails->alarmTimeEnabled); - ui.alarmTimeSpinBox->setValue(deviceDetails->alarmTime); + ui.alarmTimeCheckBox->setChecked(deviceDetails.alarmTimeEnabled); + ui.alarmTimeSpinBox->setValue(deviceDetails.alarmTime); } void ConfigureDiveComputerDialog::reloadValuesOSTC4() { - ui.serialNoLineEdit_4->setText(deviceDetails->serialNo); - ui.firmwareVersionLineEdit_4->setText(deviceDetails->firmwareVersion); - ui.customTextLlineEdit_4->setText(deviceDetails->customText); - ui.modelLineEdit_4->setText(deviceDetails->model); - ui.diveModeComboBox_4->setCurrentIndex(deviceDetails->diveMode); - ui.lastDecoSpinBox_4->setValue(deviceDetails->lastDeco); - ui.brightnessComboBox_4->setCurrentIndex(deviceDetails->brightness); - ui.unitsComboBox_4->setCurrentIndex(deviceDetails->units); - ui.salinitySpinBox_4->setValue(deviceDetails->salinity); - ui.diveModeColour_4->setCurrentIndex(deviceDetails->diveModeColor); - ui.languageComboBox_4->setCurrentIndex(deviceDetails->language); - ui.dateFormatComboBox_4->setCurrentIndex(deviceDetails->dateFormat); - ui.safetyStopCheckBox_4->setChecked(deviceDetails->safetyStop); - ui.gfHighSpinBox_4->setValue(deviceDetails->gfHigh); - ui.gfLowSpinBox_4->setValue(deviceDetails->gfLow); - ui.pressureSensorOffsetSpinBox_4->setValue(deviceDetails->pressureSensorOffset); - ui.ppO2MinSpinBox_4->setValue(deviceDetails->ppO2Min); - ui.ppO2MaxSpinBox_4->setValue(deviceDetails->ppO2Max); - ui.futureTTSSpinBox_4->setValue(deviceDetails->futureTTS); - ui.ccrModeComboBox_4->setCurrentIndex(deviceDetails->ccrMode); - ui.decoTypeComboBox_4->setCurrentIndex(deviceDetails->decoType); - ui.aGFHighSpinBox_4->setValue(deviceDetails->aGFHigh); - ui.aGFLowSpinBox_4->setValue(deviceDetails->aGFLow); - ui.vpmConservatismSpinBox->setValue(deviceDetails->vpmConservatism); - ui.setPointFallbackCheckBox_4->setChecked(deviceDetails->setPointFallback); - ui.buttonSensitivity_4->setValue(deviceDetails->buttonSensitivity); - ui.bottomGasConsumption_4->setValue(deviceDetails->bottomGasConsumption); - ui.decoGasConsumption_4->setValue(deviceDetails->decoGasConsumption); - ui.travelGasConsumption_4->setValue(deviceDetails->travelGasConsumption); - ui.alwaysShowppO2_4->setChecked(deviceDetails->alwaysShowppO2); - ui.tempSensorOffsetDoubleSpinBox_4->setValue((double)deviceDetails->tempSensorOffset / 10.0); - ui.safetyStopLengthSpinBox_4->setValue(deviceDetails->safetyStopLength); - ui.safetyStopStartDepthDoubleSpinBox_4->setValue(deviceDetails->safetyStopStartDepth / 10.0); + ui.serialNoLineEdit_4->setText(deviceDetails.serialNo); + ui.firmwareVersionLineEdit_4->setText(deviceDetails.firmwareVersion); + ui.customTextLlineEdit_4->setText(deviceDetails.customText); + ui.modelLineEdit_4->setText(deviceDetails.model); + ui.diveModeComboBox_4->setCurrentIndex(deviceDetails.diveMode); + ui.lastDecoSpinBox_4->setValue(deviceDetails.lastDeco); + ui.brightnessComboBox_4->setCurrentIndex(deviceDetails.brightness); + ui.unitsComboBox_4->setCurrentIndex(deviceDetails.units); + ui.salinitySpinBox_4->setValue(deviceDetails.salinity); + ui.diveModeColour_4->setCurrentIndex(deviceDetails.diveModeColor); + ui.languageComboBox_4->setCurrentIndex(deviceDetails.language); + ui.dateFormatComboBox_4->setCurrentIndex(deviceDetails.dateFormat); + ui.safetyStopCheckBox_4->setChecked(deviceDetails.safetyStop); + ui.gfHighSpinBox_4->setValue(deviceDetails.gfHigh); + ui.gfLowSpinBox_4->setValue(deviceDetails.gfLow); + ui.pressureSensorOffsetSpinBox_4->setValue(deviceDetails.pressureSensorOffset); + ui.ppO2MinSpinBox_4->setValue(deviceDetails.ppO2Min); + ui.ppO2MaxSpinBox_4->setValue(deviceDetails.ppO2Max); + ui.futureTTSSpinBox_4->setValue(deviceDetails.futureTTS); + ui.ccrModeComboBox_4->setCurrentIndex(deviceDetails.ccrMode); + ui.decoTypeComboBox_4->setCurrentIndex(deviceDetails.decoType); + ui.aGFHighSpinBox_4->setValue(deviceDetails.aGFHigh); + ui.aGFLowSpinBox_4->setValue(deviceDetails.aGFLow); + ui.vpmConservatismSpinBox->setValue(deviceDetails.vpmConservatism); + ui.setPointFallbackCheckBox_4->setChecked(deviceDetails.setPointFallback); + ui.buttonSensitivity_4->setValue(deviceDetails.buttonSensitivity); + ui.bottomGasConsumption_4->setValue(deviceDetails.bottomGasConsumption); + ui.decoGasConsumption_4->setValue(deviceDetails.decoGasConsumption); + ui.travelGasConsumption_4->setValue(deviceDetails.travelGasConsumption); + ui.alwaysShowppO2_4->setChecked(deviceDetails.alwaysShowppO2); + ui.tempSensorOffsetDoubleSpinBox_4->setValue((double)deviceDetails.tempSensorOffset / 10.0); + ui.safetyStopLengthSpinBox_4->setValue(deviceDetails.safetyStopLength); + ui.safetyStopStartDepthDoubleSpinBox_4->setValue(deviceDetails.safetyStopStartDepth / 10.0); //load gas 1 values - ui.ostc4GasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->gas1.oxygen))); - ui.ostc4GasTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->gas1.helium))); - ui.ostc4GasTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails->gas1.type))); - ui.ostc4GasTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails->gas1.depth))); + ui.ostc4GasTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.gas1.oxygen))); + ui.ostc4GasTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.gas1.helium))); + ui.ostc4GasTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails.gas1.type))); + ui.ostc4GasTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails.gas1.depth))); //load gas 2 values - ui.ostc4GasTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->gas2.oxygen))); - ui.ostc4GasTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->gas2.helium))); - ui.ostc4GasTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails->gas2.type))); - ui.ostc4GasTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails->gas2.depth))); + ui.ostc4GasTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.gas2.oxygen))); + ui.ostc4GasTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.gas2.helium))); + ui.ostc4GasTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails.gas2.type))); + ui.ostc4GasTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails.gas2.depth))); //load gas 3 values - ui.ostc4GasTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->gas3.oxygen))); - ui.ostc4GasTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->gas3.helium))); - ui.ostc4GasTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails->gas3.type))); - ui.ostc4GasTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails->gas3.depth))); + ui.ostc4GasTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.gas3.oxygen))); + ui.ostc4GasTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.gas3.helium))); + ui.ostc4GasTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails.gas3.type))); + ui.ostc4GasTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails.gas3.depth))); //load gas 4 values - ui.ostc4GasTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->gas4.oxygen))); - ui.ostc4GasTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->gas4.helium))); - ui.ostc4GasTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails->gas4.type))); - ui.ostc4GasTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails->gas4.depth))); + ui.ostc4GasTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.gas4.oxygen))); + ui.ostc4GasTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.gas4.helium))); + ui.ostc4GasTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails.gas4.type))); + ui.ostc4GasTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails.gas4.depth))); //load gas 5 values - ui.ostc4GasTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->gas5.oxygen))); - ui.ostc4GasTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->gas5.helium))); - ui.ostc4GasTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails->gas5.type))); - ui.ostc4GasTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails->gas5.depth))); + ui.ostc4GasTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.gas5.oxygen))); + ui.ostc4GasTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.gas5.helium))); + ui.ostc4GasTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails.gas5.type))); + ui.ostc4GasTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails.gas5.depth))); //load dil 1 values - ui.ostc4DilTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->dil1.oxygen))); - ui.ostc4DilTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->dil1.helium))); - ui.ostc4DilTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails->dil1.type))); - ui.ostc4DilTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails->dil1.depth))); + ui.ostc4DilTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.dil1.oxygen))); + ui.ostc4DilTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.dil1.helium))); + ui.ostc4DilTable->setItem(0, 3, new QTableWidgetItem(QString::number(deviceDetails.dil1.type))); + ui.ostc4DilTable->setItem(0, 4, new QTableWidgetItem(QString::number(deviceDetails.dil1.depth))); //load dil 2 values - ui.ostc4DilTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->dil2.oxygen))); - ui.ostc4DilTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->dil2.helium))); - ui.ostc4DilTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails->dil2.type))); - ui.ostc4DilTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails->dil2.depth))); + ui.ostc4DilTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.dil2.oxygen))); + ui.ostc4DilTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.dil2.helium))); + ui.ostc4DilTable->setItem(1, 3, new QTableWidgetItem(QString::number(deviceDetails.dil2.type))); + ui.ostc4DilTable->setItem(1, 4, new QTableWidgetItem(QString::number(deviceDetails.dil2.depth))); //load dil 3 values - ui.ostc4DilTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->dil3.oxygen))); - ui.ostc4DilTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->dil3.helium))); - ui.ostc4DilTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails->dil3.type))); - ui.ostc4DilTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails->dil3.depth))); + ui.ostc4DilTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.dil3.oxygen))); + ui.ostc4DilTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.dil3.helium))); + ui.ostc4DilTable->setItem(2, 3, new QTableWidgetItem(QString::number(deviceDetails.dil3.type))); + ui.ostc4DilTable->setItem(2, 4, new QTableWidgetItem(QString::number(deviceDetails.dil3.depth))); //load dil 4 values - ui.ostc4DilTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->dil4.oxygen))); - ui.ostc4DilTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->dil4.helium))); - ui.ostc4DilTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails->dil4.type))); - ui.ostc4DilTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails->dil4.depth))); + ui.ostc4DilTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.dil4.oxygen))); + ui.ostc4DilTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.dil4.helium))); + ui.ostc4DilTable->setItem(3, 3, new QTableWidgetItem(QString::number(deviceDetails.dil4.type))); + ui.ostc4DilTable->setItem(3, 4, new QTableWidgetItem(QString::number(deviceDetails.dil4.depth))); //load dil 5 values - ui.ostc4DilTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->dil5.oxygen))); - ui.ostc4DilTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->dil5.helium))); - ui.ostc4DilTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails->dil5.type))); - ui.ostc4DilTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails->dil5.depth))); + ui.ostc4DilTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.dil5.oxygen))); + ui.ostc4DilTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.dil5.helium))); + ui.ostc4DilTable->setItem(4, 3, new QTableWidgetItem(QString::number(deviceDetails.dil5.type))); + ui.ostc4DilTable->setItem(4, 4, new QTableWidgetItem(QString::number(deviceDetails.dil5.depth))); //load setpoint 1 values - ui.ostc4SetPointTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails->sp1.sp))); - ui.ostc4SetPointTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails->sp1.depth))); + ui.ostc4SetPointTable->setItem(0, 1, new QTableWidgetItem(QString::number(deviceDetails.sp1.sp))); + ui.ostc4SetPointTable->setItem(0, 2, new QTableWidgetItem(QString::number(deviceDetails.sp1.depth))); //load setpoint 2 values - ui.ostc4SetPointTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails->sp2.sp))); - ui.ostc4SetPointTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails->sp2.depth))); + ui.ostc4SetPointTable->setItem(1, 1, new QTableWidgetItem(QString::number(deviceDetails.sp2.sp))); + ui.ostc4SetPointTable->setItem(1, 2, new QTableWidgetItem(QString::number(deviceDetails.sp2.depth))); //load setpoint 4 values - ui.ostc4SetPointTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails->sp3.sp))); - ui.ostc4SetPointTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails->sp3.depth))); + ui.ostc4SetPointTable->setItem(2, 1, new QTableWidgetItem(QString::number(deviceDetails.sp3.sp))); + ui.ostc4SetPointTable->setItem(2, 2, new QTableWidgetItem(QString::number(deviceDetails.sp3.depth))); //load setpoint 4 values - ui.ostc4SetPointTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails->sp4.sp))); - ui.ostc4SetPointTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails->sp4.depth))); + ui.ostc4SetPointTable->setItem(3, 1, new QTableWidgetItem(QString::number(deviceDetails.sp4.sp))); + ui.ostc4SetPointTable->setItem(3, 2, new QTableWidgetItem(QString::number(deviceDetails.sp4.depth))); //load setpoint 5 values - ui.ostc4SetPointTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails->sp5.sp))); - ui.ostc4SetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails->sp5.depth))); + ui.ostc4SetPointTable->setItem(4, 1, new QTableWidgetItem(QString::number(deviceDetails.sp5.sp))); + ui.ostc4SetPointTable->setItem(4, 2, new QTableWidgetItem(QString::number(deviceDetails.sp5.depth))); } void ConfigureDiveComputerDialog::on_backupButton_clicked() diff --git a/desktop-widgets/configuredivecomputerdialog.h b/desktop-widgets/configuredivecomputerdialog.h index 63117088a..191ef736d 100644 --- a/desktop-widgets/configuredivecomputerdialog.h +++ b/desktop-widgets/configuredivecomputerdialog.h @@ -74,7 +74,7 @@ slots: void configError(QString err); void on_close_clicked(); void on_saveSettingsPushButton_clicked(); - void deviceDetailsReceived(DeviceDetails *newDeviceDetails); + void deviceDetailsReceived(DeviceDetails newDeviceDetails); void reloadValues(); void on_backupButton_clicked(); @@ -104,7 +104,7 @@ private: void fill_device_list(unsigned int transport); - DeviceDetails *deviceDetails; + DeviceDetails deviceDetails; void populateDeviceDetails(); void populateDeviceDetailsOSTC3(); void populateDeviceDetailsOSTC(); diff --git a/subsurface-helper.cpp b/subsurface-helper.cpp index 1a2554101..351e3d19b 100644 --- a/subsurface-helper.cpp +++ b/subsurface-helper.cpp @@ -8,6 +8,7 @@ #endif #include "stats/statsview.h" +#include "core/devicedetails.h" #include "core/globals.h" #include "core/qt-gui.h" #include "core/settings/qPref.h" @@ -201,6 +202,7 @@ Q_DECLARE_METATYPE(duration_t) static void register_meta_types() { qRegisterMetaType(); + qRegisterMetaType(); } template