Source code for the Curilights Controller. See http://www.saccade.com/writing/projects/CuriController/ for details.

Dependencies:   FatFileSystem mbed

This is the source code for the Curilights controller. This lets you interactively control a string of Curilights. It provides a simple click-wheel user interface for changing colors, brightness and behavior. It responds to movement and lighting.

Finished Controller

/media/uploads/isonno/nxp3872_controllerclose.jpg

System Block Diagram

/media/uploads/isonno/blockdiagram.png

SettingsMenu.h

Committer:
isonno
Date:
2013-02-11
Revision:
4:cfef06d8bb96
Parent:
3:0ac64c4ca40f

File content as of revision 4:cfef06d8bb96:

#ifndef _SETTINGSMENU_
#define _SETTINGSMENU_

#ifndef _UIMENU_
#include "UIMenu.h"
#endif

class HomeMenu;
class SettingsMenu;

class DebugMenu : public UIMenu
{
public:
    DebugMenu( CheapLCD * lcd, SettingsMenu * parent );
    virtual ~DebugMenu() {};
    void SetItem( int item, const char * name, int value );

protected:
    virtual void KnobPushed();
    SETUP_KNOBPUSH_CALLBACK( DebugMenu );
        
private:
    SettingsMenu * fParent;
};

class LightSensorMenu : public UIMenu
{
public:
    LightSensorMenu( CheapLCD * lcd, SettingsMenu * parent );
    virtual ~LightSensorMenu() {};
    
protected:
    virtual void KnobPushed();
    SETUP_KNOBPUSH_CALLBACK( LightSensorMenu );
    
private:
    SettingsMenu * fParent;
    int fLightState;
};

class SettingsMenu : public UIMenu
{
public:
    SettingsMenu( CheapLCD * lcd, HomeMenu * parent );
    virtual ~SettingsMenu() {};
    
protected:
    virtual void KnobPushed();
    SETUP_KNOBPUSH_CALLBACK( SettingsMenu );
    
private:
    HomeMenu * fParent;
    LightSensorMenu fLightSensorMenu;
    DebugMenu fDebugMenu;
};


#endif