forked from mirrors/qmk_userspace
		
	Add VIA support for QMK backlight, QMK RGBLight (#7911)
* Add VIA support for QMK backlight, QMK RGBLight * clang-format changes
This commit is contained in:
		
					parent
					
						
							
								ce81c4f89b
							
						
					
				
			
			
				commit
				
					
						484a9b12bc
					
				
			
		
					 37 changed files with 500 additions and 35 deletions
				
			
		| 
						 | 
				
			
			@ -62,6 +62,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
// Let VIA handle the QMK RGBLIGHT 
 | 
			
		||||
#define VIA_QMK_RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
// Let VIA handle the QMK RGBLIGHT 
 | 
			
		||||
#define VIA_QMK_RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,6 +54,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,6 +73,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// 6 for 3x custom encoder settings, left, right, and press (18 bytes)
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 21
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,3 +3,5 @@
 | 
			
		|||
void backlight_task(void);
 | 
			
		||||
void breathing_interrupt_disable(void);
 | 
			
		||||
void breathing_interrupt_enable(void);
 | 
			
		||||
void breathing_enable(void);
 | 
			
		||||
void breathing_disable(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,6 +55,54 @@ backlight_config_t kb_backlight_config = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
#ifdef VIA_ENABLE
 | 
			
		||||
 | 
			
		||||
void backlight_get_value( uint8_t *data )
 | 
			
		||||
{
 | 
			
		||||
	uint8_t *value_id = &(data[0]);
 | 
			
		||||
	uint8_t *value_data = &(data[1]);
 | 
			
		||||
  switch (*value_id)
 | 
			
		||||
  {
 | 
			
		||||
    case id_qmk_backlight_brightness:
 | 
			
		||||
    {
 | 
			
		||||
      // level / BACKLIGHT_LEVELS * 255
 | 
			
		||||
      value_data[0] = ((uint16_t)kb_backlight_config.level) * 255 / BACKLIGHT_LEVELS;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_qmk_backlight_effect:
 | 
			
		||||
    {
 | 
			
		||||
      value_data[0] = kb_backlight_config.breathing ? 1 : 0;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void backlight_set_value( uint8_t *data )
 | 
			
		||||
{
 | 
			
		||||
	uint8_t *value_id = &(data[0]);
 | 
			
		||||
	uint8_t *value_data = &(data[1]);
 | 
			
		||||
  switch (*value_id)
 | 
			
		||||
  {
 | 
			
		||||
    case id_qmk_backlight_brightness:
 | 
			
		||||
    {
 | 
			
		||||
      // level / 255 * BACKLIGHT_LEVELS
 | 
			
		||||
      kb_backlight_config.level = ((uint16_t)value_data[0]) * BACKLIGHT_LEVELS / 255;
 | 
			
		||||
      backlight_set(kb_backlight_config.level);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_qmk_backlight_effect:
 | 
			
		||||
    {
 | 
			
		||||
      if ( value_data[0] == 0 ) {
 | 
			
		||||
        kb_backlight_config.breathing = false;
 | 
			
		||||
        breathing_disable();
 | 
			
		||||
      } else {
 | 
			
		||||
        kb_backlight_config.breathing = true;
 | 
			
		||||
        breathing_enable();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void raw_hid_receive_kb( uint8_t *data, uint8_t length )
 | 
			
		||||
{
 | 
			
		||||
  uint8_t *command_id = &(data[0]);
 | 
			
		||||
| 
						 | 
				
			
			@ -139,6 +187,21 @@ void raw_hid_receive_kb( uint8_t *data, uint8_t length )
 | 
			
		|||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_lighting_set_value:
 | 
			
		||||
    {
 | 
			
		||||
      backlight_set_value(command_data);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_lighting_get_value:
 | 
			
		||||
    {
 | 
			
		||||
      backlight_get_value(command_data);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_lighting_save:
 | 
			
		||||
    {
 | 
			
		||||
      backlight_config_save();
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    default:
 | 
			
		||||
    {
 | 
			
		||||
      // Unhandled message.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
// Let VIA handle the QMK RGBLIGHT 
 | 
			
		||||
#define VIA_QMK_RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -126,8 +126,86 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
  return process_record_user(keycode, record);;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef VIA_ENABLE
 | 
			
		||||
 | 
			
		||||
void backlight_get_value( uint8_t *data )
 | 
			
		||||
{
 | 
			
		||||
	uint8_t *value_id = &(data[0]);
 | 
			
		||||
	uint8_t *value_data = &(data[1]);
 | 
			
		||||
  switch (*value_id)
 | 
			
		||||
  {
 | 
			
		||||
    case id_qmk_backlight_brightness:
 | 
			
		||||
    {
 | 
			
		||||
      // level / BACKLIGHT_LEVELS * 255
 | 
			
		||||
      value_data[0] = ((uint16_t)kb_backlight_config.level) * 255 / BACKLIGHT_LEVELS;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_qmk_backlight_effect:
 | 
			
		||||
    {
 | 
			
		||||
      value_data[0] = kb_backlight_config.breathing ? 1 : 0;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void backlight_set_value( uint8_t *data )
 | 
			
		||||
{
 | 
			
		||||
	uint8_t *value_id = &(data[0]);
 | 
			
		||||
	uint8_t *value_data = &(data[1]);
 | 
			
		||||
  switch (*value_id)
 | 
			
		||||
  {
 | 
			
		||||
    case id_qmk_backlight_brightness:
 | 
			
		||||
    {
 | 
			
		||||
      // level / 255 * BACKLIGHT_LEVELS
 | 
			
		||||
      kb_backlight_config.level = ((uint16_t)value_data[0]) * BACKLIGHT_LEVELS / 255;
 | 
			
		||||
      backlight_set(kb_backlight_config.level);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_qmk_backlight_effect:
 | 
			
		||||
    {
 | 
			
		||||
      if ( value_data[0] == 0 ) {
 | 
			
		||||
        kb_backlight_config.breathing = false;
 | 
			
		||||
        breathing_disable();
 | 
			
		||||
      } else {
 | 
			
		||||
        kb_backlight_config.breathing = true;
 | 
			
		||||
        breathing_enable();
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void raw_hid_receive_kb( uint8_t *data, uint8_t length )
 | 
			
		||||
{
 | 
			
		||||
  uint8_t *command_id = &(data[0]);
 | 
			
		||||
  uint8_t *command_data = &(data[1]);
 | 
			
		||||
  switch ( *command_id )
 | 
			
		||||
  {
 | 
			
		||||
    case id_lighting_set_value:
 | 
			
		||||
    {
 | 
			
		||||
      backlight_set_value(command_data);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_lighting_get_value:
 | 
			
		||||
    {
 | 
			
		||||
      backlight_get_value(command_data);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case id_lighting_save:
 | 
			
		||||
    {
 | 
			
		||||
      backlight_config_save();
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    default:
 | 
			
		||||
    {
 | 
			
		||||
      // Unhandled message.
 | 
			
		||||
      *command_id = id_unhandled;
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  // DO NOT call raw_hid_send(data,length) here, let caller do this
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// In the case of VIA being disabled, we still need to check if
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,3 +4,5 @@ void backlight_task(void);
 | 
			
		|||
void breathing_interrupt_disable(void);
 | 
			
		||||
void breathing_interrupt_enable(void);
 | 
			
		||||
void breathing_toggle(void);
 | 
			
		||||
void breathing_enable(void);
 | 
			
		||||
void breathing_disable(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
// Let VIA handle the QMK RGBLIGHT 
 | 
			
		||||
#define VIA_QMK_RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,3 +138,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -141,3 +141,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 1
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
 | 
			
		||||
// Let VIA handle the QMK RGBLIGHT 
 | 
			
		||||
#define VIA_QMK_RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Feature disable options
 | 
			
		||||
 *  These options are also useful to firmware size reduction.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,4 +121,7 @@
 | 
			
		|||
 | 
			
		||||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,3 +119,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,3 +109,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 43
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -152,3 +152,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 43
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,3 +235,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,3 +204,5 @@
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -201,3 +201,5 @@
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -201,3 +201,5 @@
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,3 +204,5 @@
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,3 +204,5 @@
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,3 +204,5 @@
 | 
			
		|||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -200,3 +200,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -123,17 +123,17 @@ void raw_hid_receive_kb(uint8_t *data, uint8_t length) {
 | 
			
		|||
    switch ( *command_id )
 | 
			
		||||
    {
 | 
			
		||||
#if RGB_BACKLIGHT_ENABLED || MONO_BACKLIGHT_ENABLED
 | 
			
		||||
        case id_backlight_config_set_value:
 | 
			
		||||
        case id_lighting_set_value:
 | 
			
		||||
        {
 | 
			
		||||
            backlight_config_set_value(command_data);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_backlight_config_get_value:
 | 
			
		||||
        case id_lighting_get_value:
 | 
			
		||||
        {
 | 
			
		||||
            backlight_config_get_value(command_data);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_backlight_config_save:
 | 
			
		||||
        case id_lighting_save:
 | 
			
		||||
        {
 | 
			
		||||
            backlight_config_save();
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,9 +26,13 @@
 | 
			
		|||
#include "quantum/color.h"
 | 
			
		||||
#include "tmk_core/common/eeprom.h"
 | 
			
		||||
 | 
			
		||||
#include "via.h" // uses only the EEPROM address
 | 
			
		||||
#include "via.h" // uses EEPROM address, lighting value IDs
 | 
			
		||||
#define MONO_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR)
 | 
			
		||||
 | 
			
		||||
#if VIA_EEPROM_CUSTOM_CONFIG_SIZE == 0
 | 
			
		||||
#error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "drivers/issi/is31fl3736.h"
 | 
			
		||||
 | 
			
		||||
#define ISSI_ADDR_DEFAULT 0x50
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,9 +50,13 @@ LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL];
 | 
			
		|||
#include "quantum/color.h"
 | 
			
		||||
#include "tmk_core/common/eeprom.h"
 | 
			
		||||
 | 
			
		||||
#include "via.h" // uses only the EEPROM address
 | 
			
		||||
#include "via.h" // uses EEPROM address, lighting value IDs
 | 
			
		||||
#define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR (VIA_EEPROM_CUSTOM_CONFIG_ADDR)
 | 
			
		||||
 | 
			
		||||
#if VIA_EEPROM_CUSTOM_CONFIG_SIZE == 0
 | 
			
		||||
#error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(RGB_BACKLIGHT_M6_B)
 | 
			
		||||
#include "drivers/issi/is31fl3218.h"
 | 
			
		||||
#define BACKLIGHT_LED_COUNT 6
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -117,4 +117,7 @@
 | 
			
		|||
 | 
			
		||||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -118,3 +118,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -140,3 +140,6 @@
 | 
			
		|||
// Backlight config starts after VIA's EEPROM usage,
 | 
			
		||||
// dynamic keymaps start after this.
 | 
			
		||||
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
 | 
			
		||||
 | 
			
		||||
// VIA lighting is handled by the keyboard-level code
 | 
			
		||||
#define VIA_CUSTOM_LIGHTING_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -130,18 +130,30 @@ void backlight_step(void) {
 | 
			
		|||
    backlight_set(backlight_config.level);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** \brief Backlight set level without EEPROM update
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
void backlight_level_noeeprom(uint8_t level) {
 | 
			
		||||
    if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS;
 | 
			
		||||
    backlight_config.level  = level;
 | 
			
		||||
    backlight_config.enable = !!backlight_config.level;
 | 
			
		||||
    backlight_set(backlight_config.level);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** \brief Backlight set level
 | 
			
		||||
 *
 | 
			
		||||
 * FIXME: needs doc
 | 
			
		||||
 */
 | 
			
		||||
void backlight_level(uint8_t level) {
 | 
			
		||||
    if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS;
 | 
			
		||||
    backlight_config.level  = level;
 | 
			
		||||
    backlight_config.enable = !!backlight_config.level;
 | 
			
		||||
    backlight_level_noeeprom(level);
 | 
			
		||||
    eeconfig_update_backlight(backlight_config.raw);
 | 
			
		||||
    backlight_set(backlight_config.level);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** \brief Update current backlight state to EEPROM
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
void eeconfig_update_backlight_current(void) { eeconfig_update_backlight(backlight_config.raw); }
 | 
			
		||||
 | 
			
		||||
/** \brief Get backlight level
 | 
			
		||||
 *
 | 
			
		||||
 * FIXME: needs doc
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,8 +48,10 @@ bool    is_backlight_enabled(void);
 | 
			
		|||
void    backlight_step(void);
 | 
			
		||||
void    backlight_increase(void);
 | 
			
		||||
void    backlight_decrease(void);
 | 
			
		||||
void    backlight_level_noeeprom(uint8_t level);
 | 
			
		||||
void    backlight_level(uint8_t level);
 | 
			
		||||
uint8_t get_backlight_level(void);
 | 
			
		||||
void    eeconfig_update_backlight_current(void);
 | 
			
		||||
 | 
			
		||||
// implementation specific
 | 
			
		||||
void backlight_init_ports(void);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -160,6 +160,10 @@ void eeconfig_update_rgblight(uint32_t val) {
 | 
			
		|||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void eeconfig_update_rgblight_current(void) {
 | 
			
		||||
    eeconfig_update_rgblight(rgblight_config.raw);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void eeconfig_update_rgblight_default(void) {
 | 
			
		||||
    rgblight_config.enable = 1;
 | 
			
		||||
    rgblight_config.mode   = RGBLIGHT_MODE_STATIC_LIGHT;
 | 
			
		||||
| 
						 | 
				
			
			@ -501,6 +505,22 @@ void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_ee
 | 
			
		|||
 | 
			
		||||
void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, false); }
 | 
			
		||||
 | 
			
		||||
uint8_t rgblight_get_speed(void) { return rgblight_config.speed; }
 | 
			
		||||
 | 
			
		||||
void rgblight_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) {
 | 
			
		||||
    rgblight_config.speed = speed;
 | 
			
		||||
    if (write_to_eeprom) {
 | 
			
		||||
        eeconfig_update_rgblight(rgblight_config.raw);   // EECONFIG needs to be increased to support this
 | 
			
		||||
        dprintf("rgblight set speed [EEPROM]: %u\n", rgblight_config.speed);
 | 
			
		||||
    } else {
 | 
			
		||||
        dprintf("rgblight set speed [NOEEPROM]: %u\n", rgblight_config.speed);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void rgblight_set_speed(uint8_t speed) { rgblight_set_speed_eeprom_helper(speed, true); }
 | 
			
		||||
 | 
			
		||||
void rgblight_set_speed_noeeprom(uint8_t speed) { rgblight_set_speed_eeprom_helper(speed, false); }
 | 
			
		||||
 | 
			
		||||
uint8_t rgblight_get_hue(void) { return rgblight_config.hue; }
 | 
			
		||||
 | 
			
		||||
uint8_t rgblight_get_sat(void) { return rgblight_config.sat; }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,6 +233,11 @@ void rgblight_decrease_speed(void);
 | 
			
		|||
void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val);
 | 
			
		||||
void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val);
 | 
			
		||||
 | 
			
		||||
/*   effect speed */
 | 
			
		||||
uint8_t rgblight_get_speed(void);
 | 
			
		||||
void rgblight_set_speed(uint8_t speed);
 | 
			
		||||
void rgblight_set_speed_noeeprom(uint8_t speed);
 | 
			
		||||
 | 
			
		||||
/*       query */
 | 
			
		||||
uint8_t rgblight_get_mode(void);
 | 
			
		||||
uint8_t rgblight_get_hue(void);
 | 
			
		||||
| 
						 | 
				
			
			@ -245,6 +250,7 @@ uint32_t rgblight_read_dword(void);
 | 
			
		|||
void     rgblight_update_dword(uint32_t dword);
 | 
			
		||||
uint32_t eeconfig_read_rgblight(void);
 | 
			
		||||
void     eeconfig_update_rgblight(uint32_t val);
 | 
			
		||||
void     eeconfig_update_rgblight_current(void);
 | 
			
		||||
void     eeconfig_update_rgblight_default(void);
 | 
			
		||||
void     eeconfig_debug_rgblight(void);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										182
									
								
								quantum/via.c
									
										
									
									
									
								
							
							
						
						
									
										182
									
								
								quantum/via.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -22,14 +22,42 @@
 | 
			
		|||
#    error "DYNAMIC_KEYMAP_ENABLE is not enabled"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// If VIA_CUSTOM_LIGHTING_ENABLE is not defined, then VIA_QMK_BACKLIGHT_ENABLE is set
 | 
			
		||||
// if BACKLIGHT_ENABLE is set, so handling of QMK Backlight values happens here by default.
 | 
			
		||||
// if VIA_CUSTOM_LIGHTING_ENABLE is defined, then VIA_QMK_BACKLIGHT_ENABLE must be explicitly
 | 
			
		||||
// set in keyboard-level config.h, so handling of QMK Backlight values happens here
 | 
			
		||||
#if defined(BACKLIGHT_ENABLE) && !defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
#    define VIA_QMK_BACKLIGHT_ENABLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// If VIA_CUSTOM_LIGHTING_ENABLE is not defined, then VIA_QMK_RGBLIGHT_ENABLE is set
 | 
			
		||||
// if RGBLIGHT_ENABLE is set, so handling of QMK RGBLIGHT values happens here by default.
 | 
			
		||||
// If VIA_CUSTOM_LIGHTING_ENABLE is defined, then VIA_QMK_RGBLIGHT_ENABLE must be explicitly
 | 
			
		||||
// set in keyboard-level config.h, so handling of QMK RGBLIGHT values happens here
 | 
			
		||||
#if defined(RGBLIGHT_ENABLE) && !defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
#    define VIA_QMK_RGBLIGHT_ENABLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#include "via.h"
 | 
			
		||||
 | 
			
		||||
#include "raw_hid.h"
 | 
			
		||||
#include "dynamic_keymap.h"
 | 
			
		||||
#include "tmk_core/common/eeprom.h"
 | 
			
		||||
#include "version.h"  // for QMK_BUILDDATE used in EEPROM magic
 | 
			
		||||
 | 
			
		||||
// Forward declare some helpers.
 | 
			
		||||
#if defined(VIA_QMK_BACKLIGHT_ENABLE)
 | 
			
		||||
void via_qmk_backlight_set_value(uint8_t *data);
 | 
			
		||||
void via_qmk_backlight_get_value(uint8_t *data);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(VIA_QMK_RGBLIGHT_ENABLE)
 | 
			
		||||
void via_qmk_rgblight_set_value(uint8_t *data);
 | 
			
		||||
void via_qmk_rgblight_get_value(uint8_t *data);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Can be called in an overriding via_init_kb() to test if keyboard level code usage of
 | 
			
		||||
// EEPROM is invalid and use/save defaults.
 | 
			
		||||
bool via_eeprom_is_valid(void) {
 | 
			
		||||
| 
						 | 
				
			
			@ -282,10 +310,52 @@ void raw_hid_receive(uint8_t *data, uint8_t length) {
 | 
			
		|||
            dynamic_keymap_reset();
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_backlight_config_set_value:
 | 
			
		||||
        case id_backlight_config_get_value:
 | 
			
		||||
        case id_backlight_config_save: {
 | 
			
		||||
        case id_lighting_set_value: {
 | 
			
		||||
#if defined(VIA_QMK_BACKLIGHT_ENABLE)
 | 
			
		||||
            via_qmk_backlight_set_value(command_data);
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(VIA_QMK_RGBLIGHT_ENABLE)
 | 
			
		||||
            via_qmk_rgblight_set_value(command_data);
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
            raw_hid_receive_kb(data, length);
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(VIA_QMK_BACKLIGHT_ENABLE) && !defined(VIA_QMK_RGBLIGHT_ENABLE) && !defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
            // Return the unhandled state
 | 
			
		||||
            *command_id = id_unhandled;
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_lighting_get_value: {
 | 
			
		||||
#if defined(VIA_QMK_BACKLIGHT_ENABLE)
 | 
			
		||||
            via_qmk_backlight_get_value(command_data);
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(VIA_QMK_RGBLIGHT_ENABLE)
 | 
			
		||||
            via_qmk_rgblight_get_value(command_data);
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
            raw_hid_receive_kb(data, length);
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(VIA_QMK_BACKLIGHT_ENABLE) && !defined(VIA_QMK_RGBLIGHT_ENABLE) && !defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
            // Return the unhandled state
 | 
			
		||||
            *command_id = id_unhandled;
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_lighting_save: {
 | 
			
		||||
#if defined(VIA_QMK_BACKLIGHT_ENABLE)
 | 
			
		||||
            eeconfig_update_backlight_current();
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(VIA_QMK_RGBLIGHT_ENABLE)
 | 
			
		||||
            eeconfig_update_rgblight_current();
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
            raw_hid_receive_kb(data, length);
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(VIA_QMK_BACKLIGHT_ENABLE) && !defined(VIA_QMK_RGBLIGHT_ENABLE) && !defined(VIA_CUSTOM_LIGHTING_ENABLE)
 | 
			
		||||
            // Return the unhandled state
 | 
			
		||||
            *command_id = id_unhandled;
 | 
			
		||||
#endif
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_dynamic_keymap_macro_get_count: {
 | 
			
		||||
| 
						 | 
				
			
			@ -355,3 +425,109 @@ void raw_hid_receive(uint8_t *data, uint8_t length) {
 | 
			
		|||
    // (i.e. returning state to the host, or the unhandled state).
 | 
			
		||||
    raw_hid_send(data, length);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(VIA_QMK_BACKLIGHT_ENABLE)
 | 
			
		||||
 | 
			
		||||
#    if BACKLIGHT_LEVELS == 0
 | 
			
		||||
#        error BACKLIGHT_LEVELS == 0
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
void via_qmk_backlight_get_value(uint8_t *data) {
 | 
			
		||||
    uint8_t *value_id   = &(data[0]);
 | 
			
		||||
    uint8_t *value_data = &(data[1]);
 | 
			
		||||
    switch (*value_id) {
 | 
			
		||||
        case id_qmk_backlight_brightness: {
 | 
			
		||||
            // level / BACKLIGHT_LEVELS * 255
 | 
			
		||||
            value_data[0] = ((uint16_t)get_backlight_level()) * 255 / BACKLIGHT_LEVELS;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_backlight_effect: {
 | 
			
		||||
#    ifdef BACKLIGHT_BREATHING
 | 
			
		||||
            value_data[0] = is_backlight_breathing() ? 1 : 0;
 | 
			
		||||
#    else
 | 
			
		||||
            value_data[0] = 0;
 | 
			
		||||
#    endif
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void via_qmk_backlight_set_value(uint8_t *data) {
 | 
			
		||||
    uint8_t *value_id   = &(data[0]);
 | 
			
		||||
    uint8_t *value_data = &(data[1]);
 | 
			
		||||
    switch (*value_id) {
 | 
			
		||||
        case id_qmk_backlight_brightness: {
 | 
			
		||||
            // level / 255 * BACKLIGHT_LEVELS
 | 
			
		||||
            backlight_level_noeeprom(((uint16_t)value_data[0]) * BACKLIGHT_LEVELS / 255);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_backlight_effect: {
 | 
			
		||||
#    ifdef BACKLIGHT_BREATHING
 | 
			
		||||
            if (value_data[0] == 0) {
 | 
			
		||||
                backlight_disable_breathing();
 | 
			
		||||
            } else {
 | 
			
		||||
                backlight_enable_breathing();
 | 
			
		||||
            }
 | 
			
		||||
#    endif
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // #if defined(VIA_QMK_BACKLIGHT_ENABLE)
 | 
			
		||||
 | 
			
		||||
#if defined(VIA_QMK_RGBLIGHT_ENABLE)
 | 
			
		||||
 | 
			
		||||
void via_qmk_rgblight_get_value(uint8_t *data) {
 | 
			
		||||
    uint8_t *value_id   = &(data[0]);
 | 
			
		||||
    uint8_t *value_data = &(data[1]);
 | 
			
		||||
    switch (*value_id) {
 | 
			
		||||
        case id_qmk_rgblight_brightness: {
 | 
			
		||||
            value_data[0] = rgblight_get_val();
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_rgblight_effect: {
 | 
			
		||||
            value_data[0] = rgblight_get_mode();
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_rgblight_effect_speed: {
 | 
			
		||||
            value_data[0] = rgblight_get_speed();
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_rgblight_color: {
 | 
			
		||||
            value_data[0] = rgblight_get_hue();
 | 
			
		||||
            value_data[1] = rgblight_get_sat();
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void via_qmk_rgblight_set_value(uint8_t *data) {
 | 
			
		||||
    uint8_t *value_id   = &(data[0]);
 | 
			
		||||
    uint8_t *value_data = &(data[1]);
 | 
			
		||||
    switch (*value_id) {
 | 
			
		||||
        case id_qmk_rgblight_brightness: {
 | 
			
		||||
            rgblight_sethsv_noeeprom(rgblight_get_hue(), rgblight_get_sat(), value_data[0]);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_rgblight_effect: {
 | 
			
		||||
            rgblight_mode_noeeprom(value_data[0]);
 | 
			
		||||
            if (value_data[0] == 0) {
 | 
			
		||||
                rgblight_disable_noeeprom();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_enable_noeeprom();
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_rgblight_effect_speed: {
 | 
			
		||||
            rgblight_set_speed_noeeprom(value_data[0]);
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case id_qmk_rgblight_color: {
 | 
			
		||||
            rgblight_sethsv_noeeprom(value_data[0], value_data[1], rgblight_get_val());
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif  // #if defined(VIA_QMK_RGBLIGHT_ENABLE)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,29 +51,45 @@
 | 
			
		|||
#define VIA_PROTOCOL_VERSION 0x0009
 | 
			
		||||
 | 
			
		||||
enum via_command_id {
 | 
			
		||||
    id_get_protocol_version = 0x01,  // always 0x01
 | 
			
		||||
    id_get_keyboard_value,
 | 
			
		||||
    id_set_keyboard_value,
 | 
			
		||||
    id_dynamic_keymap_get_keycode,
 | 
			
		||||
    id_dynamic_keymap_set_keycode,
 | 
			
		||||
    id_dynamic_keymap_reset,
 | 
			
		||||
    id_backlight_config_set_value,
 | 
			
		||||
    id_backlight_config_get_value,
 | 
			
		||||
    id_backlight_config_save,
 | 
			
		||||
    id_eeprom_reset,
 | 
			
		||||
    id_bootloader_jump,
 | 
			
		||||
    id_dynamic_keymap_macro_get_count,
 | 
			
		||||
    id_dynamic_keymap_macro_get_buffer_size,
 | 
			
		||||
    id_dynamic_keymap_macro_get_buffer,
 | 
			
		||||
    id_dynamic_keymap_macro_set_buffer,
 | 
			
		||||
    id_dynamic_keymap_macro_reset,
 | 
			
		||||
    id_dynamic_keymap_get_layer_count,
 | 
			
		||||
    id_dynamic_keymap_get_buffer,
 | 
			
		||||
    id_dynamic_keymap_set_buffer,
 | 
			
		||||
    id_unhandled = 0xFF,
 | 
			
		||||
    id_get_protocol_version                 = 0x01,  // always 0x01
 | 
			
		||||
    id_get_keyboard_value                   = 0x02,
 | 
			
		||||
    id_set_keyboard_value                   = 0x03,
 | 
			
		||||
    id_dynamic_keymap_get_keycode           = 0x04,
 | 
			
		||||
    id_dynamic_keymap_set_keycode           = 0x05,
 | 
			
		||||
    id_dynamic_keymap_reset                 = 0x06,
 | 
			
		||||
    id_lighting_set_value                   = 0x07,
 | 
			
		||||
    id_lighting_get_value                   = 0x08,
 | 
			
		||||
    id_lighting_save                        = 0x09,
 | 
			
		||||
    id_eeprom_reset                         = 0x0A,
 | 
			
		||||
    id_bootloader_jump                      = 0x0B,
 | 
			
		||||
    id_dynamic_keymap_macro_get_count       = 0x0C,
 | 
			
		||||
    id_dynamic_keymap_macro_get_buffer_size = 0x0D,
 | 
			
		||||
    id_dynamic_keymap_macro_get_buffer      = 0x0E,
 | 
			
		||||
    id_dynamic_keymap_macro_set_buffer      = 0x0F,
 | 
			
		||||
    id_dynamic_keymap_macro_reset           = 0x10,
 | 
			
		||||
    id_dynamic_keymap_get_layer_count       = 0x11,
 | 
			
		||||
    id_dynamic_keymap_get_buffer            = 0x12,
 | 
			
		||||
    id_dynamic_keymap_set_buffer            = 0x13,
 | 
			
		||||
    id_unhandled                            = 0xFF,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum via_keyboard_value_id { id_uptime = 0x01, id_layout_options, id_switch_matrix_state };
 | 
			
		||||
enum via_keyboard_value_id {
 | 
			
		||||
    id_uptime              = 0x01,  //
 | 
			
		||||
    id_layout_options      = 0x02,
 | 
			
		||||
    id_switch_matrix_state = 0x03
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum via_lighting_value {
 | 
			
		||||
    // QMK BACKLIGHT
 | 
			
		||||
    id_qmk_backlight_brightness = 0x09,
 | 
			
		||||
    id_qmk_backlight_effect     = 0x0A,
 | 
			
		||||
 | 
			
		||||
    // QMK RGBLIGHT
 | 
			
		||||
    id_qmk_rgblight_brightness   = 0x80,
 | 
			
		||||
    id_qmk_rgblight_effect       = 0x81,
 | 
			
		||||
    id_qmk_rgblight_effect_speed = 0x82,
 | 
			
		||||
    id_qmk_rgblight_color        = 0x83,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Can't use SAFE_RANGE here, it might change if someone adds
 | 
			
		||||
// new values to enum quantum_keycodes.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue