1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /*
- * Copyright (C) 2023 Daniele Lacamera <root@danielinux.net>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- #ifndef INC_UI_H
- #define INC_UI_H
- #include "task.h"
- #include <stdint.h>
- #define BLACK 0
- #define WHITE 15
- #define RED 1
- #define GREEN 2
- #define YELLOW 3
- #define BLUE 4
- #define PURPLE 5
- #define CYAN 6
- #define GREY 7
- #define BRIGHT(x) (x | 0x08)
- #define MAGENTA BRIGHT(PURPLE)
- #define BLOOD BRIGHT(RED)
- #define PINK 13
- #define ORANGE 220
- #define BROWN 94
- #define DARKRED 52
- #define DARKGREEN 22
- #define DARKBLUE 17
- #define DARKGREY 8
- extern int ui_selected_instrument;
- extern int ui_selected_sample;
- extern int ui_selected_octave;
- void ui_redraw(uint16_t ev);
- void ui_init(void);
- uint8_t ui_menu_is_on(void);
- void ui_menu(uint8_t onoff);
- void ui_image_at(int layer, const uint8_t *img, uint32_t x, uint32_t y, uint32_t size_x, uint32_t size_y);
- void ui_draw_h_segment(int layer, uint8_t color, uint32_t row, uint32_t start, uint32_t len);
- void ui_draw_v_segment(int layer, uint8_t color, uint32_t col, uint32_t start, uint32_t len);
- void ui_fill_area(int layer, uint8_t color, uint32_t x, uint32_t y, uint32_t x1, uint32_t y1);
- void ui_text_at(int layer, uint8_t color, uint32_t x, uint32_t y, char *text);
- void ui_selected_text_at(int layer, uint8_t color, uint8_t highlight, uint32_t x, uint32_t y, char *text);
- void ui_draw_blocks(void);
- void ui_draw_bpm(void);
- void ui_draw_pot(int layer, uint8_t color, int x, int y, char *name, uint16_t level);
- int ui_process_button_pressed(void);
- #define RK043FN48H_WIDTH ((uint16_t)480) /* LCD PIXEL WIDTH */
- #define RK043FN48H_HEIGHT ((uint16_t)272) /* LCD PIXEL HEIGHT */
- #define RK043FN48H_HSYNC ((uint16_t)41) /* Horizontal synchronization */
- #define RK043FN48H_HBP ((uint16_t)13) /* Horizontal back porch */
- #define RK043FN48H_HFP ((uint16_t)32) /* Horizontal front porch */
- #define RK043FN48H_VSYNC ((uint16_t)10) /* Vertical synchronization */
- #define RK043FN48H_VBP ((uint16_t)2) /* Vertical back porch */
- #define RK043FN48H_VFP ((uint16_t)2) /* Vertical front porch */
- #define RK043FN48H_FREQUENCY_DIVIDER 5 /* LCD Frequency divider */
- #define FB_WIDTH RK043FN48H_WIDTH
- #define FB_HEIGTH RK043FN48H_HEIGHT
- //#define FB_BPP (16) /* hardcoded RGB565 - 16 bits per pixel */
- #define FB_BPP (8) /* hardcoded CLUT256 - 8 bit per pixel */
- #define OVERLAY 0
- #define Screen_address 0xC0000000
- #define Overlay_address 0xC0200000
- #define xres FB_WIDTH
- #define yres FB_HEIGTH
- #define bits_per_pixel FB_BPP
- #define pixel_format LTDC_LxPFCR_L8
- #endif
|