@@ -10,57 +10,72 @@ TEST(LCD, Ranges) {
10
10
std::vector<uint8_t > sysex = {
11
11
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x00 , ' a' , ' b' , ' c' , ' d' , 0xF7 ,
12
12
};
13
+ lcd.clearDirty ();
13
14
MIDIInputElementSysEx::updateAllWith (sysex);
14
15
EXPECT_STREQ (lcd.getText (), " abcd" );
16
+ EXPECT_TRUE (lcd.getDirty ());
15
17
}
16
18
{ // Buffer longer, MIDI in middle of buffer
17
19
MCU::LCD<4 > lcd (0 );
18
20
std::vector<uint8_t > sysex = {
19
21
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x01 , ' b' , ' c' , 0xF7 ,
20
22
};
23
+ lcd.clearDirty ();
21
24
MIDIInputElementSysEx::updateAllWith (sysex);
22
25
EXPECT_STREQ (lcd.getText (), " bc " );
26
+ EXPECT_TRUE (lcd.getDirty ());
23
27
}
24
28
{ // MIDI overlaps with start of buffer
25
29
MCU::LCD<4 > lcd (1 );
26
30
std::vector<uint8_t > sysex = {
27
31
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x00 , ' a' , ' b' , 0xF7 ,
28
32
};
33
+ lcd.clearDirty ();
29
34
MIDIInputElementSysEx::updateAllWith (sysex);
30
35
EXPECT_STREQ (lcd.getText (), " b " );
36
+ EXPECT_TRUE (lcd.getDirty ());
31
37
}
32
38
{ // MIDI overlaps with end of buffer
33
39
MCU::LCD<4 > lcd (0 );
34
40
std::vector<uint8_t > sysex = {
35
41
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x03 , ' d' , ' e' , 0xF7 ,
36
42
};
43
+ lcd.clearDirty ();
37
44
MIDIInputElementSysEx::updateAllWith (sysex);
38
45
EXPECT_STREQ (lcd.getText (), " d" );
46
+ EXPECT_TRUE (lcd.getDirty ());
39
47
}
40
48
{ // MIDI longer
41
49
MCU::LCD<4 > lcd (1 );
42
50
std::vector<uint8_t > sysex = {
43
51
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x00 ,
44
52
' a' , ' b' , ' c' , ' d' , ' e' , ' f' , 0xF7 ,
45
53
};
54
+ lcd.clearDirty ();
46
55
MIDIInputElementSysEx::updateAllWith (sysex);
47
56
EXPECT_STREQ (lcd.getText (), " bcde" );
57
+ EXPECT_TRUE (lcd.getDirty ());
48
58
}
49
59
{ // No overlap, buffer lower
50
60
MCU::LCD<4 > lcd (0 );
51
61
std::vector<uint8_t > sysex = {
52
62
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x04 , ' e' , ' f' , ' g' , ' h' , 0xF7 ,
53
63
};
64
+ lcd.clearDirty ();
54
65
MIDIInputElementSysEx::updateAllWith (sysex);
55
66
EXPECT_STREQ (lcd.getText (), " " );
67
+ EXPECT_FALSE (lcd.getDirty ());
68
+ EXPECT_FALSE (lcd.getDirty ());
56
69
}
57
70
{ // No overlap, MIDI lower
58
71
MCU::LCD<4 > lcd (4 );
59
72
std::vector<uint8_t > sysex = {
60
73
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x00 , ' a' , ' b' , ' c' , ' d' , 0xF7 ,
61
74
};
75
+ lcd.clearDirty ();
62
76
MIDIInputElementSysEx::updateAllWith (sysex);
63
77
EXPECT_STREQ (lcd.getText (), " " );
78
+ EXPECT_FALSE (lcd.getDirty ());
64
79
}
65
80
}
66
81
@@ -72,8 +87,11 @@ TEST(LCD, FillOneBufferWithManyMIDIMessages) {
72
87
{0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x08 , ' i' , ' j' , ' k' , ' l' , 0xF7 },
73
88
{0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x0C , ' m' , ' n' , ' o' , ' p' , 0xF7 },
74
89
};
75
- for (auto sysex : sysexs)
90
+ for (auto sysex : sysexs) {
91
+ lcd.clearDirty ();
76
92
MIDIInputElementSysEx::updateAllWith (sysex);
93
+ EXPECT_TRUE (lcd.getDirty ());
94
+ }
77
95
EXPECT_STREQ (lcd.getText (), " abcd"
78
96
" efgh"
79
97
" ijkl"
@@ -82,6 +100,7 @@ TEST(LCD, FillOneBufferWithManyMIDIMessages) {
82
100
83
101
TEST (LCD, FillManyBuffersWithOneMIDIMessage) {
84
102
MCU::LCD<4 > lcds[] = {0x0 , 0x4 , 0x8 , 0xC };
103
+ for (auto &lcd : lcds) lcd.clearDirty ();
85
104
std::vector<uint8_t > sysex = {
86
105
0xF0 , 0x00 , 0x00 , 0x66 , 0x10 , 0x12 , 0x00 , ' a' , ' b' , ' c' , ' d' , ' e' ,
87
106
' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , 0xF7 ,
@@ -91,6 +110,7 @@ TEST(LCD, FillManyBuffersWithOneMIDIMessage) {
91
110
EXPECT_STREQ (lcds[1 ].getText (), " efgh" );
92
111
EXPECT_STREQ (lcds[2 ].getText (), " ijkl" );
93
112
EXPECT_STREQ (lcds[3 ].getText (), " mnop" );
113
+ for (auto &lcd : lcds) EXPECT_TRUE (lcd.getDirty ());
94
114
}
95
115
96
116
TEST (LCDlength, len) {
0 commit comments