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

📄 fmradiomainscreen.c

📁 mtk平台的调频收音机的mmi部分! 可以了解mtk调频收音机的用户界面!
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*******************************************************************************
* Filename:
* ---------
*  FMRadioMainScreen.c
*
* Project:
* --------
*   MAUI
*
* Description:
* ------------
*   FM Radio main screen drawing program
*
* Author:
* -------
*  Tim Chen
*
*==============================================================================
*           HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
 *------------------------------------------------------------------------------
 * $Log$
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 * removed!
 * removed!
 * 
 *
 *------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
*==============================================================================
*******************************************************************************/

#include "MMI_features.h"

#ifdef __MMI_FM_RADIO__

#include "GlobalDefs.h"
#include "GlobalScrEnum.h"
#include "CommonScreens.h"
#include "NVRAMEnum.h"

#include "FMRadioDef.h"
#include "FMRadioType.h"
#include "FMRadioProt.h"
#include "FMRadioMainScreen.h"
/* MTK Leo add 20050301, add touch screen support for FM Radio */
#ifdef __MMI_TOUCH_SCREEN__
#include "wgui_touch_screen.h"
#endif 
/* MTK Leo end */
#include "gdi_include.h"


#ifdef __GDI_MEMORY_PROFILE_2__
GDI_HANDLE fmrdo_osd_layer;
GDI_HANDLE fmrdo_skin_layer;
BOOL is_fmrdo_skin_layer_drawn = FALSE;
#endif /* __GDI_MEMORY_PROFILE_2__ */ 

static fmrdo_main_draw_struct fmrdo_main_draw;  /* all memeber variables are zero initial */

extern mmi_fmrdo_struct g_fmrdo;                    /* defined in FMRadioSrc.c */
extern S32 UI_device_width;                         /* from gui_wrapper.c */
extern S32 UI_device_height;                        /* from gui_wrapper.c */
extern const mmi_fmrdo_skin_struct g_fmrdo_skins[]; /* defined in resource_fmradio_skins.c */

extern void kal_wsprintf(unsigned short *outstr, char *fmt, ...);
extern BOOL r2lMMIFlag; /* definedi n gui_inputs.c */

#define FMRDO_LSK_X_OFFSET 7
#define FMRDO_LSK_Y_OFFSET 2
#define FMRDO_RSK_X_OFFSET 6
#define FMRDO_RSK_Y_OFFSET 2
#ifdef __MMI_TOUCH_SCREEN__
/* MTK Leo add 20050301, add touch screen support for FM Radio */
typedef enum
{
    FMRDO_PEN_NONE,
    FMRDO_PEN_LSK,
    FMRDO_PEN_RSK,
    FMRDO_PEN_MAIN_STEP_UP,
    FMRDO_PEN_MAIN_STEP_DOWN,
    FMRDO_PEN_MAIN_POWER,
    FMRDO_PEN_MAIN_SEARCH,
    FMRDO_PEN_MAIN_SETTING,
    FMRDO_PEN_MAIN_VOLUME_INC,
    FMRDO_PEN_MAIN_VOLUME_DEC,
    FMRDO_PEN_MAIN_FREQ,
    FMRDO_PEN_COUNT
} FMRDO_PEN_STATE;
typedef enum
{
    FMRDO_PEN_SK_UP,
    FMRDO_PEN_SK_DOWN
} FMRDO_SOFTKEY_STATE;

S32 fmrdo_pen_event_on_object = FMRDO_PEN_NONE;
static mmi_pen_point_struct LSK_points[4];
static mmi_pen_point_struct RSK_points[4];
static mmi_pen_polygon_area_struct LSK_area;
static mmi_pen_polygon_area_struct RSK_area;

/* MTK Leo end */
#endif /* __MMI_TOUCH_SCREEN__ */ 

/* sub LCD */
#ifdef __MMI_SUBLCD__
scrolling_text fmrdo_sub_LCD_scrolling_title;
scrolling_text *fmrdo_sub_LCD_scrolling_title_p = NULL;
extern bitmap *current_LCD_device_bitmap;   /* defined in wgui.c */
extern bitmap main_LCD_device_bitmap;       /* defined in wingui.c */
extern bitmap sub_LCD_device_bitmap;        /* defined in wingui.c */
#endif /* __MMI_SUBLCD__ */ 


/*****************************************************************************
 * FUNCTION
 *  mmi_fmrdo_init_main_images
 * DESCRIPTION
 *  
 * PARAMETERS
 *  skin_index      [IN]        
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_fmrdo_init_main_images(S32 skin_index)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S32 w, h;

#if defined(__MMI_FM_RADIO_RECORD__)
    S32 w2, h2;
#endif 
    const mmi_fmrdo_skin_struct *skin_p = &g_fmrdo_skins[skin_index];

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* LSK */
    fmrdo_main_draw.LSK_text_border_color = gui_color(skin_p->LSK_text_border_color_r, skin_p->LSK_text_border_color_g, skin_p->LSK_text_border_color_b);
    fmrdo_main_draw.LSK_text_color = gui_color(skin_p->LSK_text_color_r, skin_p->LSK_text_color_g, skin_p->LSK_text_color_b);

    /* RSK */
    fmrdo_main_draw.RSK_text_border_color = gui_color(skin_p->RSK_text_border_color_r, skin_p->RSK_text_border_color_g, skin_p->RSK_text_border_color_b);
    fmrdo_main_draw.RSK_text_color = gui_color(skin_p->RSK_text_color_r, skin_p->RSK_text_color_g, skin_p->RSK_text_color_b);

    /* background */
    fmrdo_main_draw.bg_img = (PU8) GetImage(skin_p->bg_image_id);

    /* channel name */
    fmrdo_main_draw.channel_name_text_border_color = gui_color(
                                                        skin_p->channel_name_text_border_color_r,
                                                        skin_p->channel_name_text_border_color_g,
                                                        skin_p->channel_name_text_border_color_b);
    fmrdo_main_draw.channel_name_text_color = gui_color(
                                                skin_p->channel_name_text_color_r,
                                                skin_p->channel_name_text_color_g,
                                                skin_p->channel_name_text_color_b);
    fmrdo_main_draw.channel_name.x = skin_p->channel_name_x;
    fmrdo_main_draw.channel_name.y = skin_p->channel_name_y;
    fmrdo_main_draw.channel_name.w = skin_p->channel_name_w;
    fmrdo_main_draw.channel_name.h = skin_p->channel_name_h;

    /* frequency */
    fmrdo_main_draw.frequency_text_on_color = gui_color(
                                                skin_p->frequency_text_on_color_r,
                                                skin_p->frequency_text_on_color_g,
                                                skin_p->frequency_text_on_color_b);
    fmrdo_main_draw.frequency_text_off_color = gui_color(
                                                skin_p->frequency_text_off_color_r,
                                                skin_p->frequency_text_off_color_g,
                                                skin_p->frequency_text_off_color_b);
    fmrdo_main_draw.frequency.x = skin_p->frequency_x;
    fmrdo_main_draw.frequency.y = skin_p->frequency_y;
    fmrdo_main_draw.frequency.w = skin_p->frequency_w;
    fmrdo_main_draw.frequency.h = skin_p->frequency_h;

    /* volume */
    fmrdo_main_draw.volume.bg_img = (PU8) GetImage(skin_p->volume_image_id);
    fmrdo_main_draw.volume.type = skin_p->volume_bar_type;  /* 0: horizontal, 1: vertical */
    fmrdo_main_draw.volume.x = skin_p->volume_bar_x;
    fmrdo_main_draw.volume.y = skin_p->volume_bar_y;
    gui_measure_image(fmrdo_main_draw.volume.bg_img, &w, &h);
    fmrdo_main_draw.volume.w = (S16) w;
    fmrdo_main_draw.volume.h = (S16) h;
    fmrdo_main_draw.volume.ind_start_gap = skin_p->volume_ind_start_gap;
    fmrdo_main_draw.volume.ind_end_gap = skin_p->volume_ind_end_gap;

#ifdef __MMI_FM_RADIO_ANIMATION__
    /* animation */
    fmrdo_main_draw.animation.x = skin_p->animation_x;
    fmrdo_main_draw.animation.y = skin_p->animation_y;
    fmrdo_main_draw.animation.animation_img = (PU8) GetImage(skin_p->animation_image_id);
#endif /* __MMI_FM_RADIO_ANIMATION__ */ 

#ifdef __MMI_TOUCH_SCREEN__
    /* volume inc & dec control */
    fmrdo_main_draw.volume_inc_button.x = skin_p->volume_inc_x;
    fmrdo_main_draw.volume_inc_button.y = skin_p->volume_inc_y;
    fmrdo_main_draw.volume_inc_button.up_img = (PU8) GetImage(skin_p->volume_inc_up_image_id);
    fmrdo_main_draw.volume_inc_button.down_img = (PU8) GetImage(skin_p->volume_inc_down_image_id);
    gui_measure_image(fmrdo_main_draw.volume_inc_button.up_img, &w, &h);
    fmrdo_main_draw.volume_inc_button.w = (S16) w;
    fmrdo_main_draw.volume_inc_button.h = (S16) h;
    fmrdo_main_draw.volume_inc_button.down = FALSE;

    fmrdo_main_draw.volume_dec_button.x = skin_p->volume_dec_x;
    fmrdo_main_draw.volume_dec_button.y = skin_p->volume_dec_y;
    fmrdo_main_draw.volume_dec_button.up_img = (PU8) GetImage(skin_p->volume_dec_up_image_id);
    fmrdo_main_draw.volume_dec_button.down_img = (PU8) GetImage(skin_p->volume_dec_down_image_id);
    gui_measure_image(fmrdo_main_draw.volume_dec_button.up_img, &w, &h);
    fmrdo_main_draw.volume_dec_button.w = (S16) w;
    fmrdo_main_draw.volume_dec_button.h = (S16) h;
    fmrdo_main_draw.volume_dec_button.down = FALSE;

    /* setting icon */
    fmrdo_main_draw.setting_button.x = skin_p->setting_x;
    fmrdo_main_draw.setting_button.y = skin_p->setting_y;
    fmrdo_main_draw.setting_button.up_img = (PU8) GetImage(skin_p->setting_up_image_id);
    fmrdo_main_draw.setting_button.down_img = (PU8) GetImage(skin_p->setting_down_image_id);
    gui_measure_image(fmrdo_main_draw.setting_button.up_img, &w, &h);
    fmrdo_main_draw.setting_button.w = (S16) w;
    fmrdo_main_draw.setting_button.h = (S16) h;
    fmrdo_main_draw.setting_button.down = FALSE;
#endif /* __MMI_TOUCH_SCREEN__ */ 

    /* tuner scale */
    fmrdo_main_draw.tuner_scale.bg_img = (PU8) GetImage(skin_p->tuner_scale_bg_image_id);
    fmrdo_main_draw.tuner_scale.ind_img = (PU8) GetImage(skin_p->tuner_scale_ind_image_id);
    fmrdo_main_draw.tuner_scale.type = skin_p->tuner_scale_type;        /* 0: horizontal, 1: vertical */
    fmrdo_main_draw.tuner_scale.x = skin_p->tuner_scale_x;
    fmrdo_main_draw.tuner_scale.y = skin_p->tuner_scale_y;
    gui_measure_image(fmrdo_main_draw.tuner_scale.bg_img, &w, &h);
    fmrdo_main_draw.tuner_scale.w = (S16) w;
    fmrdo_main_draw.tuner_scale.h = (S16) h;
    gui_measure_image(fmrdo_main_draw.tuner_scale.ind_img, &w, &h);
    fmrdo_main_draw.tuner_scale.ind_w = (S16) w;
    fmrdo_main_draw.tuner_scale.ind_h = (S16) h;
    fmrdo_main_draw.tuner_scale.ind_offset = skin_p->tunner_scale_ind_offset;
    fmrdo_main_draw.tuner_scale.ind_start_gap = skin_p->tuner_scale_start_gap;
    fmrdo_main_draw.tuner_scale.ind_end_gap = skin_p->tuner_scale_end_gap;

    /* step down button */
    fmrdo_main_draw.step_down_button.up_img = (PU8) GetImage(skin_p->step_down_button_up_image_id);
    fmrdo_main_draw.step_down_button.down_img = (PU8) GetImage(skin_p->step_down_button_down_image_id);
    fmrdo_main_draw.step_down_button.x = skin_p->step_down_button_x;
    fmrdo_main_draw.step_down_button.y = skin_p->step_down_button_y;
    gui_measure_image(fmrdo_main_draw.step_down_button.up_img, &w, &h);
    fmrdo_main_draw.step_down_button.w = (S16) w;
    fmrdo_main_draw.step_down_button.h = (S16) h;

    /* step up button */
    fmrdo_main_draw.step_up_button.up_img = (PU8) GetImage(skin_p->step_up_button_up_image_id);
    fmrdo_main_draw.step_up_button.down_img = (PU8) GetImage(skin_p->step_up_button_down_image_id);
    fmrdo_main_draw.step_up_button.x = skin_p->step_up_button_x;
    fmrdo_main_draw.step_up_button.y = skin_p->step_up_button_y;
    gui_measure_image(fmrdo_main_draw.step_up_button.up_img, &w, &h);
    fmrdo_main_draw.step_up_button.w = (S16) w;
    fmrdo_main_draw.step_up_button.h = (S16) h;

    /* search button */
    fmrdo_main_draw.search_button.on_up_img = (PU8) GetImage(skin_p->search_button_on_up_image_id);
    fmrdo_main_draw.search_button.on_down_img = (PU8) GetImage(skin_p->search_button_on_down_image_id);
    fmrdo_main_draw.search_button.off_up_img = (PU8) GetImage(skin_p->search_button_off_up_image_id);
    fmrdo_main_draw.search_button.off_down_img = (PU8) GetImage(skin_p->search_button_off_down_image_id);
    fmrdo_main_draw.search_button.x = skin_p->search_button_x;
    fmrdo_main_draw.search_button.y = skin_p->search_button_y;
    gui_measure_image(fmrdo_main_draw.search_button.on_up_img, &w, &h);
    fmrdo_main_draw.search_button.w = (S16) w;
    fmrdo_main_draw.search_button.h = (S16) h;

    /* power button */
    fmrdo_main_draw.power_button.on_up_img = (PU8) GetImage(skin_p->power_button_on_up_image_id);
    fmrdo_main_draw.power_button.on_down_img = (PU8) GetImage(skin_p->power_button_on_down_image_id);
    fmrdo_main_draw.power_button.off_up_img = (PU8) GetImage(skin_p->power_button_off_up_image_id);
    fmrdo_main_draw.power_button.off_down_img = (PU8) GetImage(skin_p->power_button_off_down_image_id);
    fmrdo_main_draw.power_button.x = skin_p->power_button_x;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -