/elec/propeller-clock

To get this branch, use:
bzr branch http://bzr.ed.am/elec/propeller-clock

« back to all changes in this revision

Viewing changes to src/modes/digital_clock_mode.cc

  • Committer: Tim Marston
  • Date: 2012-05-18 18:29:50 UTC
  • Revision ID: tim@ed.am-20120518182950-t85bn9a21n72uzm8
text messages are now individually enabled and draw()n automatically

Show diffs side-by-side

added added

removed removed

30
30
 
31
31
void DigitalClockMode::draw_reset()
32
32
{
 
33
        PString str0( Text::_messages[ 0 ], MESSAGE_LEN * 4 );
 
34
        str0.begin();
 
35
 
33
36
        switch( _flavour )
34
37
        {
35
 
        case 0: {
36
 
                        PString str0( Text::_messages[ 0 ], MESSAGE_LEN * 2 );
37
 
                        str0.format( "%d%c%02d %s", Time::get_hours() % 12,
38
 
                                        ::millis() % 1000 < 500? ':' : ' ',
39
 
                                        Time::get_minutes(),
40
 
                                        Time::get_hours() >= 12? "pm" : "am" );
41
 
                        Text::set_message_text( 0, str0 );
42
 
                }
43
 
                break;
44
 
        case 1: {
45
 
                        PString str0( Text::_messages[ 0 ], MESSAGE_LEN * 2 );
46
 
                        str0.format( "%d%s %s, %d", Time::get_day(),
47
 
                                        Time::get_day_suffix(),
48
 
                                        Time::get_month_name(), Time::get_year() );
49
 
                        Text::set_message_text( 0, str0 );
50
 
                }
51
 
                break;
52
 
        case 2: {
53
 
                        PString str0( Text::_messages[ 0 ], MESSAGE_LEN * 2 );
54
 
                        PString str1( Text::_messages[ 2 ], MESSAGE_LEN * 2 );
55
 
                        str0.format( "%d%c%02d %s", Time::get_hours() % 12,
56
 
                                        ::millis() % 1000 < 500? ':' : ' ',
57
 
                                        Time::get_minutes(),
58
 
                                        Time::get_hours() >= 12? "pm" : "am" );
59
 
                        str1.format( "%d.%02d.%d", Time::get_day(),
60
 
                                        Time::get_month(), Time::get_year() );
61
 
                        Text::set_message_text( 0, str0 );
62
 
                        Text::set_message_text( 2, str1 );
63
 
                }
 
38
        case 0:
 
39
                str0.format( "%d%c%02d %s", Time::get_hours() % 12,
 
40
                        ::millis() % 1000 < 500? ':' : '.',
 
41
                        Time::get_minutes(),
 
42
                        Time::get_hours() >= 12? "pm" : "am" );
 
43
                break;
 
44
        case 1:
 
45
                str0.format( "%d%s %s, %d", Time::get_day(),
 
46
                                Time::get_day_suffix(),
 
47
                                Time::get_month_name(), Time::get_year() );
64
48
                break;
65
49
        }
 
50
 
 
51
        Text::set_message_text( 0, str0 );
66
52
}
67
53
 
68
54
 
76
62
 
77
63
void DigitalClockMode::press()
78
64
{
79
 
        if( ++_flavour >= 3 )
 
65
        if( ++_flavour >= 2 )
80
66
                _flavour = 0;
81
67
 
82
68
        reset_messages();
90
76
        switch( _flavour )
91
77
        {
92
78
        case 0:
93
 
                Text::set_up_message( 0, Text::MODE_TOP | Text::MODE_ALL );
 
79
                Text::set_up_message( 0, Text::MODE_TOP | Text::MODE_ALL,
 
80
                                Text::SCALE_FAT );
94
81
                break;
95
82
        case 1:
96
83
                Text::set_up_message( 0, Text::MODE_HSCROLL | Text::MODE_TOP |
97
84
                                Text::MODE_THREEQUARTERS );
98
85
                break;
99
 
        case 2:
100
 
                Text::set_up_message( 0, Text::MODE_TOP | Text::MODE_HALF,
101
 
                                Text::SCALE_SMALL );
102
 
                Text::set_up_message( 2, Text::MODE_BOTTOM | Text::MODE_HALF,
103
 
                                Text::SCALE_SMALL );
104
 
                break;
105
86
        }
106
87
}