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

📄 mmimmsnew.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	{ 
		fFinished = TRUE;
	}
	data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtNewMMSPicture);
	data->list_menu_data.List = (MfwMnuItem *)ALLOC_MEMORY (nfiles * sizeof (MfwMnuItem));
	while (!fFinished) 
	{
		if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0x00)
		{
			if(FileData.cFileName[0] != 0)
			{
				data->list_menu_data.List[i].icon = (MfwIcnAttr*)&colist;   ///textlistIcon;
				data->list_menu_data.List[i].exta = 0;
				data->list_menu_data.List[i].edit = 0;
				data->list_menu_data.List[i].menu = 0;
				data->list_menu_data.List[i].func = 0; 
				data->list_menu_data.List[i].flagFunc = item_flag_none;
				
				data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY ( MMS_IMAGE_NUM_LENGTH);
				wstrcpy(data->list_menu_data.List[i].str ,(char *)FileData.cFileName);
				i++;
			}
		}
		
		if (!FindNextFileA(hSearch, &FileData)) 
		{
			fFinished = TRUE; 
		}
	}
	FindClose(hSearch );	
	mediaFileNumber = nfiles;
	data->list_menu_data.SnapshotSize   = nfiles; 
	data->list_menu_data.ListLength = nfiles; 
	data->list_menu_data.autoDestroy = TRUE;
	listDisplayListMenu(data->win, &data->list_menu_data, (ListCbFunc)MMS_Menu_New_List_listmenu_cb,0);

#else
    int i = 0;
 	T_FFS_DIR sDir;
	MMS_S8 filename[64];
 	int iFileNum =0;
    T_MFW_HND         * parent=data->parent;
    MMS_TRACE_FUNCTION("MMS_Menu_New_List_listmenu_create"); 
	data->list_menu_data.ListMenuFlag=1;//for display the title
	if(data->ListID == 1)
	{ 
	  iFileNum = ffs_opendir(MMS_IMAGE_FILEPATH, &sDir);
	  
	  if((mediaFileNumber=iFileNum) <= 0)
          mediaFileNumber = 0;
	  
	  if(iFileNum  ==  0)
	  {
	    T_DISPLAY_DATA display_info;		  
		dialog_info_init(&display_info);
		display_info.RightSoftKey = TxtSoftBack;
		display_info.LeftSoftKey  = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
		display_info.Time         = THREE_SECS;
		display_info.KeyEvents    = KEY_RIGHT|KEY_LEFT|KEY_CLEAR|KEY_HUP;
		display_info.TextId2      = TxtMMSNoImage;
		display_info.Identifier   = DIALOGS_REASON_NULL;
		display_info.iconindex	  = REMIND_FAILURE;
		info_dialog (data->win, &display_info); 
		SEND_EVENT (data->win, E_BACK, 0, NULL); 
		return;
	  }
	      
	  data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtNewMMSPicture);
	}
	else if(data->ListID == 2)
	{
	   iFileNum = ffs_opendir( MMS_MUSIC_FILEPATH, &sDir);

	   if((mediaFileNumber=iFileNum) <= 0)
          mediaFileNumber = 0;
	   
	   if(iFileNum  ==  0)
	   {
		   T_DISPLAY_DATA display_info;		  
		   dialog_info_init(&display_info);
		   display_info.RightSoftKey = TxtSoftBack;
		   display_info.LeftSoftKey  = TxtSoftConfirm;//TxtSoftSelect,TxtSoftConfirm,TxtSoftOptions
		   display_info.Time         = THREE_SECS;
		   display_info.KeyEvents    = KEY_RIGHT|KEY_LEFT|KEY_CLEAR|KEY_HUP;
		   display_info.TextId2      = TxtMMSNoMusic;
		   display_info.Identifier   = DIALOGS_REASON_NULL;
		   display_info.iconindex	  = REMIND_FAILURE;
		   info_dialog (data->win, &display_info); 
		   SEND_EVENT (data->win, E_BACK, 0, NULL); 
		   return;
	   }
	   data->list_menu_data.ListMenuHeadStr=(char *) MmiRsrcGetText(TxtNewMMSMusic);	
    }

    data->list_menu_data.List = (MfwMnuItem *)ALLOC_MEMORY (iFileNum * sizeof (MfwMnuItem));
    while((ffs_readdir(&sDir, filename, sizeof(filename))) > 0 )
	{
         data->list_menu_data.List[i].icon = (MfwIcnAttr*)&colist;   ///textlistIcon;
         data->list_menu_data.List[i].exta = 0;
         data->list_menu_data.List[i].edit = 0;
         data->list_menu_data.List[i].menu = 0;
         data->list_menu_data.List[i].func = 0; 
         data->list_menu_data.List[i].flagFunc = item_flag_none;
 
 		data->list_menu_data.List[i].str= (char *) ALLOC_MEMORY ( MMS_IMAGE_NUM_LENGTH);	
        wstrcpy(data->list_menu_data.List[i].str ,(char *) filename);
		i++;
 	}

	 data->list_menu_data.SnapshotSize   = iFileNum; /* Number of list entries to view. */
     data->list_menu_data.ListLength = iFileNum; 
     data->list_menu_data.autoDestroy = TRUE;
     listDisplayListMenu(data->win, &data->list_menu_data, (ListCbFunc)MMS_Menu_New_List_listmenu_cb,0);
#endif
}

void MMS_Menu_New_List_listmenu_cb (T_MFW_HND * win, ListMenuData * ListData)
{
/*
#ifdef  _INNOVATION_EMULATOR_
	T_MFW_WIN         * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_MENU_NEW_LIST    * data   = (T_MMS_MENU_NEW_LIST *)win_data->user;
    T_MFW_WIN         * parent= data->parent;
	switch( ListData->Reason )
	{
	case LISTS_REASON_OK:
	case LISTS_REASON_SELECT:
		iListMenuItemIndex=ListData->ListPosition;
		if(1==data->ListID) //选择图片
		{
			wstrcpy(frameData.imageFileName,"/mms/imagefiles/");
			wstrcat(frameData.imageFileName,(char*)data->list_menu_data.List[iListMenuItemIndex].str);
			MMS_TRACE_EVENT(("the imageFilename is%s",frameData.imageFileName));
			rvf_delay(10);
			MMS_strstr(frameData.imageFileName, ".jpg");
            MMS_strstr(frameData.imageFileName, ".JPG");
			MMS_strstr(frameData.imageFileName, ".GIG");
			MMS_strstr(frameData.imageFileName, ".gif");
			
			editor_image_new(frameData.imageFileName, MMS_TYPE_JPEG);//MMS_TYPE_GIF
			MMS_Menu_New_List_destroy(data->win);
			SEND_EVENT (parent, E_BACK, 0, NULL);
		}
		else if(2 == data->ListID)
		{
			wstrcpy(frameData.audioFileName,"/mms/audiofiles/");
			wstrcat(frameData.audioFileName,(char*)data->list_menu_data.List[iListMenuItemIndex].str);
			MMS_TRACE_EVENT(("the audioFilename is%s",frameData.audioFileName));
			rvf_delay(10);
			editor_audio_new(frameData.audioFileName, MMS_TYPE_MMF);
			MMS_Menu_New_List_destroy(data->win);
			SEND_EVENT (parent, E_BACK, 0, NULL);
		}		
		break;
		
	case LISTS_REASON_BACK: 
		MMS_Menu_New_List_destroy(data->win);
		SEND_EVENT (parent, E_BACK, 0, NULL);
		break;
		
	default:
		break;
	}
	return;

#else*/
    extern MMS_U8	ECC_MidiPlay(MMS_S8 *filename, MMS_U8 loop);
	extern MMS_U8		ECC_MidiStop(MMS_S8 *filename);

	int ret;
    T_MFW_WIN         * win_data = ((T_MFW_HDR *)win)->data;
    T_MMS_MENU_NEW_LIST    * data   = (T_MMS_MENU_NEW_LIST *)win_data->user;
    T_MFW_WIN         * parent= data->parent;
	P_MMS mms = getMMS(); 

	MMS_TRACE_FUNCTION("MMS_Menu_New_List_listmenu_cb"); 
	switch( ListData->Reason )
	{
	case LISTS_REASON_OK:
	case LISTS_REASON_SELECT:
		iListMenuItemIndex=ListData->ListPosition;
		if(1==data->ListID) //选择图片
		{

			char *pTemp = (char*)data->list_menu_data.List[iListMenuItemIndex].str;
			wstrcpy(frameData.imageFileName,MMS_IMAGE_FILEPATH);
			wstrcat(frameData.imageFileName,"/");
			wstrcat(frameData.imageFileName,pTemp);
			MMS_TRACE_EVENT(("the imageFilename is%s",pTemp));
			
#if 0		
			if( MMS_File_Type(pTemp,MMS_TYPE_JPEG) )
			{
				editor_content_del(2);
				editor_image_new(frameData.imageFileName, MMS_TYPE_JPEG);
			}
			else if( MMS_File_Type(pTemp,MMS_TYPE_WBMP) )
			{
				editor_content_del(2);
				editor_image_new(frameData.imageFileName, MMS_TYPE_WBMP);
			}
			else if( MMS_File_Type(pTemp,MMS_TYPE_GIF) )
			{
				editor_content_del(2);
				editor_image_new(frameData.imageFileName, MMS_TYPE_GIF);
			}

			MMS_Menu_New_List_destroy(data->win);
			SEND_EVENT (parent, E_BACK, 0, NULL);
#else
            MMS_Image_Preview_start(data->win) ;
#endif
		}
		else if(2 == data->ListID)
		{
			char *pTemp = (char*)data->list_menu_data.List[iListMenuItemIndex].str;
			wstrcpy(frameData.audioFileName,MMS_MUSIC_FILEPATH);
			wstrcat(frameData.audioFileName,"/");
			wstrcat(frameData.audioFileName,pTemp);
			MMS_TRACE_EVENT(("the audioFilename is%s",frameData.audioFileName));
			
			if( MMS_File_Type(pTemp,MMS_TYPE_MMF) )
			{
			   	ret = editor_audio_new(frameData.audioFileName, MMS_TYPE_MMF);	
			}
			else if( MMS_File_Type(pTemp,MMS_TYPE_MIDI) )
			{
                ret = editor_audio_new(frameData.audioFileName, MMS_TYPE_MIDI);
			}
#if 0
			MMS_Menu_New_List_destroy(data->win);
			SEND_EVENT (parent, E_BACK, 0, NULL);
            if(ret == -1)
			{
				info_screen(NULL, NULL, TxtMMSFileTooBig, NULL, REMIND_FAILURE);
			}
			else if(ret = 0)
			{
				info_screen(NULL,NULL,TxtMMSSystemError, NULL, REMIND_FAILURE);
			}
#else
			if(1 == ret)
			{
				MMS_Menu_New_List_destroy(data->win);
				SEND_EVENT (parent, E_BACK, 0, NULL);
			}
			else if(ret == -1)
			   info_mms_screen(win, MMS_SCREEN_ID_MUSIC_FILETOOBIG);
			else if (ret = 0)
			{
               
			}
#endif
		}		
		break;
    case LISTS_REASON_HANGUP:
		if(2 == data->ListID)    //add by xie 04-07-23
			ECC_MidiStop(frameData.audioFileName);
		if(mms->editor)
		{
			editor_on_destroy();
			mms->editor = NULL;
		}
		/*
		if(mms->manager)
		{
			MMS_Codec_Destory();
			manager_on_destroy();
			mms->manager = NULL;
		}*/
		if( returntoidle(0) )
			break;
		break;
		
	case LISTS_REASON_UP:
        iListMenuItemIndex=ListData->ListPosition;
		if(2 == data->ListID)
		{
			char *pTemp = (char*)data->list_menu_data.List[iListMenuItemIndex].str;
			wstrcpy(frameData.audioFileName,MMS_MUSIC_FILEPATH);
			wstrcat(frameData.audioFileName,"/");
			wstrcat(frameData.audioFileName,pTemp);
			MMS_TRACE_EVENT(("the audioFilename is%s",frameData.audioFileName));
			rvf_delay(10);
			if( MMS_File_Type(pTemp,MMS_TYPE_MMF) || MMS_File_Type(pTemp,MMS_TYPE_MIDI))
			{
			    ECC_MidiPlay(frameData.audioFileName,1);
			}
		}		
		break;

    case LISTS_REASON_DOWN:
		iListMenuItemIndex=ListData->ListPosition;
		if(2 == data->ListID)
		{
			char *pTemp = (char*)data->list_menu_data.List[iListMenuItemIndex].str;
			wstrcpy(frameData.audioFileName,MMS_MUSIC_FILEPATH);
			wstrcat(frameData.audioFileName,"/");
			wstrcat(frameData.audioFileName,pTemp);
			MMS_TRACE_EVENT(("the audioFilename is%s",frameData.audioFileName));
			rvf_delay(10);
			if( MMS_File_Type(pTemp,MMS_TYPE_MMF) || MMS_File_Type(pTemp,MMS_TYPE_MIDI))
			{
				ECC_MidiPlay(frameData.audioFileName,1);
			}
		}	
		break;
		
	case LISTS_REASON_BACK: 
		if(2 == data->ListID)   //add by xie 04-07-23
		    ECC_MidiStop(frameData.audioFileName);
		MMS_Menu_New_List_destroy(data->win);
		SEND_EVENT (parent, E_BACK, 0, NULL);
		break;
		
	default:
		break;
	}
	return;
//#endif    
}

int MMS_FileTooBig_dialog_cb(T_MFW_HND win, USHORT Identifier, USHORT Reason)
{
	MMS_TRACE_EVENT(("MMS_FileTooBig_dialog_cb()"));
	
    switch( Reason )
    {
	case INFO_KCD_HUP:
	case INFO_KCD_RIGHT:	
	case INFO_TIMEOUT:       
		if(MMS_SCREEN_ID_MUSIC_FILETOOBIG == Identifier)
		{
			T_MFW_HND    *win = MMS_Get_MMSImageMusic_WHnd();
				
			T_MFW_WIN         * win_data = ((T_MFW_HDR *)win)->data;
			T_MMS_MENU_NEW_LIST    * data   = (T_MMS_MENU_NEW_LIST *)win_data->user;
			T_MFW_WIN         * parent= data->parent;  
			
			MMS_Menu_New_List_destroy(data->win);
			SEND_EVENT (parent, E_BACK, 0, NULL);
		}  
		else if(MMS_SCREEN_ID_IMAGE_FILETOOBIG == Identifier)
		{
			T_MFW_WIN  * win_data = ((T_MFW_HDR *)gHndMMSImagePreview)->data;
			T_MMS_IMAGE_PREVIEW      * data = (T_MMS_IMAGE_PREVIEW *)win_data->user;
			T_MFW_HND  *parent  = data->parent;
			
			MMS_Image_Preview_destroy(data->win);
			SEND_EVENT (parent, E_BACK, 0, NULL);
		}
		break;
		
    default:
        return MFW_EVENT_REJECTED;
    }
}

void  MMS_Menu_New_List_destroy (T_MFW_HND window)
{
	T_MFW_WIN          * win_data;
    T_MMS_MENU_NEW_LIST     * data;
    USHORT i;
	MMS_TRACE_FUNCTION("MMS_Menu_New_List_destroy"); 	
    if( window )
    {
        win_data = ((T_MFW_HDR *)window)->data;
        data = (T_MMS_MENU_NEW_LIST *)win_data->user;
		
        if( data )
        {
            win_delete (data->win);
			data->win = NULL;
			MMS_Set_MMSImageMusic_WHnd(NULL);//Added by xie 04-07-15

            for( i = 0; i < mediaFileNumber; i++ )
                FREE_MEMORY( (void *)(data->list_menu_data.List[i].str), MMS_IMAGE_NUM_LENGTH);
            FREE_MEMORY ((void *)data->list_menu_data.List, mediaFileNumber* sizeof (MfwMnuItem)); 
            FREE_MEMORY ((void *)data, sizeof (T_MMS_MENU_NEW_LIST));
			iListMenuItemIndex = 0;
			mediaFileNumber = 0;
        }
        else
        {
            TRACE_EVENT ("MMS_Menu_New_List_destroy called twice");
        }
    }
}

/**********************************************************************/
/*                           图片预览窗口                             */
/**********************************************************************/

void MMS_Menu_New_Pic_ShowAffirmWin (T_MFW_HND win,int picID)
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -