55 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
// Copyright 2023 Colin Kinloch (@ColinKinloch)
 | 
						|
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
						|
 | 
						|
#include "quantum.h"
 | 
						|
 | 
						|
static uint8_t anim = 0;
 | 
						|
 | 
						|
#ifdef ENCODER_ENABLE
 | 
						|
bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
						|
    if (!encoder_update_user(index, clockwise)) {
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
    switch (index) {
 | 
						|
      case 0: {
 | 
						|
        if (clockwise) {
 | 
						|
            tap_code_delay(KC_VOLU, 10);
 | 
						|
        } else {
 | 
						|
            tap_code_delay(KC_VOLD, 10);
 | 
						|
        }
 | 
						|
      }
 | 
						|
      break;
 | 
						|
      case 1: {
 | 
						|
        if (clockwise) {
 | 
						|
            rgblight_increase_hue();
 | 
						|
        } else {
 | 
						|
            rgblight_decrease_hue();
 | 
						|
        }
 | 
						|
      }
 | 
						|
      break;
 | 
						|
      case 2: {
 | 
						|
        if (clockwise) {
 | 
						|
            rgblight_increase_val();
 | 
						|
        } else {
 | 
						|
            rgblight_decrease_val();
 | 
						|
        }
 | 
						|
      }
 | 
						|
      break;
 | 
						|
      case 3: {
 | 
						|
        if (clockwise) {
 | 
						|
            anim++;
 | 
						|
        } else {
 | 
						|
            anim--;
 | 
						|
        }
 | 
						|
	if (anim >= RGB_MATRIX_EFFECT_MAX) {
 | 
						|
		anim = 0;
 | 
						|
	} else if (anim < 0) {
 | 
						|
		anim = RGB_MATRIX_EFFECT_MAX - 1;
 | 
						|
	}
 | 
						|
	rgblight_mode(anim);
 | 
						|
      }
 | 
						|
      break;
 | 
						|
    }
 | 
						|
    return true;
 | 
						|
}
 | 
						|
#endif
 |