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
130
131
|
/***************************************************************************
* __________ __ ___.
* 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 setProxy(QUrl proxy) {m_proxy= proxy;}
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;
QUrl m_proxy;
QString m_bootloaderinfoUrl;
bool m_install;
int series,table_entry; // for fwpatcher
HttpGet *getter;
QTemporaryFile downloadFile;
ProgressloggerInterface* m_dp;
};
#endif
|