コード例 #1
0
ファイル: update.cpp プロジェクト: GWARDAR/OpenPLi-1
void CFlashExpert::writemtd(string filename, int mtdNumber)
{
	char message[500];
	sprintf(message, g_Locale->getText("flashupdate.reallyflashmtd").c_str(), filename.c_str(), CMTDInfo::getInstance()->getMTDName(mtdNumber).c_str());

    if ( ShowMsg ( "messagebox.info", message , CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, "softupdate.raw" ) != CMessageBox::mbrYes )
    {
    	return;
    }
	setTitle( g_Locale->getText("flashupdate.titlewriteflash"));
	paint();
	showGlobalStatus(0);
	CFlashTool ft;
	ft.setStatusViewer( this );
	ft.setMTDDevice( CMTDInfo::getInstance()->getMTDFileName(mtdNumber) );
	if(!ft.program( "/tmp/" + filename, 50, 100))
	{
		showStatusMessage( ft.getErrorMessage() );
		sleep(10);
	}
	else
	{
		showGlobalStatus(100);
		showStatusMessage( g_Locale->getText("flashupdate.ready"));
		sleep(1);
		hide();
		ShowHint ( "messagebox.info",  g_Locale->getText("flashupdate.flashreadyreboot") );
		ft.reboot();
	}
}
コード例 #2
0
ファイル: update.cpp プロジェクト: GWARDAR/OpenPLi-1
int CFlashUpdate::exec(CMenuTarget* parent, string)
{
	if(parent)
	{
		parent->hide();
	}
	paint();

	if(!checkVersion4Update())
	{
		hide();
		return menu_return::RETURN_REPAINT;
	}
	showGlobalStatus(19);
	paint();
	showGlobalStatus(20);

	if(g_settings.softupdate_mode==1) //internet-update
	{
		if(!getUpdateImage(newVersion))
		{
			hide();
			ShowHint ( "messagebox.error", g_Locale->getText("flashupdate.getupdatefileerror") );
			return menu_return::RETURN_REPAINT;
		}
	}

	showGlobalStatus(40);

	CFlashTool ft;
	ft.setMTDDevice("/dev/mtd/2");
	ft.setStatusViewer(this);

	string sFileName = gTmpPath+ ImageFile;

	//image-check
	showStatusMessage(g_Locale->getText("flashupdate.md5check") );
	if(!ft.check_cramfs(sFileName))
	{
		hide();
		ShowHint ( "messagebox.error", g_Locale->getText("flashupdate.md5sumerror") );
		return menu_return::RETURN_REPAINT;
	}
	showGlobalStatus(60);

	//flash it...
	if(!ft.program(sFileName, 80, 100))
	{
		hide();
		ShowHint ( "messagebox.error", ft.getErrorMessage() );
		return menu_return::RETURN_REPAINT;
	}

	//status anzeigen
	showGlobalStatus(100);
	showStatusMessage( g_Locale->getText("flashupdate.ready") );

	CNeutrinoApp::getInstance()->exec(NULL, "savesettings");
	sleep(2);

	hide();
	ShowHint ( "messagebox.info", g_Locale->getText("flashupdate.flashreadyreboot") );
	ft.reboot();
	sleep(20000);

	hide();
	return menu_return::RETURN_REPAINT;
}