summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-03-02 12:24:01 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-03-02 12:24:01 +0000
commit3c7b060511edcbfb05a5c09171ffefd91a651d22 (patch)
tree3d1803601545229dd0d8b4a234bb9fd857bd4a4a
parentc3e440882c154e143fcf621c933fdb2811f08227 (diff)
downloadrockbox-3c7b060511edcbfb05a5c09171ffefd91a651d22.tar.gz
rockbox-3c7b060511edcbfb05a5c09171ffefd91a651d22.zip
rbutil: add m:robe100 support.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16478 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/installbootloader.cpp159
-rw-r--r--rbutil/rbutilqt/installbootloader.h4
-rw-r--r--rbutil/rbutilqt/rbutil.ini17
3 files changed, 179 insertions, 1 deletions
diff --git a/rbutil/rbutilqt/installbootloader.cpp b/rbutil/rbutilqt/installbootloader.cpp
index 61655fd1f3..4b78ee484b 100644
--- a/rbutil/rbutilqt/installbootloader.cpp
+++ b/rbutil/rbutilqt/installbootloader.cpp
@@ -68,6 +68,12 @@ void BootloaderInstaller::install(ProgressloggerInterface* dp)
68 connect(this,SIGNAL(prepare()),this,SLOT(iriverPrepare())); 68 connect(this,SIGNAL(prepare()),this,SLOT(iriverPrepare()));
69 connect(this,SIGNAL(finish()),this,SLOT(iriverFinish())); 69 connect(this,SIGNAL(finish()),this,SLOT(iriverFinish()));
70 } 70 }
71 else if(m_bootloadermethod == "mrobe100")
72 {
73 // connect internal signal
74 connect(this,SIGNAL(prepare()),this,SLOT(mrobe100Prepare()));
75 connect(this,SIGNAL(finish()),this,SLOT(mrobe100Finish()));
76 }
71 else 77 else
72 { 78 {
73 m_dp->addItem(tr("unsupported install Method"),LOGERROR); 79 m_dp->addItem(tr("unsupported install Method"),LOGERROR);
@@ -111,6 +117,16 @@ void BootloaderInstaller::uninstall(ProgressloggerInterface* dp)
111 // connect internal signal 117 // connect internal signal
112 connect(this,SIGNAL(prepare()),this,SLOT(sansaPrepare())); 118 connect(this,SIGNAL(prepare()),this,SLOT(sansaPrepare()));
113 } 119 }
120 else if(m_bootloadermethod == "h10")
121 {
122 // connect internal signal
123 connect(this,SIGNAL(prepare()),this,SLOT(h10Prepare()));
124 }
125 else if(m_bootloadermethod == "mrobe100")
126 {
127 // connect internal signal
128 connect(this,SIGNAL(prepare()),this,SLOT(mrobe100Prepare()));
129 }
114 else if(m_bootloadermethod == "fwpatcher") 130 else if(m_bootloadermethod == "fwpatcher")
115 { 131 {
116 m_dp->addItem(tr("No uninstallation possible"),LOGWARNING); 132 m_dp->addItem(tr("No uninstallation possible"),LOGWARNING);
@@ -636,6 +652,149 @@ void BootloaderInstaller::h10Finish()
636 652
637} 653}
638 654
655
656
657/**************************************************
658*** mrobe100 secific code
659***************************************************/
660void BootloaderInstaller::mrobe100Prepare()
661{
662 if(m_install) // Installation
663 {
664 QString url = m_bootloaderUrlBase + "/olympus/mrobe100/" + m_bootloadername;
665
666 m_dp->addItem(tr("Downloading file %1.%2")
667 .arg(QFileInfo(url).baseName(), QFileInfo(url).completeSuffix()),LOGINFO);
668
669 // temporary file needs to be opened to get the filename
670 downloadFile.open();
671 m_tempfilename = downloadFile.fileName();
672 downloadFile.close();
673 // get the real file.
674 getter = new HttpGet(this);
675 getter->setProxy(m_proxy);
676 getter->setFile(&downloadFile);
677 getter->getFile(QUrl(url));
678 // connect signals from HttpGet
679 connect(getter, SIGNAL(done(bool)), this, SLOT(downloadDone(bool)));
680 connect(getter, SIGNAL(dataReadProgress(int, int)), this, SLOT(updateDataReadProgress(int, int)));
681 connect(m_dp, SIGNAL(aborted()), getter, SLOT(abort()));
682 }
683 else // Uninstallation
684 {
685
686 QString firmwarename = m_bootloadername;
687
688 QString firmware = m_mountpoint + "/SYSTEM/" + firmwarename;
689 QString firmwareOrig = m_mountpoint + "/SYSTEM/OF.mi4";
690
691 QFileInfo firmwareFI(firmware);
692 if(!firmwareFI.exists()) //Firmware dosent exists on player
693 {
694 m_dp->addItem(tr("Firmware does not exist: %1")
695 .arg(firmware),LOGERROR);
696 emit done(true);
697 return;
698 }
699
700 QFileInfo firmwareOrigFI(firmwareOrig);
701 if(!firmwareOrigFI.exists()) //Original Firmware dosent exists on player
702 {
703 m_dp->addItem(tr("Original Firmware does not exist: %1")
704 .arg(firmwareOrig),LOGERROR);
705 emit done(true);
706 return;
707 }
708
709 QFile firmwareFile(firmware);
710 QFile firmwareOrigFile(firmwareOrig);
711
712 //remove modified firmware
713 if(!firmwareFile.remove())
714 {
715 m_dp->addItem(tr("Could not remove the Firmware at: %1")
716 .arg(firmware),LOGERROR);
717 emit done(true);
718 return;
719 }
720
721 //copy original firmware
722 if(!firmwareOrigFile.copy(firmware))
723 {
724 m_dp->addItem(tr("Could not copy the Firmware from: %1 to %2")
725 .arg(firmwareOrig,firmware),LOGERROR);
726 emit done(true);
727 return;
728 }
729
730 removeInstallLog();
731
732 emit done(false); //success
733
734 }
735}
736
737void BootloaderInstaller::mrobe100Finish()
738{
739 QString firmwarename = m_bootloadername;
740
741 QString firmware = m_mountpoint + "/SYSTEM/" + firmwarename;
742 QString firmwareOrig = m_mountpoint + "/SYSTEM/OF.mi4";
743
744 QFileInfo firmwareFI(firmware);
745
746 if(!firmwareFI.exists()) //Firmware dosent exists on player
747 {
748 m_dp->addItem(tr("Firmware does not exist: %1")
749 .arg(firmware),LOGERROR);
750 emit done(true);
751 return;
752 }
753
754 QFileInfo firmwareOrigFI(firmwareOrig);
755
756 if(!firmwareOrigFI.exists())
757 {
758 QFile firmwareFile(firmware);
759
760 //backup
761 QDir::home().mkdir("Olympus mrobe100 Original Firmware Backup");
762 firmwareFile.copy(QDir::toNativeSeparators(QDir::homePath()) + QDir::toNativeSeparators("/Olympus mrobe100 Original Firmware Backup/") + m_bootloadername);
763
764 //rename
765 if(!firmwareFile.rename(firmwareOrig)) //rename Firmware to Original
766 {
767 m_dp->addItem(tr("Could not rename: %1 to %2")
768 .arg(firmware,firmwareOrig),LOGERROR);
769 emit done(true);
770 return;
771 }
772 }
773 else //there is already a original firmware
774 {
775 QFile firmwareFile(firmware);
776 firmwareFile.remove();
777 }
778 //copy the firmware
779 if(!downloadFile.copy(firmware))
780 {
781 m_dp->addItem(tr("Could not copy: %1 to %2")
782 .arg(m_tempfilename,firmware),LOGERROR);
783 emit done(true);
784 return;
785 }
786
787 downloadFile.remove();
788
789 createInstallLog();
790
791 m_dp->addItem(tr("Bootloader install finished successfully."),LOGOK);
792 m_dp->abort();
793
794 emit done(false); // success
795}
796
797
639/************************************************** 798/**************************************************
640*** ipod secific code 799*** ipod secific code
641***************************************************/ 800***************************************************/
diff --git a/rbutil/rbutilqt/installbootloader.h b/rbutil/rbutilqt/installbootloader.h
index 69757c5fc8..aea118cd7d 100644
--- a/rbutil/rbutilqt/installbootloader.h
+++ b/rbutil/rbutilqt/installbootloader.h
@@ -102,6 +102,10 @@ private slots:
102 //iriver specific routines 102 //iriver specific routines
103 void iriverPrepare(); 103 void iriverPrepare();
104 void iriverFinish(); 104 void iriverFinish();
105
106 //mrobe100 specific routines
107 void mrobe100Prepare();
108 void mrobe100Finish();
105 109
106private: 110private:
107 111
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini
index 5e5114c60c..6edf0192a4 100644
--- a/rbutil/rbutilqt/rbutil.ini
+++ b/rbutil/rbutilqt/rbutil.ini
@@ -8,7 +8,7 @@ bleeding_info=http://build.rockbox.org/cvsmod/build-info
8font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts.zip 8font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts.zip
9last_release=2.5 9last_release=2.5
10prog_name=rockbox 10prog_name=rockbox
11bootloader_url=http://download.rockbox.org/bootloader 11bootloader_url=http://haxx.rockbox.org/bootloader
12themes_url=http://www.rockbox-themes.org 12themes_url=http://www.rockbox-themes.org
13manual_url=http://download.rockbox.org/manual 13manual_url=http://download.rockbox.org/manual
14doom_url=http://download.rockbox.org/useful/rockdoom.zip 14doom_url=http://download.rockbox.org/useful/rockdoom.zip
@@ -45,6 +45,8 @@ platform32=iaudiox5v
45platform40=gigabeatf 45platform40=gigabeatf
46platform50=sansae200 46platform50=sansae200
47platform51=sansac200 47platform51=sansac200
48platform60=mrobe100
49
48 50
49[player] 51[player]
50name="Jukebox Player 6000 / Jukebox Studio 5 / 10 / 20" 52name="Jukebox Player 6000 / Jukebox Studio 5 / 10 / 20"
@@ -439,6 +441,19 @@ usbid=0x07817451
439voicename=sansac200 441voicename=sansac200
440targetid=30 442targetid=30
441 443
444[mrobe100]
445name="Olympus m:robe100"
446platform=mrobe100
447released=no
448needsbootloader=yes
449bootloadermethod=mrobe100
450bootloadername=pp5020.mi4
451resolution=160x128x1
452manualname=
453brand=Olympus
454usbid=0x07B10280
455voicename=mrobe100
456targetid=33
442 457
443[languages] 458[languages]
444lang1=africaans 459lang1=africaans