@@ -32,7 +32,7 @@ constexpr uint8_t key_map[][4 /* mode: normal, shift, sym, fn */] = {
3232 {' 8' , ' 8' , ' *' , 136 }, // 8
3333 {' 9' , ' 9' , ' (' , 137 }, // 9
3434 {' 0' , ' 0' , ' )' , 138 }, // 0
35- {8 , 127 , 8 , 139 }, // bs/del
35+ {8 , 8 , 127 , 139 }, // bs/del (Sym+BS => DEL)
3636 {9 , 9 , 9 , 140 }, // tab
3737 {' q' , ' Q' , ' {' , 141 }, // q
3838 {' w' , ' W' , ' }' , 142 }, // w
@@ -72,9 +72,6 @@ constexpr uint8_t key_map[][4 /* mode: normal, shift, sym, fn */] = {
7272};
7373static_assert (m5::stl::size(key_map) == UnitCardKB::NUMBER_OF_KEYS , " Invalid size" );
7474
75- // modifier bit to key_map mode index
76- constexpr uint8_t mod_table[] = {1 , 0 , 3 , 2 }; // 0x01:Shift, 0x80:Symbol 0x40:Function
77-
7875// ASCII to mode bit and key_index_t
7976// 1:normal 2:shift 4:symbol 8:function
8077constexpr std::pair<uint8_t , key_index_t > character_map[] = {
@@ -86,7 +83,7 @@ constexpr std::pair<uint8_t, key_index_t> character_map[] = {
8683 {0x00 , 0xFF }, // ENG
8784 {0x00 , 0xFF }, // ACK
8885 {0x00 , 0xFF }, // BEL
89- {1 + 4 , UnitCardKB::KEY_BS }, // BS
86+ {1 + 2 , UnitCardKB::KEY_BS }, // BS
9087 {1 + 2 + 4 , UnitCardKB::KEY_TAB }, // HT
9188 {1 + 2 + 4 , UnitCardKB::KEY_ENTER }, // LF
9289 {0x00 , 0xFF }, // VT
@@ -205,7 +202,7 @@ constexpr std::pair<uint8_t, key_index_t> character_map[] = {
205202 {4 , UnitCardKB::KEY_U }, // |
206203 {4 , UnitCardKB::KEY_W }, // }
207204 {4 , UnitCardKB::KEY_I }, // ~
208- {2 , UnitCardKB::KEY_BS }, // DEL
205+ {4 , UnitCardKB::KEY_BS }, // DEL
209206};
210207static_assert (m5::stl::size(character_map) == 128 , " Invalid size" );
211208
@@ -232,7 +229,7 @@ key_index_t UnitCardKB::character_to_key_index(const char ch)
232229 unsigned char uc = ch;
233230 // function (>= 0x80)
234231 if (uc & 0x80 ) {
235- key_index_t kidx = ( key_index_t ) (uc - 0x80 );
232+ key_index_t kidx = static_cast < key_index_t > (uc - 0x80 );
236233 // Special key?
237234 if (uc >= SCHAR_LEFT && uc <= SCHAR_RIGHT ) {
238235 return special_character_map[uc - SCHAR_LEFT ].second ;
@@ -248,7 +245,7 @@ uint8_t UnitCardKB::character_to_mode_bits(const char ch)
248245 unsigned char uc = ch;
249246 // function? (>= 0x80)
250247 if (uc & 0x80 ) {
251- key_index_t kidx = ( key_index_t ) (uc - 0x80 );
248+ key_index_t kidx = static_cast < key_index_t > (uc - 0x80 );
252249 // Special key?
253250 if (uc >= SCHAR_LEFT && uc <= SCHAR_RIGHT ) {
254251 // M5_LIB_LOGI("%c => %02X", ch, special_character_map[uc - SCHAR_LEFT].first);
@@ -365,7 +362,7 @@ bool UnitCardKB::update_new_firmware(const types::elapsed_time_t at)
365362 }
366363 _wasHold = (prev_holding ^ _holding) & _holding;
367364
368- return true ; // Always true
365+ return (_wasPressed | _wasReleased | _repeating);
369366}
370367
371368void UnitCardKB::push_back (m5::container::CircularBuffer<uint8_t >* container, const uint8_t kidx, const uint8_t mod8)
0 commit comments