Error as described in MBs email to MS

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

pagefactory.cpp

Committer:
marcbax
Date:
2018-01-11
Revision:
1:5874c1a074a7
Parent:
0:c643d398cdb6

File content as of revision 1:5874c1a074a7:

//
// Filename: pagefactory.h
//
// Flexbook page creator.
//

#include "pagefactory.h"

#include "hal.h"
#include "log.h"

#include "pagesensor.h"
#include "pagedice.h"
#include "pageoled.h"
#include "pagetouch.h"
#include "pageflexenable.h"
#include "pagenfc.h"

#include <iostream>

namespace Flexbook {

PageFactory::PageFactory()
{
    Log("Creating PageFactory");
}

PageFactory::~PageFactory()
{
    Log("Deleting PageFactory");
}

BookPage PageFactory::CreatePages(PageType &type)
{

    switch(type)
    {
        case PageType_PageSensor:

            HAL::EnablePowerToPages(PageType_PageSensor | PageType_PageOLED);
            return BookPage(new PageSensor);

        case PageType_PageDice:
            
            HAL::EnablePowerToPages(PageType_PageDice | PageType_PageOLED);
            return BookPage(new PageDice);

        case PageType_PageOLED:

            HAL::EnablePowerToPages(PageType_PageOLED);
            return BookPage(new PageOLED);

        case PageType_PageTouch:

            HAL::EnablePowerToPages(PageType_PageTouch | PageType_PageFlexEnable);
            return BookPage(new PageTouch);

        case PageType_PageFlexEnable:

            HAL::EnablePowerToPages(PageType_PageFlexEnable);
            return BookPage(new PageFlexEnable);

        case PageType_PageNFC:

            HAL::EnablePowerToPages(PageType_PageNFC);
            return BookPage(new PageNFC);

        case PageType_PageNull:

            HAL::EnablePowerToPages(PageType_PageNull);
            Log("NULL page");
            break;

        default:

            Log("Error - unknown page type");
            break;
    }
    
    return BookPage(nullptr);
}

} // End Flexbook namespace.