summaryrefslogtreecommitdiffstats
path: root/configuredivecomputerthreads.cpp
diff options
context:
space:
mode:
authorGravatar Anton Lundin <glance@acc.umu.se>2014-10-18 00:33:44 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-10-18 15:21:57 -0700
commitb2a9de7cb447838344d854a8630a1e2ea03e0838 (patch)
treeee850aed2578586a18355f140ad250e952631609 /configuredivecomputerthreads.cpp
parentb2a66eab14a8475d6541aef7342f5b28a9a8c2b9 (diff)
downloadsubsurface-b2a9de7cb447838344d854a8630a1e2ea03e0838.tar.gz
Simplify some OSTC3 Code with macros
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'configuredivecomputerthreads.cpp')
-rw-r--r--configuredivecomputerthreads.cpp134
1 files changed, 38 insertions, 96 deletions
diff --git a/configuredivecomputerthreads.cpp b/configuredivecomputerthreads.cpp
index c2d7fa7b1..7af7636e6 100644
--- a/configuredivecomputerthreads.cpp
+++ b/configuredivecomputerthreads.cpp
@@ -387,55 +387,26 @@ void ReadSettingsThread::run()
//Read other settings
unsigned char uData[1] = {0};
- //DiveMode
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_DIVE_MODE, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setDiveMode(uData[0]);
- //Saturation
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_SATURATION, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setSaturation(uData[0]);
- //Desaturation
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_DESATURATION, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setDesaturation(uData[0]);
- //LastDeco
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_LAST_DECO, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setLastDeco(uData[0]);
- //Brightness
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_BRIGHTNESS, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setBrightness(uData[0]);
- //Units
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_UNITS, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setUnits(uData[0]);
- //Sampling Rate
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_SAMPLING_RATE, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setSamplingRate(uData[0]);
- //Salinity
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_SALINITY, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setSalinity(uData[0]);
- //Dive mode colour
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_DIVEMODE_COLOR, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setDiveModeColor(uData[0]);
- //Language
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_LANGUAGE, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setLanguage(uData[0]);
- //Date Format
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_DATE_FORMAT, uData, sizeof(uData));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setDateFormat(uData[0]);
- //Compass gain
- rc = hw_ostc3_device_config_read(m_data->device, OSTC3_COMPASS_GAIN, data, sizeof(data));
- if (rc == DC_STATUS_SUCCESS)
- m_deviceDetails->setCompassGain(uData[0]);
+#define READ_SETTING(_OSTC3_SETTING, _DEVICE_DETAIL) \
+ rc = hw_ostc3_device_config_read(m_data->device, _OSTC3_SETTING, uData, sizeof(uData)); \
+ if (rc == DC_STATUS_SUCCESS) \
+ m_deviceDetails->_DEVICE_DETAIL(uData[0]);
+
+ READ_SETTING(OSTC3_DIVE_MODE, setDiveMode)
+ READ_SETTING(OSTC3_SATURATION, setSaturation)
+ READ_SETTING(OSTC3_DESATURATION, setDesaturation)
+ READ_SETTING(OSTC3_LAST_DECO, setLastDeco)
+ READ_SETTING(OSTC3_BRIGHTNESS, setBrightness)
+ READ_SETTING(OSTC3_UNITS, setUnits)
+ READ_SETTING(OSTC3_SAMPLING_RATE,setSamplingRate)
+ READ_SETTING(OSTC3_SALINITY, setSalinity)
+ READ_SETTING(OSTC3_DIVEMODE_COLOR,setDiveModeColor)
+ READ_SETTING(OSTC3_LANGUAGE, setLanguage)
+ READ_SETTING(OSTC3_DATE_FORMAT, setDateFormat)
+ READ_SETTING(OSTC3_COMPASS_GAIN, setCompassGain)
+
+#undef READ_SETTING
//read firmware settings
unsigned char fData[64] = {0};
@@ -629,55 +600,26 @@ void WriteSettingsThread::run()
//write general settings
//custom text
hw_ostc3_device_customtext(m_data->device, m_deviceDetails->customText().toUtf8().data());
- unsigned char data[1] = {0};
-
- //dive mode
- data[0] = m_deviceDetails->diveMode();
- hw_ostc3_device_config_write(m_data->device, OSTC3_DIVE_MODE, data, sizeof(data));
-
- //saturation
- data[0] = m_deviceDetails->saturation();
- hw_ostc3_device_config_write(m_data->device, OSTC3_SATURATION, data, sizeof(data));
-
- //desaturation
- data[0] = m_deviceDetails->desaturation();
- hw_ostc3_device_config_write(m_data->device, OSTC3_DESATURATION, data, sizeof(data));
-
- //last deco
- data[0] = m_deviceDetails->lastDeco();
- hw_ostc3_device_config_write(m_data->device, OSTC3_LAST_DECO, data, sizeof(data));
-
- //brightness
- data[0] = m_deviceDetails->brightness();
- hw_ostc3_device_config_write(m_data->device, OSTC3_BRIGHTNESS, data, sizeof(data));
-
- //units
- data[0] = m_deviceDetails->units();
- hw_ostc3_device_config_write(m_data->device, OSTC3_UNITS, data, sizeof(data));
- //sampling rate
- data[0] = m_deviceDetails->samplingRate();
- hw_ostc3_device_config_write(m_data->device, OSTC3_SAMPLING_RATE, data, sizeof(data));
-
- //salinity
- data[0] = m_deviceDetails->salinity();
- hw_ostc3_device_config_write(m_data->device, OSTC3_SALINITY, data, sizeof(data));
-
- //dive mode colour
- data[0] = m_deviceDetails->diveModeColor();
- hw_ostc3_device_config_write(m_data->device, OSTC3_DIVEMODE_COLOR, data, sizeof(data));
-
- //language
- data[0] = m_deviceDetails->language();
- hw_ostc3_device_config_write(m_data->device, OSTC3_LANGUAGE, data, sizeof(data));
-
- //date format
- data[0] = m_deviceDetails->dateFormat();
- hw_ostc3_device_config_write(m_data->device, OSTC3_DATE_FORMAT, data, sizeof(data));
-
- //compass gain
- data[0] = m_deviceDetails->compassGain();
- hw_ostc3_device_config_write(m_data->device, OSTC3_COMPASS_GAIN, data, sizeof(data));
+ unsigned char data[1] = {0};
+#define WRITE_SETTING(_OSTC3_SETTING, _DEVICE_DETAIL) \
+ data[0] = m_deviceDetails->_DEVICE_DETAIL(); \
+ hw_ostc3_device_config_write(m_data->device, _OSTC3_SETTING, data, sizeof(data));
+
+ WRITE_SETTING(OSTC3_DIVE_MODE, diveMode)
+ WRITE_SETTING(OSTC3_SATURATION, saturation)
+ WRITE_SETTING(OSTC3_DESATURATION, desaturation)
+ WRITE_SETTING(OSTC3_LAST_DECO, lastDeco)
+ WRITE_SETTING(OSTC3_BRIGHTNESS, brightness)
+ WRITE_SETTING(OSTC3_UNITS, units)
+ WRITE_SETTING(OSTC3_SAMPLING_RATE, samplingRate)
+ WRITE_SETTING(OSTC3_SALINITY, salinity)
+ WRITE_SETTING(OSTC3_DIVEMODE_COLOR, diveModeColor)
+ WRITE_SETTING(OSTC3_LANGUAGE, language)
+ WRITE_SETTING(OSTC3_DATE_FORMAT, dateFormat)
+ WRITE_SETTING(OSTC3_COMPASS_GAIN, compassGain)
+
+#undef WRITE_SETTING
//sync date and time
if (m_deviceDetails->syncTime()) {