separated all my changes into separate files, working on generalizing my relativity macros. (#4368)
* Updating to my local changes. * Added auto-complete for joins. * Added lights to imply current state better
This commit is contained in:
		
							parent
							
								
									f8d8005835
								
							
						
					
					
						commit
						8f5ac39fb9
					
				
					 8 changed files with 839 additions and 614 deletions
				
			
		
							
								
								
									
										138
									
								
								keyboards/dz60/keymaps/marianas/customLogic.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								keyboards/dz60/keymaps/marianas/customLogic.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,138 @@
 | 
			
		|||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include "customLogic.h"
 | 
			
		||||
#include "keymap.h"
 | 
			
		||||
#include "keyDefinitions.h"
 | 
			
		||||
#include "relativity.h"
 | 
			
		||||
#include "timer.h"
 | 
			
		||||
 | 
			
		||||
static int16_t fnTimer = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
uint32_t layer_state_set_user(uint32_t state)
 | 
			
		||||
{
 | 
			
		||||
  switch (biton32(state))
 | 
			
		||||
  {
 | 
			
		||||
    case QWERTY:
 | 
			
		||||
      rgblight_mode(9);
 | 
			
		||||
      break;
 | 
			
		||||
    case NAV_CLUSTER:
 | 
			
		||||
      rgblight_mode(29);
 | 
			
		||||
      break;
 | 
			
		||||
    case GAMING:
 | 
			
		||||
      rgblight_mode(26);
 | 
			
		||||
      break;
 | 
			
		||||
    case SQLMACROS:
 | 
			
		||||
      rgblight_mode(1);
 | 
			
		||||
      break;
 | 
			
		||||
    case FN_LAYER:
 | 
			
		||||
      rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL+5);
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  return state;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool printSqlVerbs(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
  if (record->event.pressed)
 | 
			
		||||
  {
 | 
			
		||||
    switch (keycode)
 | 
			
		||||
    {
 | 
			
		||||
      case S_LFTJN: 
 | 
			
		||||
        SEND_STRING("LEFT JOIN"); 
 | 
			
		||||
        activateRelativity();
 | 
			
		||||
        return false;
 | 
			
		||||
      case S_INRJN: 
 | 
			
		||||
        SEND_STRING("INNER JOIN "); 
 | 
			
		||||
        activateRelativity();
 | 
			
		||||
        return false;
 | 
			
		||||
      case S_SLCT:  
 | 
			
		||||
        SEND_STRING("SELECT "); return 
 | 
			
		||||
        false;
 | 
			
		||||
      case S_FROM:  
 | 
			
		||||
        SEND_STRING("FROM "); return 
 | 
			
		||||
        false;
 | 
			
		||||
      case S_DSNCT: 
 | 
			
		||||
        SEND_STRING("DISTINCT "); return 
 | 
			
		||||
        false;
 | 
			
		||||
      case S_ORDER: 
 | 
			
		||||
        SEND_STRING("ORDER BY "); return 
 | 
			
		||||
        false;
 | 
			
		||||
      case S_WHERE: 
 | 
			
		||||
        SEND_STRING("WHERE "); return 
 | 
			
		||||
        false;
 | 
			
		||||
      case S_ALTER: 
 | 
			
		||||
        SEND_STRING("ALTER SESSION SET CURRENT_SCHEMA = SUPPLY;"); return false;
 | 
			
		||||
      case S_ASTRK: 
 | 
			
		||||
        SEND_STRING("* "); return false;
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool isFn = false;
 | 
			
		||||
bool didFn = false;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool updateLayerState(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  if (record->event.pressed)
 | 
			
		||||
  {
 | 
			
		||||
    switch (keycode)
 | 
			
		||||
    {
 | 
			
		||||
      case FN_QT:
 | 
			
		||||
        fnTimer = timer_read();
 | 
			
		||||
        layer_on(FN_LAYER);
 | 
			
		||||
        isFn = true;
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    if (isFn)
 | 
			
		||||
    {
 | 
			
		||||
      didFn = true;
 | 
			
		||||
      return true;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    switch(keycode)
 | 
			
		||||
    {
 | 
			
		||||
      case FN_QT:
 | 
			
		||||
        layer_off(FN_LAYER);
 | 
			
		||||
        if (!didFn)
 | 
			
		||||
        {
 | 
			
		||||
          #if fnTimeout
 | 
			
		||||
          if (TIMER_DIFF_16(timer_read(), fnTimer) <= fnTimeout)
 | 
			
		||||
          {
 | 
			
		||||
            activateRelativity();
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
          {
 | 
			
		||||
            deactivateRelativity();
 | 
			
		||||
          }
 | 
			
		||||
          #else
 | 
			
		||||
          activateRelativity();
 | 
			
		||||
          #endif
 | 
			
		||||
        }
 | 
			
		||||
        didFn = false;
 | 
			
		||||
        isFn = false;
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
 | 
			
		||||
{
 | 
			
		||||
  return
 | 
			
		||||
    storeShiftState(keycode, record) &&
 | 
			
		||||
    printSqlVerbs(keycode, record) &&
 | 
			
		||||
    updateLayerState(keycode, record) &&
 | 
			
		||||
    handleSmartMacros(keycode, record);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue