📄 fmradiomainscreen.c
字号:
/*****************************************************************************
* 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 + -