mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Create a constructor with default parameters for some structs
Structs and classes in C++ are basically the same thing and we want to create a few zero-initialized values for some of them; Sadly, C++ doesn't have the nice static struct initialization that C has. One way to deal with that is to create a constructor and pass default values to it, another is lambda-initialization, but we don't use C++11, yet. Since we initializate stuff on the constructor, we don't need to re-initializate things again on the initialization list (which is also why I removed the QStrings from the initialization lists, they are automatically initialized to empty) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
2745beca5f
commit
f25dce8511
3 changed files with 16 additions and 37 deletions
|
@ -1131,37 +1131,27 @@ static dc_status_t read_ostc_settings(dc_device_t *device, DeviceDetails *m_devi
|
|||
// Diluent 1 Default (%O2,%He)
|
||||
// Byte98-99:
|
||||
// Diluent 1 Current (%O2,%He)
|
||||
gas dil1 = {};
|
||||
dil1.oxygen = data[97];
|
||||
dil1.helium = data[98];
|
||||
gas dil1(data[97], data[98]);
|
||||
// Byte100-101:
|
||||
// Gasuent 2 Default (%O2,%He)
|
||||
// Byte102-103:
|
||||
// Gasuent 2 Current (%O2,%He)
|
||||
gas dil2 = {};
|
||||
dil2.oxygen = data[101];
|
||||
dil2.helium = data[102];
|
||||
gas dil2(data[101], data[102]);
|
||||
// Byte104-105:
|
||||
// Gasuent 3 Default (%O2,%He)
|
||||
// Byte106-107:
|
||||
// Gasuent 3 Current (%O2,%He)
|
||||
gas dil3 = {};
|
||||
dil3.oxygen = data[105];
|
||||
dil3.helium = data[106];
|
||||
gas dil3(data[105], data[106]);
|
||||
// Byte108-109:
|
||||
// Gasuent 4 Default (%O2,%He)
|
||||
// Byte110-111:
|
||||
// Gasuent 4 Current (%O2,%He)
|
||||
gas dil4 = {};
|
||||
dil4.oxygen = data[109];
|
||||
dil4.helium = data[110];
|
||||
gas dil4(data[109], data[110]);
|
||||
// Byte112-113:
|
||||
// Gasuent 5 Default (%O2,%He)
|
||||
// Byte114-115:
|
||||
// Gasuent 5 Current (%O2,%He)
|
||||
gas dil5 = {};
|
||||
dil5.oxygen = data[113];
|
||||
dil5.helium = data[114];
|
||||
gas dil5(data[113], data[114]);
|
||||
// Byte116:
|
||||
// First Diluent (1-5)
|
||||
switch (data[115]) {
|
||||
|
|
|
@ -1,32 +1,19 @@
|
|||
#include "devicedetails.h"
|
||||
|
||||
// This can probably be done better by someone with better c++-FU
|
||||
const struct gas zero_gas = {0};
|
||||
const struct setpoint zero_setpoint = {0};
|
||||
gas::gas(unsigned char oxygen, unsigned char helium, unsigned char type, unsigned char depth) :
|
||||
oxygen(oxygen), helium(helium), type(type), depth(depth)
|
||||
{
|
||||
}
|
||||
|
||||
setpoint::setpoint(unsigned char sp, unsigned char depth) :
|
||||
sp(sp), depth(depth)
|
||||
{
|
||||
}
|
||||
|
||||
DeviceDetails::DeviceDetails(QObject *parent) :
|
||||
QObject(parent),
|
||||
data(0),
|
||||
serialNo(""),
|
||||
firmwareVersion(""),
|
||||
customText(""),
|
||||
model(""),
|
||||
syncTime(false),
|
||||
gas1(zero_gas),
|
||||
gas2(zero_gas),
|
||||
gas3(zero_gas),
|
||||
gas4(zero_gas),
|
||||
gas5(zero_gas),
|
||||
dil1(zero_gas),
|
||||
dil2(zero_gas),
|
||||
dil3(zero_gas),
|
||||
dil4(zero_gas),
|
||||
dil5(zero_gas),
|
||||
sp1(zero_setpoint),
|
||||
sp2(zero_setpoint),
|
||||
sp3(zero_setpoint),
|
||||
sp4(zero_setpoint),
|
||||
sp5(zero_setpoint),
|
||||
setPointFallback(0),
|
||||
ccrMode(0),
|
||||
calibrationGas(0),
|
||||
|
|
|
@ -10,11 +10,13 @@ struct gas {
|
|||
unsigned char helium;
|
||||
unsigned char type;
|
||||
unsigned char depth;
|
||||
gas(unsigned char oxygen = 0, unsigned char helium = 0, unsigned char type = 0, unsigned char depth = 0);
|
||||
};
|
||||
|
||||
struct setpoint {
|
||||
unsigned char sp;
|
||||
unsigned char depth;
|
||||
setpoint(unsigned char sp = 0, unsigned char depth = 0);
|
||||
};
|
||||
|
||||
class DeviceDetails : public QObject
|
||||
|
|
Loading…
Add table
Reference in a new issue