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

📄 mmimt_search_wintab.c

📁 展讯平台的mtue源代码, 全面,精简,仅供学习, 商用后果自负
💻 C
📖 第 1 页 / 共 2 页
字号:

	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 + -