You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

85 lines
1.7 KiB

/*
Digital VFO with Rotation Dial
File: dial.hpp
Author: JF3HZB / T.UEBO
Created on July 1, 2023
*/
#ifndef DIAL_H
#define DIAL_H
//#include "prm\ST7789_240x320.hpp"
//#include "prm\ST7789_240x240.hpp"
//#include "prm\ST7789_135x240.hpp"
#include "prm\ST7735S_128x160.hpp"
//#include "prm\ST7735S_80x160.hpp"
//#include "prm\ILI9341_240x320.hpp"
//#include "prm\SSD1331_64x96.hpp"
extern LGFX lcd;
extern LGFX_Sprite sp;
extern LGFX_Sprite sprites[2];
extern bool flip;
extern int sprite_height;
void LCD_setup(void);
class DIAL
{
private:
float resoSub; //[deg]
float resoMain; //[deg]
int32_t TickResoMain = freq_tick_main;
int32_t TickResoSub = freq_tick_sub;
int hoff = center_offset;
int voff = top_position;
float radiusMain;
float radiusSub;
public:
float tnMain = -TNCL_main;
float tnSub = -TNCL_sub;
float tickPitchMain = tick_pitch_main;
float tickPitchSub = tick_pitch_sub;
float tickWSub = tw_sub1;
float tick5WSub = tw_sub5;
float tick10WSub = tw_sub10;
float tickLSub = tl_sub1;
float tick5LSub = tl_sub5;
float tick10LSub = tl_sub10;
float tickWMain = tw_main1;
float tick5WMain = tw_main5;
float tick10WMain = tw_main10;
float tickLMain = tl_main1;
float tick5LMain = tl_main5;
float tick10LMain = tl_main10;
float LenPointer = DP_len;
float WidthPointer = DP_width;
DIAL()
{
#ifdef MAINDIAL_IS_OUTSIDE
radiusMain = dial_radius;
radiusSub = dial_radius - dial_space;
#else if
radiusSub = dial_radius;
radiusMain = dial_radius - dial_space;
#endif
resoMain = (180.0f/M_PI)*tickPitchMain/(float)radiusMain;
resoSub = (180.0f/M_PI)*tickPitchSub/(float)radiusSub;
}
void draw(int32_t freq, int yoff);
};
#endif /* DIAL_H */