📄 mmi.cpp
字号:
/*****************************************************************************
* 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:
* ---------
* MMI.cpp
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* WinMain() for PC simulator
*
* Author:
* -------
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* 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!!
*============================================================================
****************************************************************************/
#ifndef _MMI_CPP
#define _MMI_CPP
#ifdef MMI_ON_WIN32
#include "stdafx.h"
#include "resource.h"
#include "windows.h"
#include "MMI_features.h"
#include <mmsystem.h>
#include "MMI.h"
#include "pixteldatatypes.h"
#include "QueueGprot.h"
#include "KeyBrd.h"
/* #include "taskinit.h" new customizer */
#include "DCMLHandler.h" /* main symbols */
#include "BUildCfg.h"
#include "CustDataRes.h"
#include "CustDataProts.h"
#include "Custresdef.h"
#include "GlobalConstants.h" /* KEY_INVALID */
#include "FontDCL.h"
#include "FontRes.h"
#include "ProtocolEvents.h"
#include <assert.h>
extern "C"
{
#include "CustThemesRes.h"
#include "AudioInc.h"
#include "taskinit.h"
}
#ifndef __CUSTOMER_LEVEL_1_RELEASE__
#include "NWSimEngine.h"
#endif
/*****************************************************************************
* Define
*****************************************************************************/
#define WM_REFRESH_MMI (10006)
#define WM_CLOSE_CUSTOMIZE_ENG (10007)
/* used for skin loader */
#define SKIN_128x128 (0)
#define SKIN_128x160 (1)
#define SKIN_176x220 (2)
#define SKIN_240x320 (3)
#define BUFFER_LENGTH (256)
#define PATH_FOR_128x128 "../Skins/128x128"
#define PATH_FOR_128x160 "../Skins/128x160"
#define PATH_FOR_176x220 "../Skins/176x220"
#define PATH_FOR_240x320 "../Skins/240x320"
#define USING_DLL_UI
/* define flags for DLL_UI */
#define IN_PC_SIMULATOR (1)
#ifdef __CUSTOMER_LEVEL_1_RELEASE__
#define IN_LEVEL_1_RELEASE (2)
#else
#define IN_LEVEL_1_RELEASE (0)
#endif
/*****************************************************************************
* Typedef
*****************************************************************************/
/*****************************************************************************
* Local Variable
*****************************************************************************/
HWND hWnd;
HWND hDlg;
BOOL bFlagNWSimulatorStart = FALSE;
static BOOL is_first_bootup = TRUE;
static char skin_name_buffer[BUFFER_LENGTH];
static char old_skin_name_buffer[BUFFER_LENGTH];
#ifndef __CUSTOMER_LEVEL_1_RELEASE__
CNWSimEngine NWSimEngine;
#endif
static char PrintableStr[256];
FILE *DebugFile;
char cwd[BUFFER_LENGTH];
char old_cwd[BUFFER_LENGTH];
/*****************************************************************************
* Local Function
*****************************************************************************/
BOOL CALLBACK LoadSkinsProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam);
static void LoadSkins(HINSTANCE hInstance, HWND hwnd);
static void ListSkinsInDir(HWND hDlg, char path[], HWND hLB);
void keydown_by_mouse(HWND hWnd, int xPos, int yPos);
void keyup_by_mouse(HWND hWnd);
void keyup_by_shortcut(HWND hWnd, unsigned int wParam);
void keydown_by_shortcut(HWND hWnd, int wParam);
void mouse_move_enable(HWND hWnd, int xPos, int yPos);
void key_detect_ind(unsigned char key_status, unsigned char key_code);
void charger_inout(void);
void incoming_call(void);
void draw_main_bitmap(HDC hdc);
void launch_nw_simulator(void);
void shutdown_system_operation(void);
void on_timer(unsigned int id);
void automatic_power_on(void);
BOOL writeKeyMsgOnCondition(MYQUEUE *Message);
/*****************************************************************************
* Global Variable
*****************************************************************************/
extern "C" s32 simulator_skin_sub_LCD_x;
extern "C" s32 SUB_LCD_device_width;
extern "C" BOOL IsLcdFirstInit;
#ifdef USING_DLL_UI
extern "C" BOOL using_dll_ui = TRUE;
#else
extern "C" BOOL using_dll_ui = FALSE;
#endif
/*****************************************************************************
* Global Function
*****************************************************************************/
/* quit whole system opeartion */
extern "C" void ShutdownSystemOperation(void);
extern "C" void FeedBackFeelingKeyAction(int key);
extern "C" void FeedBackFeelingKeyInit(HWND hWnd, HINSTANCE hInstance, HBITMAP main_hbitmap);
extern "C" void InitPCSimulatorBootup(void);
extern "C" void ResetKeyMemory();
extern "C" void ReadKeyProfile(char in_path[], HWND hWnd);
extern "C" BOOL GetSimulatorBootStatus();
extern "C" HWND GetDialogHandle();
extern "C" HWND GetWindowHandle();
extern "C" void lcd_screen_init(HWND hWnd, HINSTANCE hInstance);
extern "C" void update_screen();
extern "C" void lcd_dspl_init();
extern "C" __declspec(dllimport)
void MtkWinDllStart(
void (*w32_key_detect_ind_callback)(unsigned char, unsigned char),
void (*w32_charger_inout_callback)(void),
void (*w32_incoming_call_callback)(void),
void (*w32_screen_init_callback)(HWND, HINSTANCE),
void (*w32_keydown_by_mouse_callback)(HWND, int, int),
void (*w32_keyup_by_mouse_callback)(HWND),
void (*w32_keydown_by_shortcut_callback)(HWND, int),
void (*w32_keyup_by_shortcut_callback)(HWND, unsigned int),
void (*w32_mouse_move_enable_callback)(HWND, int, int),
void (*w32_draw_main_bitmap_callback)(HDC),
void (*w32_update_screen_callback)(void),
void (*w32_TASK_Initialization_callback)(void),
void (*w32_ReadKeyProfile_callback)(char [], HWND hwnd),
void (*w32_ResetKeyMemory_callback)(void),
void (*w32_dspl_init_callback)(void),
void (*pc_sim_shutdown_callback)(void),
void (*pc_sim_launch_nw_sim_callback)(void),
void (*pc_sim_on_timer_callback)(unsigned int),
int pc_simulator_flag
);
/*****************************************************************************
* FUNCTION
* DebugInfo
* DESCRIPTION
* logging debug information (only for PC simulator thread)
* PARAMETERS
* arg_type [IN] arguement type
* ... [IN] variable number paramemter list
* RETURNS
* void
*****************************************************************************/
static void DebugInfo(S8 *arg_type, ...)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
va_list MyList;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
va_start(MyList, arg_type);
vsprintf(PrintableStr, arg_type, MyList);
va_end(MyList);
if (DebugFile)
{
fputs(PrintableStr, DebugFile);
}
flushall();
return;
}
/*****************************************************************************
* FUNCTION
* WinMain_ext
* DESCRIPTION
* Entry point of application.
*
* PARAMETERS
* hInstance IN HINSTANCE
* hPrevInstance IN HINSTANCE
* lpCmdLine IN LPSTR
* nCmdShow IN nCmdShow
* RETURNS
* int APIENTRY
* GLOBALS AFFECTED
* nil
*****************************************************************************/
int APIENTRY WinMain_ext(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
#ifndef USING_DLL_UI
MSG msg;
HACCEL hAccelTable;
#endif
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifndef USING_DLL_UI
/* Initialize global strings */
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_MTK_SIMULATOR, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
/* Perform application initialization: */
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MTK_SIMULATOR);
/************* Vijay *****************/
/* Call the function to initialze the MMI */
InitApplication();
#endif
/* open debugging information file */
{
if (!(DebugFile = fopen("debug.log", "w")))
{
exit(1);
}
}
#ifdef USING_DLL_UI
SetCurrentDirectory(".\\Debug");
/************* Vincent ***************/
/* SHOW DLL UI */
MtkWinDllStart(
key_detect_ind,
charger_inout,
incoming_call,
lcd_screen_init,
keydown_by_mouse,
keyup_by_mouse,
keydown_by_shortcut,
keyup_by_shortcut,
mouse_move_enable,
draw_main_bitmap,
update_screen,
InitApplication,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -