Compare commits

...

14 Commits
0.5.0 ... 0.5.4

Author SHA1 Message Date
449ab9109a Merge branch 'master' of github.com:jackhumbert/qmk_firmware 2017-02-06 18:28:50 -05:00
35edb382ee [skip build] testing travis script 2017-02-06 18:28:37 -05:00
0a3c5c06fe Merge pull request #981 from jonasoberschweiber/osx-surrogate-pairs
Add support for Unicode supplementary planes on OS X
2017-02-06 18:00:47 -05:00
5c8cdfd2b5 [skip build] testing travis script 2017-02-06 17:51:20 -05:00
246d2583ff Merge pull request #1030 from SjB/refactor_register_code16
speeding up (un)register_code16
2017-02-06 17:06:53 -05:00
ee386a29d1 [skip build] testing travis script 2017-02-06 17:00:30 -05:00
cf8dac3538 [skip build] testing travis script 2017-02-06 16:56:39 -05:00
98adda34c9 [skip build] testing travis script 2017-02-06 16:54:54 -05:00
470c8436c2 [skip build] testing travis script 2017-02-06 16:46:44 -05:00
3a76f24cbd [skip build] testing travis script 2017-02-06 16:42:18 -05:00
835cacb031 fixes qmk.fm linking, tests out auto version incrementing 2017-02-06 16:04:28 -05:00
SjB
f644b9a07a registering a weak_mods when using register_code16
Scenario:
Locking the KC_LSHIFT, and then using a tap dance key that registers a
S(KC_9) will unregister the KC_LSHIFT.

The tap dance or any keycode that is registered should not have the
side effect of cancelling a locked moditifier. We should be using a
similar logic as the TMK codes in tmk_core/comman/action.c:158.
2017-01-29 12:29:43 -05:00
SjB
2b3859937b speeding up (un)register_code16
In register_code16 and unregister_code16 we call register_code and
unregister_code twice, once for the mods and once for the keycode.
The (un)register_code have many check to see that keycode we have sent
however because we know that we are sending it a mods key, why not
just skip all of it and call (un)register_mods instead. This will skip
alot of checks and should speedup the loop a little.
2017-01-23 23:16:57 -05:00
0aa413af44 Add support for supplementary planes for OS X 2016-12-31 19:37:56 +01:00
4 changed files with 86 additions and 20 deletions

View File

@ -5,6 +5,7 @@ language: c
branches:
except:
- /^.*-automated-build$/
- /^[0-9]+\.[0-9]+\.[0-9]+/
env:
global:
- secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM=
@ -19,7 +20,7 @@ install:
before_script:
- avr-gcc --version
script:
- make $TARGET AUTOGEN=$AUTOGEN
- 'if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then make $TARGET AUTOGEN=$AUTOGEN; fi'
addons:
apt:
packages:

View File

@ -141,7 +141,16 @@ bool process_unicode_map(uint16_t keycode, keyrecord_t *record) {
const uint32_t* map = unicode_map;
uint16_t index = keycode & 0x7FF;
uint32_t code = pgm_read_dword_far(&map[index]);
if ((code > 0xFFFF && input_mode == UC_OSX) || (code > 0xFFFFF && input_mode == UC_LNX)) {
if (code > 0xFFFF && code <= 0x10ffff && input_mode == UC_OSX) {
// Convert to UTF-16 surrogate pair
code -= 0x10000;
uint32_t lo = code & 0x3ff;
uint32_t hi = (code & 0xffc00) >> 10;
unicode_input_start();
register_hex32(hi + 0xd800);
register_hex32(lo + 0xdc00);
unicode_input_finish();
} else if ((code > 0x10ffff && input_mode == UC_OSX) || (code > 0xFFFFF && input_mode == UC_LNX)) {
// when character is out of range supported by the OS
unicode_map_input_error();
} else {

View File

@ -33,14 +33,42 @@ static void do_code16 (uint16_t code, void (*f) (uint8_t)) {
f(KC_RGUI);
}
static inline void qk_register_weak_mods(uint8_t kc) {
add_weak_mods(MOD_BIT(kc));
send_keyboard_report();
}
static inline void qk_unregister_weak_mods(uint8_t kc) {
del_weak_mods(MOD_BIT(kc));
send_keyboard_report();
}
static inline void qk_register_mods(uint8_t kc) {
add_weak_mods(MOD_BIT(kc));
send_keyboard_report();
}
static inline void qk_unregister_mods(uint8_t kc) {
del_weak_mods(MOD_BIT(kc));
send_keyboard_report();
}
void register_code16 (uint16_t code) {
do_code16 (code, register_code);
if (IS_MOD(code) || code == KC_NO) {
do_code16 (code, qk_register_mods);
} else {
do_code16 (code, qk_register_weak_mods);
}
register_code (code);
}
void unregister_code16 (uint16_t code) {
unregister_code (code);
do_code16 (code, unregister_code);
if (IS_MOD(code) || code == KC_NO) {
do_code16 (code, qk_unregister_mods);
} else {
do_code16 (code, qk_unregister_weak_mods);
}
}
__attribute__ ((weak))

View File

@ -7,21 +7,49 @@ rev=$(git rev-parse --short HEAD)
git config --global user.name "Travis CI"
git config --global user.email "jack.humb+travis.ci@gmail.com"
make ergodox-ez AUTOGEN=true
if [[ "$TRAVIS_BRANCH" == "master" ]] ; then
find . -name ".build" | xargs rm -rf
cd ..
git clone https://$GH_TOKEN@github.com/jackhumbert/qmk.fm.git
cd qmk.fm
git submodule update --init --recursive
rm -rf keyboard
rm -rf keyboards
cp -r ../qmk_firmware/keyboards .
mkdir keyboards/ergodox_ez/
cp ../qmk_firmware/util/ergodox_ez.html keyboards/ergodox_ez/index.html
cp ../qmk_firmware/readme.md qmk_readme.md
./generate.sh
increment_version ()
{
declare -a part=( ${1//\./ } )
part[2]=$((part[2] + 1))
new="${part[*]}"
echo -e "${new// /.}"
}
git add -A
git commit -m "generated from qmk_firmware/$TRAVIS_BRANCH@${rev}"
git push
NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | wc -l)
if [[ $NEFM -gt 0 ]] ; then
echo "Essential files modified."
git fetch --tags
lasttag=$(git tag | grep -Ev '\-' | xargs -I@ git log --format=format:"%ai @%n" -1 @ | sort -V | awk '{print $4}' | tail -1)
newtag=$(increment_version $lasttag)
git tag $newtag
git push --tags -q https://$GH_TOKEN@github.com/qmk/qmk_firmware
else
echo "No essential files modified."
fi
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
make ergodox-ez AUTOGEN=true
find . -name ".build" | xargs rm -rf
cd ..
git clone https://$GH_TOKEN@github.com/jackhumbert/qmk.fm.git
cd qmk.fm
git submodule update --init --recursive
rm -rf keyboard
rm -rf keyboards
cp -r ../qmk_firmware/keyboards .
mkdir keyboards/ergodox_ez/
cp ../qmk_firmware/util/ergodox_ez.html keyboards/ergodox_ez/index.html
cp ../qmk_firmware/readme.md qmk_readme.md
./generate.sh
git add -A
git commit -m "generated from qmk/qmk_firmware@${rev}"
git push
fi
fi