📄 fmradiomainscreen.c
字号:
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 x1 = fmrdo_main_draw.tuner_scale.x;
S32 y1 = fmrdo_main_draw.tuner_scale.y;
S32 x2 = fmrdo_main_draw.tuner_scale.x + fmrdo_main_draw.tuner_scale.w - 1;
S32 y2 = fmrdo_main_draw.tuner_scale.y + fmrdo_main_draw.tuner_scale.h - 1;
S32 delta;
#ifndef __GDI_MEMORY_PROFILE_2__
BOOL outside = FALSE;
#endif
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (fmrdo_main_draw.tuner_scale.type == 0) /* 0: horizontal, 1: vertical */
{
if (fmrdo_main_draw.tuner_scale.ind_offset < 0)
{
y1 += fmrdo_main_draw.tuner_scale.ind_offset;
}
delta =
fmrdo_main_draw.tuner_scale.y + fmrdo_main_draw.tuner_scale.ind_offset + fmrdo_main_draw.tuner_scale.ind_h -
1;
if (delta > y2)
{
y2 = delta;
#ifndef __GDI_MEMORY_PROFILE_2__
outside = TRUE;
#endif
}
}
else
{
if (fmrdo_main_draw.tuner_scale.ind_offset < 0)
{
x1 += fmrdo_main_draw.tuner_scale.ind_offset;
}
delta =
fmrdo_main_draw.tuner_scale.x + fmrdo_main_draw.tuner_scale.ind_offset + fmrdo_main_draw.tuner_scale.ind_w -
1;
if (delta > x2)
{
x2 = delta;
#ifndef __GDI_MEMORY_PROFILE_2__
outside = TRUE;
#endif
}
}
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_lock_double_buffer();
#endif
gui_push_clip();
gui_set_clip(x1, y1, x2, y2);
#ifdef __GDI_MEMORY_PROFILE_2__
gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT);
#else /* __GDI_MEMORY_PROFILE_2__ */
if (outside)
{
gui_show_image(0, 0, fmrdo_main_draw.bg_img); /* background */
}
/* tuner scale background */
gui_show_image(fmrdo_main_draw.tuner_scale.x, fmrdo_main_draw.tuner_scale.y, fmrdo_main_draw.tuner_scale.bg_img);
#endif /* __GDI_MEMORY_PROFILE_2__ */
/* tuner scale indicator */
if (fmrdo_main_draw.tuner_scale.type == 0) /* 0: horizontal, 1: vertical */
{
S32 w = fmrdo_main_draw.tuner_scale.w - fmrdo_main_draw.tuner_scale.ind_start_gap -
fmrdo_main_draw.tuner_scale.ind_end_gap - fmrdo_main_draw.tuner_scale.ind_w;
gui_show_image(
fmrdo_main_draw.tuner_scale.x + fmrdo_main_draw.tuner_scale.ind_start_gap + (freq - MIN_FM_FREQUENCY) * w / FM_BANDWIDTH,
fmrdo_main_draw.tuner_scale.y + fmrdo_main_draw.tuner_scale.ind_offset,
fmrdo_main_draw.tuner_scale.ind_img);
}
else
{
S32 h = fmrdo_main_draw.tuner_scale.h - fmrdo_main_draw.tuner_scale.ind_start_gap -
fmrdo_main_draw.tuner_scale.ind_end_gap - fmrdo_main_draw.tuner_scale.ind_h;
gui_show_image(
fmrdo_main_draw.tuner_scale.x + fmrdo_main_draw.tuner_scale.ind_offset,
fmrdo_main_draw.tuner_scale.y + fmrdo_main_draw.tuner_scale.ind_start_gap + (freq - MIN_FM_FREQUENCY) * h / FM_BANDWIDTH,
fmrdo_main_draw.tuner_scale.ind_img);
}
gui_pop_clip();
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(x1, y1, x2, y2);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_volume
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_volume(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S32 x1 = fmrdo_main_draw.volume.x;
S32 y1 = fmrdo_main_draw.volume.y;
S32 x2 = fmrdo_main_draw.volume.x + fmrdo_main_draw.volume.w - 1;
S32 y2 = fmrdo_main_draw.volume.y + fmrdo_main_draw.volume.h - 1;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_lock_double_buffer();
#endif
gui_push_clip();
gui_set_clip(x1, y1, x2, y2);
/* background */
#ifdef __GDI_MEMORY_PROFILE_2__
gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT);
#else
gui_show_image(0, 0, fmrdo_main_draw.bg_img);
#endif
/* volume */
if (fmrdo_main_draw.volume.type == 0) /* 0: horizontal, 1: vertical */
{
S32 delta = ((U32) g_fmrdo.volume + 1) * (fmrdo_main_draw.volume.w - fmrdo_main_draw.volume.ind_start_gap -
fmrdo_main_draw.volume.ind_end_gap) / MAX_VOL_LEVEL;
gui_set_clip(x1, y1, x1 + fmrdo_main_draw.volume.ind_start_gap + delta - 1, y2);
}
else
{
S32 delta = ((U32) g_fmrdo.volume + 1) * (fmrdo_main_draw.volume.h - fmrdo_main_draw.volume.ind_start_gap -
fmrdo_main_draw.volume.ind_end_gap) / MAX_VOL_LEVEL;
gui_set_clip(x1, y2 - fmrdo_main_draw.volume.ind_start_gap - delta - 1, x1, y2);
}
gui_show_image(x1, y1, fmrdo_main_draw.volume.bg_img);
gui_pop_clip();
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(x1, y1, x2, y2);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_push_button
* DESCRIPTION
*
* PARAMETERS
* button [IN]
* is_down [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_push_button(U8 button, BOOL is_down)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
fmrdo_main_push_button_struct *push_button_p;
S32 x1, y1, x2, y2;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (button)
{
case FMRDO_BUTTON_STEP_UP:
push_button_p = &fmrdo_main_draw.step_up_button;
break;
case FMRDO_BUTTON_STEP_DOWN:
push_button_p = &fmrdo_main_draw.step_down_button;
break;
default:
return;
}
x1 = push_button_p->x;
y1 = push_button_p->y;
x2 = push_button_p->x + push_button_p->w - 1;
y2 = push_button_p->y + push_button_p->h - 1;
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_lock_double_buffer();
#endif
gui_push_clip();
gui_set_clip(x1, y1, x2, y2);
/* button */
if (is_down)
{
gui_show_image(x1, y1, push_button_p->down_img);
}
else
{
gui_show_image(x1, y1, push_button_p->up_img);
}
gui_pop_clip();
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(x1, y1, x2, y2);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_toggle_button
* DESCRIPTION
*
* PARAMETERS
* button [IN]
* is_down [IN]
* is_on [IN]
* is_shown [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_toggle_button(U8 button, BOOL is_down, BOOL is_on, BOOL is_shown)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
fmrdo_main_toggle_button_struct *toggle_button_p;
S32 x1, y1, x2, y2;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (button)
{
case FMRDO_BUTTON_POWER:
toggle_button_p = &fmrdo_main_draw.power_button;
break;
case FMRDO_BUTTON_SEARCH:
toggle_button_p = &fmrdo_main_draw.search_button;
break;
#if defined(__MMI_FM_RADIO_RECORD__)
case FMRDO_BUTTON_REC:
toggle_button_p = &fmrdo_main_draw.rec_button;
break;
case FMRDO_BUTTON_REC_PAUSE:
toggle_button_p = &fmrdo_main_draw.rec_pause_button;
break;
#endif /* defined(__MMI_FM_RADIO_RECORD__) */
default:
return;
}
x1 = toggle_button_p->x;
y1 = toggle_button_p->y;
x2 = toggle_button_p->x + toggle_button_p->w - 1;
y2 = toggle_button_p->y + toggle_button_p->h - 1;
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_lock_double_buffer();
#endif
gui_push_clip();
gui_set_clip(x1, y1, x2, y2);
if (is_shown)
{
/* button */
if (is_on)
{
if (is_down)
{
gui_show_image(x1, y1, toggle_button_p->on_down_img);
}
else
{
gui_show_image(x1, y1, toggle_button_p->on_up_img);
}
}
else
{
if (is_down)
{
gui_show_image(x1, y1, toggle_button_p->off_down_img);
}
else
{
gui_show_image(x1, y1, toggle_button_p->off_up_img);
}
}
}
else /* Clear to background */
{
#ifdef __GDI_MEMORY_PROFILE_2__
gdi_draw_solid_rect(x1, y1, x2, y2, GDI_COLOR_TRANSPARENT);
#else
gui_show_image(0, 0, fmrdo_main_draw.bg_img);
#endif
}
gui_pop_clip();
#if(UI_DOUBLE_BUFFER_SUPPORT)
gui_unlock_double_buffer();
gui_BLT_double_buffer(x1, y1, x2, y2);
#endif /* (UI_DOUBLE_BUFFER_SUPPORT) */
}
/* MTK Leo add 20050301, add touch screen support for FM Radio */
#ifdef __MMI_TOUCH_SCREEN__
/*****************************************************************************
* FUNCTION
* mmi_fmrdo_redraw_main_push_down_button
* DESCRIPTION
*
* PARAMETERS
* button [IN] 0 = volume_dec_button, 1 = volume_inc_button, 2 = setting_button
* is_down [IN]
* RETURNS
* void
*****************************************************************************/
void mmi_fmrdo_redraw_main_push_down_button(U8 button, BOOL is_down)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
fmrdo_main_push_down_button_struct *push_down_button_p;
S32 x1, y1, x2, y2;
/*----------------------------------------------------------------*/
/* Code Body
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -