Fix up screen off timer of helix (#4347)
* Fix up screen off timer of helix * Fix Up ScreenOffInterval exceeded uint16_t * Fix Up never waking up once screen off if in case of matrix are not dirty * Changing referenIng incorrect constant name * OLED_ENABLED => SSD1306OLED * Improve internal processing of process_record_kb() * Use the return value of process_record_gfx() * Move a include statement into #ifdef block Move #include "ssd1306.h` statement into #ifdef block * Move process_record_kbI() Move process_record_kb() from helix.c to rev1.c/rev2.c/pico.c * Move process_record_kb()
This commit is contained in:
		
							parent
							
								
									aa03049015
								
							
						
					
					
						commit
						2b7decbaeb
					
				@ -2,6 +2,12 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef SSD1306OLED
 | 
			
		||||
#include "ssd1306.h"
 | 
			
		||||
 | 
			
		||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	return process_record_gfx(keycode,record) && process_record_user(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_kb(uint8_t usb_led) {
 | 
			
		||||
    // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
 | 
			
		||||
    //led_set_user(usb_led);
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,12 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef SSD1306OLED
 | 
			
		||||
#include "ssd1306.h"
 | 
			
		||||
 | 
			
		||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	return process_record_gfx(keycode,record) && process_record_user(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_kb(uint8_t usb_led) {
 | 
			
		||||
    // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
 | 
			
		||||
    led_set_user(usb_led);
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,12 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef SSD1306OLED
 | 
			
		||||
#include "ssd1306.h"
 | 
			
		||||
 | 
			
		||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	return process_record_gfx(keycode,record) && process_record_user(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void led_set_kb(uint8_t usb_led) {
 | 
			
		||||
    // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
 | 
			
		||||
    //led_set_user(usb_led);
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,4 @@
 | 
			
		||||
 | 
			
		||||
#ifdef SSD1306OLED
 | 
			
		||||
 | 
			
		||||
#include "ssd1306.h"
 | 
			
		||||
@ -27,12 +28,17 @@
 | 
			
		||||
//static uint16_t last_battery_update;
 | 
			
		||||
//static uint32_t vbat;
 | 
			
		||||
//#define BatteryUpdateInterval 10000 /* milliseconds */
 | 
			
		||||
#define ScreenOffInterval 300000 /* milliseconds */
 | 
			
		||||
 | 
			
		||||
// 'last_flush' is declared as uint16_t,
 | 
			
		||||
// so this must be less than 65535 
 | 
			
		||||
#define ScreenOffInterval 60000 /* milliseconds */
 | 
			
		||||
#if DEBUG_TO_SCREEN
 | 
			
		||||
static uint8_t displaying;
 | 
			
		||||
#endif
 | 
			
		||||
static uint16_t last_flush;
 | 
			
		||||
 | 
			
		||||
static bool force_dirty = true;
 | 
			
		||||
 | 
			
		||||
// Write command sequence.
 | 
			
		||||
// Returns true on success.
 | 
			
		||||
static inline bool _send_cmd1(uint8_t cmd) {
 | 
			
		||||
@ -318,12 +324,19 @@ void iota_gfx_task_user(void) {
 | 
			
		||||
void iota_gfx_task(void) {
 | 
			
		||||
  iota_gfx_task_user();
 | 
			
		||||
 | 
			
		||||
  if (display.dirty) {
 | 
			
		||||
  if (display.dirty|| force_dirty) {
 | 
			
		||||
    iota_gfx_flush();
 | 
			
		||||
    force_dirty = false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (timer_elapsed(last_flush) > ScreenOffInterval) {
 | 
			
		||||
    iota_gfx_off();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_record_gfx(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
  force_dirty = true;
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "pincontrol.h"
 | 
			
		||||
#include "action.h"
 | 
			
		||||
 | 
			
		||||
enum ssd1306_cmds {
 | 
			
		||||
  DisplayOff = 0xAE,
 | 
			
		||||
@ -87,6 +88,6 @@ void matrix_write(struct CharacterMatrix *matrix, const char *data);
 | 
			
		||||
void matrix_write_P(struct CharacterMatrix *matrix, const char *data);
 | 
			
		||||
void matrix_render(struct CharacterMatrix *matrix);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool process_record_gfx(uint16_t keycode, keyrecord_t *record);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user