[Keymap] Drashna's Improve OLEDs and custom Split code (#14063)
* Fill the oleds with right mods * Enable double mods on x32 oleds * Disable forced NKRO * Make oleds fancy only on good MCUs * Overhaul oled display * Further enhance oled, with kitty! * Final oled form * Not working transport * Transport id of woring * Add acceleration * fix button placement for accel macro * Fix accelartion location and behavior * Remove OLED sync code * Fix alignment issue * Remove audio hack * Fix up zima keymap * Add matrix slave scan function and cleanup drashna.h * Clean up user space * Allow userspace sync to be disable-able * Fix weird issue with audio * Fix alignment issue with user split sync * Disable second rgb matrix task * Disable additional animations * Change dynamic keymap settings * Hacky fix for borked corne * Add Blackpill (F411) support to tractyl manuform * remove manual via eeprom reset * Remove all references to rgblight twinkle * Fix issues with config processing
This commit is contained in:
parent
da1c011afc
commit
58a5030661
42 changed files with 936 additions and 521 deletions
|
|
@ -1,30 +1,44 @@
|
|||
#ifdef SPLIT_TRANSACTION_IDS_USER
|
||||
# include "transport_sync.h"
|
||||
# include "transactions.h"
|
||||
# include <string.h>
|
||||
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
# ifdef UNICODE_ENABLE
|
||||
#include "transport_sync.h"
|
||||
#include "transactions.h"
|
||||
#include <string.h>
|
||||
|
||||
#ifdef UNICODE_ENABLE
|
||||
extern unicode_config_t unicode_config;
|
||||
# endif
|
||||
# ifdef AUDIO_ENABLE
|
||||
# include "audio.h"
|
||||
# endif
|
||||
# if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
|
||||
#endif
|
||||
#ifdef AUDIO_ENABLE
|
||||
# include "audio.h"
|
||||
extern bool delayed_tasks_run;
|
||||
#endif
|
||||
#if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
|
||||
extern bool tap_toggling;
|
||||
# endif
|
||||
# ifdef SWAP_HANDS_ENABLE
|
||||
#endif
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
extern bool swap_hands;
|
||||
# endif
|
||||
#endif
|
||||
extern userspace_config_t userspace_config;
|
||||
|
||||
typedef struct {
|
||||
bool oled_on;
|
||||
bool audio_enable;
|
||||
bool audio_clicky_enable;
|
||||
bool tap_toggling;
|
||||
bool unicode_mode;
|
||||
bool swap_hands;
|
||||
uint8_t reserved :2;
|
||||
__attribute__((aligned(8))) typedef struct {
|
||||
bool audio_enable;
|
||||
bool audio_clicky_enable;
|
||||
bool tap_toggling;
|
||||
bool unicode_mode;
|
||||
bool swap_hands;
|
||||
} user_runtime_config_t;
|
||||
|
||||
uint16_t transport_keymap_config = 0;
|
||||
|
|
@ -57,58 +71,49 @@ void keyboard_post_init_transport_sync(void) {
|
|||
|
||||
void user_transport_update(void) {
|
||||
if (is_keyboard_master()) {
|
||||
# ifdef OLED_DRIVER_ENABLE
|
||||
user_state.oled_on = is_oled_on();
|
||||
# endif
|
||||
|
||||
transport_keymap_config = keymap_config.raw;
|
||||
transport_userspace_config = userspace_config.raw;
|
||||
# ifdef AUDIO_ENABLE
|
||||
#ifdef AUDIO_ENABLE
|
||||
user_state.audio_enable = is_audio_on();
|
||||
user_state.audio_clicky_enable = is_clicky_on();
|
||||
# endif
|
||||
# if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
|
||||
#endif
|
||||
#if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
|
||||
user_state.tap_toggling = tap_toggling;
|
||||
# endif
|
||||
# ifdef SWAP_HANDS_ENABLE
|
||||
#endif
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
user_state.swap_hands = swap_hands;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
} else {
|
||||
# ifdef OLED_DRIVER_ENABLE
|
||||
if (user_state.oled_on) {
|
||||
oled_on();
|
||||
} else {
|
||||
oled_off();
|
||||
}
|
||||
# endif
|
||||
keymap_config.raw = transport_keymap_config;
|
||||
userspace_config.raw = transport_userspace_config;
|
||||
# ifdef UNICODE_ENABLE
|
||||
#ifdef UNICODE_ENABLE
|
||||
unicode_config.input_mode = user_state.unicode_mode;
|
||||
# endif
|
||||
# ifdef AUDIO_ENABLE
|
||||
if (user_state.audio_enable != is_audio_on()) {
|
||||
if (user_state.audio_enable) {
|
||||
audio_on();
|
||||
} else {
|
||||
audio_off();
|
||||
#endif
|
||||
#ifdef AUDIO_ENABLE
|
||||
if (delayed_tasks_run) {
|
||||
if (user_state.audio_enable != is_audio_on()) {
|
||||
if (user_state.audio_enable) {
|
||||
audio_on();
|
||||
} else {
|
||||
audio_off();
|
||||
}
|
||||
}
|
||||
if (user_state.audio_clicky_enable != is_clicky_on()) {
|
||||
if (user_state.audio_clicky_enable) {
|
||||
clicky_on();
|
||||
} else {
|
||||
clicky_off();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (user_state.audio_clicky_enable != is_clicky_on()) {
|
||||
if (user_state.audio_clicky_enable) {
|
||||
clicky_on();
|
||||
} else {
|
||||
clicky_off();
|
||||
}
|
||||
}
|
||||
# endif
|
||||
# if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
|
||||
#endif
|
||||
#if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
|
||||
tap_toggling = user_state.tap_toggling;
|
||||
# endif
|
||||
# ifdef SWAP_HANDS_ENABLE
|
||||
#endif
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
swap_hands = user_state.swap_hands;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -185,4 +190,3 @@ void housekeeping_task_user(void) {
|
|||
// Data sync from master to slave
|
||||
user_transport_sync();
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue