1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2007 by Dominik Wenger
* $Id$
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef INSTALLBOOTLOADER_H
#define INSTALLBOOTLOADER_H
#ifndef CONSOLE
#include <QtGui>
#else
#include <QtCore>
#endif
#include "progressloggerinterface.h"
#include "httpget.h"
#include "irivertools/irivertools.h"
extern "C" {
// Ipodpatcher
#include "../ipodpatcher/ipodpatcher.h"
#include "../sansapatcher/sansapatcher.h"
};
bool initIpodpatcher();
bool initSansapatcher();
class BootloaderInstaller : public QObject
{
Q_OBJECT
public:
BootloaderInstaller(QObject* parent);
~BootloaderInstaller() {}
void install(ProgressloggerInterface* dp);
void uninstall(ProgressloggerInterface* dp);
void setMountPoint(QString mountpoint) {m_mountpoint = mountpoint;}
void setDevice(QString device) {m_device= device;} //!< the current plattform
void setBootloaderMethod(QString method) {m_bootloadermethod= method;}
void setBootloaderName(QString name){m_bootloadername= name;}
void setBootloaderBaseUrl(QString baseUrl){m_bootloaderUrlBase = baseUrl;}
void setOrigFirmwarePath(QString path) {m_origfirmware = path;} //!< for iriver original firmware
void setBootloaderInfoUrl(QString url) {m_bootloaderinfoUrl =url; } //!< the url for the info file
bool downloadInfo(); //!< should be called before install/uninstall, blocks until downloaded.
bool uptodate(); //!< returns wether the bootloader is uptodate
signals:
void done(bool error); //installation finished.
signals: // internal signals. Dont use this from out side.
void prepare();
void finish();
private slots:
void createInstallLog(); // adds the bootloader entry to the log
void removeInstallLog(); // removes the bootloader entry from the log
void updateDataReadProgress(int, int);
void downloadDone(bool);
void downloadRequestFinished(int, bool);
void infoDownloadDone(bool);
void infoRequestFinished(int, bool);
void installEnded(bool);
// gigabeat specific routines
void gigabeatPrepare();
void gigabeatFinish();
//iaudio specific routines
void iaudioPrepare();
void iaudioFinish();
//h10 specific routines
void h10Prepare();
void h10Finish();
//ipod specific routines
void ipodPrepare();
void ipodFinish();
//sansa specific routines
void sansaPrepare();
void sansaFinish();
//iriver specific routines
void iriverPrepare();
void iriverFinish();
//mrobe100 specific routines
void mrobe100Prepare();
void mrobe100Finish();
private:
HttpGet *infodownloader;
QTemporaryFile bootloaderInfo;
volatile bool infoDownloaded;
volatile bool infoError;
QString m_mountpoint, m_device,m_bootloadermethod,m_bootloadername;
QString m_bootloaderUrlBase,m_tempfilename,m_origfirmware;
QString m_bootloaderinfoUrl;
bool m_install;
int series,table_entry; // for fwpatcher
HttpGet *getter;
QTemporaryFile downloadFile;
ProgressloggerInterface* m_dp;
};
#endif
|