File tree 4 files changed +29
-13
lines changed
keyboards/vitamins_included/rev2
4 files changed +29
-13
lines changed Original file line number Diff line number Diff line change @@ -8,5 +8,9 @@ bool is_keyboard_left(void) {
8
8
gpio_set_pin_input (SPLIT_HAND_PIN );
9
9
return x ;
10
10
#endif
11
- return eeprom_read_byte (EECONFIG_HANDEDNESS );
11
+ if (eeconfig_read_handedness () == EEHANDS_UNSET ){
12
+ return is_keyboard_master ();
13
+ } else {
14
+ return eeconfig_read_handedness () == EEHANDS_LEFT ? true : false;
15
+ }
12
16
}
Original file line number Diff line number Diff line change @@ -63,6 +63,8 @@ void eeconfig_init_quantum(void) {
63
63
eeprom_update_byte (EECONFIG_STENOMODE , 0 );
64
64
eeprom_write_qword (EECONFIG_RGB_MATRIX , 0 );
65
65
eeprom_update_dword (EECONFIG_HAPTIC , 0 );
66
+ eeprom_update_byte (EECONFIG_HANDEDNESS , EEHANDS_UNSET );
67
+
66
68
#if defined(HAPTIC_ENABLE )
67
69
haptic_reset ();
68
70
#endif
@@ -254,15 +256,15 @@ void eeconfig_update_haptic(uint32_t val) {
254
256
*
255
257
* FIXME: needs doc
256
258
*/
257
- bool eeconfig_read_handedness (void ) {
258
- return !! eeprom_read_byte (EECONFIG_HANDEDNESS );
259
+ eehands_t eeconfig_read_handedness (void ) {
260
+ return eeprom_read_byte (EECONFIG_HANDEDNESS );
259
261
}
260
262
/** \brief eeconfig update split handedness
261
263
*
262
264
* FIXME: needs doc
263
265
*/
264
- void eeconfig_update_handedness (bool val ) {
265
- eeprom_update_byte (EECONFIG_HANDEDNESS , !! val );
266
+ void eeconfig_update_handedness (eehands_t val ) {
267
+ eeprom_update_byte (EECONFIG_HANDEDNESS , val );
266
268
}
267
269
268
270
#if (EECONFIG_KB_DATA_SIZE ) > 0
Original file line number Diff line number Diff line change @@ -28,6 +28,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28
28
#endif
29
29
#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF
30
30
31
+ typedef enum {
32
+ EEHANDS_LEFT ,
33
+ EEHANDS_RIGHT ,
34
+ EEHANDS_UNSET ,
35
+ } eehands_t ;
36
+
31
37
// Dummy struct only used to calculate offsets
32
38
typedef struct PACKED {
33
39
uint16_t magic ;
@@ -148,8 +154,8 @@ uint32_t eeconfig_read_haptic(void);
148
154
void eeconfig_update_haptic (uint32_t val );
149
155
#endif
150
156
151
- bool eeconfig_read_handedness (void );
152
- void eeconfig_update_handedness (bool val );
157
+ eehands_t eeconfig_read_handedness (void );
158
+ void eeconfig_update_handedness (eehands_t val );
153
159
154
160
#if (EECONFIG_KB_DATA_SIZE ) > 0
155
161
bool eeconfig_is_kb_datablock_valid (void );
Original file line number Diff line number Diff line change @@ -157,17 +157,21 @@ __attribute__((weak)) bool is_keyboard_left_impl(void) {
157
157
# if defined(INIT_EE_HANDS_LEFT ) || defined(INIT_EE_HANDS_RIGHT )
158
158
# if defined(INIT_EE_HANDS_LEFT )
159
159
# pragma message "Forcing EEPROM setting for left hand"
160
- const bool should_be_left = true ;
160
+ const eehands_t eehands_forced = EEHANDS_LEFT ;
161
161
# else
162
162
# pragma message "Forcing EEPROM setting for right hand"
163
- const bool should_be_left = false ;
163
+ const eehands_t eehands_forced = EEHANDS_RIGHT ;
164
164
# endif
165
- bool is_left = eeconfig_read_handedness ();
166
- if (is_left != should_be_left ) {
167
- eeconfig_update_handedness (should_be_left );
165
+ if (eehands_forced != eeconfig_read_handedness ()) {
166
+ eeconfig_update_handedness (eehands_forced );
168
167
}
169
168
# endif // defined(INIT_EE_HANDS_LEFT) || defined(INIT_EE_HANDS_RIGHT)
170
- return eeconfig_read_handedness ();
169
+
170
+ if (eeconfig_read_handedness () == EEHANDS_UNSET ){
171
+ return is_keyboard_master ();
172
+ } else {
173
+ return eeconfig_read_handedness () == EEHANDS_LEFT ? true : false;
174
+ }
171
175
#endif
172
176
}
173
177
You can’t perform that action at this time.
0 commit comments