FlexBook / Mbed 2 deprecated FlexBook171204a

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pagefactory.cpp Source File

pagefactory.cpp

00001 //
00002 // Filename: pagefactory.h
00003 //
00004 // Flexbook page creator.
00005 //
00006 
00007 #include "pagefactory.h"
00008 
00009 #include "hal.h"
00010 #include "log.h"
00011 
00012 #include "pagesensor.h"
00013 #include "pagedice.h"
00014 #include "pageoled.h"
00015 #include "pagetouch.h"
00016 #include "pageflexenable.h"
00017 #include "pagenfc.h"
00018 
00019 #include <iostream>
00020 
00021 namespace Flexbook {
00022 
00023 PageFactory::PageFactory()
00024 {
00025     Log("Creating PageFactory");
00026 }
00027 
00028 PageFactory::~PageFactory()
00029 {
00030     Log("Deleting PageFactory");
00031 }
00032 
00033 BookPage PageFactory::CreatePages(PageType &type)
00034 {
00035 
00036     switch(type)
00037     {
00038         case PageType_PageSensor:
00039 
00040             HAL::EnablePowerToPages(PageType_PageSensor | PageType_PageOLED);
00041             return BookPage(new PageSensor);
00042 
00043         case PageType_PageDice:
00044             
00045             HAL::EnablePowerToPages(PageType_PageDice | PageType_PageOLED);
00046             return BookPage(new PageDice);
00047 
00048         case PageType_PageOLED:
00049 
00050             HAL::EnablePowerToPages(PageType_PageOLED);
00051             return BookPage(new PageOLED);
00052 
00053         case PageType_PageTouch:
00054 
00055             HAL::EnablePowerToPages(PageType_PageTouch | PageType_PageFlexEnable);
00056             return BookPage(new PageTouch);
00057 
00058         case PageType_PageFlexEnable:
00059 
00060             HAL::EnablePowerToPages(PageType_PageFlexEnable);
00061             return BookPage(new PageFlexEnable);
00062 
00063         case PageType_PageNFC:
00064 
00065             HAL::EnablePowerToPages(PageType_PageNFC);
00066             return BookPage(new PageNFC);
00067 
00068         case PageType_PageNull:
00069 
00070             HAL::EnablePowerToPages(PageType_PageNull);
00071             Log("NULL page");
00072             break;
00073 
00074         default:
00075 
00076             Log("Error - unknown page type");
00077             break;
00078     }
00079     
00080     return BookPage(nullptr);
00081 }
00082 
00083 } // End Flexbook namespace.
00084 
00085 
00086