mirror of
https://gitee.com/idea4good/GuiLite.git
synced 2025-06-07 23:57:20 +08:00
refactor wave ctrl
This commit is contained in:
parent
6213bdb1e8
commit
f6fbf66e58
@ -7,14 +7,6 @@ typedef enum
|
|||||||
SCAN_MODE
|
SCAN_MODE
|
||||||
}E_WAVE_DRAW_MODE;
|
}E_WAVE_DRAW_MODE;
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
ZOOM_025,
|
|
||||||
ZOOM_050,
|
|
||||||
ZOOM_100,
|
|
||||||
ZOOM_200
|
|
||||||
}E_WAVE_GAIN;
|
|
||||||
|
|
||||||
class c_wave_buffer;
|
class c_wave_buffer;
|
||||||
class c_wave_ctrl : public c_wnd
|
class c_wave_ctrl : public c_wnd
|
||||||
{
|
{
|
||||||
@ -36,8 +28,7 @@ public:
|
|||||||
void set_wave_in_out_rate(unsigned int data_rate, unsigned int refresh_rate);
|
void set_wave_in_out_rate(unsigned int data_rate, unsigned int refresh_rate);
|
||||||
void set_wave_speed(unsigned int speed);
|
void set_wave_speed(unsigned int speed);
|
||||||
|
|
||||||
void set_max_min_base(short max_data, short min_data, short data_base);
|
void set_max_min(short max_data, short min_data);
|
||||||
void set_wave_gain(E_WAVE_GAIN gain);
|
|
||||||
void set_wave(c_wave_buffer* wave){m_wave = wave;}
|
void set_wave(c_wave_buffer* wave){m_wave = wave;}
|
||||||
c_wave_buffer* get_wave(){return m_wave;}
|
c_wave_buffer* get_wave(){return m_wave;}
|
||||||
void clear_data();
|
void clear_data();
|
||||||
@ -69,8 +60,6 @@ protected:
|
|||||||
|
|
||||||
short m_max_data;
|
short m_max_data;
|
||||||
short m_min_data;
|
short m_min_data;
|
||||||
short m_pivot_data; //for wave gain and fill mode
|
|
||||||
E_WAVE_GAIN m_gain; //wave gain
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
c_wave_buffer* m_wave;
|
c_wave_buffer* m_wave;
|
||||||
|
@ -27,11 +27,9 @@ c_wave_ctrl::c_wave_ctrl()
|
|||||||
m_wave_name = m_wave_unit = 0;
|
m_wave_name = m_wave_unit = 0;
|
||||||
m_max_data = 500;
|
m_max_data = 500;
|
||||||
m_min_data = 0;
|
m_min_data = 0;
|
||||||
m_pivot_data = 250;
|
|
||||||
m_wave_speed = 4;
|
m_wave_speed = 4;
|
||||||
m_wave_data_rate = 0;
|
m_wave_data_rate = 0;
|
||||||
m_wave_refresh_rate = 1000;
|
m_wave_refresh_rate = 1000;
|
||||||
m_gain = ZOOM_100;
|
|
||||||
m_frame_len_map_index = 0;
|
m_frame_len_map_index = 0;
|
||||||
|
|
||||||
m_wave_name_color = m_wave_unit_color = m_wave_color = GL_RGB(255,0,0);
|
m_wave_name_color = m_wave_unit_color = m_wave_color = GL_RGB(255,0,0);
|
||||||
@ -52,16 +50,10 @@ void c_wave_ctrl::on_init_children()
|
|||||||
m_bg_fb = (unsigned int*)calloc(rect.Width() * rect.Height(), 4);
|
m_bg_fb = (unsigned int*)calloc(rect.Width() * rect.Height(), 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void c_wave_ctrl::set_max_min_base(short max_data, short min_data, short data_base)
|
void c_wave_ctrl::set_max_min(short max_data, short min_data)
|
||||||
{
|
{
|
||||||
m_max_data = max_data;
|
m_max_data = max_data;
|
||||||
m_min_data = min_data;
|
m_min_data = min_data;
|
||||||
m_pivot_data = data_base;
|
|
||||||
}
|
|
||||||
|
|
||||||
void c_wave_ctrl::set_wave_gain(E_WAVE_GAIN gain)
|
|
||||||
{
|
|
||||||
m_gain = gain;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void c_wave_ctrl::set_wave_in_out_rate(unsigned int data_rate, unsigned int refresh_rate)
|
void c_wave_ctrl::set_wave_in_out_rate(unsigned int data_rate, unsigned int refresh_rate)
|
||||||
@ -132,36 +124,15 @@ void c_wave_ctrl::refresh_wave(unsigned char frame)
|
|||||||
m_frame_len_map[m_frame_len_map_index++],
|
m_frame_len_map[m_frame_len_map_index++],
|
||||||
(frame | (offset << 8)));
|
(frame | (offset << 8)));
|
||||||
m_frame_len_map_index %= sizeof(m_frame_len_map);
|
m_frame_len_map_index %= sizeof(m_frame_len_map);
|
||||||
//gain
|
|
||||||
switch(m_gain)
|
|
||||||
{
|
|
||||||
case ZOOM_025:
|
|
||||||
mid = ((mid - m_pivot_data) >> 2) + m_pivot_data;
|
|
||||||
max = ((max - m_pivot_data) >> 2) + m_pivot_data;
|
|
||||||
min = ((min - m_pivot_data) >> 2) + m_pivot_data;
|
|
||||||
break;
|
|
||||||
case ZOOM_050:
|
|
||||||
mid = ((mid - m_pivot_data) >> 1) + m_pivot_data;
|
|
||||||
max = ((max - m_pivot_data) >> 1) + m_pivot_data;
|
|
||||||
min = ((min - m_pivot_data) >> 1) + m_pivot_data;
|
|
||||||
break;
|
|
||||||
case ZOOM_200:
|
|
||||||
mid = ((mid - m_pivot_data) << 1) + m_pivot_data;
|
|
||||||
max = ((max - m_pivot_data) << 1) + m_pivot_data;
|
|
||||||
min = ((min - m_pivot_data) << 1) + m_pivot_data;
|
|
||||||
break;
|
|
||||||
case ZOOM_100:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//map to wave ctrl
|
//map to wave ctrl
|
||||||
int y_min,y_max;
|
int y_min,y_max;
|
||||||
if(m_max_data == m_min_data)
|
if(m_max_data == m_min_data)
|
||||||
{
|
{
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
}
|
}
|
||||||
y_max = WAVE_LINE_WIDTH + m_wave_bottom - (m_wave_bottom - m_wave_top)*(min - m_min_data)/(m_max_data - m_min_data);
|
y_max = m_wave_bottom + WAVE_LINE_WIDTH - (m_wave_bottom - m_wave_top)*(min - m_min_data)/(m_max_data - m_min_data);
|
||||||
y_min = (-WAVE_LINE_WIDTH) + m_wave_bottom - (m_wave_bottom - m_wave_top)*(max - m_min_data)/(m_max_data - m_min_data);
|
y_min = m_wave_bottom - WAVE_LINE_WIDTH - (m_wave_bottom - m_wave_top)*(max - m_min_data)/(m_max_data - m_min_data);
|
||||||
mid = m_wave_bottom - (m_wave_bottom - m_wave_top)*(mid - m_min_data)/(m_max_data - m_min_data);
|
mid = m_wave_bottom - (m_wave_bottom - m_wave_top)*(mid - m_min_data)/(m_max_data - m_min_data);
|
||||||
|
|
||||||
CORRECT(y_min, m_wave_bottom, m_wave_top);
|
CORRECT(y_min, m_wave_bottom, m_wave_top);
|
||||||
|
Loading…
Reference in New Issue
Block a user