mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-09 04:30:43 +00:00
Some C++11 cleanups to importers, preparing for autoscanner/import wizard
This commit is contained in:
parent
e8fe6c7af0
commit
38d7aeb3fb
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -954,18 +954,19 @@ void gGraphView::updateScale()
|
||||
|
||||
void gGraphView::updateScrollBar()
|
||||
{
|
||||
if (!m_scrollbar) { return; }
|
||||
|
||||
if (!m_graphs.size()) { return; }
|
||||
if (!m_scrollbar || (m_graphs.size() == 0)) {
|
||||
return;
|
||||
}
|
||||
|
||||
float th = scaleHeight(); // height of all graphs
|
||||
float h = height(); // height of main widget
|
||||
|
||||
float vis = 0;
|
||||
|
||||
for (int i = 0; i < m_graphs.size(); i++) { vis += m_graphs[i]->isEmpty() || (!m_graphs[i]->visible()) ? 0 : 1; }
|
||||
for (int i = 0; i < m_graphs.size(); i++) {
|
||||
vis += (m_graphs[i]->isEmpty() || !m_graphs[i]->visible()) ? 0 : 1;
|
||||
}
|
||||
|
||||
//vis+=1;
|
||||
if (th < h) { // less graphs than fits on screen
|
||||
|
||||
m_scrollbar->setMaximum(0); // turn scrollbar off.
|
||||
@ -1027,7 +1028,7 @@ void gGraphView::resizeGL(int w, int h)
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
void gGraphView::renderSomethingFun(float alpha)
|
||||
void gGraphView::renderCube(float alpha)
|
||||
{
|
||||
if (cubeimg.size() == 0) { return; }
|
||||
|
||||
@ -1366,55 +1367,51 @@ bool gGraphView::renderGraphs()
|
||||
|
||||
//int thr=m_idealthreads;
|
||||
#ifdef ENABLED_THREADED_DRAWING
|
||||
if (threaded) {
|
||||
for (int i = 0; i < m_idealthreads; i++) {
|
||||
masterlock->acquire(1);
|
||||
m_threads[i]->mutex.unlock();
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_idealthreads; i++) {
|
||||
masterlock->acquire(1);
|
||||
m_threads[i]->mutex.unlock();
|
||||
}
|
||||
|
||||
// wait till all the threads are done
|
||||
// ask for all the CPU's back..
|
||||
masterlock->acquire(m_idealthreads);
|
||||
masterlock->release(m_idealthreads);
|
||||
|
||||
}
|
||||
else // just do it here
|
||||
{
|
||||
// wait till all the threads are done
|
||||
// ask for all the CPU's back..
|
||||
masterlock->acquire(m_idealthreads);
|
||||
masterlock->release(m_idealthreads);
|
||||
} else {
|
||||
#endif
|
||||
s = m_drawlist.size();
|
||||
s = m_drawlist.size();
|
||||
|
||||
for (int i = 0; i < s; i++) {
|
||||
gGraph *g = m_drawlist.at(0);
|
||||
m_drawlist.pop_front();
|
||||
g->paint(g->m_rect.x(), g->m_rect.y(), g->m_rect.width(), g->m_rect.height());
|
||||
}
|
||||
for (int i = 0; i < s; i++) {
|
||||
gGraph *g = m_drawlist.at(0);
|
||||
m_drawlist.pop_front();
|
||||
g->paint(g->m_rect.x(), g->m_rect.y(), g->m_rect.width(), g->m_rect.height());
|
||||
}
|
||||
|
||||
#ifdef ENABLED_THREADED_DRAWING
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
//int elapsed=time.elapsed();
|
||||
//QColor col=Qt::black;
|
||||
//int elapsed=time.elapsed();
|
||||
//QColor col=Qt::black;
|
||||
|
||||
|
||||
backlines->draw();
|
||||
backlines->draw();
|
||||
|
||||
for (int i = 0; i < m_graphs.size(); i++)
|
||||
{
|
||||
m_graphs[i]->drawGLBuf();
|
||||
}
|
||||
for (int i = 0; i < m_graphs.size(); i++)
|
||||
{
|
||||
m_graphs[i]->drawGLBuf();
|
||||
}
|
||||
|
||||
quads->draw();
|
||||
lines->draw();
|
||||
quads->draw();
|
||||
lines->draw();
|
||||
|
||||
|
||||
// lines->setSize(linesize);
|
||||
// lines->setSize(linesize);
|
||||
|
||||
// DrawTextQue();
|
||||
//glDisable(GL_TEXTURE_2D);
|
||||
//glDisable(GL_DEPTH_TEST);
|
||||
// DrawTextQue();
|
||||
//glDisable(GL_TEXTURE_2D);
|
||||
//glDisable(GL_DEPTH_TEST);
|
||||
|
||||
return numgraphs > 0;
|
||||
return numgraphs > 0;
|
||||
}
|
||||
void gGraphView::fadeOut()
|
||||
{
|
||||
@ -1605,7 +1602,7 @@ void gGraphView::paintGL()
|
||||
if (!m_inAnimation || (!m_fadingIn)) {
|
||||
// Not in animation sequence, draw graphs like normal
|
||||
if (bereallyannoying) {
|
||||
renderSomethingFun(0.7F);
|
||||
renderCube(0.7F);
|
||||
}
|
||||
|
||||
numgraphs = renderGraphs();
|
||||
@ -1617,7 +1614,7 @@ void gGraphView::paintGL()
|
||||
|
||||
if (something_fun && this->isVisible()) {// Do something fun instead
|
||||
if (!bereallyannoying) {
|
||||
renderSomethingFun();
|
||||
renderCube();
|
||||
}
|
||||
|
||||
tp = height() - (y / 2);
|
||||
|
@ -374,7 +374,8 @@ class gGraphView : public QGLWidget
|
||||
//! \brief Add Graph to drawing queue, mainly for the benefit of multithreaded drawing code
|
||||
void queGraph(gGraph *, int originX, int originY, int width, int height);
|
||||
|
||||
void renderSomethingFun(float alpha = 1);
|
||||
//! \brief Render the annoying spinning graph empty cube
|
||||
void renderCube(float alpha = 1);
|
||||
|
||||
Day *m_day;
|
||||
|
||||
|
@ -28,6 +28,9 @@ class CMS50Loader : public MachineLoader
|
||||
|
||||
CMS50Loader();
|
||||
virtual ~CMS50Loader();
|
||||
|
||||
virtual bool Detect(const QString &path) { Q_UNUSED(path); return false; } // bypass autoscanner
|
||||
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
static void Register();
|
||||
|
||||
|
@ -899,6 +899,12 @@ Machine *FPIconLoader::CreateMachine(QString serial, Profile *profile)
|
||||
return m;
|
||||
}
|
||||
|
||||
bool FPIconLoader::Detect(const QString & path)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool fpicon_initialized = false;
|
||||
void FPIconLoader::Register()
|
||||
{
|
||||
|
@ -54,6 +54,9 @@ class FPIconLoader : public MachineLoader
|
||||
FPIconLoader();
|
||||
virtual ~FPIconLoader();
|
||||
|
||||
//! \brief Detect if the given path contains a valid Folder structure
|
||||
virtual bool Detect(const QString & path);
|
||||
|
||||
//! \brief Scans path for F&P Icon data signature, and Loads any new data
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
|
||||
|
@ -36,6 +36,11 @@ IntellipapLoader::~IntellipapLoader()
|
||||
{
|
||||
}
|
||||
|
||||
bool IntellipapLoader::Detect(const QString & path)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int IntellipapLoader::Open(QString &path, Profile *profile)
|
||||
{
|
||||
// Check for SL directory
|
||||
@ -66,46 +71,48 @@ int IntellipapLoader::Open(QString &path, Profile *profile)
|
||||
f.open(QFile::ReadOnly);
|
||||
QTextStream tstream(&f);
|
||||
|
||||
QHash<QString, QString> lookup;
|
||||
lookup["Sn"] = STR_PROP_Serial;
|
||||
lookup["Mn"] = STR_PROP_ModelNumber;
|
||||
lookup["Mo"] = "PAPMode"; // 0=cpap, 1=auto
|
||||
//lookup["Pn"]="Pn";
|
||||
lookup["Pu"] = "MaxPressure";
|
||||
lookup["Pl"] = "MinPressure";
|
||||
//lookup["Ds"]="Ds";
|
||||
//lookup["Pc"]="Pc";
|
||||
lookup["Pd"] = "RampPressure"; // Delay Pressure
|
||||
lookup["Dt"] = "RampTime"; // Delay Time
|
||||
//lookup["Ld"]="Ld";
|
||||
//lookup["Lh"]="Lh";
|
||||
//lookup["FC"]="FC";
|
||||
//lookup["FE"]="FE";
|
||||
//lookup["FL"]="FL";
|
||||
lookup["A%"] = "ApneaThreshold";
|
||||
lookup["Ad"] = "ApneaDuration";
|
||||
lookup["H%"] = "HypopneaThreshold";
|
||||
lookup["Hd"] = "HypopneaDuration";
|
||||
//lookup["Pi"]="Pi"; //080
|
||||
//lookup["Pe"]="Pe"; //WF
|
||||
lookup["Ri"] = "SmartFlexIRnd"; // Inhale Rounding (0-5)
|
||||
lookup["Re"] = "SmartFlexERnd"; // Exhale Rounding (0-5)
|
||||
//lookup["Bu"]="Bu"; //WF
|
||||
//lookup["Ie"]="Ie"; //20
|
||||
//lookup["Se"]="Se"; //05
|
||||
//lookup["Si"]="Si"; //05
|
||||
//lookup["Mi"]="Mi"; //0
|
||||
lookup["Uh"] = "HoursMeter"; //0000.0
|
||||
lookup["Up"] = "ComplianceMeter"; //0000.0
|
||||
//lookup["Er"]="ErrorCode"; // E00
|
||||
//lookup["El"]="LastErrorCode"; // E00 00/00/0000
|
||||
//lookup["Hp"]="Hp"; //1
|
||||
//lookup["Hs"]="Hs"; //02
|
||||
//lookup["Lu"]="LowUseThreshold"; // defaults to 0 (4 hours)
|
||||
lookup["Sf"] = "SmartFlex";
|
||||
lookup["Sm"] = "SmartFlexMode";
|
||||
lookup["Ks=s"] = "Ks_s";
|
||||
lookup["Ks=i"] = "Ks_i";
|
||||
QHash<QString, QString> lookup = {
|
||||
{"Sn", STR_PROP_Serial },
|
||||
{"Mn", STR_PROP_ModelNumber },
|
||||
{"Mo", "PAPMode" }, // 0 cpap, 1 auto
|
||||
//{"Pn", "??" },
|
||||
{"Pu", "MaxPressure" },
|
||||
{"Pl", "MaxPressure" },
|
||||
//{"Ds", "??" },
|
||||
//{"Pc", "??" },
|
||||
{"Pd", "RampPressure" }, // Pressure Delay
|
||||
{"Dt", "RampTime" },
|
||||
//{"Ld", "??" },
|
||||
//{"Lh", "??" },
|
||||
//{"FC", "??" },
|
||||
//{"FE", "??" },
|
||||
//{"FL", "??" },
|
||||
{"A%", "ApneaThreshold" },
|
||||
{"Ad", "ApneaDuration" },
|
||||
{"H%", "HypopneaThreshold" },
|
||||
{"Hd", "HypopneaDuration" },
|
||||
//{"Pi", "??" },
|
||||
//{"Pe", "??" },
|
||||
{"Ri", "SmartFlexIRnd" }, // Inhale Rounding (0-5)
|
||||
{"Re", "SmartFlexERnd" }, // Inhale Rounding (0-5)
|
||||
//{"Bu", "??" }, // WF
|
||||
//{"Ie", "??" }, // 20
|
||||
//{"Se", "??" }, // 05
|
||||
//{"Si", "??" }, // 05
|
||||
//{"Mi", "??" }, // 0
|
||||
{"Uh", "HoursMeter"}, // 0000.0
|
||||
{"Up", "ComplianceMeter"}, // 0000.00
|
||||
//{"Er", "ErrorCode"}, // E00
|
||||
//{"El", "LastErrorCode"}, // E00 00/00/0000
|
||||
//{"Hp", "??"}, // 1
|
||||
//{"Hs", "??"}, // 02
|
||||
//{"Lu", "LowUseThreshold"}, // defaults to 0 (4 hours)
|
||||
{"Sf", "SmartFlex"},
|
||||
{"Sm", "SmartFlexMode"},
|
||||
{"Ks=s", "Ks_s"},
|
||||
{"Ks=i", "ks_i"}
|
||||
|
||||
};
|
||||
|
||||
QHash<QString, QString> set1;
|
||||
QHash<QString, QString>::iterator hi;
|
||||
|
@ -51,6 +51,10 @@ class IntellipapLoader : public MachineLoader
|
||||
public:
|
||||
IntellipapLoader();
|
||||
virtual ~IntellipapLoader();
|
||||
|
||||
//! \brief Detect if the given path contains a valid Folder structure
|
||||
virtual bool Detect(const QString & path);
|
||||
|
||||
//! \brief Scans path for Intellipap data signature, and Loads any new data
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
|
||||
|
@ -47,6 +47,9 @@ class MSeriesLoader : public MachineLoader
|
||||
MSeriesLoader();
|
||||
virtual ~MSeriesLoader();
|
||||
|
||||
//! \brief Detect if the given path contains a valid Folder structure
|
||||
virtual bool Detect(const QString & path) { Q_UNUSED(path); return false; }
|
||||
|
||||
//! \brief Opens M-Series block device
|
||||
virtual int Open(QString &file, Profile *profile);
|
||||
|
||||
|
@ -1795,6 +1795,12 @@ bool PRS1Loader::OpenWaveforms(SessionID sid, QString filename)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool PRS1Loader::Detect(const QString & path)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void InitModelMap()
|
||||
{
|
||||
ModelMap[0x34] = "RemStar Pro with C-Flex+";
|
||||
|
@ -51,6 +51,10 @@ class PRS1Loader : public MachineLoader
|
||||
public:
|
||||
PRS1Loader();
|
||||
virtual ~PRS1Loader();
|
||||
|
||||
//! \brief Detect if the given path contains a valid Folder structure
|
||||
virtual bool Detect(const QString & path);
|
||||
|
||||
//! \brief Scans directory path for valid PRS1 signature
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
|
||||
|
@ -2367,6 +2367,12 @@ bool ResmedLoader::LoadPLD(Session *sess, EDFParser &edf)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ResmedLoader::Detect(const QString & path)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
const QString RMS9_STR_Escape = "S9 Escape";
|
||||
const QString RMS9_STR_EscapeAuto = "S9 Escape Auto";
|
||||
const QString RMS9_STR_Elite = "S9 Elite";
|
||||
@ -2385,40 +2391,40 @@ void ResInitModelMap()
|
||||
{
|
||||
// Escape Series
|
||||
RMS9ModelMap[36001] = RMS9ModelMap[36011] = RMS9ModelMap[36021] = RMS9ModelMap[36141] =
|
||||
RMS9ModelMap[36201] = RMS9ModelMap[36221] = RMS9ModelMap[36261] = RMS9ModelMap[36301] =
|
||||
RMS9ModelMap[36361] = RMS9_STR_Escape;
|
||||
RMS9ModelMap[36201] = RMS9ModelMap[36221] = RMS9ModelMap[36261] = RMS9ModelMap[36301] =
|
||||
RMS9ModelMap[36361] = RMS9_STR_Escape;
|
||||
|
||||
// Escape Auto Series
|
||||
RMS9ModelMap[36002] = RMS9ModelMap[36012] = RMS9ModelMap[36022] = RMS9ModelMap[36302] =
|
||||
RMS9ModelMap[36362] = RMS9_STR_EscapeAuto;
|
||||
RMS9ModelMap[36362] = RMS9_STR_EscapeAuto;
|
||||
|
||||
// Elite Series
|
||||
RMS9ModelMap[36003] = RMS9ModelMap[36013] = RMS9ModelMap[36023] = RMS9ModelMap[36103] =
|
||||
RMS9ModelMap[36113] = RMS9ModelMap[36123] = RMS9ModelMap[36143] = RMS9ModelMap[36203] =
|
||||
RMS9ModelMap[36223] = RMS9ModelMap[36243] = RMS9ModelMap[36263] = RMS9ModelMap[36303] =
|
||||
RMS9ModelMap[36343] = RMS9ModelMap[36363] = RMS9_STR_Elite;
|
||||
RMS9ModelMap[36113] = RMS9ModelMap[36123] = RMS9ModelMap[36143] = RMS9ModelMap[36203] =
|
||||
RMS9ModelMap[36223] = RMS9ModelMap[36243] = RMS9ModelMap[36263] = RMS9ModelMap[36303] =
|
||||
RMS9ModelMap[36343] = RMS9ModelMap[36363] = RMS9_STR_Elite;
|
||||
|
||||
// AutoSet Series
|
||||
RMS9ModelMap[36005] = RMS9ModelMap[36015] = RMS9ModelMap[36025] = RMS9ModelMap[36105] =
|
||||
RMS9ModelMap[36115] = RMS9ModelMap[36125] = RMS9ModelMap[36145] = RMS9ModelMap[36205] =
|
||||
RMS9ModelMap[36225] = RMS9ModelMap[36245] = RMS9ModelMap[36265] = RMS9ModelMap[36305] =
|
||||
RMS9ModelMap[36325] = RMS9ModelMap[36345] = RMS9ModelMap[36365] = RMS9_STR_AutoSet;
|
||||
RMS9ModelMap[36115] = RMS9ModelMap[36125] = RMS9ModelMap[36145] = RMS9ModelMap[36205] =
|
||||
RMS9ModelMap[36225] = RMS9ModelMap[36245] = RMS9ModelMap[36265] = RMS9ModelMap[36305] =
|
||||
RMS9ModelMap[36325] = RMS9ModelMap[36345] = RMS9ModelMap[36365] = RMS9_STR_AutoSet;
|
||||
|
||||
// AutoSet CS Series
|
||||
RMS9ModelMap[36100] = RMS9ModelMap[36110] = RMS9ModelMap[36120] = RMS9ModelMap[36140] =
|
||||
RMS9ModelMap[36200] = RMS9ModelMap[36220] = RMS9ModelMap[36360] = RMS9_STR_AutoSetCS;
|
||||
RMS9ModelMap[36200] = RMS9ModelMap[36220] = RMS9ModelMap[36360] = RMS9_STR_AutoSetCS;
|
||||
|
||||
// AutoSet 25 Series
|
||||
RMS9ModelMap[36106] = RMS9ModelMap[36116] = RMS9ModelMap[36126] = RMS9ModelMap[36146] =
|
||||
RMS9ModelMap[36206] = RMS9ModelMap[36226] = RMS9ModelMap[36366] = RMS9_STR_AutoSet25;
|
||||
RMS9ModelMap[36206] = RMS9ModelMap[36226] = RMS9ModelMap[36366] = RMS9_STR_AutoSet25;
|
||||
|
||||
// Girly "For Her" AutoSet Series
|
||||
RMS9ModelMap[36065] = RMS9_STR_AutoSetForHer;
|
||||
|
||||
// VPAP S Series (+H5i +Climate Control)
|
||||
RMS9ModelMap[36004] = RMS9ModelMap[36014] = RMS9ModelMap[36024] = RMS9ModelMap[36114] =
|
||||
RMS9ModelMap[36124] = RMS9ModelMap[36144] = RMS9ModelMap[36204] = RMS9ModelMap[36224] =
|
||||
RMS9ModelMap[36284] = RMS9ModelMap[36304] = RMS9_STR_VPAP_S;
|
||||
RMS9ModelMap[36124] = RMS9ModelMap[36144] = RMS9ModelMap[36204] = RMS9ModelMap[36224] =
|
||||
RMS9ModelMap[36284] = RMS9ModelMap[36304] = RMS9_STR_VPAP_S;
|
||||
|
||||
// VPAP Auto Series (+H5i +Climate Control)
|
||||
RMS9ModelMap[36006] = RMS9ModelMap[36016] = RMS9ModelMap[36026] = RMS9_STR_VPAP_Auto;
|
||||
@ -2427,19 +2433,19 @@ void ResInitModelMap()
|
||||
// VPAP Adapt Series (+H5i +Climate Control)
|
||||
// Trev's 36037 supports variable EPAP...
|
||||
RMS9ModelMap[36037] = RMS9ModelMap[36007] = RMS9ModelMap[36017] = RMS9ModelMap[36027] =
|
||||
RMS9ModelMap[36367] = RMS9_STR_VPAP_Adapt;
|
||||
RMS9ModelMap[36367] = RMS9_STR_VPAP_Adapt;
|
||||
|
||||
// VPAP ST Series (+H5i +Climate Control)
|
||||
RMS9ModelMap[36008] = RMS9ModelMap[36018] = RMS9ModelMap[36028] = RMS9ModelMap[36108] =
|
||||
RMS9ModelMap[36148] = RMS9ModelMap[36208] = RMS9ModelMap[36228] = RMS9ModelMap[36368] =
|
||||
RMS9_STR_VPAP_ST;
|
||||
RMS9ModelMap[36148] = RMS9ModelMap[36208] = RMS9ModelMap[36228] = RMS9ModelMap[36368] =
|
||||
RMS9_STR_VPAP_ST;
|
||||
|
||||
// VPAP ST 22 Series
|
||||
RMS9ModelMap[36118] = RMS9ModelMap[36128] = RMS9_STR_VPAP_ST22;
|
||||
|
||||
// VPAP ST-A Series
|
||||
RMS9ModelMap[36039] = RMS9ModelMap[36159] = RMS9ModelMap[36169] = RMS9ModelMap[36379] =
|
||||
RMS9_STR_VPAP_STA;
|
||||
RMS9_STR_VPAP_STA;
|
||||
|
||||
|
||||
// 36003, 36013, 36023, 36103, 36113, 36123, 36143, 36203,
|
||||
@ -2495,86 +2501,111 @@ void ResInitModelMap()
|
||||
*/
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Translation lookup table for non-english machines
|
||||
resmed_codes[CPAP_FlowRate].push_back("Flow");
|
||||
resmed_codes[CPAP_MaskPressureHi].push_back("Mask Pres");
|
||||
resmed_codes[CPAP_MaskPressureHi].push_back("Mask Pressure"); // vpap
|
||||
resmed_codes[CPAP_RespEvent].push_back("Resp Event");
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
resmed_codes[CPAP_MaskPressure].push_back("Mask Pres");
|
||||
resmed_codes[CPAP_MaskPressure].push_back("Mask Pressure"); // vpap
|
||||
resmed_codes[CPAP_FlowRate] = {"Flow"};
|
||||
|
||||
resmed_codes[CPAP_Pressure].push_back("Therapy Pres"); // not on vpap
|
||||
resmed_codes[CPAP_IPAP].push_back("Insp Pressure"); // on vpap
|
||||
resmed_codes[CPAP_MaskPressureHi] = {
|
||||
"Mask Pres",
|
||||
"Mask Pressure" // VPAP
|
||||
};
|
||||
resmed_codes[CPAP_MaskPressure] = {
|
||||
"Mask Pres",
|
||||
"Mask Pressure" // VPAP
|
||||
};
|
||||
|
||||
resmed_codes[CPAP_EPAP].push_back("Exp Press");
|
||||
resmed_codes[CPAP_EPAP].push_back("Exp Pressure"); // vpap
|
||||
resmed_codes[CPAP_RespEvent] = {"Resp Event"};
|
||||
resmed_codes[CPAP_Pressure] = {"Therapy Pres"};
|
||||
resmed_codes[CPAP_IPAP] = {"Insp Pressure"};
|
||||
resmed_codes[CPAP_EPAP] = {"Exp Press", "Exp Pressure"};
|
||||
|
||||
resmed_codes[CPAP_Leak].push_back("Leak");
|
||||
resmed_codes[CPAP_Leak].push_back("Leck.");
|
||||
resmed_codes[CPAP_Leak].push_back("Läcka");
|
||||
resmed_codes[CPAP_Leak] = {
|
||||
"Leak",
|
||||
"Leck.",
|
||||
"Läcka"
|
||||
};
|
||||
|
||||
resmed_codes[CPAP_RespRate].push_back("RR");
|
||||
resmed_codes[CPAP_RespRate].push_back("AF");
|
||||
resmed_codes[CPAP_RespRate].push_back("FR");
|
||||
resmed_codes[CPAP_RespRate] = {
|
||||
"RR",
|
||||
"AF",
|
||||
"FR"
|
||||
};
|
||||
resmed_codes[CPAP_TidalVolume] = {
|
||||
"Vt",
|
||||
"VC",
|
||||
};
|
||||
resmed_codes[CPAP_MinuteVent] = {
|
||||
"MV",
|
||||
"VM"
|
||||
};
|
||||
|
||||
resmed_codes[CPAP_TidalVolume].push_back("Vt");
|
||||
resmed_codes[CPAP_TidalVolume].push_back("VC");
|
||||
resmed_codes[CPAP_IE] = {"I:E"};
|
||||
resmed_codes[CPAP_Snore] = {"Snore Index"};
|
||||
resmed_codes[CPAP_FLG] = {"FFL Index"};
|
||||
resmed_codes[CPAP_RespEvent] = {"RE"};
|
||||
resmed_codes[CPAP_Ti] = {"Ti"};
|
||||
resmed_codes[CPAP_Te] = {"Te"};
|
||||
|
||||
resmed_codes[CPAP_MinuteVent].push_back("MV");
|
||||
resmed_codes[CPAP_MinuteVent].push_back("VM");
|
||||
// SAD (oximetry)
|
||||
|
||||
resmed_codes[CPAP_IE].push_back("I:E"); // vpap
|
||||
resmed_codes[CPAP_Snore].push_back("Snore Index");
|
||||
resmed_codes[CPAP_FLG].push_back("FFL Index");
|
||||
resmed_codes[OXI_Pulse] = {
|
||||
"Pulse",
|
||||
"Puls", // German & Swedish
|
||||
"Pols", // Dutch
|
||||
};
|
||||
|
||||
resmed_codes[CPAP_RespEvent].push_back("RE");
|
||||
resmed_codes[CPAP_Ti].push_back("Ti");
|
||||
resmed_codes[CPAP_Te].push_back("Te");
|
||||
|
||||
// Sad (oximetry)
|
||||
resmed_codes[OXI_Pulse].push_back("Pulse");
|
||||
resmed_codes[OXI_Pulse].push_back("Puls"); // German & Swedish
|
||||
resmed_codes[OXI_Pulse].push_back("Pols"); // Dutch
|
||||
resmed_codes[OXI_SPO2].push_back("SpO2");
|
||||
resmed_codes[OXI_SPO2] = {"SpO2"};
|
||||
|
||||
// Event annotations
|
||||
resmed_codes[CPAP_Obstructive].push_back("Obstructive apnea");
|
||||
resmed_codes[CPAP_Hypopnea].push_back("Hypopnea");
|
||||
resmed_codes[CPAP_Apnea].push_back("Apnea");
|
||||
resmed_codes[CPAP_ClearAirway].push_back("Central apnea");
|
||||
resmed_codes[CPAP_Obstructive] = {"Obstructive apnea"};
|
||||
resmed_codes[CPAP_Hypopnea] = {"Hypopnea"};
|
||||
resmed_codes[CPAP_Apnea] = {"Apnea"};
|
||||
resmed_codes[CPAP_ClearAirway] = {"Central apnea"};
|
||||
|
||||
resmed_codes[CPAP_Mode].push_back("Mode");
|
||||
resmed_codes[CPAP_Mode].push_back("Modus"); // Dutch & German
|
||||
resmed_codes[CPAP_Mode].push_back("Funktion"); // Swedish
|
||||
resmed_codes[CPAP_Mode] = {
|
||||
"Mode",
|
||||
"Modus", // Dutch & German
|
||||
"Funktion", // Swedish
|
||||
};
|
||||
|
||||
resmed_codes[RMS9_SetPressure].push_back("Eingest. Druck"); // German
|
||||
resmed_codes[RMS9_SetPressure].push_back("Ingestelde druk"); // Dutch
|
||||
resmed_codes[RMS9_SetPressure].push_back("Set Pressure"); // English - Prescription
|
||||
resmed_codes[RMS9_SetPressure].push_back("Pres. prescrite"); // French
|
||||
resmed_codes[RMS9_SetPressure].push_back("Inställt tryck"); // Swedish
|
||||
resmed_codes[RMS9_SetPressure].push_back("Inställt tryck"); // Swedish, QT5.2
|
||||
resmed_codes[RMS9_SetPressure] = {
|
||||
"Set Pressure", // English - Prescription
|
||||
"Eingest. Druck", // German
|
||||
"Ingestelde druk", // Dutch
|
||||
"Pres. prescrite", // French
|
||||
"Inställt tryck", // Swedish
|
||||
"Inställt tryck", // Swedish, QT5.2
|
||||
};
|
||||
|
||||
resmed_codes[RMS9_EPR].push_back("EPR");
|
||||
resmed_codes[RMS9_EPR] = {"EPR"};
|
||||
|
||||
resmed_codes[RMS9_EPRSet].push_back("EPR Level");
|
||||
resmed_codes[RMS9_EPRSet].push_back("EPR-Stufe"); // French
|
||||
resmed_codes[RMS9_EPRSet].push_back("EPR-niveau"); // Dutch
|
||||
resmed_codes[RMS9_EPRSet].push_back("Niveau EPR"); // German
|
||||
resmed_codes[RMS9_EPRSet].push_back("EPR-nivå"); // Swedish
|
||||
resmed_codes[RMS9_EPRSet].push_back("EPR-nivå"); // Swedish, QT5.2
|
||||
resmed_codes[RMS9_EPRSet] = {
|
||||
"EPR Level",
|
||||
"EPR-Stufe", // French
|
||||
"EPR-niveau", // Dutch
|
||||
"Niveau EPR", // German
|
||||
"EPR-nivå", // Swedish
|
||||
"EPR-nivå", // Swedish, QT5.2
|
||||
};
|
||||
|
||||
resmed_codes[CPAP_PressureMax].push_back("Max Pressure");
|
||||
resmed_codes[CPAP_PressureMax].push_back("Max. Druck"); // German
|
||||
resmed_codes[CPAP_PressureMax].push_back("Max druk"); // Dutch
|
||||
resmed_codes[CPAP_PressureMax].push_back("Pression max."); // French
|
||||
resmed_codes[CPAP_PressureMax].push_back("Max tryck"); // Swedish
|
||||
|
||||
resmed_codes[CPAP_PressureMin].push_back("Min Pressure");
|
||||
resmed_codes[CPAP_PressureMin].push_back("Min. Druck"); // German
|
||||
resmed_codes[CPAP_PressureMin].push_back("Min druk"); // Dutch
|
||||
resmed_codes[CPAP_PressureMin].push_back("Pression min."); // French
|
||||
resmed_codes[CPAP_PressureMin].push_back("Min tryck"); // Swedish
|
||||
resmed_codes[CPAP_PressureMax] = {
|
||||
"Max Pressure",
|
||||
"Max. Druck", // German
|
||||
"Max druk", // Dutch
|
||||
"Pression max.", // French
|
||||
"Max tryck", // Swedish
|
||||
};
|
||||
|
||||
resmed_codes[CPAP_PressureMin] = {
|
||||
"Min Pressure",
|
||||
"Min. Druck", // German
|
||||
"Min druk", // Dutch
|
||||
"Pression min.", // French
|
||||
"Min tryck", // Swedish
|
||||
};
|
||||
|
||||
// STR.edf
|
||||
}
|
||||
|
@ -180,6 +180,9 @@ class ResmedLoader : public MachineLoader
|
||||
ResmedLoader();
|
||||
virtual ~ResmedLoader();
|
||||
|
||||
//! \brief Detect if the given path contains a valid Folder structure
|
||||
virtual bool Detect(const QString & path);
|
||||
|
||||
//! \brief Scans for S9 SD folder structure signature, and loads any new data if found
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
|
||||
|
@ -26,6 +26,8 @@ class SomnoposeLoader : public MachineLoader
|
||||
public:
|
||||
SomnoposeLoader();
|
||||
virtual ~SomnoposeLoader();
|
||||
virtual bool Detect(const QString &path) { Q_UNUSED(path); return false; } // bypass autoscanner
|
||||
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
virtual int OpenFile(QString filename);
|
||||
static void Register();
|
||||
|
@ -26,6 +26,8 @@ class ZEOLoader : public MachineLoader
|
||||
public:
|
||||
ZEOLoader();
|
||||
virtual ~ZEOLoader();
|
||||
virtual bool Detect(const QString &path) { Q_UNUSED(path); return false; } // bypass autoscanner
|
||||
|
||||
virtual int Open(QString &path, Profile *profile);
|
||||
virtual int OpenFile(QString filename);
|
||||
static void Register();
|
||||
|
@ -28,7 +28,7 @@ void RegisterLoader(MachineLoader *loader)
|
||||
}
|
||||
void DestroyLoaders()
|
||||
{
|
||||
for (QList<MachineLoader *>::iterator i = m_loaders.begin(); i != m_loaders.end(); i++) {
|
||||
for (auto i = m_loaders.begin(); i != m_loaders.end(); i++) {
|
||||
delete(*i);
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ MachineLoader::MachineLoader()
|
||||
|
||||
MachineLoader::~MachineLoader()
|
||||
{
|
||||
for (QList<Machine *>::iterator m = m_machlist.begin(); m != m_machlist.end(); m++) {
|
||||
for (auto m = m_machlist.begin(); m != m_machlist.end(); m++) {
|
||||
delete *m;
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,9 @@ class MachineLoader
|
||||
|
||||
//virtual Machine * CreateMachine() {};
|
||||
|
||||
//! \brief Detect if the given path contains a valid folder structure
|
||||
virtual bool Detect(const QString & path) = 0;
|
||||
|
||||
//! \brief Override this to scan path and detect new machine data
|
||||
virtual int Open(QString &path, Profile *) = 0; // Scans for new content
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user