# HG changeset patch # User StephaneLenclud # Date 1409518652 -7200 # Node ID 96c013c6359541c7729c19ac6a1947a2a65cad70 # Parent 591e9f922c6343aa827283065e73fff92c7ce596 Display auto detect implementation. diff -r 591e9f922c63 -r 96c013c63595 MiniDisplay.cpp --- a/MiniDisplay.cpp Sun Aug 31 21:35:36 2014 +0200 +++ b/MiniDisplay.cpp Sun Aug 31 22:57:32 2014 +0200 @@ -4,19 +4,13 @@ #include "FutabaGP1212A02.h" - -//Open & Close functions -MiniDisplayDevice MiniDisplayOpen(TMiniDisplayType aType) +MiniDisplayDevice MiniDisplayOpen(TMiniDisplayType aType, bool aAutoDetect) { GraphicDisplay* device=NULL; switch (aType) { case EMiniDisplayAutoDetect: - //TODO - device=new GP1212A01A(); - break; - case EMiniDisplayFutabaGP1212A01: device=new GP1212A01A(); break; @@ -24,6 +18,11 @@ case EMiniDisplayFutabaGP1212A02: device=new GP1212A02A(); break; + + case EMiniDisplayAutoDetectFailed: + //Auto detect sequence failed + return NULL; + break; }; int success = device->Open(); @@ -31,11 +30,30 @@ { delete device; device=NULL; + if (aAutoDetect) + { + //Go recursive for auto detect + int typeValue=(int)aType; + typeValue++; + TMiniDisplayType nextType=(TMiniDisplayType)typeValue; + return MiniDisplayOpen(nextType,aAutoDetect); + } } return device; } + +//Open & Close functions +MiniDisplayDevice MiniDisplayOpen(TMiniDisplayType aType) + { + bool autoDetect=aType==EMiniDisplayAutoDetect; + return MiniDisplayOpen(EMiniDisplayFutabaGP1212A01,autoDetect); + } + + + + // void MiniDisplayClose(MiniDisplayDevice aDevice) diff -r 591e9f922c63 -r 96c013c63595 MiniDisplay.h --- a/MiniDisplay.h Sun Aug 31 21:35:36 2014 +0200 +++ b/MiniDisplay.h Sun Aug 31 22:57:32 2014 +0200 @@ -29,7 +29,8 @@ { EMiniDisplayAutoDetect=0, /*Not yet implemented*/ EMiniDisplayFutabaGP1212A01, - EMiniDisplayFutabaGP1212A02 + EMiniDisplayFutabaGP1212A02, + EMiniDisplayAutoDetectFailed } TMiniDisplayType;