2
* switcher_major_mode.cc
4
* Copyright (C) 2012 Tim Marston <tim@ed.am> and Dan Marston.
6
* This file is part of propeller-clock (hereafter referred to as "this
7
* program"). See http://ed.am/dev/software/arduino/propeller-clock for more
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU Lesser General Public License as published
12
* by the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU Lesser General Public License for more details.
20
* You should have received a copy of the GNU Lesser General Public License
21
* along with this program. If not, see <http://www.gnu.org/licenses/>.
23
#include "switcher_major_mode.h"
24
#include "analogue_clock_mode.h"
25
#include "digital_clock_mode.h"
26
#include "info_mode.h"
27
#include "test_pattern_mode.h"
29
#include "../common.h"
32
SwitcherMajorMode::SwitcherMajorMode()
34
static AnalogueClockMode analogue_clock;
35
static DigitalClockMode digital_clock;
37
// static TestPatternMode test_pattern;
41
_modes[ mode++ ] = &analogue_clock;
42
_modes[ mode++ ] = &digital_clock;
43
_modes[ mode++ ] = &info;
44
// _modes[ mode++ ] = &test_pattern;
51
void SwitcherMajorMode::draw( int segment )
53
_modes[ _mode ]->draw( segment );
57
void SwitcherMajorMode::draw_reset()
59
_modes[ _mode ]->draw_reset();
63
void SwitcherMajorMode::activate()
70
_modes[ _mode ]->activate();
74
void SwitcherMajorMode::deactivate()
76
_modes[ _mode ]->deactivate();
80
void SwitcherMajorMode::press()
82
_modes[ _mode ]->press();
86
void SwitcherMajorMode::long_press()
88
_modes[ _mode ]->deactivate();
91
if( !_modes[ ++_mode ] ) _mode = 0;
97
_modes[ _mode ]->activate();