⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmradiomainscreen.c

📁 mtk平台的调频收音机的mmi部分! 可以了解mtk调频收音机的用户界面!
💻 C
📖 第 1 页 / 共 5 页
字号:
{
    /*----------------------------------------------------------------*/
    /* 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 + -