rockbox/rbutil/rbutilqt/installbootloader.h
Dominik Riebeling 0b08f41ae9 If bootloader installation failed abort logger so the user needs to confirm the error only once.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14129 a1c6a512-1295-4272-9138-f99709370657
2007-08-01 22:21:57 +00:00

108 lines
3.2 KiB
C++

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2007 by Dominik Wenger
* $Id: installbootloader.h 13990 2007-07-25 22:26:10Z Dominik Wenger $
*
* 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
#include <QtGui>
#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
signals:
void done(bool error); //installation finished.
// internal signals. Dont use this from out side.
void prepare();
void finish();
private slots:
void updateDataReadProgress(int, int);
void downloadDone(bool);
void downloadRequestFinished(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();
private:
QString m_mountpoint, m_device,m_bootloadermethod,m_bootloadername;
QString m_bootloaderUrlBase,m_tempfilename,m_origfirmware;
QUrl m_proxy;
bool m_install;
int series,table_entry; // for fwpatcher
HttpGet *getter;
QTemporaryFile downloadFile;
ProgressloggerInterface* m_dp;
};
#endif