📄 arenaappui.c
字号:
/*******************************************************************************
Copyright(c) 1998 - 2006 DaTang Mobile Communications Equipment CO.,LTD.
All Rights Reserved. By using this module you agree to the terms of the
DaTang Mobile Communications Equipment CO.,LTD License Agreement for it.
*******************************************************************************/
/******************************************************************************
* Filename : ArenaAppUI.c
*
* Description : create a "hello world" window
*
* Notes : N/A
*
*******************************************************************************/
#include "TestAudio_Arena.h"
#include <multimedia.h>
static SINT32 Local_on_initdialog(HWND hWnd,WPARAM wParam, LPARAM lParam);
static SINT32 Local_on_erasebkgnd(HWND hWnd,WPARAM wParam, LPARAM lParam);
static SINT32 Local_on_keydown(HWND hWnd,WPARAM wParam, LPARAM lParam);
static SINT32 Local_on_destroy(HWND hWnd,WPARAM wParam, LPARAM lParam);
static SINT32 Local_on_active(HWND hWnd,WPARAM wParam, LPARAM lParam);
static SINT32 Local_on_close(HWND hWnd,WPARAM wParam, LPARAM lParam);
static SINT32 Local_on_paint(HWND hWnd,WPARAM wParam, LPARAM lParam);
typedef struct{
UINT32 timerID;
}AudioDevice;
AudioDevice audioDevice;
BOOL bSoundEnd;
int states;
HWND hWndHost;
void startAudio(char * path);
void stopAudio();
#define IDC_TITLE 1000
CTRLDATA ctrls[] =
{
{
CTRL_TITLE,
WS_VISIBLE | WS_CHILD,
0,
0,
PHONEWIN_WIDTH,
WIN_TITLE_H,
IDC_TITLE,
"hello world",
0,
0,
},
};
DLGTEMPLATE dlgtempl =
{
WS_VISIBLE,
WS_EX_CLIPCHILDREN|WS_EX_TRANSPARENT,
0,
CAPTIONBAR_H,
PHONEWIN_WIDTH,
PHONEWIN_HEIGHT-CAPTIONBAR_H-SOFTKEYBAR_H,
"hello world",
0,
0,
0,
0,
0
};
void Local_create_window(HWND hwnd_host)
{
BEGIN_STATIC_MSGMAP(msg_map)
MAPMESSAGE(MSG_INITDIALOG, Local_on_initdialog)
MAPMESSAGE(MSG_PAINT, Local_on_paint)
MAPMESSAGE(MSG_ERASEBKGND, Local_on_erasebkgnd)
MAPMESSAGE(MSG_KEYDOWN,Local_on_keydown)
MAPMESSAGE(MSG_DESTROY,Local_on_destroy)
MAPMESSAGE(MSG_ACTIVE,Local_on_active)
MAPMESSAGE(MSG_CLOSE,Local_on_close)
END_STATIC_MSGMAP(msg_map)
CreateMsgMapWnd(hwnd_host, &dlgtempl, 0, &msg_map);
}
static SINT32 Local_on_initdialog(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
// HWND hTitle = GetDlgItem(hWnd, IDC_TITLE);
// TCSetTitle(hTitle, "hello world", MAJOR_TITLE);
hWndHost = hWnd;
states = 0;
bSoundEnd = FALSE;
tp_man_mm_audio_init();
return DefaultMainWinProc(hWnd, MSG_INITDIALOG, wParam, lParam);
}
static SINT32 Local_on_paint(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
HDC hdc = BeginPaint(hWnd);
RECT rect;
GetClientRect(hWnd,&rect);
SetBrushColor(hdc, COLOR_lightwhite);
FillBox(hdc, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top);
SetBrushColor(hdc, COLOR_black);
if(!bSoundEnd){
if(states==0)
TextOut(hdc, 100, 100, "play sound ready");
else if(states==1)
TextOut(hdc, 100, 100, "playing sound");
}
else
TextOut(hdc, 100, 100, "play sound Over");
EndPaint(hWnd, hdc);
return DefaultMainWinProc(hWnd, MSG_PAINT, wParam, lParam);
}
SINT32 Local_on_erasebkgnd(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
HDC hdc;
hdc = GetDC(hWnd);
SetBrushColor(hdc, PIXEL_lightwhite);
FillBox(hdc, 0, 0, PHONEWIN_WIDTH, PHONEWIN_HEIGHT);
ReleaseDC(hdc);
return DefaultMainWinProc(hWnd, MSG_ERASEBKGND, wParam, lParam);
}
static SINT32 Local_on_keydown(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case KEY_LSK:
if(states==0||bSoundEnd){
startAudio("flash/poweron.mid");
states=1;
bSoundEnd = FALSE;
SendNotifyMessage(hWnd, MSG_PAINT, 0, 0);
SendNotifyMessage(hWnd, MSG_ACTIVE, 1, 0);
}
break;
case KEY_RSK:
SendNotifyMessage(hWnd, MSG_CLOSE, 0, 0);
return 0;
/* break; */
}
return DefaultMainWinProc(hWnd, MSG_KEYDOWN, wParam, lParam);
}
static SINT32 Local_on_destroy(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
STOP_APP_CTRL_INFO stop_info;
tp_os_mem_set(&stop_info,0,sizeof(STOP_APP_CTRL_INFO));
stop_info.id = APP_ID_LOCAL;
return tp_ams_stop_app(&stop_info);
}
static SINT32 Local_on_active(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
if(wParam)
{
if(states==0||bSoundEnd)
tp_skb_set_text_items(hWnd, "Play", NULL, "Exit");
else
tp_skb_set_text_items(hWnd, NULL, NULL, "Exit");
tp_skb_update(hWnd);
}
return DefaultMainWinProc(hWnd, MSG_ACTIVE, wParam, lParam);
}
static SINT32 Local_on_close(HWND hWnd,WPARAM wParam, LPARAM lParam)
{
DestroyMainWindow(hWnd);
return DefaultMainWinProc(hWnd, MSG_CLOSE, wParam, lParam);
}
void MediaTimerCallback(void * ad0)
{
AudioDevice * ad = (AudioDevice *)ad0;
// int isFinished = 0;
// isFinished = md_sound_isFinished();
// if(states==TASK_GAME&&iReady==25){
int cc = tp_man_mm_audio_isfinished(&bSoundEnd);
printf("bSoundEnd: %d\n",bSoundEnd);
printf("cc: %d\n",cc);
// }
if(bSoundEnd)
{
tp_os_timer_stop(ad->timerID);
tp_os_timer_delete(ad->timerID);
tp_man_mm_audio_stop();
SendNotifyMessage(hWndHost, MSG_PAINT, 0, 0);
SendNotifyMessage(hWndHost, MSG_ACTIVE, 1, 0);
}
else
{
tp_os_timer_restart(ad->timerID, 250);
}
}
void startAudio(char * path)
{
int cc = 0;
MAN_MM_AUDIO_PARAM audio_param;
stopAudio();
// cc = tp_man_mm_audio_init();
// if(cc!=OS_SUCCESS)
// return;
cc=tp_man_mm_audio_open();
if(cc!=OS_SUCCESS)
return;
audio_param.volume = 120;
audio_param.loop_times=1;
audio_param.channel = MAN_MM_CHANNEL_SPEAKER;
audio_param.crescendo= MAN_MM_VOL_TYPE_NORMAL;
audio_param.start_position = 0;
audio_param.rawdata_mode = MM_RAW_MIDI;
cc=tp_man_mm_audio_play(path,&audio_param);
audioDevice.timerID = tp_os_timer_create("AUDIO_TIMER", MediaTimerCallback, &audioDevice, 500, OS_AUTO_LOAD);
printf("cc: %d\n",cc);
}
void stopAudio()
{
tp_man_mm_audio_stop();
tp_man_mm_audio_close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -