From 314be4fbbce9f33b84069e4c0b09aa8600e64f75 Mon Sep 17 00:00:00 2001 From: Mark Watkins Date: Sun, 5 Jun 2011 22:04:26 +1000 Subject: [PATCH] ZEO Loader Stubs --- Projects/CodeBlocks/SleepyHead.depend | 15 ++-- src/SleepyHeadApp.cpp | 4 ++ .../sleeplib/loader_plugins/cms50_loader.cpp | 19 +++-- .../sleeplib/loader_plugins/cms50_loader.h | 2 +- .../sleeplib/loader_plugins/zeo_loader.cpp | 70 +++++++++++++++++++ src/libs/sleeplib/loader_plugins/zeo_loader.h | 28 ++++++++ 6 files changed, 126 insertions(+), 12 deletions(-) create mode 100644 src/libs/sleeplib/loader_plugins/zeo_loader.cpp create mode 100644 src/libs/sleeplib/loader_plugins/zeo_loader.h diff --git a/Projects/CodeBlocks/SleepyHead.depend b/Projects/CodeBlocks/SleepyHead.depend index f7f56669..f915070c 100644 --- a/Projects/CodeBlocks/SleepyHead.depend +++ b/Projects/CodeBlocks/SleepyHead.depend @@ -8231,7 +8231,7 @@ -1307273168 source:/home/mark/projects/git/sleepyhead/src/SleepyHeadApp.cpp +1307275348 source:/home/mark/projects/git/sleepyhead/src/SleepyHeadApp.cpp "wx_pch.h" @@ -8243,6 +8243,7 @@ "version.h" "sleeplib/prs1_loader.h" "sleeplib/loader_plugins/cms50_loader.h" + "sleeplib/loader_plugins/zeo_loader.h" "sleeplib/profiles.h" 1307245704 /home/mark/projects/git/sleepyhead/src/SleepyHeadApp.h @@ -8378,7 +8379,7 @@ "machine_loader.h" "tinyxml/tinyxml.h" -1307245704 source:/home/mark/projects/git/sleepyhead/src/libs/sleeplib/prs1_loader.cpp +1307273388 source:/home/mark/projects/git/sleepyhead/src/libs/sleeplib/prs1_loader.cpp @@ -8408,10 +8409,14 @@ "tinyxml.h" -1307273487 /home/mark/projects/git/sleepyhead/src/libs/sleeplib/loader_plugins/cms50_loader.h - "../machine_loader.h" +1307274777 /home/mark/projects/git/sleepyhead/src/libs/sleeplib/loader_plugins/cms50_loader.h + "sleeplib/machine_loader.h" -1307273113 source:/home/mark/projects/git/sleepyhead/src/libs/sleeplib/loader_plugins/cms50_loader.cpp +1307275420 source:/home/mark/projects/git/sleepyhead/src/libs/sleeplib/loader_plugins/cms50_loader.cpp "cms50_loader.h" + "sleeplib/machine.h" + +1307275207 /home/mark/projects/git/sleepyhead/src/libs/sleeplib/loader_plugins/zeo_loader.h + "sleeplib/machine_loader.h" diff --git a/src/SleepyHeadApp.cpp b/src/SleepyHeadApp.cpp index 2f3c9bb6..07d88fa6 100644 --- a/src/SleepyHeadApp.cpp +++ b/src/SleepyHeadApp.cpp @@ -28,6 +28,7 @@ #include "sleeplib/prs1_loader.h" #include "sleeplib/loader_plugins/cms50_loader.h" +#include "sleeplib/loader_plugins/zeo_loader.h" #include "sleeplib/profiles.h" @@ -57,8 +58,11 @@ bool SleepyHeadApp::OnInit() //wxDateTime::SetCountry(wxDateTime::USA); SetAppName(_("SleepyHead")); + PRS1Loader::Register(); CMS50Loader::Register(); + ZEOLoader::Register(); + Profiles::Scan(); //loader_progress->Show(); diff --git a/src/libs/sleeplib/loader_plugins/cms50_loader.cpp b/src/libs/sleeplib/loader_plugins/cms50_loader.cpp index d13cf8cc..e210fe6f 100644 --- a/src/libs/sleeplib/loader_plugins/cms50_loader.cpp +++ b/src/libs/sleeplib/loader_plugins/cms50_loader.cpp @@ -7,7 +7,7 @@ License: GPL #include #include "cms50_loader.h" -#include "../machine.h" +#include "sleeplib/machine.h" CMS50Loader::CMS50Loader() { @@ -22,17 +22,22 @@ bool CMS50Loader::Open(wxString & path,Profile *profile) { // CMS50 folder structure detection stuff here. + // Not sure whether to both supporting SpO2 files here, as the timestamps are utterly useless for overlay purposes. + // May just ignore the crap and support my CMS50 logger + return false; } -Machine *CreateMachine(Profile *profile) +Machine *CMS50Loader::CreateMachine(Profile *profile) { if (!profile) { // shouldn't happen.. - wxLogMessage(wxT("No Profile!")); + wxLogError(wxT("No Profile!")); return NULL; - } + + // NOTE: This only allows for one CMS50 machine per profile.. + // Upgrading their oximeter will use this same record.. + vector ml=profile->GetMachines(MT_OXIMETER); - bool found=false; for (vector::iterator i=ml.begin(); i!=ml.end(); i++) { if ((*i)->GetClass()==wxT("CMS50")) { @@ -41,11 +46,13 @@ Machine *CreateMachine(Profile *profile) } } - wxLogMessage(wxT("Create CMS50")); + wxLogDebug(wxT("Create CMS50 Machine Record")); + Machine *m=new Oximeter(profile,0); m->SetClass(wxT("CMS50")); m->properties[wxT("Brand")]=wxT("Contec"); m->properties[wxT("Model")]=wxT("CMS50X"); + profile->AddMachine(m); return m; diff --git a/src/libs/sleeplib/loader_plugins/cms50_loader.h b/src/libs/sleeplib/loader_plugins/cms50_loader.h index ea786878..e8abf149 100644 --- a/src/libs/sleeplib/loader_plugins/cms50_loader.h +++ b/src/libs/sleeplib/loader_plugins/cms50_loader.h @@ -8,7 +8,7 @@ License: GPL #ifndef CMS50LOADER_H #define CMS50LOADER_H -#include "../machine_loader.h" +#include "sleeplib/machine_loader.h" class CMS50Loader : public MachineLoader diff --git a/src/libs/sleeplib/loader_plugins/zeo_loader.cpp b/src/libs/sleeplib/loader_plugins/zeo_loader.cpp new file mode 100644 index 00000000..af75d23a --- /dev/null +++ b/src/libs/sleeplib/loader_plugins/zeo_loader.cpp @@ -0,0 +1,70 @@ +/* +SleepLib ZEO Loader Implementation + +Author: Mark Watkins +License: GPL +*/ + +#include +#include "zeo_loader.h" +#include "sleeplib/machine.h" + +ZEOLoader::ZEOLoader() +{ + //ctor +} + +ZEOLoader::~ZEOLoader() +{ + //dtor +} +bool ZEOLoader::Open(wxString & path,Profile *profile) +{ + // ZEO folder structure detection stuff here. + + return false; +} +Machine *ZEOLoader::CreateMachine(Profile *profile) +{ + if (!profile) { // shouldn't happen.. + wxLogError(wxT("No Profile!")); + return NULL; + } + + // NOTE: This only allows for one ZEO machine per profile.. + // Upgrading their ZEO will use this same record.. + + vector ml=profile->GetMachines(MT_SLEEPSTAGE); + + for (vector::iterator i=ml.begin(); i!=ml.end(); i++) { + if ((*i)->GetClass()==wxT("ZEO")) { + return (*i); + break; + } + } + + wxLogDebug(wxT("Create ZEO Machine Record")); + + Machine *m=new SleepStage(profile,0); + m->SetClass(wxT("ZEO")); + m->properties[wxT("Brand")]=wxT("ZEO"); + m->properties[wxT("Model")]=wxT("Personal Sleep Coach"); + + profile->AddMachine(m); + + return m; +} + + + +static bool zeo_initialized=false; + +void ZEOLoader::Register() +{ + if (zeo_initialized) return; + wxLogVerbose(wxT("Registering ZEOLoader")); + RegisterLoader(new ZEOLoader()); + //InitModelMap(); + zeo_initialized=true; +} + diff --git a/src/libs/sleeplib/loader_plugins/zeo_loader.h b/src/libs/sleeplib/loader_plugins/zeo_loader.h new file mode 100644 index 00000000..ed992a0d --- /dev/null +++ b/src/libs/sleeplib/loader_plugins/zeo_loader.h @@ -0,0 +1,28 @@ +/* +SleepLib ZEO Loader Header + +Author: Mark Watkins +License: GPL +*/ + +#ifndef ZEOLOADER_H +#define ZEOLOADER_H + +#include "sleeplib/machine_loader.h" + + +class ZEOLoader : public MachineLoader +{ + public: + ZEOLoader(); + virtual ~ZEOLoader(); + virtual bool Open(wxString & path,Profile *profile); + static void Register(); + + Machine *CreateMachine(Profile *profile); + + protected: + private: +}; + +#endif // ZEOLOADER_H