/* * Copyright (c) 2010,2011 - RZ Uni Freiburg * Copyright (c) 2010,2011 - OpenSLX Project * * This program/file is free software distributed under the GPL version 2. * See http://openslx.org/COPYING * * If you have any feedback please consult http://openslx.org/feedback and * send your feedback to feedback@openslx.org * * General information about OpenSLX can be found under http://openslx.org * * * Main class of the fbgui: * - Manages display of components and their communications * */ #ifndef FBGUI_H #define FBGUI_H #include #include #include #include "agui.h" // Internal default settings #define DEFAULT_URL "http://www.google.com" #define DEFAULT_DOWNLOAD_DIR "/tmp/fbgui" #define DEFAULT_CONFIG_PATH "/etc/fbgui.conf" #define DEFAULT_LOG_FILE_PATH "/tmp/fbgui.log" #define DEFAULT_UPDATE_INTERVAL 1; #define DEFAULT_QRC_HTML_DIR ":/html" #define DEFAULT_FILE_TRIGGER "/tmp/fbgui/trigger" // Global settings variables extern QString logFilePath; extern QString ipConfigFilePath; extern QThread dmThread; extern QString serialLocation; extern QString fileToTriggerURL; extern QString sessionID; extern QString binPath; extern QString downloadPath; extern QUrl baseURL; extern int debugMode; extern int updateInterval; extern QString interfaceName; class fbgui : public agui { Q_OBJECT public: fbgui(); ~fbgui(); public slots: void init(); private: bool checkHost() const; void loadURL(); QByteArray generatePOSTData(); private slots: void loadURLDone(bool success); void loadSystem(); // prepares kexec by loading downloaded initramfs, kernel into kexec void prepareKexec(); // executes: kexec -e void runKexec(); }; #endif // FBGUI_H