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

📄 arenaappui.c

📁 基于3Garena平台的测试用例。 了解基本开发流程
💻 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 + -