]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Merge branch 'master' into to_push
authorZay950 <Zay950@users.noreply.github.com>
Wed, 29 Mar 2017 19:00:38 +0000 (12:00 -0700)
committerGitHub <noreply@github.com>
Wed, 29 Mar 2017 19:00:38 +0000 (12:00 -0700)
1  2 
quantum/audio/song_list.h
quantum/process_keycode/process_unicode.c

index 623f24f324d37fb0ea75c6e8e50853ba0e8a56e6,3bf20333dd331a1f1ed3492aad1ec79ddf605c0a..db2d1a94cd1c8d933a01d5b19701b342ace4a027
      E__NOTE(_E5),          \
      E__NOTE(_D5),
  
 +#define UNICODE_WINDOWS \
 +    E__NOTE(_B5),       \
 +    S__NOTE(_E6),
 +
 +#define UNICODE_LINUX \
 +    E__NOTE(_E6),     \
 +    S__NOTE(_B5),
 +
+ #define COIN_SOUND \
+     E__NOTE(_A5  ),      \
+     HD_NOTE(_E6  ),
+ #define ONE_UP_SOUND \
+     Q__NOTE(_E6  ),  \
+     Q__NOTE(_G6  ),  \
+     Q__NOTE(_E7  ),  \
+     Q__NOTE(_C7  ),  \
+     Q__NOTE(_D7  ),  \
+     Q__NOTE(_G7  ),
+ #define SONIC_RING \
+     E__NOTE(_E6),  \
+     E__NOTE(_G6),  \
+     HD_NOTE(_C7),
+ #define ZELDA_PUZZLE \
+     Q__NOTE(_G5),     \
+     Q__NOTE(_FS5),    \
+     Q__NOTE(_DS5),     \
+     Q__NOTE(_A4),    \
+     Q__NOTE(_GS4),     \
+     Q__NOTE(_E5),     \
+     Q__NOTE(_GS5),     \
+     HD_NOTE(_C6),
  #endif
index f42f255389bfb0b34006207b75aac671bbbc752a,26571ea0349f87552e5791fb9bc47069ba4ea3dc..cecfaeee9b10a61a162a5207decc9d9691d43e54
+ /* Copyright 2016 Jack Humbert
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation, either version 2 of the License, or
+  * (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  */
  #include "process_unicode.h"
+ #include "action_util.h"
  
 +static uint8_t input_mode;
 +static uint8_t first_flag = 0;
 +
 +__attribute__((weak))
 +uint16_t hex_to_keycode(uint8_t hex)
 +{
 +  if (hex == 0x0) {
 +    return KC_0;
 +  } else if (hex < 0xA) {
 +    return KC_1 + (hex - 0x1);
 +  } else {
 +    return KC_A + (hex - 0xA);
 +  }
 +}
 +
 +void set_unicode_input_mode(uint8_t os_target)
 +{
 +  input_mode = os_target;
 +  eeprom_update_byte(EECONFIG_UNICODEMODE, os_target);
 +}
 +
 +uint8_t get_unicode_input_mode(void) {
 +  return input_mode;
 +}
 +
 +__attribute__((weak))
 +void unicode_input_start (void) {
 +  switch(input_mode) {
 +  case UC_OSX:
 +    register_code(KC_LALT);
 +    break;
 +  case UC_LNX:
 +    register_code(KC_LCTL);
 +    register_code(KC_LSFT);
 +    register_code(KC_U);
 +    unregister_code(KC_U);
 +    unregister_code(KC_LSFT);
 +    unregister_code(KC_LCTL);
 +    break;
 +  case UC_WIN:
 +    register_code(KC_LALT);
 +    register_code(KC_PPLS);
 +    unregister_code(KC_PPLS);
 +    break;
 +  case UC_WINC:
 +    register_code(KC_RALT);
 +    unregister_code(KC_RALT);
 +    register_code(KC_U);
 +    unregister_code(KC_U);
 +  }
 +  wait_ms(UNICODE_TYPE_DELAY);
 +}
 +
 +__attribute__((weak))
 +void unicode_input_finish (void) {
 +  switch(input_mode) {
 +  case UC_OSX:
 +  case UC_WIN:
 +    unregister_code(KC_LALT);
 +    break;
 +  case UC_LNX:
 +    register_code(KC_SPC);
 +    unregister_code(KC_SPC);
 +    break;
 +  }
 +}
 +
 +void register_hex(uint16_t hex) {
 +  for(int i = 3; i >= 0; i--) {
 +    uint8_t digit = ((hex >> (i*4)) & 0xF);
 +    register_code(hex_to_keycode(digit));
 +    unregister_code(hex_to_keycode(digit));
 +  }
 +}
 +
++
  bool process_unicode(uint16_t keycode, keyrecord_t *record) {
    if (keycode > QK_UNICODE && record->event.pressed) {
 +    if (first_flag == 0) {
 +      set_unicode_input_mode(eeprom_read_byte(EECONFIG_UNICODEMODE));
 +      first_flag = 1;
 +    }
      uint16_t unicode = keycode & 0x7FFF;
      unicode_input_start();
      register_hex(unicode);