forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cleanup Satisfaction75 Firmware and add new revisions (qmk#22082)
Co-authored-by: Ryan <[email protected]> Co-authored-by: Nick Brassel <[email protected]>
- Loading branch information
1 parent
0f701c7
commit 4906413
Showing
46 changed files
with
1,064 additions
and
817 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
101 changes: 101 additions & 0 deletions
101
keyboards/cannonkeys/lib/satisfaction75/satisfaction_core.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
// Copyright 2023 Andrew Kannan | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#include "quantum.h" | ||
|
||
#include "via.h" // only for EEPROM address | ||
#include "satisfaction_keycodes.h" | ||
|
||
#define EEPROM_ENABLED_ENCODER_MODES (VIA_EEPROM_CUSTOM_CONFIG_ADDR) | ||
#define EEPROM_DEFAULT_OLED (VIA_EEPROM_CUSTOM_CONFIG_ADDR+1) | ||
#define EEPROM_CUSTOM_ENCODER (VIA_EEPROM_CUSTOM_CONFIG_ADDR+2) | ||
|
||
enum s75_keyboard_value_id { | ||
id_encoder_modes = 1, | ||
id_oled_default_mode, | ||
id_encoder_custom, | ||
id_oled_mode | ||
}; | ||
|
||
enum encoder_modes { | ||
ENC_MODE_VOLUME, | ||
ENC_MODE_MEDIA, | ||
ENC_MODE_SCROLL, | ||
ENC_MODE_BRIGHTNESS, | ||
ENC_MODE_BACKLIGHT, | ||
ENC_MODE_CUSTOM0, | ||
ENC_MODE_CUSTOM1, | ||
ENC_MODE_CUSTOM2, | ||
_NUM_ENCODER_MODES, | ||
ENC_MODE_CLOCK_SET // This shouldn't be included in the default modes, so we put it after NUM_ENCODER_MODES | ||
}; | ||
|
||
enum custom_encoder_behavior { | ||
ENC_CUSTOM_CW = 0, | ||
ENC_CUSTOM_CCW, | ||
ENC_CUSTOM_PRESS | ||
}; | ||
|
||
enum oled_modes { | ||
OLED_DEFAULT, | ||
OLED_TIME, | ||
OLED_OFF, | ||
_NUM_OLED_MODES | ||
}; | ||
|
||
|
||
// Keyboard Information | ||
extern volatile uint8_t led_numlock; | ||
extern volatile uint8_t led_capslock; | ||
extern volatile uint8_t led_scrolllock; | ||
extern uint8_t layer; | ||
|
||
// OLED Behavior | ||
extern uint8_t oled_mode; | ||
extern bool oled_repaint_requested; | ||
extern bool oled_wakeup_requested; | ||
extern uint32_t oled_sleep_timer; | ||
|
||
// Encoder Behavior | ||
extern uint8_t encoder_value; | ||
extern uint8_t encoder_mode; | ||
extern uint8_t enabled_encoder_modes; | ||
|
||
// RTC | ||
extern RTCDateTime last_timespec; | ||
extern uint16_t last_minute; | ||
|
||
// RTC Configuration | ||
extern bool clock_set_mode; | ||
extern uint8_t time_config_idx; | ||
extern int8_t hour_config; | ||
extern int16_t minute_config; | ||
extern int8_t year_config; | ||
extern int8_t month_config; | ||
extern int8_t day_config; | ||
extern uint8_t previous_encoder_mode; | ||
|
||
// Backlighting | ||
#ifdef BACKLIGHT_ENABLE | ||
extern backlight_config_t kb_backlight_config; | ||
extern bool kb_backlight_breathing; | ||
#endif | ||
|
||
void pre_encoder_mode_change(void); | ||
void post_encoder_mode_change(void); | ||
void change_encoder_mode(bool negative); | ||
uint16_t handle_encoder_clockwise(void); | ||
uint16_t handle_encoder_ccw(void); | ||
uint16_t handle_encoder_press(void); | ||
uint16_t retrieve_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior); | ||
void set_custom_encoder_config(uint8_t encoder_idx, uint8_t behavior, uint16_t new_code); | ||
|
||
void update_time_config(int8_t increment); | ||
|
||
void oled_request_wakeup(void); | ||
void oled_request_repaint(void); | ||
bool oled_task_needs_to_repaint(void); | ||
|
||
void custom_config_load(void); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
keyboards/cannonkeys/lib/satisfaction75/satisfaction_keycodes.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// Copyright 2023 Andrew Kannan | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
enum my_keycodes { | ||
ENC_PRESS = QK_KB_0, | ||
CLOCK_SET, | ||
OLED_TOGG | ||
}; |
Oops, something went wrong.