aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2017-07-09 17:50:01 +0300
committerJack Humbert <jack.humb@gmail.com>2017-07-10 09:01:59 -0400
commit4da3b19603255115f71812964383ee7b518637be (patch)
treeede4b62835bd2119880b9739b3e6b3d52915fbd4
parent2251560256ff1a139178dc80b18dd8ef1d8e83d6 (diff)
downloadqmk_firmware-4da3b19603255115f71812964383ee7b518637be.tar.gz
qmk_firmware-4da3b19603255115f71812964383ee7b518637be.zip
Shared default animations
-rw-r--r--keyboards/ergodox/infinity/rules.mk3
-rw-r--r--keyboards/ergodox/infinity/simple_visualizer.h2
-rw-r--r--keyboards/ergodox/infinity/visualizer.c2
-rw-r--r--keyboards/whitefox/animations.c128
-rw-r--r--keyboards/whitefox/animations.h30
-rw-r--r--keyboards/whitefox/rules.mk3
-rw-r--r--keyboards/whitefox/visualizer.c2
-rw-r--r--quantum/visualizer/default_animations.c (renamed from keyboards/ergodox/infinity/animations.c)28
-rw-r--r--quantum/visualizer/default_animations.h (renamed from keyboards/ergodox/infinity/animations.h)6
-rw-r--r--quantum/visualizer/visualizer.mk2
10 files changed, 35 insertions, 171 deletions
diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk
index 18171560d..2ccf98b8c 100644
--- a/keyboards/ergodox/infinity/rules.mk
+++ b/keyboards/ergodox/infinity/rules.mk
@@ -1,7 +1,6 @@
1# project specific files 1# project specific files
2SRC = matrix.c \ 2SRC = matrix.c \
3 led.c \ 3 led.c
4 animations.c
5 4
6## chip/board settings 5## chip/board settings
7# - the next two should match the directories in 6# - the next two should match the directories in
diff --git a/keyboards/ergodox/infinity/simple_visualizer.h b/keyboards/ergodox/infinity/simple_visualizer.h
index 88e96f2af..73d0e0887 100644
--- a/keyboards/ergodox/infinity/simple_visualizer.h
+++ b/keyboards/ergodox/infinity/simple_visualizer.h
@@ -34,7 +34,7 @@
34#include "lcd_backlight_keyframes.h" 34#include "lcd_backlight_keyframes.h"
35#include "system/serial_link.h" 35#include "system/serial_link.h"
36#include "led.h" 36#include "led.h"
37#include "animations.h" 37#include "default_animations.h"
38 38
39static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); 39static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF);
40static const uint32_t initial_color = LCD_COLOR(0, 0, 0); 40static const uint32_t initial_color = LCD_COLOR(0, 0, 0);
diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c
index 047a1119c..4b16021ab 100644
--- a/keyboards/ergodox/infinity/visualizer.c
+++ b/keyboards/ergodox/infinity/visualizer.c
@@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31#include "lcd_keyframes.h" 31#include "lcd_keyframes.h"
32#include "lcd_backlight_keyframes.h" 32#include "lcd_backlight_keyframes.h"
33#include "system/serial_link.h" 33#include "system/serial_link.h"
34#include "animations.h" 34#include "default_animations.h"
35 35
36static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); 36static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF);
37static const uint32_t initial_color = LCD_COLOR(0, 0, 0); 37static const uint32_t initial_color = LCD_COLOR(0, 0, 0);
diff --git a/keyboards/whitefox/animations.c b/keyboards/whitefox/animations.c
deleted file mode 100644
index a15d46ccd..000000000
--- a/keyboards/whitefox/animations.c
+++ /dev/null
@@ -1,128 +0,0 @@
1/* Copyright 2017 Fred Sundvik
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#if defined(VISUALIZER_ENABLE)
18
19#include "animations.h"
20#include "visualizer.h"
21
22#ifdef BACKLIGHT_ENABLE
23#include "led_backlight_keyframes.h"
24#endif
25
26#include "visualizer_keyframes.h"
27
28
29#if defined(LCD_ENABLE) || defined(LCD_BACKLIGHT_ENABLE) || defined(BACKLIGHT_ENABLE)
30
31static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) {
32#ifdef BACKLIGHT_ENABLE
33 led_backlight_keyframe_enable(animation, state);
34#endif
35 return false;
36}
37
38static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) {
39#ifdef BACKLIGHT_ENABLE
40 led_backlight_keyframe_disable(animation, state);
41#endif
42 return false;
43}
44
45static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) {
46 bool ret = false;
47#ifdef BACKLIGHT_ENABLE
48 ret |= led_backlight_keyframe_fade_in_all(animation, state);
49#endif
50 return ret;
51}
52
53static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) {
54 bool ret = false;
55#ifdef BACKLIGHT_ENABLE
56 ret |= led_backlight_keyframe_fade_out_all(animation, state);
57#endif
58 return ret;
59}
60
61
62// Don't worry, if the startup animation is long, you can use the keyboard like normal
63// during that time
64keyframe_animation_t default_startup_animation = {
65 .num_frames = 2,
66 .loop = false,
67 .frame_lengths = {0, gfxMillisecondsToTicks(5000)},
68 .frame_functions = {
69 keyframe_enable,
70 keyframe_fade_in,
71 },
72};
73
74keyframe_animation_t default_suspend_animation = {
75 .num_frames = 2,
76 .loop = false,
77 .frame_lengths = {gfxMillisecondsToTicks(1000), 0},
78 .frame_functions = {
79 keyframe_fade_out,
80 keyframe_disable,
81 },
82};
83#endif
84
85#if defined(BACKLIGHT_ENABLE)
86#define CROSSFADE_TIME 1000
87#define GRADIENT_TIME 3000
88
89keyframe_animation_t led_test_animation = {
90 .num_frames = 14,
91 .loop = true,
92 .frame_lengths = {
93 gfxMillisecondsToTicks(1000), // fade in
94 gfxMillisecondsToTicks(1000), // no op (leds on)
95 gfxMillisecondsToTicks(1000), // fade out
96 gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
97 gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in)
98 gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
99 gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom
100 0, // mirror leds
101 gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
102 gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out)
103 gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
104 gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom
105 0, // normal leds
106 gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
107
108 },
109 .frame_functions = {
110 led_backlight_keyframe_fade_in_all,
111 keyframe_no_operation,
112 led_backlight_keyframe_fade_out_all,
113 led_backlight_keyframe_crossfade,
114 led_backlight_keyframe_left_to_right_gradient,
115 led_backlight_keyframe_crossfade,
116 led_backlight_keyframe_top_to_bottom_gradient,
117 led_backlight_keyframe_mirror_orientation,
118 led_backlight_keyframe_crossfade,
119 led_backlight_keyframe_left_to_right_gradient,
120 led_backlight_keyframe_crossfade,
121 led_backlight_keyframe_top_to_bottom_gradient,
122 led_backlight_keyframe_normal_orientation,
123 led_backlight_keyframe_crossfade,
124 },
125};
126#endif
127
128#endif
diff --git a/keyboards/whitefox/animations.h b/keyboards/whitefox/animations.h
deleted file mode 100644
index 6d8b9830d..000000000
--- a/keyboards/whitefox/animations.h
+++ /dev/null
@@ -1,30 +0,0 @@
1/* Copyright 2017 Fred Sundvik
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#ifndef KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_
18#define KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_
19
20#include "visualizer.h"
21
22// You can use these default animations, but of course you can also write your own custom ones instead
23extern keyframe_animation_t default_startup_animation;
24extern keyframe_animation_t default_suspend_animation;
25
26// An animation for testing and demonstrating the led support, should probably not be used for real world
27// cases
28extern keyframe_animation_t led_test_animation;
29
30#endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */
diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk
index c0effcb7b..391148071 100644
--- a/keyboards/whitefox/rules.mk
+++ b/keyboards/whitefox/rules.mk
@@ -1,7 +1,6 @@
1# project specific files 1# project specific files
2SRC = matrix.c \ 2SRC = matrix.c \
3 led.c \ 3 led.c
4 animations.c
5 4
6## chip/board settings 5## chip/board settings
7# - the next two should match the directories in 6# - the next two should match the directories in
diff --git a/keyboards/whitefox/visualizer.c b/keyboards/whitefox/visualizer.c
index 167e0ec4d..e5bafcbe9 100644
--- a/keyboards/whitefox/visualizer.c
+++ b/keyboards/whitefox/visualizer.c
@@ -20,7 +20,7 @@
20#include "visualizer.h" 20#include "visualizer.h"
21#include "visualizer_keyframes.h" 21#include "visualizer_keyframes.h"
22#include "led.h" 22#include "led.h"
23#include "animations.h" 23#include "default_animations.h"
24 24
25 25
26static bool initial_update = true; 26static bool initial_update = true;
diff --git a/keyboards/ergodox/infinity/animations.c b/quantum/visualizer/default_animations.c
index faac96215..2d0327372 100644
--- a/keyboards/ergodox/infinity/animations.c
+++ b/quantum/visualizer/default_animations.c
@@ -16,7 +16,7 @@
16 16
17#if defined(VISUALIZER_ENABLE) 17#if defined(VISUALIZER_ENABLE)
18 18
19#include "animations.h" 19#include "default_animations.h"
20#include "visualizer.h" 20#include "visualizer.h"
21#ifdef LCD_ENABLE 21#ifdef LCD_ENABLE
22#include "lcd_keyframes.h" 22#include "lcd_keyframes.h"
@@ -86,22 +86,44 @@ static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_
86// Don't worry, if the startup animation is long, you can use the keyboard like normal 86// Don't worry, if the startup animation is long, you can use the keyboard like normal
87// during that time 87// during that time
88keyframe_animation_t default_startup_animation = { 88keyframe_animation_t default_startup_animation = {
89#if LCD_ENABLE
89 .num_frames = 3, 90 .num_frames = 3,
91#else
92 .num_frames = 2,
93#endif
90 .loop = false, 94 .loop = false,
91 .frame_lengths = {0, 0, gfxMillisecondsToTicks(5000)}, 95 .frame_lengths = {
96 0,
97#if LCD_ENABLE
98 0,
99#endif
100 gfxMillisecondsToTicks(5000)},
92 .frame_functions = { 101 .frame_functions = {
93 keyframe_enable, 102 keyframe_enable,
103#if LCD_ENABLE
94 lcd_keyframe_draw_logo, 104 lcd_keyframe_draw_logo,
105#endif
95 keyframe_fade_in, 106 keyframe_fade_in,
96 }, 107 },
97}; 108};
98 109
99keyframe_animation_t default_suspend_animation = { 110keyframe_animation_t default_suspend_animation = {
111#if LCD_ENABLE
100 .num_frames = 3, 112 .num_frames = 3,
113#else
114 .num_frames = 2,
115#endif
101 .loop = false, 116 .loop = false,
102 .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, 117 .frame_lengths = {
118#if LCD_ENABLE
119 0,
120#endif
121 gfxMillisecondsToTicks(1000),
122 0},
103 .frame_functions = { 123 .frame_functions = {
124#if LCD_ENABLE
104 lcd_keyframe_display_layer_text, 125 lcd_keyframe_display_layer_text,
126#endif
105 keyframe_fade_out, 127 keyframe_fade_out,
106 keyframe_disable, 128 keyframe_disable,
107 }, 129 },
diff --git a/keyboards/ergodox/infinity/animations.h b/quantum/visualizer/default_animations.h
index 6d8b9830d..51320b8b8 100644
--- a/keyboards/ergodox/infinity/animations.h
+++ b/quantum/visualizer/default_animations.h
@@ -14,8 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#ifndef KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ 17#ifndef DEFAULT_ANIMATIONS_H_
18#define KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ 18#define DEFAULT_ANIMATIONS_H_
19 19
20#include "visualizer.h" 20#include "visualizer.h"
21 21
@@ -27,4 +27,4 @@ extern keyframe_animation_t default_suspend_animation;
27// cases 27// cases
28extern keyframe_animation_t led_test_animation; 28extern keyframe_animation_t led_test_animation;
29 29
30#endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */ 30#endif /* DEFAULT_ANIMATIONS_H_ */
diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk
index a04c9775f..3a0f771bc 100644
--- a/quantum/visualizer/visualizer.mk
+++ b/quantum/visualizer/visualizer.mk
@@ -46,6 +46,8 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
46SRC += $(VISUALIZER_DIR)/led_backlight_keyframes.c 46SRC += $(VISUALIZER_DIR)/led_backlight_keyframes.c
47endif 47endif
48 48
49SRC += $(VISUALIZER_DIR)/default_animations.c
50
49include $(GFXLIB)/gfx.mk 51include $(GFXLIB)/gfx.mk
50# For the common_gfxconf.h 52# For the common_gfxconf.h
51GFXINC += quantum/visualizer 53GFXINC += quantum/visualizer