├── LICENSE
├── README.md
├── assets
├── Sprite.gif
├── corroniceview.gif
├── example
│ ├── animated
│ │ ├── art.c
│ │ └── peripheral_status.c
│ └── static
│ │ ├── art.c
│ │ └── peripheral_status.c
├── lvgl.png
├── urchincart
│ ├── corro01.c
│ ├── corro02.c
│ ├── corro03.c
│ ├── corro04.c
│ ├── corro05.c
│ ├── corro06.c
│ ├── corro07.c
│ ├── corro08.c
│ ├── corro09.c
│ ├── corro10.c
│ ├── corro11.c
│ └── corro12.c
└── urchinpngart
│ ├── corro01.png
│ ├── corro02.png
│ ├── corro03.png
│ ├── corro04.png
│ ├── corro05.png
│ ├── corro06.png
│ ├── corro07.png
│ ├── corro08.png
│ ├── corro09.png
│ ├── corro10.png
│ ├── corro11.png
│ └── corro12.png
├── boards
└── shields
│ └── nice_view_custom
│ ├── CMakeLists.txt
│ ├── Kconfig.defconfig
│ ├── Kconfig.shield
│ ├── README.md
│ ├── custom_status_screen.c
│ ├── nice_view_custom.conf
│ ├── nice_view_custom.overlay
│ ├── nice_view_custom.zmk.yml
│ └── widgets
│ ├── art.c
│ ├── bolt.c
│ ├── peripheral_status.c
│ ├── peripheral_status.h
│ ├── status.c
│ ├── status.h
│ ├── util.c
│ └── util.h
└── zephyr
└── module.yaml
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 GPeye
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Urchin Peripheral Animation
2 |
3 | This repo will attempt to serve as both an example and a tutorial on adding custom art and animations to your zmk firmware nice!view equipped keyboard.
4 |
5 | For the purposes of this tutorial I will assume you have a split keyboard with two nice!views, and like me, you've slowly tired of the balloon/mountain artwork (though beautiful) that statically displays on your right keeb and you want to spice things up a little.
6 |
7 | The right side of your split keyboard is called the peripheral side. For the time being, (PR's in the works?) it's pretty dumb and doesn't have access to as much data as the left side does which is why the right side only has a battery indicator, connectivity indicator and some art. This is also why the battery lasts much longer, it's simply doing much less. So without access to much data, displaying art / animations is kinda the best we can do with the peripheral side. I say this to hamper any "can I put a bongo cat on the right side that reacts to wpm?" like questions which were my first questions too. Unfortunately no, that's left hand business. The peripheral isn't going to react to inputs because it simply can't.
8 |
9 | If you just want to use my custom urchin animation and don't care how to make your own, you can jump straight down to [Usage](#usage)
10 |
11 | ---
12 |
13 | #### Table of Contents
14 | 1. [What are we making](#what-are-we-making)
15 | 2. [Getting Started](#getting-started)
16 | 3. [Making the Art](#making-the-art)
17 | 4. [Converting Your Art](#converting-your-art)
18 | 5. [Brief Explanation of the Module](#brief-explanation-of-the-module)
19 | 6. [Adding a Static Image](#adding-a-static-image)
20 | 7. [Adding an Animation](#adding-an-animation)
21 | 8. [Using the Module](#usage)
22 | 9. [References](#references)
23 |
24 | ---
25 |
26 |
27 | ## What are we making?
28 |
29 | Ultimately we are going to implement a 12 frame animation of the unofficial Rust-lang unsafe code mascot, Corro the sea urchin.
30 |
31 | Why? Because my main keyboard right now is [duckyb's variant of the ferris sweep that uses the nice!view displays, called the urchin](https://github.com/duckyb/urchin). It's emblazoned with a cute little corro graphic on the pcb.
32 |
33 |
34 | 
35 |
36 | ---
37 |
38 | *Sidenote: I bought mine from [beekeeb](https://shop.beekeeb.com/product/soldered-urchin-wireless-split-keyboard/) and I would recommend them for your nice!view equipped keyboard needs. I'm in no way affiliated with them, just a happy customer.*
39 |
40 | ---
41 |
42 | So, I took this little dude and made a little 1bit animation that looks like this:
43 |
44 | 
45 |
46 | and then I put it on the urchin board like this:
47 |
48 | 
49 |
50 | If that seems like something you'd like to do, keep reading...
51 |
52 |
53 | ## Getting Started
54 |
55 | Step one is to Fork or Clone this nice!view module repo: [https://github.com/GPeye/nice-view-mod](https://github.com/GPeye/nice-view-mod)
56 |
57 | That repo is an exact copy of the same nice!view shield found in the official ZMK firmware repo, just wrapped up in a module.
58 |
59 | **What's a module?** In a nutshell, it's a way of extending the ZMK firmware, allowing you to inject during build, new shields, boards, behaviors, features, drivers and more.
60 |
61 | **But the nice!view shield is already in the firmware, why make it a module?** This way we can edit our forked/cloned module and just swap out the real nice!view shield for our custom one and we don't have to edit the official firmware.
62 |
63 | Once you have your fork/clone, we'll need some art...
64 |
65 |
66 | ## Making the Art
67 |
68 | *For just learning the code part of this, feel free to use the assets under the assets folder in this repo and skip this step*
69 |
70 | The current nice!view peripheral mountain and balloon images are **68px wide by 140px tall** (sort've*) so, to easily swap out for some other art, any image we want to make or use should also be that size. I use aseprite which is a paid software, but pixel art at this size can easily be made in gimp or ms paint for free, or even using in browser tools like [piskel](https://www.piskelapp.com/p/create/sprite) or [pixilart](https://www.pixilart.com/draw) which even have helpers for creating animation.
71 |
72 | Use **only** black and white to create your art as the nice!view does not support grayscale or any colors. You may want to get familiar with dithering. Here are a couple good resources: [what is it](https://pixelparmesan.com/dithering-for-pixel-artists/) and [a massive library of 1bit patterns](https://dev.crankit.app/tools/gfxp/)
73 |
74 | ⚠️ *forewarning, converting your art to the necessary C arrays is somewhat tedious so, maybe don't make a lot of animation frames. My urchin is 12 frames and it's was bordering on annoying to do* 😅
75 |
76 | Regardless of the tool you are using, you will want to export your art to a png format. If you created an animation you will want to export each frame as an individual png rather than as a spritesheet.
77 |
78 | Check out the `/assets/urchinpngart` folder for my example urchin 68x140 1-bit pixel art.
79 |
80 | ## Converting Your Art
81 |
82 | **The first step is** to take your 68x140 art and make it 140x68 by **rotating it 90 degrees clockwise**.
83 |
84 | **Why?** the nice!view is not a vertical display, it's actually a horizontal display that's usually in a vertical orientation because it fits better on a keyboard that way. If you've ever built your firmware with the default ZMK display status screen you may have noticed this as the battery and connection widget will be sideways.
85 |
86 | Once you have rotated all your art, we need to convert it to a lvgl C array by heading to https://lvgl.io/tools/imageconverter and selecting your images, one at a time, and converting them by selecting LVGL v8, Color Format: `CF_ALPHA_1_BIT` and output format as `C array`
87 |
88 | 
89 |
90 | In the end you should end up with a bunch of C files, one for each image or frame of animation you have.
91 |
92 | Check out the `/assets/urchincart` folder for my example c array files for the urchin pixel art.
93 |
94 | ## Brief Explanation of the Module
95 |
96 | Feel free to skip this if you don't care but I thought it might be helpful to some to understand the files in this shield module and what they do.
97 |
98 |
99 | Expand to see explanation
100 |
101 | ### nice_view_custom.zmk.yml
102 | This file is the module manifest and lets the build know where to look for relevant files. In our case it just points to the boards directory where our shield is
103 |
104 | ### Kconfig.shield & Kconfig.defconfig
105 | These files define and use the config flage used by this shield in order to determine if it applies the defined widgets. Line 5 of Kconfig.shield is where we check for the shield build flag "nice_view_custom" in order to set the config flag "SHIELD_NICE_VIEW_CUSTOM" which is then used in Kconfig.defconfig to toggle on additional configs like "NICE_VIEW_WIDGET_STATUS" which is then used in the CMakeLists.txt and custom_status_screen.c that either uses the nice!view status widgets or defaults to the built in ZMK ones.
106 |
107 | ### custom_status_screen.c
108 | This is the entrypoint to our custom shield and if it's running the primary right hand build it runs the status.c and if it's running the peripheral right hand build it runs peripheral_status.c
109 |
110 | ### peripheral_status.c
111 | This is the main file we are interested in. This defines the widgets and art that are used on the right hand peripheral nice!view screen
112 |
113 | ### art.c
114 | This file exists just to hold the c array data that makes up our art for reference by the perepheral_status.c file. By default, it has the balloon and mountain image data.
115 |
116 |
117 |
118 | ## Adding a Static Image
119 |
120 | *Even if you just want to add an animation, it's good to cover how to swap out a static image first and build off that knowledge when implementing an animation*
121 |
122 | Open the converted C file for the art you want and copy everything **After** the
123 |
124 | ```c
125 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
126 | #define LV_ATTRIBUTE_MEM_ALIGN
127 | #endif
128 | ```
129 | block
130 |
131 | and paste it at the end of the `/boards/shields/nice_view_custom/widgets/art.c` file.
132 |
133 | ---
134 |
135 | ⚠️ Note: Somewhat little known fact. For small edits on github, you may not need an editor at all. On the main page of your cloned / forked repo, pressing the period key (.) will open the repo up in VS Code, right in your browser, allowing you to edit files without the need for git or downloading anything. It's perfect for the kind of edits we'll be doing.
136 |
137 | ---
138 |
139 | Near the top of what you pasted, find the following section
140 |
141 | ```c
142 | ~~~~
143 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO01 uint8_t corro01_map[] = {
144 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
145 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
146 |
147 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
148 | ~~~~
149 | ```
150 |
151 | and copy the #if CONFIG_NICE_VIEW_WIDGET_INVERTED block from either the balloon or the mountain art section and replace the first two "/\*Color of index\*/" lines. This will maintain the nice!view's ability to invert colors via config.
152 |
153 | ```c
154 | ~~~~
155 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO01 uint8_t corro01_map[] = {
156 | #if CONFIG_NICE_VIEW_WIDGET_INVERTED
157 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
158 | 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/
159 | #else
160 | 0x00, 0x00, 0x00, 0xff, /*Color of index 0*/
161 | 0xff, 0xff, 0xff, 0xff, /*Color of index 1*/
162 | #endif
163 |
164 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
165 | ~~~~
166 | ```
167 |
168 | #### See `/assets/example/static/art.c` for reference
169 |
170 | Next, find the name of your image const, which should be based off your original image name, by scrolling to the very bottom and finding the section that looks like this
171 |
172 | ```c
173 | const lv_img_dsc_t corro01 = {
174 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
175 | .header.always_zero = 0,
176 | .header.reserved = 0,
177 | .header.w = 140,
178 | .header.h = 68,
179 | .data_size = 1232,
180 | .data = corro01_map,
181 | };
182 | ```
183 |
184 | In this case the name is `corro01`. Copy this name for use in the next step.
185 |
186 | Open the peripheral_status.c file and on line 28, add a new line and copy line 27, swapping out `mountain` for your new art's name. In my case it is `corro01`.
187 |
188 | ```c
189 | #include "peripheral_status.h"
190 |
191 | LV_IMG_DECLARE(balloon);
192 | LV_IMG_DECLARE(mountain);
193 | LV_IMG_DECLARE(corro01); // new line
194 |
195 | static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
196 | ```
197 |
198 | Finally, further down in the same file edit this section of code
199 |
200 | ```c
201 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
202 | widget->obj = lv_obj_create(parent);
203 | lv_obj_set_size(widget->obj, 160, 68);
204 | lv_obj_t *top = lv_canvas_create(widget->obj);
205 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
206 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
207 |
208 | lv_obj_t *art = lv_img_create(widget->obj);
209 | bool random = sys_rand32_get() & 1;
210 | lv_img_set_src(art, random ? &balloon : &mountain);
211 | lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
212 |
213 | sys_slist_append(&widgets, &widget->node);
214 | widget_battery_status_init();
215 | widget_peripheral_status_init();
216 |
217 | return 0;
218 | }
219 | ```
220 |
221 | to look like this (changing corro01 for the name of your file, if different)
222 |
223 | ```c
224 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
225 | widget->obj = lv_obj_create(parent);
226 | lv_obj_set_size(widget->obj, 160, 68);
227 | lv_obj_t *top = lv_canvas_create(widget->obj);
228 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
229 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
230 |
231 | lv_obj_t *art = lv_img_create(widget->obj);
232 | //bool random = sys_rand32_get() & 1;
233 | //lv_img_set_src(art, random ? &balloon : &mountain);
234 | lv_img_set_src(art, &corro01) //new line
235 | lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
236 |
237 | sys_slist_append(&widgets, &widget->node);
238 | widget_battery_status_init();
239 | widget_peripheral_status_init();
240 |
241 | return 0;
242 | }
243 | ```
244 |
245 | #### See `/assets/example/static/peripheral_status.c` for full reference
246 |
247 |
248 | The "bool random" line that we commented out gets a random 0 or 1 number every time your board boots or resets and that random number is then used in the next line in a 'ternary expression' that selects the &balloon image reference if 1 and &mountain if it is 0.
249 |
250 | In our case we don't need that to show our 1 new image so we can just set that image directly in the lv_img_set_src function
251 |
252 | #### Congratulations
253 | That's all you need to edit. We took our art, rotated it 90 degrees clockwise, we converted it to a C array, added it to the art.c file and told the perepheral.c to use our new our new image. To learn how to use your new module with your new static image, head to the [usage](#usage) section.
254 |
255 |
256 | ## Adding an Animation
257 |
258 | An animation is just multiple pictures so we can build on what we learned in the previous section and add multiple images into the art.c file and then we'll learn how to set up an animation.
259 |
260 | First, just like for the static image, copy the C file contents for each of your generated C files to the art.c file, making sure to update each one with the inverted color index section. If you know you absolutely will not use the color inversion config, then you can technically skip this step.
261 |
262 | You can find an example art file in `/assets/example/animated/art.c`
263 | Notice, you can remove the balloon and mountain if they are not going to be used.
264 |
265 | Next, update the peripheral_status.c file, adding a `LV_IMG_DECLARE();` line for each file you added to the `art.c` file.
266 |
267 | Just below those lines, add an array to hold references to each of our images like this
268 |
269 | ```c
270 | LV_IMG_DECLARE(corro01);
271 | LV_IMG_DECLARE(corro02);
272 | LV_IMG_DECLARE(corro03);
273 | LV_IMG_DECLARE(corro04);
274 | LV_IMG_DECLARE(corro05);
275 | LV_IMG_DECLARE(corro06);
276 | LV_IMG_DECLARE(corro07);
277 | LV_IMG_DECLARE(corro08);
278 | LV_IMG_DECLARE(corro09);
279 | LV_IMG_DECLARE(corro10);
280 | LV_IMG_DECLARE(corro11);
281 | LV_IMG_DECLARE(corro12);
282 |
283 | const lv_img_dsc_t *anim_imgs[] = {
284 | &corro01,
285 | &corro02,
286 | &corro03,
287 | &corro04,
288 | &corro05,
289 | &corro06,
290 | &corro07,
291 | &corro08,
292 | &corro09,
293 | &corro10,
294 | &corro11,
295 | &corro12,
296 | };
297 | ```
298 | In my case, there are 12 images, 12 file names and each one is added to the anim_imgs array
299 |
300 | Near the bottom of the file in the same place we edited previously to change the static image, we'll want to comment out or remove a few lines setting up the image and instead use different functions to set up our animation.
301 |
302 | ```c
303 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
304 | widget->obj = lv_obj_create(parent);
305 | lv_obj_set_size(widget->obj, 160, 68);
306 | lv_obj_t *top = lv_canvas_create(widget->obj);
307 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
308 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
309 |
310 | //lv_obj_t *art = lv_img_create(widget->obj);
311 | //bool random = sys_rand32_get() & 1;
312 | //lv_img_set_src(art, random ? &balloon : &mountain);
313 | //lv_img_set_src(art, &corro01);
314 |
315 | lv_obj_t * art = lv_animimg_create(widget->obj); //<--
316 | lv_obj_center(art); //<--
317 | lv_animimg_set_src(art, (const void **) anim_imgs, 12); //<--
318 | lv_animimg_set_duration(art, 4800); //<--
319 | lv_animimg_set_repeat_count(art, LV_ANIM_REPEAT_INFINITE); //<--
320 | lv_animimg_start(art); //<--
321 |
322 | lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
323 |
324 | sys_slist_append(&widgets, &widget->node);
325 | widget_battery_status_init();
326 | widget_peripheral_status_init();
327 |
328 | return 0;
329 | }
330 | ```
331 |
332 | *you can see a full example of this file under `/assets/example/animated/peripheral_status.c`*
333 |
334 | `lv_animimg_create()` creates our animation instance
335 |
336 | `lv_animimg_set_src()` is where we provide our array of images as well as the number of images in the array. **This number is important**. If it is too small your animation won't use all of the available pictures. If it is too large, it may crash or cause unexpected behavior.
337 |
338 | `lv_animimg_set_duration()` sets the total duration of your animation. In my case I wanted my animation to be 400ms per frame so I multiplied 400 * 12 to arrive at a total of 4800ms. Lower this number to speed up the animation or increase it to slow it down. I have not expirimented with how high this number can go but it's a uint32 so theoretically anything under 4.2billion milliseconds should work which means you could easily make a slow moving slideshow of images rather than an animation.
339 |
340 | `lv_animimg_set_repeat_count()` set our repeat count to infinte
341 |
342 | `lv_animimg_start()` starts our animation, if you don't include this line, it won't start
343 |
344 |
345 | There is now only one final step left, we need to tell the zmk build that we want to use the lvgl animation feature and we do so in the `Kconfig.defconfig` file. Update this section:
346 |
347 | ```
348 | config NICE_VIEW_WIDGET_STATUS
349 | bool "Custom nice!view status widget"
350 | select LV_FONT_MONTSERRAT_16
351 | select LV_USE_IMG
352 | select LV_USE_CANVAS
353 | ```
354 | to be this
355 |
356 | ```
357 | config NICE_VIEW_WIDGET_STATUS
358 | bool "Custom nice!view status widget"
359 | select LV_FONT_MONTSERRAT_16
360 | select LV_USE_IMG
361 | select LV_USE_CANVAS
362 | select LV_USE_ANIMIMG
363 | select LV_USE_ANIMATION
364 | ```
365 |
366 | #### Congratulations
367 | That's it! You should now have a functioning custom animation that will run on your peripheral nice!view display when you build your firmware with your module and flash it.
368 | To learn how to use your new module with your new animation, head to the [usage](#usage) section.
369 |
370 |
371 | ## Usage
372 |
373 | To use my urchin animation module as-is, first add it to your config/west.yml by adding a new entry to remotes and projects:
374 |
375 | **If you are using your own forked/cloned module, just replace the url-base: with your forked or cloned url base**
376 |
377 | ```yml
378 | manifest:
379 | remotes:
380 | # zmk official
381 | - name: zmkfirmware
382 | url-base: https://github.com/zmkfirmware
383 | - name: gpeye #new entry
384 | url-base: https://github.com/GPeye #new entry
385 | projects:
386 | - name: zmk
387 | remote: zmkfirmware
388 | revision: main
389 | import: app/west.yml
390 | - name: urchin-peripheral-animation #new entry
391 | remote: gpeye #new entry
392 | revision: main #new entry
393 | self:
394 | path: config
395 | ```
396 |
397 | Now simply swap out the default nice_view shield for the custom one in your build.yaml file.
398 |
399 | ```yml
400 | ---
401 | include:
402 | - board: nice_nano_v2
403 | shield: urchin_left nice_view_adapter nice_view_custom #custom shield
404 | - board: nice_nano_v2
405 | shield: urchin_right nice_view_adapter nice_view_custom #custom shield
406 | ```
407 |
408 | by default the this urchin animation will run for a duration of 9.6 seconds, fairly slow to save battery
409 |
410 | If you want to change the speed of the animation, you can edit the speed by changing the CONFIG_CUSTOM_ANIMATION_SPEED in your .conf file
411 |
412 | For example:
413 |
414 | ```conf
415 | # urchin.conf
416 | CONFIG_CUSTOM_ANIMATION_SPEED=4800 # 4.8 second total duration
417 | ```
418 |
419 | ## Renaming your module
420 | What if you want to name your module something other than "nice_view_custom"?
421 |
422 | Here I'll attempt to explain the various files and names that matter
423 |
424 | The name field used in config/west.yml under projects:
425 |
426 | ```yml
427 | manifest:
428 | remotes:
429 | # zmk official
430 | - name: zmkfirmware
431 | url-base: https://github.com/zmkfirmware
432 | - name: gpeye
433 | url-base: https://github.com/GPeye
434 | projects:
435 | - name: zmk
436 | remote: zmkfirmware
437 | revision: main
438 | import: app/west.yml
439 | - name: urchin-peripheral-animation #<---- Here
440 | remote: gpeye
441 | revision: main
442 | self:
443 | path: config
444 | ```
445 |
446 | Is the name of your fork or cloned repo which you can easily change in github
447 |
448 | ---
449 |
450 | The name used as the shield name in the build.yaml
451 | ```yml
452 | ---
453 | include:
454 | - board: nice_nano_v2
455 | shield: urchin_left nice_view_adapter nice_view_custom #<--- Here
456 | - board: nice_nano_v2
457 | shield: urchin_right nice_view_adapter nice_view_custom
458 | ```
459 |
460 | You will want to change in the following place:
461 |
462 | The folder name at `boards/shields/nice_view_custom`
463 | The file names inside that folder:
464 | - `nice_view_custom.conf`
465 | - `nice_view_custom.overlay`
466 | - `nice_view_custom.zmk.yml`
467 |
468 | Inside `nice_view_custom.zmk.yml` update the Id and perhaps the name (though not strictly necessary)
469 |
470 | Inside Kconfig.shield update line 5 and line 4, then whatever you change the config name for line 4 to be, you want line 4 of Kconfig.defconfg to match it.
471 |
472 | That should be everything, letting you share your customized animation or graphic module with others using your desired name.
473 |
474 |
475 | ---
476 |
477 |
478 | ### References
479 |
480 | I in no way figured this out on my own and want to give credit where it is due. These are all the resources I used to learn.
481 |
482 | https://www.reddit.com/r/ErgoMechKeyboards/comments/15t3o6k/custom_art_on_niceview_displays/
483 |
484 | https://github.com/mctechnology17/zmk-dongle-display-view
485 |
486 | https://github.com/caksoylar/zmk-rgbled-widget
487 |
488 | https://deploy-preview-2438--zmk.netlify.app/docs/advanced-guides/making-modules
489 |
490 | https://docs.zephyrproject.org/latest/develop/modules.html
491 |
492 | https://docs.lvgl.io/master/widgets/animimg.html
493 |
--------------------------------------------------------------------------------
/assets/Sprite.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/Sprite.gif
--------------------------------------------------------------------------------
/assets/corroniceview.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/corroniceview.gif
--------------------------------------------------------------------------------
/assets/example/animated/peripheral_status.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 | #include
10 |
11 | #include
12 | LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
13 |
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 |
24 | #include "peripheral_status.h"
25 |
26 | LV_IMG_DECLARE(corro01);
27 | LV_IMG_DECLARE(corro02);
28 | LV_IMG_DECLARE(corro03);
29 | LV_IMG_DECLARE(corro04);
30 | LV_IMG_DECLARE(corro05);
31 | LV_IMG_DECLARE(corro06);
32 | LV_IMG_DECLARE(corro07);
33 | LV_IMG_DECLARE(corro08);
34 | LV_IMG_DECLARE(corro09);
35 | LV_IMG_DECLARE(corro10);
36 | LV_IMG_DECLARE(corro11);
37 | LV_IMG_DECLARE(corro12);
38 |
39 | const lv_img_dsc_t *anim_imgs[] = {
40 | &corro01,
41 | &corro02,
42 | &corro03,
43 | &corro04,
44 | &corro05,
45 | &corro06,
46 | &corro07,
47 | &corro08,
48 | &corro09,
49 | &corro10,
50 | &corro11,
51 | &corro12,
52 | };
53 |
54 | static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
55 |
56 | struct peripheral_status_state {
57 | bool connected;
58 | };
59 |
60 | static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_state *state) {
61 | lv_obj_t *canvas = lv_obj_get_child(widget, 0);
62 |
63 | lv_draw_label_dsc_t label_dsc;
64 | init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_16, LV_TEXT_ALIGN_RIGHT);
65 | lv_draw_rect_dsc_t rect_black_dsc;
66 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
67 |
68 | // Fill background
69 | lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
70 |
71 | // Draw battery
72 | draw_battery(canvas, state);
73 |
74 | // Draw output status
75 | lv_canvas_draw_text(canvas, 0, 0, CANVAS_SIZE, &label_dsc,
76 | state->connected ? LV_SYMBOL_WIFI : LV_SYMBOL_CLOSE);
77 |
78 | // Rotate canvas
79 | rotate_canvas(canvas, cbuf);
80 | }
81 |
82 | static void set_battery_status(struct zmk_widget_status *widget,
83 | struct battery_status_state state) {
84 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
85 | widget->state.charging = state.usb_present;
86 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
87 |
88 | widget->state.battery = state.level;
89 |
90 | draw_top(widget->obj, widget->cbuf, &widget->state);
91 | }
92 |
93 | static void battery_status_update_cb(struct battery_status_state state) {
94 | struct zmk_widget_status *widget;
95 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_battery_status(widget, state); }
96 | }
97 |
98 | static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
99 | return (struct battery_status_state) {
100 | .level = zmk_battery_state_of_charge(),
101 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
102 | .usb_present = zmk_usb_is_powered(),
103 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
104 | };
105 | }
106 |
107 | ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
108 | battery_status_update_cb, battery_status_get_state)
109 |
110 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
111 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
112 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
113 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
114 |
115 | static struct peripheral_status_state get_state(const zmk_event_t *_eh) {
116 | return (struct peripheral_status_state){.connected = zmk_split_bt_peripheral_is_connected()};
117 | }
118 |
119 | static void set_connection_status(struct zmk_widget_status *widget,
120 | struct peripheral_status_state state) {
121 | widget->state.connected = state.connected;
122 |
123 | draw_top(widget->obj, widget->cbuf, &widget->state);
124 | }
125 |
126 | static void output_status_update_cb(struct peripheral_status_state state) {
127 | struct zmk_widget_status *widget;
128 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_connection_status(widget, state); }
129 | }
130 |
131 | ZMK_DISPLAY_WIDGET_LISTENER(widget_peripheral_status, struct peripheral_status_state,
132 | output_status_update_cb, get_state)
133 | ZMK_SUBSCRIPTION(widget_peripheral_status, zmk_split_peripheral_status_changed);
134 |
135 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
136 | widget->obj = lv_obj_create(parent);
137 | lv_obj_set_size(widget->obj, 160, 68);
138 | lv_obj_t *top = lv_canvas_create(widget->obj);
139 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
140 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
141 |
142 | //lv_obj_t *art = lv_img_create(widget->obj);
143 | //bool random = sys_rand32_get() & 1;
144 | //lv_img_set_src(art, random ? &balloon : &mountain);
145 | //lv_img_set_src(art, &corro01);
146 |
147 | lv_obj_t * art = lv_animimg_create(widget->obj); //<--
148 | lv_obj_center(art); //<--
149 | lv_animimg_set_src(art, (const void **) anim_imgs, 12); //<--
150 | lv_animimg_set_duration(art, 4800); //<--
151 | lv_animimg_set_repeat_count(art, LV_ANIM_REPEAT_INFINITE); //<--
152 | lv_animimg_start(art); //<--
153 |
154 | lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
155 | sys_slist_append(&widgets, &widget->node);
156 | widget_battery_status_init();
157 | widget_peripheral_status_init();
158 |
159 | return 0;
160 | }
161 |
162 | lv_obj_t *zmk_widget_status_obj(struct zmk_widget_status *widget) { return widget->obj; }
--------------------------------------------------------------------------------
/assets/example/static/art.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 Collin Hodge
4 | * Copyright (c) 2023 The ZMK Contributors
5 | * SPDX-License-Identifier: MIT
6 | *
7 | */
8 |
9 | #include
10 |
11 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
12 | #define LV_ATTRIBUTE_MEM_ALIGN
13 | #endif
14 |
15 | #ifndef LV_ATTRIBUTE_IMG_BALLOON
16 | #define LV_ATTRIBUTE_IMG_BALLOON
17 | #endif
18 |
19 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_BALLOON uint8_t
20 | balloon_map[] = {
21 | #if CONFIG_NICE_VIEW_WIDGET_INVERTED
22 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
23 | 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/
24 | #else
25 | 0x00, 0x00, 0x00, 0xff, /*Color of index 0*/
26 | 0xff, 0xff, 0xff, 0xff, /*Color of index 1*/
27 | #endif
28 |
29 | 0xfe, 0xaa, 0x0a, 0x2a, 0x9f, 0xff, 0xff, 0xff, 0xfa, 0xea, 0xaa, 0xae, 0xba, 0xff, 0xff,
30 | 0xfb, 0xff, 0xf0, 0xf1, 0x55, 0x05, 0x15, 0x47, 0xff, 0xff, 0xff, 0xf5, 0xd5, 0x55, 0x5f,
31 | 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xa4, 0xaa, 0x8a, 0x8a, 0xa1, 0xff, 0xff, 0xfb, 0xea,
32 | 0xaa, 0xaa, 0xbe, 0xbf, 0xef, 0xfb, 0xfb, 0xff, 0xf0, 0x54, 0x55, 0x05, 0x45, 0x54, 0xff,
33 | 0xff, 0x7d, 0x55, 0xd5, 0x75, 0x7f, 0x7f, 0xdf, 0xff, 0xff, 0xff, 0xf0, 0xae, 0x2a, 0x82,
34 | 0xa0, 0xaa, 0x3f, 0xff, 0xfe, 0xaa, 0xea, 0xbb, 0xfe, 0xbf, 0xff, 0xfb, 0xfb, 0xfe, 0xf0,
35 | 0x5f, 0x55, 0x01, 0x50, 0x54, 0x1f, 0xff, 0x7f, 0x55, 0xd5, 0x7f, 0xff, 0x7f, 0xd7, 0xff,
36 | 0xfd, 0xfd, 0xf0, 0x2f, 0xff, 0x20, 0x28, 0x00, 0x0f, 0xff, 0xae, 0xaa, 0xaa, 0xbf, 0xff,
37 | 0xff, 0xeb, 0xfb, 0xff, 0xff, 0xf0, 0x0e, 0x01, 0x50, 0x14, 0x00, 0x3f, 0xff, 0x57, 0x55,
38 | 0xd5, 0x7f, 0xff, 0x7f, 0xd7, 0xfd, 0xff, 0xfd, 0xf0, 0x1e, 0x01, 0xa8, 0x0a, 0x00, 0xff,
39 | 0xff, 0xaf, 0xaa, 0xaa, 0xff, 0xff, 0xff, 0xaf, 0xfb, 0xff, 0xff, 0xf0, 0x1f, 0xf9, 0x50,
40 | 0x01, 0x03, 0xff, 0xff, 0x57, 0x55, 0xd5, 0x7d, 0xff, 0x7f, 0xdf, 0xfd, 0xff, 0xfd, 0xf0,
41 | 0x9f, 0xf9, 0xa8, 0x00, 0x8f, 0xff, 0xfe, 0xaf, 0xaa, 0xaa, 0xff, 0xff, 0xfd, 0xbf, 0xfb,
42 | 0xff, 0xfb, 0xf0, 0x5a, 0x01, 0x54, 0x00, 0x3f, 0xff, 0xff, 0x7f, 0x5d, 0xd5, 0xfd, 0xff,
43 | 0xfd, 0xdf, 0xfd, 0xff, 0xfd, 0xf0, 0x8e, 0x01, 0xaa, 0x00, 0x7f, 0xff, 0xfe, 0xbf, 0xae,
44 | 0xef, 0xff, 0xff, 0xfb, 0xef, 0xfb, 0xff, 0xfa, 0xf0, 0xcf, 0xff, 0xf4, 0x00, 0xf7, 0xff,
45 | 0xff, 0x7f, 0x5d, 0xff, 0xff, 0xff, 0xfd, 0xdf, 0xff, 0xff, 0xfd, 0xf0, 0xae, 0x01, 0x2a,
46 | 0x00, 0xfb, 0xff, 0xff, 0xbf, 0xae, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfb, 0xff, 0xfa, 0xf0,
47 | 0xde, 0x01, 0x35, 0x01, 0xfb, 0xff, 0xff, 0x7f, 0x5d, 0xfd, 0xbf, 0xff, 0xff, 0xdf, 0xfd,
48 | 0xff, 0xdd, 0xf0, 0xa7, 0xff, 0xea, 0x81, 0xfc, 0xff, 0x7f, 0xbe, 0xbe, 0xff, 0xe3, 0xff,
49 | 0xff, 0xef, 0xff, 0xf9, 0x3e, 0xf0, 0x56, 0x01, 0x55, 0x41, 0xff, 0x7f, 0xff, 0xff, 0xfd,
50 | 0xfd, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x7d, 0xf0, 0xa6, 0x01, 0x2a, 0x88, 0xfe, 0xff,
51 | 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xe0, 0x03, 0xff, 0xff, 0xfc, 0xfe, 0xf0, 0x52, 0x79, 0x15,
52 | 0x44, 0x7d, 0xff, 0xff, 0xfd, 0x7f, 0xbd, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xf8, 0xfd, 0xf0,
53 | 0x22, 0x69, 0x2a, 0xa0, 0x3d, 0xff, 0xff, 0xfa, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xe2, 0x48,
54 | 0xfa, 0xff, 0xf0, 0x42, 0x59, 0x15, 0x54, 0x1b, 0xff, 0xff, 0xf7, 0xff, 0xbd, 0xf7, 0xff,
55 | 0xff, 0x95, 0x55, 0x37, 0x7d, 0xf0, 0x02, 0x69, 0x0a, 0xa2, 0x1f, 0xfe, 0xff, 0xee, 0xff,
56 | 0xff, 0xfc, 0xff, 0xff, 0x2a, 0x4a, 0x9f, 0xff, 0xf0, 0x03, 0xff, 0x55, 0x11, 0x4f, 0xff,
57 | 0xff, 0x55, 0x7f, 0xfd, 0xff, 0x00, 0xfc, 0x55, 0x55, 0x4f, 0xff, 0xf0, 0x02, 0x01, 0xaa,
58 | 0x88, 0x8f, 0xde, 0xff, 0xaa, 0xbf, 0xfe, 0xff, 0xff, 0x00, 0xa8, 0x02, 0xa7, 0xff, 0xf0,
59 | 0x02, 0x01, 0x55, 0x55, 0x47, 0xff, 0x7f, 0xd5, 0x5f, 0xff, 0xff, 0xff, 0xc8, 0x47, 0x5c,
60 | 0x53, 0xff, 0xf0, 0x82, 0x49, 0xaa, 0x8a, 0xa7, 0xfe, 0xff, 0xea, 0xbf, 0xff, 0xff, 0xff,
61 | 0xb0, 0x3f, 0x5f, 0x89, 0xff, 0xf0, 0xc2, 0x49, 0x55, 0x45, 0x53, 0xff, 0xff, 0xf5, 0x5f,
62 | 0xff, 0xff, 0xfe, 0x70, 0x7f, 0x5f, 0xe5, 0xff, 0xf0, 0xe2, 0x41, 0xa2, 0xa2, 0xab, 0xfe,
63 | 0xfb, 0xfa, 0xaf, 0xef, 0xff, 0xf9, 0xe2, 0xbf, 0x5f, 0xfa, 0xff, 0xf0, 0xe2, 0x41, 0x51,
64 | 0x51, 0x51, 0xff, 0x77, 0xfd, 0x57, 0xf9, 0xff, 0xe7, 0x85, 0x7f, 0x5f, 0xfc, 0xff, 0xf0,
65 | 0xe3, 0xff, 0xf2, 0xa0, 0xa8, 0xff, 0xfb, 0xbe, 0xaf, 0xfe, 0x1e, 0x80, 0x6a, 0x80, 0x00,
66 | 0x7e, 0xff, 0xb0, 0xe2, 0x60, 0x11, 0x50, 0x54, 0x7f, 0xff, 0xfd, 0x57, 0xff, 0xe0, 0x1f,
67 | 0xc4, 0x15, 0x55, 0x06, 0x7f, 0x70, 0xee, 0x60, 0x18, 0xa8, 0x2a, 0x1f, 0xff, 0xfe, 0xaf,
68 | 0xff, 0xe8, 0xf0, 0x00, 0x0a, 0x4a, 0xa8, 0x7f, 0xf0, 0xdf, 0xff, 0xf1, 0x54, 0x15, 0x43,
69 | 0xff, 0xff, 0x5f, 0xff, 0xe8, 0x7b, 0xc0, 0x05, 0x55, 0x55, 0x7f, 0x70, 0xff, 0x81, 0x28,
70 | 0xaa, 0x0a, 0xa1, 0xff, 0xfe, 0xbf, 0xf7, 0xea, 0x09, 0xe0, 0x0a, 0x4a, 0xaa, 0x7f, 0xf0,
71 | 0xff, 0x81, 0x50, 0x54, 0x05, 0x54, 0x7f, 0xff, 0x7f, 0xfc, 0xe8, 0x4b, 0xc0, 0x05, 0x55,
72 | 0x55, 0x7f, 0x70, 0xfe, 0x7f, 0x28, 0xaa, 0x00, 0xa8, 0xff, 0xfe, 0xbf, 0xff, 0x0a, 0xf0,
73 | 0x00, 0x02, 0x4a, 0xa8, 0x7e, 0xb0, 0xfe, 0x7f, 0x14, 0x55, 0x00, 0x03, 0xff, 0xf7, 0x5f,
74 | 0x7f, 0xe0, 0x1f, 0xc4, 0x01, 0x55, 0x06, 0x7f, 0x70, 0xff, 0x81, 0x08, 0x2a, 0x80, 0x07,
75 | 0xff, 0xf6, 0xaf, 0xff, 0xfe, 0x80, 0x6a, 0x80, 0x00, 0x7e, 0xff, 0xb0, 0x7f, 0x81, 0x14,
76 | 0x55, 0x40, 0x0f, 0xff, 0xed, 0x57, 0x7f, 0xff, 0xe7, 0x85, 0x55, 0x5f, 0xfc, 0xff, 0x70,
77 | 0xbf, 0xff, 0xe8, 0x2a, 0xa8, 0x1f, 0xff, 0xf6, 0xae, 0xff, 0xff, 0xf9, 0xea, 0xaa, 0x5f,
78 | 0xfa, 0xff, 0xf0, 0x5e, 0x01, 0x24, 0x15, 0x54, 0x3f, 0xff, 0xf5, 0x57, 0x7f, 0xfb, 0xfe,
79 | 0xf0, 0x55, 0x5f, 0xe5, 0xff, 0x70, 0xbe, 0x01, 0x22, 0x2a, 0xa0, 0xff, 0xff, 0xba, 0xae,
80 | 0xff, 0xfe, 0x1f, 0x30, 0x2a, 0x0f, 0x89, 0xbf, 0xf0, 0x5f, 0xff, 0xe5, 0x15, 0x41, 0xff,
81 | 0xff, 0xd5, 0x57, 0x7f, 0xff, 0xe0, 0x48, 0x05, 0x54, 0x53, 0xff, 0xf0, 0xbe, 0x01, 0xa2,
82 | 0x02, 0x03, 0xff, 0xff, 0xea, 0xaa, 0xbf, 0xff, 0xff, 0x80, 0x00, 0x02, 0xa7, 0xbf, 0xf0,
83 | 0x5e, 0x01, 0x41, 0x00, 0x06, 0xfd, 0xff, 0xd5, 0x55, 0x5f, 0xff, 0xff, 0xfc, 0x00, 0x40,
84 | 0x4f, 0xff, 0xf0, 0xbe, 0x49, 0x20, 0x80, 0x0f, 0x7f, 0xfe, 0xea, 0xaa, 0xbe, 0xff, 0xff,
85 | 0xff, 0x00, 0x00, 0x1f, 0xbf, 0xf0, 0x7e, 0x49, 0x50, 0x00, 0x0f, 0x7f, 0xff, 0xd5, 0x55,
86 | 0x5f, 0x83, 0xff, 0xff, 0x80, 0x40, 0x3f, 0xff, 0xf0, 0xfe, 0x41, 0x28, 0x00, 0x0f, 0xbf,
87 | 0xff, 0xeb, 0xaa, 0xbf, 0xfc, 0x00, 0x03, 0xe0, 0x00, 0xff, 0xbf, 0xf0, 0xfe, 0x41, 0x14,
88 | 0x00, 0x1f, 0xdf, 0xff, 0xd5, 0xd5, 0x57, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xdf, 0xf0,
89 | 0xff, 0xff, 0x08, 0x00, 0x1f, 0x3f, 0xdf, 0xeb, 0xaa, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff,
90 | 0xff, 0xbf, 0xf0, 0xfe, 0x01, 0x14, 0x40, 0x3e, 0xff, 0xbf, 0xf5, 0x55, 0x57, 0xdf, 0xff,
91 | 0xf9, 0xff, 0xff, 0xff, 0xdf, 0xf0, 0xfe, 0x01, 0x0a, 0x20, 0x3f, 0xff, 0xdf, 0xfa, 0xaa,
92 | 0xab, 0xbf, 0xff, 0xf3, 0xff, 0xff, 0xdf, 0xbf, 0xf0, 0xde, 0x7f, 0x05, 0x10, 0x7f, 0xff,
93 | 0xff, 0xfd, 0x55, 0x55, 0xdf, 0xff, 0xe4, 0xff, 0xff, 0xbf, 0x7f, 0xf0, 0xee, 0x7e, 0x02,
94 | 0x88, 0x7f, 0xff, 0xff, 0xfa, 0xaa, 0xab, 0xbf, 0xff, 0xe3, 0xff, 0xbf, 0xbf, 0xbf, 0xf0,
95 | 0xde, 0x05, 0x41, 0x54, 0x3f, 0xff, 0xff, 0xdd, 0x55, 0x55, 0xff, 0xff, 0xd7, 0xff, 0xdf,
96 | 0x7f, 0x7f, 0xf0, 0xee, 0x06, 0xa2, 0xaa, 0x3f, 0xff, 0xff, 0xbe, 0xaa, 0xab, 0xbf, 0xff,
97 | 0xf7, 0xff, 0xbf, 0x3f, 0xbf, 0xf0, 0xde, 0x7d, 0x55, 0x55, 0x1f, 0xfb, 0xff, 0xff, 0x55,
98 | 0x55, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xbf, 0xff, 0xf0, 0xfe, 0x7f, 0xaa, 0xaa, 0x8f, 0xff,
99 | 0xff, 0xba, 0xaa, 0xab, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xdf, 0xbf, 0xf0, 0xfe, 0x01, 0x55,
100 | 0x55, 0x47, 0xff, 0xff, 0xf7, 0xd5, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
101 | 0xfe, 0x01, 0xaa, 0xaa, 0xa1, 0xff, 0xff, 0xbf, 0xea, 0xab, 0xff, 0xff, 0xff, 0xff, 0xbf,
102 | 0xff, 0xff, 0xf0, 0xff, 0xff, 0x55, 0x55, 0x54, 0xff, 0xff, 0x5f, 0xf5, 0x57, 0xff, 0xfd,
103 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xda, 0xaa, 0xaa, 0xaa, 0x7f, 0xff, 0xbf, 0xfa,
104 | 0xab, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0x9d, 0x55, 0x55, 0x00, 0xff,
105 | 0xff, 0x7f, 0xfd, 0x57, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xbf, 0xa2,
106 | 0xa8, 0x03, 0xff, 0xfb, 0xbf, 0xfa, 0xaa, 0xbf, 0xfb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0,
107 | 0xff, 0x3f, 0xc0, 0x00, 0x07, 0xff, 0xff, 0x5f, 0xfd, 0x57, 0x57, 0xff, 0xff, 0xff, 0xff,
108 | 0xff, 0xff, 0xf0, 0xff, 0x3f, 0x80, 0x00, 0x0f, 0xff, 0xfb, 0xaf, 0xfe, 0xae, 0xaa, 0xfb,
109 | 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0, 0xf6, 0x7f, 0xc0, 0x00, 0x0f, 0xff, 0xff, 0x57, 0xfd,
110 | 0x55, 0x55, 0x77, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf0,
111 | };
112 |
113 | const lv_img_dsc_t balloon = {
114 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
115 | .header.always_zero = 0,
116 | .header.reserved = 0,
117 | .header.w = 140,
118 | .header.h = 68,
119 | .data_size = 1232,
120 | .data = balloon_map,
121 | };
122 |
123 | #ifndef LV_ATTRIBUTE_IMG_MOUNTAIN
124 | #define LV_ATTRIBUTE_IMG_MOUNTAIN
125 | #endif
126 |
127 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_MOUNTAIN uint8_t
128 | mountain_map[] = {
129 | #if CONFIG_NICE_VIEW_WIDGET_INVERTED
130 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
131 | 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/
132 | #else
133 | 0x00, 0x00, 0x00, 0xff, /*Color of index 0*/
134 | 0xff, 0xff, 0xff, 0xff, /*Color of index 1*/
135 | #endif
136 |
137 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
138 | 0xff, 0xff, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
139 | 0x00, 0x00, 0x00, 0x90, 0x00, 0x30, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xa0, 0x00, 0x00,
140 | 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x10, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff,
141 | 0xf4, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0x10, 0x80, 0xff, 0xff,
142 | 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x01, 0xfe, 0x03, 0xe0, 0x0f, 0x9e, 0x01, 0x90,
143 | 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x00, 0x00, 0x00, 0xff, 0x07, 0xe0, 0x1f,
144 | 0x9e, 0x00, 0x90, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x80, 0x00, 0x00, 0x7f,
145 | 0x8f, 0xe0, 0x1f, 0xbe, 0x00, 0x90, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
146 | 0x00, 0x00, 0x3f, 0xcf, 0xf0, 0x1f, 0xbc, 0x00, 0x90, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff,
147 | 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xcf, 0xf0, 0x3f, 0xbc, 0x00, 0x90, 0x80, 0x7f, 0xff,
148 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x00, 0x00, 0x1f, 0xe7, 0xf0, 0x7f, 0x3c, 0x00, 0x90,
149 | 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x80, 0x00, 0x00, 0x0f, 0xe7, 0xf8, 0x7f,
150 | 0x78, 0x01, 0xb0, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0x00, 0x00, 0x00, 0x07,
151 | 0xf3, 0xf8, 0x3f, 0x78, 0x03, 0xd0, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0, 0x00,
152 | 0x00, 0x00, 0x07, 0xfb, 0xf8, 0x3f, 0xf8, 0x0f, 0x90, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff,
153 | 0xec, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfd, 0xfc, 0x3f, 0xf8, 0x0f, 0x10, 0xc0, 0x1e, 0xff,
154 | 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfc, 0x3f, 0xf0, 0x0e, 0x10,
155 | 0xc0, 0x0c, 0x27, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x7f,
156 | 0xf0, 0x1e, 0x30, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 | 0x7f, 0xfe, 0x7f, 0xf3, 0xfc, 0x50, 0xe0, 0x00, 0x3f, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00,
158 | 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xf7, 0xf8, 0x90, 0xe0, 0x00, 0x7f, 0xfe, 0xb0, 0x00,
159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x7f, 0xe7, 0xf1, 0x90, 0xe0, 0x00, 0x7f,
160 | 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x7f, 0xef, 0xe3, 0x90,
161 | 0xf0, 0x00, 0x7f, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x7f,
162 | 0xff, 0xe7, 0x90, 0xb0, 0x10, 0xff, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163 | 0x03, 0xff, 0xbf, 0xff, 0xcf, 0x90, 0xf0, 0x30, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00,
164 | 0x00, 0x00, 0x00, 0x01, 0xff, 0xf9, 0xff, 0x9f, 0x90, 0xb0, 0x30, 0xff, 0xff, 0xff, 0xf2,
165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf6, 0xff, 0x3e, 0x90, 0xf8, 0x70, 0xff,
166 | 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf6, 0xfe, 0x7c, 0x90,
167 | 0xf8, 0x78, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf9,
168 | 0xfe, 0xf8, 0x90, 0xa8, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
169 | 0x00, 0x03, 0xff, 0xfd, 0xf3, 0x90, 0xdc, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xe8, 0x00, 0x00,
170 | 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfb, 0xef, 0x90, 0xf5, 0xac, 0xff, 0xff, 0xff, 0xfe,
171 | 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xd6, 0x7f,
172 | 0xff, 0xff, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x90,
173 | 0xff, 0xfa, 0x7f, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
174 | 0xff, 0xff, 0x90, 0xdd, 0xff, 0x7f, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 | 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0xea, 0xbf, 0x3f, 0xff, 0xa0, 0x00, 0x00, 0x00, 0x00,
176 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x10, 0xff, 0x4f, 0xbf, 0xf5, 0x00, 0x00,
177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x00, 0x10, 0xff, 0xff, 0x9f,
178 | 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0,
179 | 0xff, 0xb0, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
180 | 0xff, 0xff, 0x90, 0xcd, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181 | 0x00, 0x02, 0x1f, 0xff, 0xff, 0x90, 0xb2, 0xe0, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
182 | 0x00, 0x00, 0x00, 0x00, 0x0c, 0x7f, 0xff, 0xff, 0x90, 0xff, 0xc0, 0x3f, 0x40, 0x00, 0x00,
183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xff, 0xff, 0xff, 0x90, 0xfe, 0xc0, 0x7f,
184 | 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xff, 0xff, 0x7c, 0x90,
185 | 0xfd, 0x80, 0xff, 0xfd, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0xff,
186 | 0xff, 0xb8, 0x90, 0xff, 0x80, 0xff, 0xff, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187 | 0x3f, 0x87, 0xff, 0xff, 0xc8, 0x90, 0x9f, 0x01, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
188 | 0x00, 0x00, 0x00, 0x7f, 0x1f, 0xff, 0xff, 0xe0, 0x90, 0x86, 0x01, 0xff, 0xff, 0xd0, 0x00,
189 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xfe, 0x3f, 0xff, 0xff, 0xe0, 0x90, 0x80, 0x01, 0xff,
190 | 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x19, 0x83, 0xfe, 0x7f, 0xff, 0xff, 0xf0, 0x90,
191 | 0x80, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x7f, 0xc7, 0xee, 0x7f, 0xff,
192 | 0xff, 0xf8, 0x90, 0x80, 0x1a, 0xbf, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x98, 0xff, 0xff,
193 | 0xc6, 0x7f, 0xff, 0xff, 0xfc, 0x90, 0x80, 0x3f, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
194 | 0xf1, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xfe, 0x90, 0x80, 0x3f, 0xf8, 0x00, 0x00, 0x00,
195 | 0x00, 0x00, 0x07, 0xe3, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0x90, 0x80, 0x7f, 0xfe,
196 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc7, 0xff, 0xfe, 0x18, 0xff, 0xef, 0xff, 0xff, 0x90,
197 | 0x80, 0x7f, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x8f, 0xff, 0xfc, 0x7f, 0xff, 0xef,
198 | 0xfd, 0xff, 0x90, 0x80, 0xff, 0xff, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9f, 0xff, 0xf8,
199 | 0xff, 0xff, 0xef, 0xfc, 0xf7, 0x90, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x3f,
200 | 0x1f, 0xff, 0xf1, 0xff, 0xff, 0xcf, 0xfc, 0xe1, 0x90, 0x80, 0xff, 0xff, 0xff, 0xf4, 0x00,
201 | 0x00, 0x00, 0x7f, 0x3f, 0xff, 0xe3, 0xff, 0xff, 0xcf, 0xfe, 0x60, 0x90, 0x81, 0xff, 0xff,
202 | 0xff, 0xfe, 0x80, 0x00, 0x00, 0x7f, 0x3f, 0xff, 0xc7, 0xff, 0xff, 0xdf, 0xfe, 0x40, 0x90,
203 | 0x81, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xfe, 0x3f, 0xff, 0xcf, 0xbf, 0xff, 0xdf,
204 | 0xfe, 0x00, 0x90, 0x81, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x07, 0xfe, 0x7f, 0xff, 0x8f,
205 | 0x7f, 0xff, 0x9f, 0xfe, 0x00, 0x90, 0x80, 0xff, 0xff, 0xff, 0xe6, 0x00, 0x00, 0x1f, 0xfe,
206 | 0x7f, 0xff, 0x1e, 0xff, 0xff, 0x91, 0xfe, 0x00, 0x90, 0x80, 0xff, 0xff, 0xfe, 0xc0, 0x00,
207 | 0x00, 0x3f, 0xfc, 0x7f, 0xfe, 0x3c, 0xff, 0xff, 0x81, 0xff, 0x00, 0x90, 0x80, 0x7f, 0xff,
208 | 0xec, 0x00, 0x00, 0x3c, 0xff, 0xf8, 0xff, 0xfc, 0x79, 0xfd, 0xff, 0x80, 0xff, 0x00, 0x90,
209 | 0x80, 0x27, 0xff, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xf9, 0xff, 0xfc, 0xf3, 0xfb, 0xff, 0x00,
210 | 0xff, 0x00, 0x90, 0x80, 0x5f, 0xff, 0xd8, 0x00, 0x00, 0xff, 0xff, 0xf1, 0xff, 0xc8, 0xe7,
211 | 0xf3, 0xff, 0x00, 0x7f, 0x00, 0x90, 0x80, 0xff, 0xff, 0xfd, 0x80, 0x01, 0xff, 0xff, 0xe3,
212 | 0xff, 0x81, 0xcf, 0xf7, 0xff, 0x00, 0x7f, 0x00, 0x90, 0x80, 0xff, 0xff, 0xff, 0xd8, 0x03,
213 | 0xff, 0xff, 0x87, 0xff, 0x03, 0x8f, 0xe7, 0xff, 0x00, 0x3f, 0x81, 0x90, 0x81, 0xff, 0xff,
214 | 0xff, 0xfe, 0x83, 0xff, 0xfe, 0x0f, 0xfe, 0x3f, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0x10,
215 | 0x80, 0x00, 0x00, 0x00, 0x2f, 0xc6, 0x00, 0x00, 0x38, 0x00, 0x60, 0x00, 0x48, 0x00, 0x00,
216 | 0x00, 0x00, 0x10, 0xc0, 0x00, 0x00, 0x00, 0x17, 0xf4, 0x00, 0x00, 0xe0, 0x00, 0xc0, 0x00,
217 | 0x88, 0x00, 0x00, 0x00, 0x00, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
218 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
219 | };
220 |
221 | const lv_img_dsc_t mountain = {
222 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
223 | .header.always_zero = 0,
224 | .header.reserved = 0,
225 | .header.w = 140,
226 | .header.h = 68,
227 | .data_size = 1232,
228 | .data = mountain_map,
229 | };
230 |
231 | #ifndef LV_ATTRIBUTE_IMG_CORRO01
232 | #define LV_ATTRIBUTE_IMG_CORRO01
233 | #endif
234 |
235 |
236 |
237 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO01 uint8_t corro01_map[] = {
238 | #if CONFIG_NICE_VIEW_WIDGET_INVERTED
239 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
240 | 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/
241 | #else
242 | 0x00, 0x00, 0x00, 0xff, /*Color of index 0*/
243 | 0xff, 0xff, 0xff, 0xff, /*Color of index 1*/
244 | #endif
245 |
246 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
247 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
248 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
249 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
250 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
251 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
252 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
253 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
254 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
255 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
256 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
257 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
258 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
259 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
260 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
261 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
262 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x05, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
263 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
264 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
265 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
266 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
267 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
268 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
269 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
270 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
271 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
272 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
273 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
274 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
275 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x3f, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
276 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
277 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
278 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
279 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x03, 0xff, 0xef, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
280 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
281 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
282 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
283 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x7f, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
284 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
285 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
286 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
287 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
288 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
289 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
290 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
291 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
292 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
293 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
294 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0,
295 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
296 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7f, 0xff, 0xff, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xf0,
297 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
298 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0,
299 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
300 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
301 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
302 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
303 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
304 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
305 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
306 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
307 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
308 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
309 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
310 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
311 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
312 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
313 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
314 | };
315 |
316 | const lv_img_dsc_t corro01 = {
317 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
318 | .header.always_zero = 0,
319 | .header.reserved = 0,
320 | .header.w = 140,
321 | .header.h = 68,
322 | .data_size = 1232,
323 | .data = corro01_map,
324 | };
325 |
--------------------------------------------------------------------------------
/assets/example/static/peripheral_status.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 | #include
10 |
11 | #include
12 | LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
13 |
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 |
24 | #include "peripheral_status.h"
25 |
26 | LV_IMG_DECLARE(balloon);
27 | LV_IMG_DECLARE(mountain);
28 | LV_IMG_DECLARE(corro01);
29 |
30 | static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
31 |
32 | struct peripheral_status_state {
33 | bool connected;
34 | };
35 |
36 | static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_state *state) {
37 | lv_obj_t *canvas = lv_obj_get_child(widget, 0);
38 |
39 | lv_draw_label_dsc_t label_dsc;
40 | init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_16, LV_TEXT_ALIGN_RIGHT);
41 | lv_draw_rect_dsc_t rect_black_dsc;
42 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
43 |
44 | // Fill background
45 | lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
46 |
47 | // Draw battery
48 | draw_battery(canvas, state);
49 |
50 | // Draw output status
51 | lv_canvas_draw_text(canvas, 0, 0, CANVAS_SIZE, &label_dsc,
52 | state->connected ? LV_SYMBOL_WIFI : LV_SYMBOL_CLOSE);
53 |
54 | // Rotate canvas
55 | rotate_canvas(canvas, cbuf);
56 | }
57 |
58 | static void set_battery_status(struct zmk_widget_status *widget,
59 | struct battery_status_state state) {
60 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
61 | widget->state.charging = state.usb_present;
62 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
63 |
64 | widget->state.battery = state.level;
65 |
66 | draw_top(widget->obj, widget->cbuf, &widget->state);
67 | }
68 |
69 | static void battery_status_update_cb(struct battery_status_state state) {
70 | struct zmk_widget_status *widget;
71 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_battery_status(widget, state); }
72 | }
73 |
74 | static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
75 | return (struct battery_status_state) {
76 | .level = zmk_battery_state_of_charge(),
77 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
78 | .usb_present = zmk_usb_is_powered(),
79 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
80 | };
81 | }
82 |
83 | ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
84 | battery_status_update_cb, battery_status_get_state)
85 |
86 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
87 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
88 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
89 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
90 |
91 | static struct peripheral_status_state get_state(const zmk_event_t *_eh) {
92 | return (struct peripheral_status_state){.connected = zmk_split_bt_peripheral_is_connected()};
93 | }
94 |
95 | static void set_connection_status(struct zmk_widget_status *widget,
96 | struct peripheral_status_state state) {
97 | widget->state.connected = state.connected;
98 |
99 | draw_top(widget->obj, widget->cbuf, &widget->state);
100 | }
101 |
102 | static void output_status_update_cb(struct peripheral_status_state state) {
103 | struct zmk_widget_status *widget;
104 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_connection_status(widget, state); }
105 | }
106 |
107 | ZMK_DISPLAY_WIDGET_LISTENER(widget_peripheral_status, struct peripheral_status_state,
108 | output_status_update_cb, get_state)
109 | ZMK_SUBSCRIPTION(widget_peripheral_status, zmk_split_peripheral_status_changed);
110 |
111 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
112 | widget->obj = lv_obj_create(parent);
113 | lv_obj_set_size(widget->obj, 160, 68);
114 | lv_obj_t *top = lv_canvas_create(widget->obj);
115 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
116 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
117 |
118 | lv_obj_t *art = lv_img_create(widget->obj);
119 | bool random = sys_rand32_get() & 1;
120 | lv_img_set_src(art, random ? &balloon : &mountain);
121 | lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
122 |
123 | sys_slist_append(&widgets, &widget->node);
124 | widget_battery_status_init();
125 | widget_peripheral_status_init();
126 |
127 | return 0;
128 | }
129 |
130 | lv_obj_t *zmk_widget_status_obj(struct zmk_widget_status *widget) { return widget->obj; }
--------------------------------------------------------------------------------
/assets/lvgl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/lvgl.png
--------------------------------------------------------------------------------
/assets/urchincart/corro01.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO01
21 | #define LV_ATTRIBUTE_IMG_CORRO01
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO01 uint8_t corro01_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x05, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x3f, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x03, 0xff, 0xef, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x7f, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7f, 0xff, 0xff, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro01 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro01_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro02.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO02
21 | #define LV_ATTRIBUTE_IMG_CORRO02
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO02 uint8_t corro02_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xaf, 0xcd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdc, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x05, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x03, 0xe0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x0d, 0x70, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xac, 0x00, 0x02, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x15, 0xd4, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2b, 0xee, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x37, 0xb5, 0x00, 0x00, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0x2b, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x15, 0xd7, 0x00, 0x1e, 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2a, 0xab, 0x00, 0x02, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x35, 0x55, 0x00, 0x00, 0x3f, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xab, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x35, 0xd5, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xeb, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x17, 0xb6, 0x00, 0x03, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0b, 0x2c, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x15, 0xd8, 0x00, 0x00, 0x07, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xa8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x15, 0x78, 0x00, 0x00, 0x7f, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xb0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x34, 0x3f, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xdf, 0x9f, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xab, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe5, 0xa3, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xb3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro02 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro02_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro03.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO03
21 | #define LV_ATTRIBUTE_IMG_CORRO03
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO03 uint8_t corro03_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x05, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x3f, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xff, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x03, 0xff, 0xfe, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xff, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0xef, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro03 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro03_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro04.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO04
21 | #define LV_ATTRIBUTE_IMG_CORRO04
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO04 uint8_t corro04_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xaf, 0xcd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdc, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x77, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x03, 0xe0, 0x00, 0x41, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x0d, 0x70, 0x00, 0x85, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xac, 0x00, 0x02, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x15, 0xd4, 0x00, 0x04, 0x0d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2b, 0xee, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x37, 0xb5, 0x00, 0x00, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0x2b, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x15, 0xd7, 0x00, 0x1e, 0xff, 0xff, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2a, 0xab, 0x00, 0x02, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x35, 0x55, 0x00, 0x00, 0x3f, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xab, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x35, 0xd5, 0x00, 0x00, 0x00, 0xff, 0xbf, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xeb, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x17, 0xb6, 0x00, 0x03, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0b, 0x2c, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x15, 0xd8, 0x00, 0x00, 0x07, 0xff, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xa8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x15, 0x78, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xb0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x34, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xdf, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xab, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe5, 0xa3, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xb3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro04 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro04_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro05.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO05
21 | #define LV_ATTRIBUTE_IMG_CORRO05
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO05 uint8_t corro05_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xff, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x03, 0xff, 0xff, 0xef, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xff, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xea, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xea, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro05 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro05_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro06.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO06
21 | #define LV_ATTRIBUTE_IMG_CORRO06
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO06 uint8_t corro06_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xaf, 0xcd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdc, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x03, 0xe0, 0x00, 0x41, 0xff, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x0d, 0x70, 0x00, 0x85, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xac, 0x00, 0x02, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x15, 0xd4, 0x00, 0x04, 0x0f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2b, 0xee, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x37, 0xb5, 0x00, 0x00, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0x2b, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x15, 0xd7, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2a, 0xab, 0x00, 0x02, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x35, 0x55, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xab, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x35, 0xd5, 0x00, 0x00, 0x00, 0xff, 0xfb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xeb, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x17, 0xb6, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0b, 0x2c, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x15, 0xd8, 0x00, 0x00, 0x07, 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xa8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x15, 0x78, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xb0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x34, 0x2e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xdf, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xab, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe5, 0xa3, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xb3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro06 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro06_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro07.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO07
21 | #define LV_ATTRIBUTE_IMG_CORRO07
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO07 uint8_t corro07_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcf, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xff, 0xff, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x03, 0xff, 0xff, 0xfe, 0xff, 0xef, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xff, 0xff, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7e, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro07 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro07_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro08.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO08
21 | #define LV_ATTRIBUTE_IMG_CORRO08
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO08 uint8_t corro08_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xaf, 0xcd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdc, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x03, 0xe0, 0x00, 0x41, 0xff, 0xff, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x0d, 0x70, 0x00, 0x85, 0xff, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xac, 0x00, 0x02, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x15, 0xd4, 0x00, 0x04, 0x0f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2b, 0xee, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x37, 0xb5, 0x00, 0x00, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0x2b, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x15, 0xd7, 0x00, 0x1a, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2a, 0xab, 0x00, 0x02, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x35, 0x55, 0x00, 0x00, 0x3e, 0xff, 0xff, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xab, 0x00, 0x01, 0x03, 0xff, 0xff, 0xdb, 0x7f, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x35, 0xd5, 0x00, 0x00, 0x00, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xeb, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x17, 0xb6, 0x00, 0x02, 0xef, 0xff, 0xff, 0x9f, 0x3f, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0b, 0x2c, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x15, 0xd8, 0x00, 0x00, 0x07, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xa8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xdb, 0x7f, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x15, 0x78, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xb0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x34, 0x3f, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xdf, 0x9f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xab, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe5, 0xa3, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xb3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro08 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro08_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro09.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO09
21 | #define LV_ATTRIBUTE_IMG_CORRO09
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO09 uint8_t corro09_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0xff, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcf, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x2e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x02, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x6e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7f, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro09 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro09_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro10.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO10
21 | #define LV_ATTRIBUTE_IMG_CORRO10
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO10 uint8_t corro10_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xaf, 0xcd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdc, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x03, 0xe0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x0d, 0x70, 0x00, 0x85, 0xff, 0xff, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xac, 0x00, 0x02, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x15, 0xd4, 0x00, 0x04, 0x0f, 0xbf, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2b, 0xee, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x37, 0xb5, 0x00, 0x00, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0x2b, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x15, 0xd7, 0x00, 0x1e, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2a, 0xab, 0x00, 0x02, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x35, 0x55, 0x00, 0x00, 0x2f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xab, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x35, 0xd5, 0x00, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xeb, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x17, 0xb6, 0x00, 0x03, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0b, 0x2c, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x15, 0xd8, 0x00, 0x00, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xa8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x15, 0x78, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xb0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x34, 0x3f, 0xff, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xdf, 0x9f, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xab, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe5, 0xa3, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xb3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro10 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro10_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro11.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO11
21 | #define LV_ATTRIBUTE_IMG_CORRO11
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO11 uint8_t corro11_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xad, 0xcd, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0x9f, 0xff, 0xff, 0xed, 0xbf, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x07, 0xc0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xef, 0xbf, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x1a, 0xe0, 0x00, 0x85, 0xff, 0xff, 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x35, 0x58, 0x00, 0x02, 0xc3, 0xff, 0xff, 0xed, 0xbf, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x2b, 0xa8, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x57, 0xdc, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x6f, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x56, 0x56, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x2b, 0xae, 0x00, 0x1e, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0x56, 0x00, 0x02, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x6a, 0xaa, 0x00, 0x00, 0x3f, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x56, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x6b, 0xaa, 0x00, 0x00, 0x01, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x57, 0xd6, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2f, 0x6c, 0x00, 0x03, 0xfe, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x16, 0x58, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x2b, 0xb0, 0x00, 0x00, 0x01, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x35, 0x50, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x2a, 0xf0, 0x00, 0x00, 0x7f, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x60, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x07, 0x80, 0x00, 0x00, 0x1f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0xc7, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x7f, 0xff, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xbf, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x74, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0xbb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xaa, 0x1d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xa5, 0xa3, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xa7, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xa7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro11 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro11_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchincart/corro12.c:
--------------------------------------------------------------------------------
1 | #ifdef __has_include
2 | #if __has_include("lvgl.h")
3 | #ifndef LV_LVGL_H_INCLUDE_SIMPLE
4 | #define LV_LVGL_H_INCLUDE_SIMPLE
5 | #endif
6 | #endif
7 | #endif
8 |
9 | #if defined(LV_LVGL_H_INCLUDE_SIMPLE)
10 | #include "lvgl.h"
11 | #else
12 | #include "lvgl/lvgl.h"
13 | #endif
14 |
15 |
16 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
17 | #define LV_ATTRIBUTE_MEM_ALIGN
18 | #endif
19 |
20 | #ifndef LV_ATTRIBUTE_IMG_CORRO12
21 | #define LV_ATTRIBUTE_IMG_CORRO12
22 | #endif
23 |
24 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_CORRO12 uint8_t corro12_map[] = {
25 | 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/
26 | 0x06, 0x06, 0x06, 0xff, /*Color of index 1*/
27 |
28 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
29 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
30 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
31 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
32 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
33 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xaf, 0xcd, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
34 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xdc, 0x76, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
35 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xed, 0xd0, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
36 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0x50, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
37 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe9, 0x10, 0x09, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
38 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0x22, 0x19, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
39 | 0xff, 0xff, 0xff, 0xee, 0xee, 0xc0, 0x02, 0x12, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
40 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x02, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
41 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0xc0, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
42 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x43, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
43 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
44 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
45 | 0xff, 0xff, 0xff, 0xbb, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
46 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
47 | 0xff, 0xff, 0xff, 0xee, 0xee, 0x03, 0xe0, 0x00, 0x41, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
48 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xa0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
49 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x0d, 0x70, 0x00, 0x85, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
50 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xac, 0x00, 0x02, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
51 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x15, 0xd4, 0x00, 0x04, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
52 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2b, 0xee, 0x00, 0x20, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
53 | 0xff, 0xff, 0xff, 0xfb, 0xbe, 0x37, 0xb5, 0x00, 0x00, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
54 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0x2b, 0x00, 0x01, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
55 | 0xff, 0xff, 0xff, 0xfe, 0xec, 0x15, 0xd7, 0x00, 0x1e, 0xff, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
56 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x2a, 0xab, 0x00, 0x02, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
57 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x35, 0x55, 0x00, 0x00, 0x3f, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
58 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xab, 0x00, 0x01, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
59 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x35, 0xd5, 0x00, 0x00, 0x00, 0xbf, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
60 | 0xff, 0xff, 0xff, 0xff, 0xfc, 0x2b, 0xeb, 0x00, 0x3e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
61 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x17, 0xb6, 0x00, 0x03, 0xff, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
62 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0b, 0x2c, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
63 | 0xff, 0xff, 0xfe, 0xee, 0xec, 0x15, 0xd8, 0x00, 0x00, 0x07, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
64 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1a, 0xa8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
65 | 0xff, 0xff, 0xff, 0xbb, 0xbe, 0x15, 0x78, 0x00, 0x00, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
66 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xb0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
67 | 0xff, 0xff, 0xfe, 0xee, 0xef, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
68 | 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
69 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
70 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
71 | 0xff, 0xff, 0xff, 0xfe, 0xee, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
72 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
73 | 0xff, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, 0x01, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
74 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x08, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
75 | 0xff, 0xff, 0xff, 0xfe, 0xef, 0x00, 0x00, 0x03, 0x24, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
76 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x9b, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
77 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x08, 0x4d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
78 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x04, 0x26, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
79 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x00, 0x00, 0x02, 0x17, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
80 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x4b, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
81 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
82 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x34, 0x3f, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xf0,
83 | 0xff, 0xff, 0xff, 0xee, 0xef, 0x80, 0x04, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
84 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x04, 0x04, 0xdf, 0x9f, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xf0,
85 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0x84, 0x0d, 0x32, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
86 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x08, 0x39, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
87 | 0xff, 0xff, 0xff, 0xee, 0xef, 0xa1, 0x2a, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
88 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xa5, 0xab, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
89 | 0xff, 0xff, 0xff, 0xfb, 0xbb, 0xe5, 0xa3, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
90 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xb3, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
91 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xe7, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
92 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
93 | 0xff, 0xff, 0xff, 0xff, 0xbb, 0xe7, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
94 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
95 | 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
96 | };
97 |
98 | const lv_img_dsc_t corro12 = {
99 | .header.cf = LV_IMG_CF_INDEXED_1BIT,
100 | .header.always_zero = 0,
101 | .header.reserved = 0,
102 | .header.w = 140,
103 | .header.h = 68,
104 | .data_size = 1232,
105 | .data = corro12_map,
106 | };
107 |
--------------------------------------------------------------------------------
/assets/urchinpngart/corro01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro01.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro02.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro03.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro04.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro05.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro06.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro07.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro08.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro09.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro10.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro11.png
--------------------------------------------------------------------------------
/assets/urchinpngart/corro12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GPeye/urchin-peripheral-animation/8b79464acfa8bb4c668e53049ad28b57889f2fe1/assets/urchinpngart/corro12.png
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | if(CONFIG_ZMK_DISPLAY AND CONFIG_NICE_VIEW_WIDGET_STATUS)
2 | zephyr_library_include_directories(${CMAKE_SOURCE_DIR}/include)
3 | zephyr_library_sources(custom_status_screen.c)
4 | zephyr_library_sources(widgets/bolt.c)
5 | zephyr_library_sources(widgets/util.c)
6 |
7 | if(NOT CONFIG_ZMK_SPLIT OR CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
8 | zephyr_library_sources(widgets/status.c)
9 | else()
10 | zephyr_library_sources(widgets/art.c)
11 | zephyr_library_sources(widgets/peripheral_status.c)
12 | endif()
13 | endif()
14 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/Kconfig.defconfig:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2023 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | if SHIELD_NICE_VIEW_CUSTOM
5 |
6 | config CUSTOM_ANIMATION_SPEED
7 | int "Total duration in milliseconds for animation to take"
8 | default 9600
9 |
10 | config LV_Z_VDB_SIZE
11 | default 100
12 |
13 | config LV_DPI_DEF
14 | default 161
15 |
16 | config LV_Z_BITS_PER_PIXEL
17 | default 1
18 |
19 | choice LV_COLOR_DEPTH
20 | default LV_COLOR_DEPTH_1
21 | endchoice
22 |
23 | choice ZMK_DISPLAY_WORK_QUEUE
24 | default ZMK_DISPLAY_WORK_QUEUE_DEDICATED
25 | endchoice
26 |
27 | choice ZMK_DISPLAY_STATUS_SCREEN
28 | default ZMK_DISPLAY_STATUS_SCREEN_CUSTOM
29 | endchoice
30 |
31 | config LV_Z_MEM_POOL_SIZE
32 | default 4096 if ZMK_DISPLAY_STATUS_SCREEN_CUSTOM
33 |
34 | config ZMK_DISPLAY_STATUS_SCREEN_CUSTOM
35 | imply NICE_VIEW_WIDGET_STATUS
36 |
37 | config NICE_VIEW_WIDGET_STATUS
38 | bool "Custom nice!view status widget"
39 | select LV_FONT_MONTSERRAT_16
40 | select LV_USE_IMG
41 | select LV_USE_CANVAS
42 | select LV_USE_ANIMIMG
43 | select LV_USE_ANIMATION
44 |
45 | config NICE_VIEW_WIDGET_INVERTED
46 | bool "Invert custom status widget colors"
47 |
48 | if !ZMK_SPLIT || ZMK_SPLIT_ROLE_CENTRAL
49 |
50 | config NICE_VIEW_WIDGET_STATUS
51 | select LV_FONT_MONTSERRAT_18
52 | select LV_FONT_MONTSERRAT_14
53 | select LV_FONT_UNSCII_8
54 | select ZMK_WPM
55 |
56 | endif # !ZMK_SPLIT || ZMK_SPLIT_ROLE_CENTRAL
57 |
58 | config ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN
59 | select LV_FONT_MONTSERRAT_26
60 |
61 | endif # SHIELD_NICE_VIEW
62 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/Kconfig.shield:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2022 The ZMK Contributors
2 | # SPDX-License-Identifier: MIT
3 |
4 | config SHIELD_NICE_VIEW_CUSTOM
5 | def_bool $(shields_list_contains,nice_view_custom)
6 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/README.md:
--------------------------------------------------------------------------------
1 | # A nice!view
2 |
3 | The nice!view is a low-power, high refresh rate display meant to replace I2C OLEDs traditionally used.
4 |
5 | This shield requires that an `&nice_view_spi` labeled SPI bus is provided with _at least_ MOSI, SCK, and CS pins defined.
6 |
7 | ## Disable custom widget
8 |
9 | The nice!view shield includes a custom vertical widget. To use the built-in ZMK one, add the following item to your `.conf` file:
10 |
11 | ```
12 | CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
13 | CONFIG_ZMK_LV_FONT_DEFAULT_SMALL_MONTSERRAT_26=y
14 | CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26=y
15 | ```
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/custom_status_screen.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include "widgets/status.h"
9 |
10 | #include
11 | LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
12 |
13 | #if IS_ENABLED(CONFIG_NICE_VIEW_WIDGET_STATUS)
14 | static struct zmk_widget_status status_widget;
15 | #endif
16 |
17 | lv_obj_t *zmk_display_status_screen() {
18 |
19 | lv_obj_t *screen;
20 | screen = lv_obj_create(NULL);
21 |
22 | #if IS_ENABLED(CONFIG_NICE_VIEW_WIDGET_STATUS)
23 | zmk_widget_status_init(&status_widget, screen);
24 | lv_obj_align(zmk_widget_status_obj(&status_widget), LV_ALIGN_TOP_LEFT, 0, 0);
25 | #endif
26 |
27 | return screen;
28 | }
29 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/nice_view_custom.conf:
--------------------------------------------------------------------------------
1 | # Enable nice!view
2 | CONFIG_ZMK_DISPLAY=y
3 | # Disable idle blanking
4 | CONFIG_ZMK_DISPLAY_BLANK_ON_IDLE=n
5 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/nice_view_custom.overlay:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2022 The ZMK Contributors
3 | *
4 | * SPDX-License-Identifier: MIT
5 | */
6 |
7 | &nice_view_spi {
8 | status = "okay";
9 | nice_view: ls0xx@0 {
10 | compatible = "sharp,ls0xx";
11 | spi-max-frequency = <1000000>;
12 | reg = <0>;
13 | width = <160>;
14 | height = <68>;
15 | };
16 | };
17 |
18 | / {
19 | chosen {
20 | zephyr,display = &nice_view;
21 | };
22 | };
23 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/nice_view_custom.zmk.yml:
--------------------------------------------------------------------------------
1 | file_format: "1"
2 | id: nice_view_custom
3 | name: nice!view_custom
4 | type: shield
5 | url: https://nicekeyboards.com/nice-view
6 | requires: [nice_view_header]
7 | features:
8 | - display
9 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/bolt.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 |
10 | #ifndef LV_ATTRIBUTE_MEM_ALIGN
11 | #define LV_ATTRIBUTE_MEM_ALIGN
12 | #endif
13 |
14 | #ifndef LV_ATTRIBUTE_IMG_BOLT
15 | #define LV_ATTRIBUTE_IMG_BOLT
16 | #endif
17 |
18 | const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_BOLT uint8_t bolt_map[] = {
19 | #if CONFIG_NICE_VIEW_WIDGET_INVERTED
20 | 0x00, 0x00, 0x00, 0x00, /*Color of index 0*/
21 | 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/
22 | 0xff, 0xff, 0xff, 0xff, /*Color of index 2*/
23 | 0x00, 0x00, 0x00, 0x00, /*Color of index 3*/
24 | #else
25 | 0x00, 0x00, 0x00, 0x00, /*Color of index 0*/
26 | 0xff, 0xff, 0xff, 0xff, /*Color of index 1*/
27 | 0x00, 0x00, 0x00, 0xff, /*Color of index 2*/
28 | 0x00, 0x00, 0x00, 0x00, /*Color of index 3*/
29 | #endif
30 |
31 | 0x00, 0x14, 0x00, 0x00, 0x64, 0x00, 0x00, 0x64, 0x00, 0x01, 0xa4, 0x00, 0x01, 0xa4,
32 | 0x00, 0x06, 0xa4, 0x00, 0x06, 0xa4, 0x00, 0x1a, 0xa5, 0x54, 0x1a, 0xaa, 0xa4, 0x6a,
33 | 0xaa, 0x90, 0x55, 0x6a, 0x90, 0x00, 0x6a, 0x40, 0x00, 0x6a, 0x40, 0x00, 0x69, 0x00,
34 | 0x00, 0x69, 0x00, 0x00, 0x64, 0x00, 0x00, 0x64, 0x00, 0x00, 0x50, 0x00,
35 | };
36 |
37 | const lv_img_dsc_t bolt = {
38 | .header.cf = LV_IMG_CF_INDEXED_2BIT,
39 | .header.always_zero = 0,
40 | .header.reserved = 0,
41 | .header.w = 11,
42 | .header.h = 18,
43 | .data_size = 70,
44 | .data = bolt_map,
45 | };
46 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/peripheral_status.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 | #include
10 |
11 | #include
12 | LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
13 |
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 |
24 | #include "peripheral_status.h"
25 |
26 | LV_IMG_DECLARE(corro01);
27 | LV_IMG_DECLARE(corro02);
28 | LV_IMG_DECLARE(corro03);
29 | LV_IMG_DECLARE(corro04);
30 | LV_IMG_DECLARE(corro05);
31 | LV_IMG_DECLARE(corro06);
32 | LV_IMG_DECLARE(corro07);
33 | LV_IMG_DECLARE(corro08);
34 | LV_IMG_DECLARE(corro09);
35 | LV_IMG_DECLARE(corro10);
36 | LV_IMG_DECLARE(corro11);
37 | LV_IMG_DECLARE(corro12);
38 |
39 | const lv_img_dsc_t *anim_imgs[] = {
40 | &corro01,
41 | &corro02,
42 | &corro03,
43 | &corro04,
44 | &corro05,
45 | &corro06,
46 | &corro07,
47 | &corro08,
48 | &corro09,
49 | &corro10,
50 | &corro11,
51 | &corro12,
52 | };
53 |
54 | static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
55 |
56 | struct peripheral_status_state {
57 | bool connected;
58 | };
59 |
60 | static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_state *state) {
61 | lv_obj_t *canvas = lv_obj_get_child(widget, 0);
62 |
63 | lv_draw_label_dsc_t label_dsc;
64 | init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_16, LV_TEXT_ALIGN_RIGHT);
65 | lv_draw_rect_dsc_t rect_black_dsc;
66 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
67 |
68 | // Fill background
69 | lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
70 |
71 | // Draw battery
72 | draw_battery(canvas, state);
73 |
74 | // Draw output status
75 | lv_canvas_draw_text(canvas, 0, 0, CANVAS_SIZE, &label_dsc,
76 | state->connected ? LV_SYMBOL_WIFI : LV_SYMBOL_CLOSE);
77 |
78 | // Rotate canvas
79 | rotate_canvas(canvas, cbuf);
80 | }
81 |
82 | static void set_battery_status(struct zmk_widget_status *widget,
83 | struct battery_status_state state) {
84 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
85 | widget->state.charging = state.usb_present;
86 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
87 |
88 | widget->state.battery = state.level;
89 |
90 | draw_top(widget->obj, widget->cbuf, &widget->state);
91 | }
92 |
93 | static void battery_status_update_cb(struct battery_status_state state) {
94 | struct zmk_widget_status *widget;
95 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_battery_status(widget, state); }
96 | }
97 |
98 | static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
99 | return (struct battery_status_state) {
100 | .level = zmk_battery_state_of_charge(),
101 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
102 | .usb_present = zmk_usb_is_powered(),
103 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
104 | };
105 | }
106 |
107 | ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
108 | battery_status_update_cb, battery_status_get_state)
109 |
110 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
111 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
112 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
113 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
114 |
115 | static struct peripheral_status_state get_state(const zmk_event_t *_eh) {
116 | return (struct peripheral_status_state){.connected = zmk_split_bt_peripheral_is_connected()};
117 | }
118 |
119 | static void set_connection_status(struct zmk_widget_status *widget,
120 | struct peripheral_status_state state) {
121 | widget->state.connected = state.connected;
122 |
123 | draw_top(widget->obj, widget->cbuf, &widget->state);
124 | }
125 |
126 | static void output_status_update_cb(struct peripheral_status_state state) {
127 | struct zmk_widget_status *widget;
128 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_connection_status(widget, state); }
129 | }
130 |
131 | ZMK_DISPLAY_WIDGET_LISTENER(widget_peripheral_status, struct peripheral_status_state,
132 | output_status_update_cb, get_state)
133 | ZMK_SUBSCRIPTION(widget_peripheral_status, zmk_split_peripheral_status_changed);
134 |
135 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
136 | widget->obj = lv_obj_create(parent);
137 | lv_obj_set_size(widget->obj, 160, 68);
138 | lv_obj_t *top = lv_canvas_create(widget->obj);
139 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
140 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
141 |
142 | //lv_obj_t *art = lv_img_create(widget->obj);
143 | //bool random = sys_rand32_get() & 1;
144 | //lv_img_set_src(art, random ? &balloon : &mountain);
145 | //lv_img_set_src(art, &corro01);
146 |
147 | lv_obj_t * art = lv_animimg_create(widget->obj); //<--
148 | lv_obj_center(art); //<--
149 | lv_animimg_set_src(art, (const void **) anim_imgs, 12); //<--
150 | lv_animimg_set_duration(art, CONFIG_CUSTOM_ANIMATION_SPEED);//<--
151 | lv_animimg_set_repeat_count(art, LV_ANIM_REPEAT_INFINITE); //<--
152 | lv_animimg_start(art); //<--
153 |
154 | lv_obj_align(art, LV_ALIGN_TOP_LEFT, 0, 0);
155 | sys_slist_append(&widgets, &widget->node);
156 | widget_battery_status_init();
157 | widget_peripheral_status_init();
158 |
159 | return 0;
160 | }
161 |
162 | lv_obj_t *zmk_widget_status_obj(struct zmk_widget_status *widget) { return widget->obj; }
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/peripheral_status.h:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #pragma once
9 |
10 | #include
11 | #include
12 | #include "util.h"
13 |
14 | struct zmk_widget_status {
15 | sys_snode_t node;
16 | lv_obj_t *obj;
17 | lv_color_t cbuf[CANVAS_SIZE * CANVAS_SIZE];
18 | struct status_state state;
19 | };
20 |
21 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent);
22 | lv_obj_t *zmk_widget_status_obj(struct zmk_widget_status *widget);
23 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/status.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 |
10 | #include
11 | LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
12 |
13 | #include
14 | #include
15 | #include "status.h"
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 | #include
28 |
29 | static sys_slist_t widgets = SYS_SLIST_STATIC_INIT(&widgets);
30 |
31 | struct output_status_state {
32 | struct zmk_endpoint_instance selected_endpoint;
33 | int active_profile_index;
34 | bool active_profile_connected;
35 | bool active_profile_bonded;
36 | };
37 |
38 | struct layer_status_state {
39 | uint8_t index;
40 | const char *label;
41 | };
42 |
43 | struct wpm_status_state {
44 | uint8_t wpm;
45 | };
46 |
47 | static void draw_top(lv_obj_t *widget, lv_color_t cbuf[], const struct status_state *state) {
48 | lv_obj_t *canvas = lv_obj_get_child(widget, 0);
49 |
50 | lv_draw_label_dsc_t label_dsc;
51 | init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_16, LV_TEXT_ALIGN_RIGHT);
52 | lv_draw_label_dsc_t label_dsc_wpm;
53 | init_label_dsc(&label_dsc_wpm, LVGL_FOREGROUND, &lv_font_unscii_8, LV_TEXT_ALIGN_RIGHT);
54 | lv_draw_rect_dsc_t rect_black_dsc;
55 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
56 | lv_draw_rect_dsc_t rect_white_dsc;
57 | init_rect_dsc(&rect_white_dsc, LVGL_FOREGROUND);
58 | lv_draw_line_dsc_t line_dsc;
59 | init_line_dsc(&line_dsc, LVGL_FOREGROUND, 1);
60 |
61 | // Fill background
62 | lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
63 |
64 | // Draw battery
65 | draw_battery(canvas, state);
66 |
67 | // Draw output status
68 | char output_text[10] = {};
69 |
70 | switch (state->selected_endpoint.transport) {
71 | case ZMK_TRANSPORT_USB:
72 | strcat(output_text, LV_SYMBOL_USB);
73 | break;
74 | case ZMK_TRANSPORT_BLE:
75 | if (state->active_profile_bonded) {
76 | if (state->active_profile_connected) {
77 | strcat(output_text, LV_SYMBOL_WIFI);
78 | } else {
79 | strcat(output_text, LV_SYMBOL_CLOSE);
80 | }
81 | } else {
82 | strcat(output_text, LV_SYMBOL_SETTINGS);
83 | }
84 | break;
85 | }
86 |
87 | lv_canvas_draw_text(canvas, 0, 0, CANVAS_SIZE, &label_dsc, output_text);
88 |
89 | // Draw WPM
90 | lv_canvas_draw_rect(canvas, 0, 21, 68, 42, &rect_white_dsc);
91 | lv_canvas_draw_rect(canvas, 1, 22, 66, 40, &rect_black_dsc);
92 |
93 | char wpm_text[6] = {};
94 | snprintf(wpm_text, sizeof(wpm_text), "%d", state->wpm[9]);
95 | lv_canvas_draw_text(canvas, 42, 52, 24, &label_dsc_wpm, wpm_text);
96 |
97 | int max = 0;
98 | int min = 256;
99 |
100 | for (int i = 0; i < 10; i++) {
101 | if (state->wpm[i] > max) {
102 | max = state->wpm[i];
103 | }
104 | if (state->wpm[i] < min) {
105 | min = state->wpm[i];
106 | }
107 | }
108 |
109 | int range = max - min;
110 | if (range == 0) {
111 | range = 1;
112 | }
113 |
114 | lv_point_t points[10];
115 | for (int i = 0; i < 10; i++) {
116 | points[i].x = 2 + i * 7;
117 | points[i].y = 60 - (state->wpm[i] - min) * 36 / range;
118 | }
119 | lv_canvas_draw_line(canvas, points, 10, &line_dsc);
120 |
121 | // Rotate canvas
122 | rotate_canvas(canvas, cbuf);
123 | }
124 |
125 | static void draw_middle(lv_obj_t *widget, lv_color_t cbuf[], const struct status_state *state) {
126 | lv_obj_t *canvas = lv_obj_get_child(widget, 1);
127 |
128 | lv_draw_rect_dsc_t rect_black_dsc;
129 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
130 | lv_draw_rect_dsc_t rect_white_dsc;
131 | init_rect_dsc(&rect_white_dsc, LVGL_FOREGROUND);
132 | lv_draw_arc_dsc_t arc_dsc;
133 | init_arc_dsc(&arc_dsc, LVGL_FOREGROUND, 2);
134 | lv_draw_arc_dsc_t arc_dsc_filled;
135 | init_arc_dsc(&arc_dsc_filled, LVGL_FOREGROUND, 9);
136 | lv_draw_label_dsc_t label_dsc;
137 | init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_18, LV_TEXT_ALIGN_CENTER);
138 | lv_draw_label_dsc_t label_dsc_black;
139 | init_label_dsc(&label_dsc_black, LVGL_BACKGROUND, &lv_font_montserrat_18, LV_TEXT_ALIGN_CENTER);
140 |
141 | // Fill background
142 | lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
143 |
144 | // Draw circles
145 | int circle_offsets[5][2] = {
146 | {13, 13}, {55, 13}, {34, 34}, {13, 55}, {55, 55},
147 | };
148 |
149 | for (int i = 0; i < 5; i++) {
150 | bool selected = i == state->active_profile_index;
151 |
152 | lv_canvas_draw_arc(canvas, circle_offsets[i][0], circle_offsets[i][1], 13, 0, 360,
153 | &arc_dsc);
154 |
155 | if (selected) {
156 | lv_canvas_draw_arc(canvas, circle_offsets[i][0], circle_offsets[i][1], 9, 0, 359,
157 | &arc_dsc_filled);
158 | }
159 |
160 | char label[2];
161 | snprintf(label, sizeof(label), "%d", i + 1);
162 | lv_canvas_draw_text(canvas, circle_offsets[i][0] - 8, circle_offsets[i][1] - 10, 16,
163 | (selected ? &label_dsc_black : &label_dsc), label);
164 | }
165 |
166 | // Rotate canvas
167 | rotate_canvas(canvas, cbuf);
168 | }
169 |
170 | static void draw_bottom(lv_obj_t *widget, lv_color_t cbuf[], const struct status_state *state) {
171 | lv_obj_t *canvas = lv_obj_get_child(widget, 2);
172 |
173 | lv_draw_rect_dsc_t rect_black_dsc;
174 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
175 | lv_draw_label_dsc_t label_dsc;
176 | init_label_dsc(&label_dsc, LVGL_FOREGROUND, &lv_font_montserrat_14, LV_TEXT_ALIGN_CENTER);
177 |
178 | // Fill background
179 | lv_canvas_draw_rect(canvas, 0, 0, CANVAS_SIZE, CANVAS_SIZE, &rect_black_dsc);
180 |
181 | // Draw layer
182 | if (state->layer_label == NULL) {
183 | char text[10] = {};
184 |
185 | sprintf(text, "LAYER %i", state->layer_index);
186 |
187 | lv_canvas_draw_text(canvas, 0, 5, 68, &label_dsc, text);
188 | } else {
189 | lv_canvas_draw_text(canvas, 0, 5, 68, &label_dsc, state->layer_label);
190 | }
191 |
192 | // Rotate canvas
193 | rotate_canvas(canvas, cbuf);
194 | }
195 |
196 | static void set_battery_status(struct zmk_widget_status *widget,
197 | struct battery_status_state state) {
198 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
199 | widget->state.charging = state.usb_present;
200 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
201 |
202 | widget->state.battery = state.level;
203 |
204 | draw_top(widget->obj, widget->cbuf, &widget->state);
205 | }
206 |
207 | static void battery_status_update_cb(struct battery_status_state state) {
208 | struct zmk_widget_status *widget;
209 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_battery_status(widget, state); }
210 | }
211 |
212 | static struct battery_status_state battery_status_get_state(const zmk_event_t *eh) {
213 | const struct zmk_battery_state_changed *ev = as_zmk_battery_state_changed(eh);
214 |
215 | return (struct battery_status_state) {
216 | .level = (ev != NULL) ? ev->state_of_charge : zmk_battery_state_of_charge(),
217 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
218 | .usb_present = zmk_usb_is_powered(),
219 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
220 | };
221 | }
222 |
223 | ZMK_DISPLAY_WIDGET_LISTENER(widget_battery_status, struct battery_status_state,
224 | battery_status_update_cb, battery_status_get_state)
225 |
226 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_battery_state_changed);
227 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
228 | ZMK_SUBSCRIPTION(widget_battery_status, zmk_usb_conn_state_changed);
229 | #endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
230 |
231 | static void set_output_status(struct zmk_widget_status *widget,
232 | const struct output_status_state *state) {
233 | widget->state.selected_endpoint = state->selected_endpoint;
234 | widget->state.active_profile_index = state->active_profile_index;
235 | widget->state.active_profile_connected = state->active_profile_connected;
236 | widget->state.active_profile_bonded = state->active_profile_bonded;
237 |
238 | draw_top(widget->obj, widget->cbuf, &widget->state);
239 | draw_middle(widget->obj, widget->cbuf2, &widget->state);
240 | }
241 |
242 | static void output_status_update_cb(struct output_status_state state) {
243 | struct zmk_widget_status *widget;
244 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_output_status(widget, &state); }
245 | }
246 |
247 | static struct output_status_state output_status_get_state(const zmk_event_t *_eh) {
248 | return (struct output_status_state){
249 | .selected_endpoint = zmk_endpoints_selected(),
250 | .active_profile_index = zmk_ble_active_profile_index(),
251 | .active_profile_connected = zmk_ble_active_profile_is_connected(),
252 | .active_profile_bonded = !zmk_ble_active_profile_is_open(),
253 | };
254 | }
255 |
256 | ZMK_DISPLAY_WIDGET_LISTENER(widget_output_status, struct output_status_state,
257 | output_status_update_cb, output_status_get_state)
258 | ZMK_SUBSCRIPTION(widget_output_status, zmk_endpoint_changed);
259 |
260 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
261 | ZMK_SUBSCRIPTION(widget_output_status, zmk_usb_conn_state_changed);
262 | #endif
263 | #if defined(CONFIG_ZMK_BLE)
264 | ZMK_SUBSCRIPTION(widget_output_status, zmk_ble_active_profile_changed);
265 | #endif
266 |
267 | static void set_layer_status(struct zmk_widget_status *widget, struct layer_status_state state) {
268 | widget->state.layer_index = state.index;
269 | widget->state.layer_label = state.label;
270 |
271 | draw_bottom(widget->obj, widget->cbuf3, &widget->state);
272 | }
273 |
274 | static void layer_status_update_cb(struct layer_status_state state) {
275 | struct zmk_widget_status *widget;
276 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_layer_status(widget, state); }
277 | }
278 |
279 | static struct layer_status_state layer_status_get_state(const zmk_event_t *eh) {
280 | uint8_t index = zmk_keymap_highest_layer_active();
281 | return (struct layer_status_state){.index = index, .label = zmk_keymap_layer_name(index)};
282 | }
283 |
284 | ZMK_DISPLAY_WIDGET_LISTENER(widget_layer_status, struct layer_status_state, layer_status_update_cb,
285 | layer_status_get_state)
286 |
287 | ZMK_SUBSCRIPTION(widget_layer_status, zmk_layer_state_changed);
288 |
289 | static void set_wpm_status(struct zmk_widget_status *widget, struct wpm_status_state state) {
290 | for (int i = 0; i < 9; i++) {
291 | widget->state.wpm[i] = widget->state.wpm[i + 1];
292 | }
293 | widget->state.wpm[9] = state.wpm;
294 |
295 | draw_top(widget->obj, widget->cbuf, &widget->state);
296 | }
297 |
298 | static void wpm_status_update_cb(struct wpm_status_state state) {
299 | struct zmk_widget_status *widget;
300 | SYS_SLIST_FOR_EACH_CONTAINER(&widgets, widget, node) { set_wpm_status(widget, state); }
301 | }
302 |
303 | struct wpm_status_state wpm_status_get_state(const zmk_event_t *eh) {
304 | return (struct wpm_status_state){.wpm = zmk_wpm_get_state()};
305 | };
306 |
307 | ZMK_DISPLAY_WIDGET_LISTENER(widget_wpm_status, struct wpm_status_state, wpm_status_update_cb,
308 | wpm_status_get_state)
309 | ZMK_SUBSCRIPTION(widget_wpm_status, zmk_wpm_state_changed);
310 |
311 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent) {
312 | widget->obj = lv_obj_create(parent);
313 | lv_obj_set_size(widget->obj, 160, 68);
314 | lv_obj_t *top = lv_canvas_create(widget->obj);
315 | lv_obj_align(top, LV_ALIGN_TOP_RIGHT, 0, 0);
316 | lv_canvas_set_buffer(top, widget->cbuf, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
317 | lv_obj_t *middle = lv_canvas_create(widget->obj);
318 | lv_obj_align(middle, LV_ALIGN_TOP_LEFT, 24, 0);
319 | lv_canvas_set_buffer(middle, widget->cbuf2, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
320 | lv_obj_t *bottom = lv_canvas_create(widget->obj);
321 | lv_obj_align(bottom, LV_ALIGN_TOP_LEFT, -44, 0);
322 | lv_canvas_set_buffer(bottom, widget->cbuf3, CANVAS_SIZE, CANVAS_SIZE, LV_IMG_CF_TRUE_COLOR);
323 |
324 | sys_slist_append(&widgets, &widget->node);
325 | widget_battery_status_init();
326 | widget_output_status_init();
327 | widget_layer_status_init();
328 | widget_wpm_status_init();
329 |
330 | return 0;
331 | }
332 |
333 | lv_obj_t *zmk_widget_status_obj(struct zmk_widget_status *widget) { return widget->obj; }
334 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/status.h:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #pragma once
9 |
10 | #include
11 | #include
12 | #include "util.h"
13 |
14 | struct zmk_widget_status {
15 | sys_snode_t node;
16 | lv_obj_t *obj;
17 | lv_color_t cbuf[CANVAS_SIZE * CANVAS_SIZE];
18 | lv_color_t cbuf2[CANVAS_SIZE * CANVAS_SIZE];
19 | lv_color_t cbuf3[CANVAS_SIZE * CANVAS_SIZE];
20 | struct status_state state;
21 | };
22 |
23 | int zmk_widget_status_init(struct zmk_widget_status *widget, lv_obj_t *parent);
24 | lv_obj_t *zmk_widget_status_obj(struct zmk_widget_status *widget);
25 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/util.c:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 | #include "util.h"
10 |
11 | LV_IMG_DECLARE(bolt);
12 |
13 | void rotate_canvas(lv_obj_t *canvas, lv_color_t cbuf[]) {
14 | static lv_color_t cbuf_tmp[CANVAS_SIZE * CANVAS_SIZE];
15 | memcpy(cbuf_tmp, cbuf, sizeof(cbuf_tmp));
16 | lv_img_dsc_t img;
17 | img.data = (void *)cbuf_tmp;
18 | img.header.cf = LV_IMG_CF_TRUE_COLOR;
19 | img.header.w = CANVAS_SIZE;
20 | img.header.h = CANVAS_SIZE;
21 |
22 | lv_canvas_fill_bg(canvas, LVGL_BACKGROUND, LV_OPA_COVER);
23 | lv_canvas_transform(canvas, &img, 900, LV_IMG_ZOOM_NONE, -1, 0, CANVAS_SIZE / 2,
24 | CANVAS_SIZE / 2, true);
25 | }
26 |
27 | void draw_battery(lv_obj_t *canvas, const struct status_state *state) {
28 | lv_draw_rect_dsc_t rect_black_dsc;
29 | init_rect_dsc(&rect_black_dsc, LVGL_BACKGROUND);
30 | lv_draw_rect_dsc_t rect_white_dsc;
31 | init_rect_dsc(&rect_white_dsc, LVGL_FOREGROUND);
32 |
33 | lv_canvas_draw_rect(canvas, 0, 2, 29, 12, &rect_white_dsc);
34 | lv_canvas_draw_rect(canvas, 1, 3, 27, 10, &rect_black_dsc);
35 | lv_canvas_draw_rect(canvas, 2, 4, (state->battery + 2) / 4, 8, &rect_white_dsc);
36 | lv_canvas_draw_rect(canvas, 30, 5, 3, 6, &rect_white_dsc);
37 | lv_canvas_draw_rect(canvas, 31, 6, 1, 4, &rect_black_dsc);
38 |
39 | if (state->charging) {
40 | lv_draw_img_dsc_t img_dsc;
41 | lv_draw_img_dsc_init(&img_dsc);
42 | lv_canvas_draw_img(canvas, 9, -1, &bolt, &img_dsc);
43 | }
44 | }
45 |
46 | void init_label_dsc(lv_draw_label_dsc_t *label_dsc, lv_color_t color, const lv_font_t *font,
47 | lv_text_align_t align) {
48 | lv_draw_label_dsc_init(label_dsc);
49 | label_dsc->color = color;
50 | label_dsc->font = font;
51 | label_dsc->align = align;
52 | }
53 |
54 | void init_rect_dsc(lv_draw_rect_dsc_t *rect_dsc, lv_color_t bg_color) {
55 | lv_draw_rect_dsc_init(rect_dsc);
56 | rect_dsc->bg_color = bg_color;
57 | }
58 |
59 | void init_line_dsc(lv_draw_line_dsc_t *line_dsc, lv_color_t color, uint8_t width) {
60 | lv_draw_line_dsc_init(line_dsc);
61 | line_dsc->color = color;
62 | line_dsc->width = width;
63 | }
64 |
65 | void init_arc_dsc(lv_draw_arc_dsc_t *arc_dsc, lv_color_t color, uint8_t width) {
66 | lv_draw_arc_dsc_init(arc_dsc);
67 | arc_dsc->color = color;
68 | arc_dsc->width = width;
69 | }
70 |
--------------------------------------------------------------------------------
/boards/shields/nice_view_custom/widgets/util.h:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright (c) 2023 The ZMK Contributors
4 | * SPDX-License-Identifier: MIT
5 | *
6 | */
7 |
8 | #include
9 | #include
10 |
11 | #define CANVAS_SIZE 68
12 |
13 | #define LVGL_BACKGROUND \
14 | IS_ENABLED(CONFIG_NICE_VIEW_WIDGET_INVERTED) ? lv_color_black() : lv_color_white()
15 | #define LVGL_FOREGROUND \
16 | IS_ENABLED(CONFIG_NICE_VIEW_WIDGET_INVERTED) ? lv_color_white() : lv_color_black()
17 |
18 | struct status_state {
19 | uint8_t battery;
20 | bool charging;
21 | #if !IS_ENABLED(CONFIG_ZMK_SPLIT) || IS_ENABLED(CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
22 | struct zmk_endpoint_instance selected_endpoint;
23 | int active_profile_index;
24 | bool active_profile_connected;
25 | bool active_profile_bonded;
26 | uint8_t layer_index;
27 | const char *layer_label;
28 | uint8_t wpm[10];
29 | #else
30 | bool connected;
31 | #endif
32 | };
33 |
34 | struct battery_status_state {
35 | uint8_t level;
36 | #if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
37 | bool usb_present;
38 | #endif
39 | };
40 |
41 | void rotate_canvas(lv_obj_t *canvas, lv_color_t cbuf[]);
42 | void draw_battery(lv_obj_t *canvas, const struct status_state *state);
43 | void init_label_dsc(lv_draw_label_dsc_t *label_dsc, lv_color_t color, const lv_font_t *font,
44 | lv_text_align_t align);
45 | void init_rect_dsc(lv_draw_rect_dsc_t *rect_dsc, lv_color_t bg_color);
46 | void init_line_dsc(lv_draw_line_dsc_t *line_dsc, lv_color_t color, uint8_t width);
47 | void init_arc_dsc(lv_draw_arc_dsc_t *arc_dsc, lv_color_t color, uint8_t width);
48 |
--------------------------------------------------------------------------------
/zephyr/module.yaml:
--------------------------------------------------------------------------------
1 | name: 'zmk-shield-nice!view-custom'
2 | build:
3 | settings:
4 | board_root: .
--------------------------------------------------------------------------------