108 lines
2.2 KiB
C++
108 lines
2.2 KiB
C++
#include <aladin/information.hpp>
|
|
#include <common/file.hpp>
|
|
|
|
Information::Information()
|
|
{
|
|
mComputerType=0;
|
|
mExtraInfo1=0;
|
|
}
|
|
|
|
Information::~Information()
|
|
{
|
|
}
|
|
|
|
bool Information::readFrom(RawData &array)
|
|
{
|
|
try
|
|
{
|
|
mComputerType=array[0x7BC];
|
|
mExtraInfo1=array[0x7D2];
|
|
}
|
|
catch(ArrayIndexOutOfBoundsException exception)
|
|
{
|
|
::OutputDebugString(exception.toString()+String("\n"));
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool Information::readFrom(File &inFile)
|
|
{
|
|
if(!inFile.isOkay())return false;
|
|
if(!inFile.read(&mComputerType,sizeof(mComputerType)))return false;
|
|
if(!inFile.read(&mExtraInfo1,sizeof(mExtraInfo1)))return false;
|
|
return true;
|
|
}
|
|
|
|
bool Information::writeTo(File &outFile)
|
|
{
|
|
if(!outFile.isOkay())return false;
|
|
if(!outFile.write(&mComputerType,sizeof(mComputerType)))return false;
|
|
if(!outFile.write(&mExtraInfo1,sizeof(mExtraInfo1)))return false;
|
|
return true;
|
|
}
|
|
|
|
Information::Model Information::getComputerType(void)const
|
|
{
|
|
switch(mComputerType)
|
|
{
|
|
case 0x40 :
|
|
return MaresGenius;
|
|
case 0x34 :
|
|
return AladinAirZ;
|
|
case 0x44 :
|
|
return AladinAirZ;
|
|
case 0xA4 :
|
|
return AladinAirZO2;
|
|
case 0xF4 :
|
|
return AladinAirXNitrox;
|
|
case 0x48 :
|
|
return SpiroMonitor3Air;
|
|
case 0x1C :
|
|
return AladinAirTwin;
|
|
case 0x1D :
|
|
case 0x3D :
|
|
return SpiroMonitor2Plus;
|
|
case 0x1E :
|
|
case 0x3E :
|
|
return AladinSportPlus;
|
|
case 0x1F :
|
|
case 0x3F :
|
|
return AladinPro;
|
|
case 0xFF :
|
|
return AladinProUltra;
|
|
default :
|
|
return Unknown;
|
|
}
|
|
}
|
|
|
|
String Information::getComputerTypeString(void)const
|
|
{
|
|
switch(getComputerType())
|
|
{
|
|
case MaresGenius :
|
|
return "Mares Genius";
|
|
case AladinAirZ :
|
|
return "Aladin Air Z/Aladin Air X";
|
|
case AladinAirZO2 :
|
|
return "Aladin Air Z O2/Aladin Air X O2";
|
|
case AladinAirXNitrox :
|
|
return "Aladin Air X Nitrox";
|
|
case SpiroMonitor3Air :
|
|
return "Spiro Monitor 3 Air";
|
|
case AladinAirTwin :
|
|
return "Aladin Air Twin/Aladin Air";
|
|
case SpiroMonitor2Plus :
|
|
return "Spiro Monitor 2 Plus";
|
|
case AladinSportPlus :
|
|
return "Aladin Sport Plus/Aladin Sport";
|
|
case AladinPro :
|
|
return "Aladin Pro";
|
|
case AladinProUltra :
|
|
return "Aladin Pro Ultra/Aladin Pro Nitrox";
|
|
case Unknown :
|
|
default :
|
|
return "Unknown";
|
|
}
|
|
}
|