161 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			161 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/*  -*-  mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; coding: utf-8  -*-  */
							 | 
						||
| 
								 | 
							
								/************************************************************************************
							 | 
						||
| 
								 | 
							
								 **                                                                                **
							 | 
						||
| 
								 | 
							
								 **                                        UHSDR                                   **
							 | 
						||
| 
								 | 
							
								 **               a powerful firmware for STM32 based SDR transceivers             **
							 | 
						||
| 
								 | 
							
								 **                                                                                **
							 | 
						||
| 
								 | 
							
								 **--------------------------------------------------------------------------------**
							 | 
						||
| 
								 | 
							
								 **                                                                                **
							 | 
						||
| 
								 | 
							
								 **  File name:		ui_lcd_layouts.h                                               **
							 | 
						||
| 
								 | 
							
								 **  Description:   Layout definitions header file                                 **
							 | 
						||
| 
								 | 
							
								 **  Licence:		GNU GPLv3                                                      **
							 | 
						||
| 
								 | 
							
								 **  Author: 		Slawomir Balon/SP9BSL                                          **
							 | 
						||
| 
								 | 
							
								 ************************************************************************************/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef UI_LCD_LAYOUTS_H_
							 | 
						||
| 
								 | 
							
								#define UI_LCD_LAYOUTS_H_
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define COL_SPECTRUM_GRAD					0x40
							 | 
						||
| 
								 | 
							
								#define Grid                RGB(COL_SPECTRUM_GRAD,COL_SPECTRUM_GRAD,COL_SPECTRUM_GRAD)      // COL_SPECTRUM_GRAD = 0x40
							 | 
						||
| 
								 | 
							
								#define WATERFALL_HEIGHT 70
							 | 
						||
| 
								 | 
							
								#define SPECTRUM_MAX_MARKER 3
							 | 
						||
| 
								 | 
							
								#define SPECTRUM_SCOPE_GRID_VERT_COUNT  8
							 | 
						||
| 
								 | 
							
								#define SPECTRUM_SCOPE_GRID_HORIZ 16
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//#define LEFTBOX_WIDTH 58 // used for the lower left side controls
							 | 
						||
| 
								 | 
							
								//#define LEFTBOX_ROW_H  (28)
							 | 
						||
| 
								 | 
							
								//#define LEFTBOX_ROW_2ND_OFF  (13)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define ENC_COL_W (37)
							 | 
						||
| 
								 | 
							
								#define ENC_ROW_H (30)
							 | 
						||
| 
								 | 
							
								#define ENC_ROW_2ND_OFF (14)
							 | 
						||
| 
								 | 
							
								#define Xspacing 5
							 | 
						||
| 
								 | 
							
								#define ui_txt_msg_buffer_size 51		//this defines the buffer size for text line in maximum possible configuration.
							 | 
						||
| 
								 | 
							
																		//Please adjust it to maximum value+1 of ts.Layout->TextMsg_buffer_max
							 | 
						||
| 
								 | 
							
								typedef enum
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    RESOLUTION_320_240,
							 | 
						||
| 
								 | 
							
								    RESOLUTION_480_320,
							 | 
						||
| 
								 | 
							
								    RESOLUTION_800_480
							 | 
						||
| 
								 | 
							
								} disp_resolution_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
								    uint16_t x;
							 | 
						||
| 
								 | 
							
								    uint16_t y;
							 | 
						||
| 
								 | 
							
								    uint16_t w;
							 | 
						||
| 
								 | 
							
								    uint16_t h;
							 | 
						||
| 
								 | 
							
								} UiArea_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									UiArea_t region;
							 | 
						||
| 
								 | 
							
									void (*function_short_press)();
							 | 
						||
| 
								 | 
							
									void (*function_long_press)();
							 | 
						||
| 
								 | 
							
								} touchaction_descr_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									const touchaction_descr_t* actions;
							 | 
						||
| 
								 | 
							
									int32_t size;
							 | 
						||
| 
								 | 
							
								} touchaction_list_descr_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    uint16_t x;
							 | 
						||
| 
								 | 
							
								    uint16_t y;
							 | 
						||
| 
								 | 
							
								} UiCoord_t ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
									UiCoord_t Size;					// Lcd dimension
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t StartUpScreen_START;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t SpectrumWindow;		// Definition of spectrum window parameters
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t TUNE_FREQ;			// Frequency display control
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									uint16_t TUNE_SPLIT_FREQ_X; 	//Shift with a small split to the right to close the frequency digits
							 | 
						||
| 
								 | 
							
									uint16_t TUNE_SPLIT_MARKER_X;
							 | 
						||
| 
								 | 
							
									uint16_t TUNE_SPLIT_FREQ_Y_TX;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t TUNE_SFREQ;			// Second frequency display control
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t BAND_MODE;			// Band selection control
							 | 
						||
| 
								 | 
							
									UiArea_t BAND_MODE_MASK;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t DEMOD_MODE_MASK;		// Demodulator mode control
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t AGC_MASK;				//AGC display mask
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t TUNE_STEP; 			// Tunning step control
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t BOTTOM_BAR;			// Bottom bar
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t ENCODER_IND;			// Encoder controls indicator
							 | 
						||
| 
								 | 
							
									uint8_t ENCODER_MODE;			//horizontal/vertical draw order
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t LEFTBOXES_IND;			// Lower DSP box
							 | 
						||
| 
								 | 
							
									uint16_t LEFTBOXES_ROW_2ND_OFF;
							 | 
						||
| 
								 | 
							
									uint8_t LEFTBOXES_MODE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t PW_IND;				// Power level
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiArea_t DIGMODE;				// Digimode item
							 | 
						||
| 
								 | 
							
									UiArea_t SM_IND;				// S meter position
							 | 
						||
| 
								 | 
							
									UiCoord_t PWR_IND;				// Supply Voltage indicator
							 | 
						||
| 
								 | 
							
									UiCoord_t TEMP_IND;				// Temperature Indicator
							 | 
						||
| 
								 | 
							
									UiCoord_t RTC_IND;				// RTC
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t CW_DECODER_WPM;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t TextMsgLine;			// coordinates for text line (CW decoder or freedv output)
							 | 
						||
| 
								 | 
							
									uint16_t TextMsg_buffer_max;	// Text message buffer size
							 | 
						||
| 
								 | 
							
									uint8_t  TextMsg_font;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t SNAP_CARRIER;		// central position of variable freq marker
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t PWR_NUM_IND;	// Location of numerical FWD/REV power indicator
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t FREEDV_SNR;	//freeDV coordinates for status display
							 | 
						||
| 
								 | 
							
									UiCoord_t FREEDV_BER;
							 | 
						||
| 
								 | 
							
									uint16_t FREEDV_FONT;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t DisplayDbm;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t MEMORYLABEL;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									uint16_t LOADANDDEBUG_Y;
							 | 
						||
| 
								 | 
							
									uint16_t DEBUG_X;
							 | 
						||
| 
								 | 
							
									uint16_t LOAD_X;
							 | 
						||
| 
								 | 
							
									uint16_t SpectrumWindowPadding;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									uint16_t MENUSIZE;				// number of menu items per page/screen
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									UiCoord_t MENU_IND;       	// X position of description of menu item being changed
							 | 
						||
| 
								 | 
							
									uint16_t MENU_CHANGE_X;     // Position of variable being changed
							 | 
						||
| 
								 | 
							
									uint16_t MENU_CURSOR_X;     // Position of cursor used to indicate selected item
							 | 
						||
| 
								 | 
							
									uint8_t MENU_TEXT_SIZE_MAX;	// One line maximum length
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									const touchaction_list_descr_t* touchaction_list;
							 | 
						||
| 
								 | 
							
								} LcdLayout;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum MODE_{
							 | 
						||
| 
								 | 
							
									MODE_VERTICAL=0,
							 | 
						||
| 
								 | 
							
									MODE_HORIZONTAL
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum LcdLayout_{
							 | 
						||
| 
								 | 
							
									LcdLayout_320x240=0,
							 | 
						||
| 
								 | 
							
									LcdLayout_480x320,
							 | 
						||
| 
								 | 
							
									LcdLayout_800x480,
							 | 
						||
| 
								 | 
							
									LcdLayout_320x240_ws,       // full wide panoram
							 | 
						||
| 
								 | 
							
									LcdLayoutsCount		//this is last position enumerated used for layout array definition. Insert new layout name before this one
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern const LcdLayout LcdLayouts[LcdLayoutsCount];
							 | 
						||
| 
								 | 
							
								extern disp_resolution_t disp_resolution;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* UI_LCD_LAYOUTS_H_ */
							 |