X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/c4f51073fc1a2cb74363bb9b0d9f616c7dd742bb..41bdfce385e2c614a55c3e13734c307c03b6ffed:/client/proxguiqt.h diff --git a/client/proxguiqt.h b/client/proxguiqt.h index fa1ba018..5f7199fc 100644 --- a/client/proxguiqt.h +++ b/client/proxguiqt.h @@ -8,6 +8,12 @@ // GUI (QT) //----------------------------------------------------------------------------- +#ifndef PROXGUI_QT +#define PROXGUI_QT + +#include +#include + #include #include #include @@ -22,6 +28,7 @@ class Plot: public QWidget { private: + QWidget *master; int GraphStart; double GraphPixelsPerPoint; int CursorAPos; @@ -32,6 +39,7 @@ private: int xCoordOf(int i, QRect r ); int yCoordOf(int v, QRect r, int maxVal); int valueOf_yCoord(int y, QRect r, int maxVal); + void setMaxAndStart(int *buffer, int len, QRect plotRect); QColor getColor(int graphNum); public: Plot(QWidget *parent = 0); @@ -51,19 +59,24 @@ class ProxGuiQT; */ class ProxWidget : public QWidget { - Q_OBJECT; + Q_OBJECT; //needed for slot/signal classes private: + ProxGuiQT *master; Plot *plot; Ui::Form *opsController; - ProxGuiQT *master; - + QWidget* controlWidget; + public: ProxWidget(QWidget *parent = 0, ProxGuiQT *master = NULL); + ~ProxWidget(void); + //OpsShow(void); - //protected: + protected: // void paintEvent(QPaintEvent *event); - // void closeEvent(QCloseEvent *event); + void closeEvent(QCloseEvent *event); + void showEvent(QShowEvent *event); + void hideEvent(QHideEvent *event); // void mouseMoveEvent(QMouseEvent *event); // void mousePressEvent(QMouseEvent *event) { mouseMoveEvent(event); } // void keyPressEvent(QKeyEvent *event); @@ -76,6 +89,18 @@ class ProxWidget : public QWidget void vchange_dthr_down(int v); }; +class WorkerThread : public QThread { + Q_OBJECT; + public: + WorkerThread(char*, char*, bool); + ~WorkerThread(); + void run(); + private: + char *script_cmds_file = NULL; + char *script_cmd = NULL; + bool usb_present; +}; + class ProxGuiQT : public QObject { Q_OBJECT; @@ -85,23 +110,27 @@ class ProxGuiQT : public QObject ProxWidget *plotwidget; int argc; char **argv; - void (*main_func)(void); + WorkerThread *proxmarkThread; public: - ProxGuiQT(int argc, char **argv); + ProxGuiQT(int argc, char **argv, WorkerThread *wthread); ~ProxGuiQT(void); void ShowGraphWindow(void); void RepaintGraphWindow(void); void HideGraphWindow(void); void MainLoop(void); - + void Exit(void); private slots: void _ShowGraphWindow(void); void _RepaintGraphWindow(void); void _HideGraphWindow(void); - + void _Exit(void); + void _StartProxmarkThread(void); signals: void ShowGraphWindowSignal(void); void RepaintGraphWindowSignal(void); void HideGraphWindowSignal(void); + void ExitSignal(void); }; + +#endif // PROXGUI_QT