📄 mmimt_search_wintab.c
字号:
default:
ret = MMI_RESULT_FALSE;
break;
}
return ret;
}
////////////////////////////////////////////////////////////////
LOCAL MMI_RESULT_E HandleSrchRsltOBJWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );
LOCAL MMI_RESULT_E HandleSrchRsltOBJ2WinMsg( MMI_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param );
WINDOW_TABLE(MMIMP3_SRCHRSLT_OBJ_WIN_TAB) =
{
CLEAR_LCD,
WIN_PRIO(WIN_ONE_LEVEL),
WIN_FUNC((uint32)HandleSrchRsltOBJWinMsg),
WIN_ID(MMIMP3_SRCHRSLT_OBJ_WIN_ID),
CREATE_MENU_CTRL(0,0,MMI_MAINSCREEN_RIGHT_MAX_PIXEL,MMI_MAINSCREEN_BOTTOM_MAX_PIXEL,
MENU_DYNA,MMIMP3_SRCHRSLT_OBJ_MENU_CTRL_ID),
END_WIN
};
extern WINDOW_TABLE(MMIMP3_SRCHRSLT_OBJ_WIN_TAB);
void MMIMT_SrchRslt_OBJ_OpenWin( ADD_DATA add_data_ptr )
{
if( !MMK_IsOpenWin( MMIMP3_SRCHRSLT_OBJ_WIN_ID ) )
{
MMK_CreateWin( (uint32*)MMIMP3_SRCHRSLT_OBJ_WIN_TAB, add_data_ptr );
MTMMK_SetWinFunc( MMIMP3_SRCHRSLT_OBJ_WIN_ID, (PROCESSMSG_FUNC)HandleSrchRsltOBJWinMsg );
}
}
void MMIMT_SrchRslt_OBJ2_OpenWin( ADD_DATA add_data_ptr )
{
if( !MMK_IsOpenWin( MMIMP3_SRCHRSLT_OBJ_WIN_ID ) )
{
MMK_CreateWin( (uint32*)MMIMP3_SRCHRSLT_OBJ_WIN_TAB, add_data_ptr );
MTMMK_SetWinFunc( MMIMP3_SRCHRSLT_OBJ_WIN_ID, (PROCESSMSG_FUNC)HandleSrchRsltOBJ2WinMsg );
}
}
extern MT_SRCH_RSLT_OBJ *g_srch_rslt_obj;
extern uint8 g_srch_rslt_obj_cnt;
LOCAL MMI_RESULT_E HandleSrchRsltOBJWinMsg( MMIMT_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
MMI_RESULT_E ret = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMP3_SRCHRSLT_OBJ_MENU_CTRL_ID;
static uint16 i = 0, j = 0; uint16 k; static uint16 n = 0;
static uint16 *szalias_idx[MT_SRCH_RSLT_OBJ_MAX+1] = { 0 }; static char *szurl_idx[MT_SRCH_RSLT_OBJ_MAX+1] = { 0 };
static char sztitle[81] = { 0 }; static char szartist[81] = { 0 }; static char szalbum[81] = { 0 };
static char szfilename[FFS_MAX_PATH+1] = { 0 };
static MMI_STRING_T title = { 0 }; MMI_STRING_T text;
switch( msg_id )
{
case MSG_OPEN_WINDOW:
if( !g_srch_rslt_cnt ) break;
i = (uint8)(uint32)MMK_GetWinAddDataPtr( win_id ); if( i >= g_srch_rslt_cnt ) break; // index, ignore ver
MT_MEMSET( szalias_idx, 0, sizeof(szalias_idx) ); MT_MEMSET( szurl_idx, 0, sizeof(szurl_idx) );
MT_MEMSET( sztitle, 0, sizeof(sztitle) ); MT_MEMSET( szartist, 0, sizeof(szartist) ); MT_MEMSET( szalbum, 0, sizeof(szalbum) );
GUI_UCS2GB( (uint8 *)sztitle, (uint8 *)g_srch_rslt[i].sztitle, (uint16)( mt_wcslen(g_srch_rslt[i].sztitle)*2 ) );
GUI_UCS2GB( (uint8 *)szartist, (uint8 *)g_srch_rslt[i].szartist, (uint16)( mt_wcslen(g_srch_rslt[i].szartist)*2 ) );
GUI_UCS2GB( (uint8 *)szalbum, (uint8 *)g_srch_rslt[i].szalbum, (uint16)( mt_wcslen(g_srch_rslt[i].szalbum)*2 ) );
title.str_ptr = (uint8 *)g_srch_rslt[i].sztitle; title.is_ucs2 = TRUE; title.length = (uint16)( mt_wcslen(g_srch_rslt[i].sztitle)*2 );
GUIMENU_SetMenuTitle( &title, ctrl_id );
n = 0; text.is_ucs2 = TRUE;
if( *g_srch_rslt[i].szurl )
{
text.str_ptr = (uint8 *)g_srch_rslt[i].szalias; text.length = (uint16)( mt_wcslen(g_srch_rslt[i].szalias)*2 );
GUIMENU_InsertNode( n,n+1, 0, &text, ctrl_id);
szalias_idx[n] = g_srch_rslt[i].szalias; szurl_idx[n] = g_srch_rslt[i].szurl;
n++;
}
if( *g_srch_rslt[i].szmobjid )
{
for( k=0; k<g_srch_rslt_obj_cnt; k++ )
{
text.str_ptr = (uint8 *)g_srch_rslt_obj[k].szalias; text.length = (uint16)( mt_wcslen(g_srch_rslt_obj[k].szalias)*2 );
GUIMENU_InsertNode(n, n+1, 0, &text, ctrl_id);
szalias_idx[n] = g_srch_rslt_obj[k].szalias; szurl_idx[n] = g_srch_rslt_obj[k].szurl;
n++;
}
}
// GUIMENU_InsertNodeTextId( ctrl_id, TXT_MT_SRCH_LIST_RING_FORWARD, n+1, 0, n+1 ); n++;
GUIMENU_InsertNodeTextId( ctrl_id, TXT_MT_SRCH_LIST_RING_SUBRBT, n+1, 0, n+1 ); n++;
MMK_SetAtvCtrl( win_id, ctrl_id );
break;
case MSG_LOSE_FOCUS:
if( MMK_GetFocusWinId() == (uint32)win_id ) break;
MMI_GetLabelTextByLang( TXT_MT_TITLE_SRCHRSLT, &text );
GUIMENU_SetMenuTitle( &text, ctrl_id );
break;
case MSG_GET_FOCUS:
GUIMENU_SetMenuTitle( &title, ctrl_id );
break;
case MSG_MT_SRCH_DOWN_MP3:
MT_WAPDown_MP3( szurl_idx[j], szfilename );
break;
case MSG_CTL_PENOK:
case MSG_CTL_OK:
// MT_TRACE("!!@@!!MAG MSG_CTL_OK~~~");
if( !g_srch_rslt_cnt ) break;
j = GUIMENU_GetCurNodeId( ctrl_id ) - 1;
if( j == n - 1 )
{
const MMIMT_PLAY_INFO *playinfo_ptr = MMIMT_GetPlayInfo();
MT_BrowserOpenURL_SubRBT( sztitle, szartist, szalbum, "", playinfo_ptr->pk_ver );
}
/*
else if( j == n - 2 )
{
MT_BrowserOpenURL_FwdRing( sztitle, szartist, szalbum, "" );
}
*/
else
{
const MMIMT_PLAY_INFO *playinfo_ptr = MMIMT_GetPlayInfo();
if( playinfo_ptr->filedev_def_mp3 == MTFS_MMC && !MMIMtune_GetSDStatus() )
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_SDCARD_INAVAILABLE, MTMMI_3SECONDS, NULL );
}
else if( MT_WAPDown_IsPlaying_MP3( g_srch_rslt_obj[i].szurl, szfilename ) )
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_MP3FILE_INAVAILABLE, MTMMI_3SECONDS, NULL );
}
else
{
MT_MEMSET( szfilename, 0, sizeof(szfilename) );
if( j == 0 && *g_srch_rslt[i].szurl )
{
GUI_UCS2GB( (uint8 *)szfilename, (uint8 *)szalias_idx[j], (uint16)MIN( FFS_MAX_PATH, mt_wcslen( szalias_idx[j] )*2 ) );
}
else
{
uint32 l; strcpy( szfilename, sztitle ); strcat( szfilename, "-" ); l = strlen( szfilename );
GUI_UCS2GB( (uint8 *)szfilename+l, (uint8 *)szalias_idx[j], (uint16)MIN( FFS_MAX_PATH-l, mt_wcslen( szalias_idx[j] )*2 ) );
}
{// Trim filename MK
char fn[MMIFILE_FULL_PATH_MAX_LEN]={0};
uint16 u16filename[MMIFILE_FILE_NAME_MAX_LEN] = {0};
uint16 u16fn2[MMIFILE_FILE_NAME_MAX_LEN] = {0};
GUI_GB2UCS((uint16 *)u16filename, (const uint8 *) szfilename, strlen(szfilename));
if (mt_wcslen(u16filename) >MMIFILE_FILE_NAME_MAX_LEN-14)
{
MT_MEMCPY(u16fn2, u16filename,MMIFILE_FILE_NAME_MAX_LEN-14);
GUI_UCS2GB((uint8 *) fn, (const uint8 *) u16fn2, MMIFILE_FILE_NAME_MAX_LEN-14);
if (mt_getsuffix(szfilename))
strcat(fn, mt_getsuffix(szfilename));
MT_MEMSET(szfilename, 0, sizeof(szfilename));
strcpy(szfilename, fn);
}
}
MMIMT_Charge_MP3( szurl_idx[j], szfilename );
}
}
break;
case MSG_CTL_CANCEL:
MMK_CloseWin( win_id );
break;
default:
ret = MMI_RESULT_FALSE;
break;
}
return ret;
}
extern uint8 g_srch_rslt_obj_type;
extern uint16 g_srch_rslt_obj_title[];
LOCAL MMI_RESULT_E HandleSrchRsltOBJ2WinMsg( MMI_WINDOW_ID_E win_id, MMI_MESSAGE_ID_E msg_id, DPARAM param )
{
MMI_RESULT_E ret = MMI_RESULT_TRUE; MMI_CONTROL_ID_E ctrl_id = MMIMP3_SRCHRSLT_OBJ_MENU_CTRL_ID;
static uint16 i = 0, n = 0; uint32 l;
static char szfilename[FFS_MAX_PATH+1] = { 0 };
static char sztitle[81] = { 0 };
static MMI_STRING_T title = { 0 }; MMI_STRING_T text;
// mt_trace_f("!!@@!!HandleSrchRsltOBJ2WinMsg!!~~");
switch( msg_id )
{
case MSG_OPEN_WINDOW:
MT_MEMSET( sztitle, 0, sizeof(sztitle) );
GUI_UCS2GB( (uint8 *)sztitle, (uint8 *)g_srch_rslt_obj_title, (uint16)( mt_wcslen(g_srch_rslt_obj_title)*2 ) );
title.str_ptr = (uint8 *)g_srch_rslt_obj_title; title.is_ucs2 = TRUE; title.length = (uint16)( mt_wcslen(g_srch_rslt_obj_title)*2 );
GUIMENU_SetMenuTitle( &title, ctrl_id );
if( !g_srch_rslt_obj_cnt ) break;
text.is_ucs2 = TRUE;
for( i=0; i<g_srch_rslt_obj_cnt; i++ )
{
text.str_ptr = (uint8 *)g_srch_rslt_obj[i].szalias; text.length = (uint16)( mt_wcslen(g_srch_rslt_obj[i].szalias)*2 );
GUIMENU_InsertNode( (uint16)(i), (uint16)(i+1), 0, &text, ctrl_id);
}
if( g_srch_rslt_obj_type == 2 )
{
// GUIMENU_InsertNodeTextId( ctrl_id, TXT_MT_SRCH_LIST_RING_FORWARD, (uint16)(i+1), 0, (uint16)(i+1) ); i++;
GUIMENU_InsertNodeTextId( ctrl_id, TXT_MT_SRCH_LIST_RING_SUBRBT, (uint16)(i+1), 0, (uint16)(i+1) ); i++;
}
n = i;
MMK_SetAtvCtrl( win_id, ctrl_id );
case MSG_LOSE_FOCUS:
if( MMK_GetFocusWinId() == (uint32)win_id ) break;
MMI_GetLabelTextByLang( TXT_MT_TITLE_SRCHRSLT, &text );
GUIMENU_SetMenuTitle( &text, ctrl_id );
break;
case MSG_GET_FOCUS:
GUIMENU_SetMenuTitle( &title, ctrl_id );
break;
case MSG_MT_SRCH_DOWN_MP3:
MT_WAPDown_MP3( g_srch_rslt_obj[i].szurl, szfilename );
break;
case MSG_MT_SRCH_DOWN_MP4:
MT_WAPDown_MP4( g_srch_rslt_obj[i].szurl, szfilename );
break;
case MSG_CTL_PENOK:
case MSG_CTL_OK:
if( !g_srch_rslt_obj_cnt ) break;
i = (uint16)MAX( 0, GUIMENU_GetCurNodeId( ctrl_id ) - 1 ); if( i >= n ) break;
MT_MEMSET( szfilename, 0, sizeof(szfilename) );
strcpy( szfilename, sztitle ); strcat( szfilename, "-" ); l = strlen( szfilename );
GUI_UCS2GB( (uint8 *)szfilename+l, (uint8 *)g_srch_rslt_obj[i].szalias, (uint16)MIN( FFS_MAX_PATH-l, mt_wcslen( g_srch_rslt_obj[i].szalias )*2 ) );
{// Trim filename MK
char fn[MMIFILE_FULL_PATH_MAX_LEN]={0};
uint16 u16filename[MMIFILE_FILE_NAME_MAX_LEN] = {0};
uint16 u16fn2[MMIFILE_FILE_NAME_MAX_LEN] = {0};
GUI_GB2UCS((uint16 *)u16filename, (const uint8 *) szfilename, strlen(szfilename));
if (mt_wcslen(u16filename) >MMIFILE_FILE_NAME_MAX_LEN-14)
{
MT_MEMCPY(u16fn2, u16filename,MMIFILE_FILE_NAME_MAX_LEN-14);
GUI_UCS2GB((uint8 *) fn, (const uint8 *) u16fn2, MMIFILE_FILE_NAME_MAX_LEN-14);
if (mt_getsuffix(szfilename))
strcat(fn, mt_getsuffix(szfilename));
MT_MEMSET(szfilename, 0, sizeof(szfilename));
strcpy(szfilename, fn);
}
}
if( g_srch_rslt_obj_type == 2 )
{
if( i == n - 1 )
{
const MMIMT_PLAY_INFO *playinfo_ptr = MMIMT_GetPlayInfo();
MT_BrowserOpenURL_SubRBT( sztitle, "", "", "", playinfo_ptr->pk_ver );
}
/*
else if( i == n - 2 )
{
MT_BrowserOpenURL_FwdRing( sztitle, "", "", "" );
}
*/
else
{
const MMIMT_PLAY_INFO *playinfo_ptr = MMIMT_GetPlayInfo();
if( playinfo_ptr->filedev_def_mp3 == MTFS_MMC && !MMIMtune_GetSDStatus() )
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_SDCARD_INAVAILABLE, MTMMI_3SECONDS, NULL );
}
else
{
MMIMT_Charge_MP3( g_srch_rslt_obj[i].szurl, szfilename );
}
}
}
else // g_srch_rslt_obj_type == 3
{
const MMIMT_PLAY_INFO *playinfo_ptr = MMIMT_GetPlayInfo();
if( playinfo_ptr->filedev_def_mp4 == MTFS_MMC && !MMIMtune_GetSDStatus() )
{
MTPUBWIN_OpenPromptAlertWin( MTPROMPT_ALERT, TXT_MT_SDCARD_INAVAILABLE, MTMMI_3SECONDS, NULL );
}
else
{
MMIMT_Charge_MP4( g_srch_rslt_obj[i].szurl, szfilename );
}
}
break;
case MSG_CTL_CANCEL:
MMK_CloseWin( win_id );
break;
default:
ret = MMI_RESULT_FALSE;
break;
}
return ret;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -