📄 menu_sub.c
字号:
//======================================================
//颇老: menu_sub.c
//
//林力: 览侩橇肺弊伐阑 困茄 荤侩磊 捞亥飘 备泅 颇老
//
//汲疙:
// 备炼眉 冯(Room) 扁过捞 利侩等 览侩橇肺弊伐 备炼眉甫
// 扁馆栏肺 荤侩磊 裹困狼 捞亥飘 贸府 窃荐 备泅
//
//累己磊:
// 2006.02. 冠蛮刮(eacs@paran.com)
//======================================================
#include "std.h"
#include "menu_sub.h"
//#include "std.h"
//#include "menu_sub.h"
//#include "stdlib.h"
void AudioSpecProc(menu_sub * pMe, AEESoundPlayerCmdData * pCmdData)
{
if(pCmdData->spSpec.fType == AEE_SOUNDPLAYER_FILE_MP3)
{
AECHAR buf[20];
AECHAR * pFormat = L"Bitrate: %d K";
AECHAR * version[5];
AECHAR * sim_rate[11];
AECHAR * channel[4];
version[0] = L"VER_25";
version[1] = L"VER_RESERVED";
version[2] = L"VER_2";
version[3] = L"VER_1";
version[4] = L"VER_UNKNOWN";
sim_rate[0] = L"RATE_UNKNOWN";
sim_rate[1] = L"RATE_8000";
sim_rate[2] = L"RATE_11025";
sim_rate[3] = L"RATE_12000";
sim_rate[4] = L"RATE_16000";
sim_rate[5] = L"RATE_22050";
sim_rate[6] = L"RATE_24000";
sim_rate[7] = L"RATE_32000";
sim_rate[8] = L"RATE_44100";
sim_rate[9] = L"RATE_48000";
sim_rate[10] = L"RATE_LAST";
channel[0] = L"CHANNEL_STEREO";
channel[1] = L"CHANNEL_JOINT_STEREO";
channel[2] = L"CHANNEL_DUAL";
channel[3] = L"CHANNEL_SINGLE";
// IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, version[pCmdData->spSpec.MP3Spec.version], -1, 5, 40, 0, 0);
if(pCmdData->spSpec.MP3Spec.bitrate == 0)
WSPRINTF(buf, sizeof(buf), L"BitRate: Free");
else
WSPRINTF(buf,sizeof(buf), pFormat, pCmdData->spSpec.MP3Spec.bitrate);
// IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, 5, 55, 0, 0);
// IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, sim_rate[pCmdData->spSpec.MP3Spec.sampleRate], -1, 5, 70, 0, 0);
// IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, channel[pCmdData->spSpec.MP3Spec.channel], -1, 5, 85, 0, 0);
// IDISPLAY_Update(GetActiveDisplay(pMe));
}
}
void VolumeProc(menu_sub * pMe, AEESoundPlayerCmdData * pCmdData)
{
_D("VOLUME_CB: vol: %d", pCmdData->wVolume);
if(pMe->bVolumeUp)
{
if(pCmdData->wVolume < 100)
ISOUNDPLAYER_SetVolume(pMe->pSoundPlayer, pCmdData->wVolume + 10);
}
else
{
if(pCmdData->wVolume > 0)
ISOUNDPLAYER_SetVolume(pMe->pSoundPlayer, pCmdData->wVolume - 10);
}
}
void DoneProc(menu_sub * pMe, AEESoundPlayerCmdData * pCmdData)
{
IDISPLAY_ClearScreen(GetActiveDisplay(pMe));
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, L"mp3 play done...", -1, 10, 20, NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
pMe->bPlay = FALSE;
}
void SoundPlayer_CB(menu_sub * pMe, AEESoundPlayerCmd eCBType, AEESoundPlayerStatus eSPStatus, uint32 dwParam)
{
AEESoundPlayerCmdData * pCmdData = (AEESoundPlayerCmdData *)dwParam;
switch(eCBType)
{
case AEE_SOUNDPLAYER_PLAY_CB:
switch(eSPStatus)
{
case AEE_SOUNDPLAYER_REWIND:
_D(">>>>>>>>>>>REWIND [dw] %d", pCmdData->dwElapsedTime);
break;
case AEE_SOUNDPLAYER_FFORWARD:
_D(">>>>>>>>>>FFORWARD [dw] %d", pCmdData->dwElapsedTime);
break;
case AEE_SOUNDPLAYER_PAUSE:
_D(">>>>>>>>>>PAUSE [dw] %d", pCmdData->dwElapsedTime);
break;
case AEE_SOUNDPLAYER_RESUME:
_D(">>>>>>>>>>RESUME [dw] %d", pCmdData->dwElapsedTime);
break;
case AEE_SOUNDPLAYER_AUDIO_SPEC:
AudioSpecProc(pMe, pCmdData);
break;
case AEE_SOUNDPLAYER_DONE:
DoneProc(pMe, pCmdData);
break;
}
break;
case AEE_SOUNDPLAYER_VOLUME_CB:
if(eSPStatus == AEE_SOUNDPLAYER_SUCCESS)
VolumeProc(pMe, pCmdData);
break;
}
}
//progress clear
void progress_clear(menu_sub * pMe){
int i;
AECHAR buf1[60];
for(i = 0; i<=38; i++)
{
buf1[i] = ' ';
}
buf1[i] ='\0';
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf1, -1, pMe->game_data[15][1], pMe->game_data[15][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
for(i = 0; i<=pMe->game_data[15][0]; i++)
{
buf1[i] = 'け';
}
buf1[i] ='\0';
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf1, -1, pMe->game_data[15][1], pMe->game_data[15][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
}
void setvalue(menu_sub *pMe)
{
int i;
int j;
int result;
byte randX;
boolean re_flag;
boolean fo_flag;
AECHAR buf[20];
AECHAR * pFormat = L"%d ";
pMe->game_next = pMe->game_cnt * 12;
pMe->game_cnt++;
for(i = 0 ; i<=11;i++)
{
re_flag = TRUE;
while(re_flag == TRUE){
GETRAND(&randX, sizeof(randX));
result = randX % 12 + 1;
fo_flag = TRUE;
for( j = 0 ; j <= 11 ; j++)
{
if (pMe->game_data[j][0] == result + pMe->game_next)
{
fo_flag = FALSE;
continue;
}
}
if(fo_flag == TRUE){
re_flag = FALSE;
pMe->game_data[i][0] = result + pMe->game_next;
}
}
WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[i][0]);
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[i][1], pMe->game_data[i][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
}
}
//GAME OVER PRINT
static void image_output(menu_sub *pMe)
{
pMe->pImage = ISHELL_LoadImage(GetActiveShell(pMe), "./data/gameover.bmp");
IIMAGE_SetParm(pMe->pImage, IPARM_ROP, AEE_RO_TRANSPARENT ,0);
//if(pMe->pImage == NULL)
// return(FALSE);
IIMAGE_Draw(pMe->pImage,10,50);
//IIMAGE_Release(pMe->pImage);
//pMe->pImage = NULL;
}
// 滚瓢 肋给 喘返阑锭
void progress_manager(menu_sub * pMe, int i)
{
pMe->game_data[15][0] = pMe->game_data[15][0] - 2;
if( pMe->game_data[15][0] <= 0 )
{
pMe->gamming = FALSE;
progress_clear(pMe);
image_output(pMe);
}else{
progress_clear(pMe);
}
}
//鸥烙 瘤炒阑锭
static void TimerCallback(void * pParam)
{
menu_sub * pMe = (menu_sub *)pParam;
int lv_time;
pMe->game_data[15][0] = pMe->game_data[15][0] - 1;
if( pMe->game_data[15][0] <= 0 )
{
pMe->gamming = FALSE;
progress_clear(pMe);
image_output(pMe);
}else{
progress_clear(pMe);
if (pMe->game_data[12][0] != 1)
{
lv_time = 1500 - (pMe->game_data[12][0]*100) ;
}else
{
lv_time = 1500;
}
ISHELL_SetTimer(GetActiveShell(pMe), lv_time, TimerCallback, pMe);
}
}
void setValueAt(menu_sub *pMe, int i)
{
int j;
int result;
boolean re_flag;
boolean fo_flag;
byte randX;
AECHAR buf[20];
AECHAR buf1[30];
AECHAR * pFormat = L"%d ";
pMe->game_next = pMe->game_cnt * 12;
if (pMe->game_data[13][0]-1 == pMe->game_next)
{
pMe->game_cnt++;
pMe->game_next = pMe->game_cnt * 12;
}
pMe->game_data[13][0]++;
//罚待窃荐肺 next蔼 茫扁
re_flag = TRUE;
while(re_flag == TRUE){
GETRAND(&randX, sizeof(randX));
result = randX % 12 + 1;
fo_flag = TRUE;
for( j = 0 ; j <= 11 ; j++)
{
if (pMe->game_data[j][0] == result + pMe->game_next)
{
fo_flag = FALSE;
continue;
}
}
if(fo_flag == TRUE){
re_flag = FALSE;
pMe->game_data[i][0] = result + pMe->game_next;
}
}
//score 拌魂
pMe->game_data[14][0] = pMe->game_data[14][0] + (pMe->game_data[12][0] * 1 );
WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[14][0]);
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[14][1], pMe->game_data[14][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
//罚待蔼 谎覆
WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[i][0]);
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[i][1], pMe->game_data[i][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
//next蔼 谎覆
WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[13][0]);
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[13][1], pMe->game_data[13][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
//progress 拌魂棺 谎府扁
pMe->game_data[15][0] = pMe->game_data[15][0] + 1;
if ( pMe->game_data[15][0] >= 22) {
pMe->game_data[15][0] = 6;
pMe->game_data[12][0]++;
}
progress_clear(pMe);
//level 谎覆
WSPRINTF(buf,sizeof(buf), pFormat, pMe->game_data[12][0]);
IDISPLAY_DrawText(GetActiveDisplay(pMe), AEE_FONT_NORMAL, buf, -1, pMe->game_data[12][1], pMe->game_data[12][2], NULL, 0);
IDISPLAY_Update(GetActiveDisplay(pMe));
//鸥捞赣
ISHELL_SetTimer(GetActiveShell(pMe), 1500, TimerCallback, pMe);
}
//览侩橇肺弊伐 捞亥飘 勤甸矾
static boolean menu_sub_OnStart(menu_sub *pMe, uint16 wParam, AEEAppStart * pStart)
{
int ret;
int i;
AECHAR buf[20];
AECHAR buf1[35];
AECHAR * pFormat = L"%d ";
pMe->gamming = TRUE;
_D("OnStart");
//归弊扼款靛 拳搁
pMe->pImage = ISHELL_LoadImage(GetActiveShell(pMe), "./data/baby.bmp");
if(pMe->pImage == NULL)
return(FALSE);
IIMAGE_Draw(pMe->pImage, 0, 0);
IIMAGE_Release(pMe->pImage);
pMe->pImage = NULL;
//檬扁拳
pMe->game_cnt = 0;
pMe->game_next = 0;
pMe->game_data[13][0] = 1;
IDISPLAY_Update(GetActiveDisplay(pMe));
for(i= 0 ; i<=11;i++)
{
if (i <= 11) {
pMe->game_data[i][2] = 135;
if (i <= 8) {
pMe->game_data[i][2] = 103;
if (i <= 5) {
pMe->game_data[i][2] = 70;
if (i <= 2) {
pMe->game_data[i][2] = 35;
}
}
}
}
if ( (i + 1) % 3 == 1 ) pMe->game_data[i][1] = 7;
if ( (i + 1) % 3 == 2 ) pMe->game_data[i][1] = 37;
if ( (i + 1) % 3 == 0 ) pMe->game_data[i][1] = 67;
pMe->game_data[i][0] = 0; //rand() % 12;
}
pMe->game_data[12][0] = 1;
pMe->game_data[12][1] = 95;
pMe->game_data[12][2] = 39;
pMe->game_data[13][1] = 95;
pMe->game_data[13][2] = 74;
pMe->game_data[14][0] = 0;
pMe->game_data[14][1] = 95;
pMe->game_data[14][2] = 107;
pMe->game_data[15][0] = 10; //max 22
pMe->game_data[15][1] = 5;
pMe->game_data[15][2] = 5;
//progress 谎府扁
progress_clear(pMe);
//蔼甸 拳搁 谎府扁
setvalue(pMe);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -