X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b8fdac9e6fedfda5e291e437766ed46e3caf7c32..cfa9c98d573c5a0d35c6ce86501fc6fd57f91b81:/client/proxguiqt.h diff --git a/client/proxguiqt.h b/client/proxguiqt.h index 794db2d7..9677b49c 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,8 +28,9 @@ class Plot: public QWidget { private: - int GraphStart; - double GraphPixelsPerPoint; + QWidget *master; + int GraphStart; // Starting point/offset for the left side of the graph + double GraphPixelsPerPoint; // How many visual pixels are between each sample point (x axis) int CursorAPos; int CursorBPos; void PlotGraph(int *buffer, int len, QRect r,QRect r2, QPainter* painter, int graphNum); @@ -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,30 +59,48 @@ 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: - // void paintEvent(QPaintEvent *event); - // void closeEvent(QCloseEvent *event); - // void mouseMoveEvent(QMouseEvent *event); - // void mousePressEvent(QMouseEvent *event) { mouseMoveEvent(event); } - // void keyPressEvent(QKeyEvent *event); + protected: + // void paintEvent(QPaintEvent *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); public slots: void applyOperation(); void stickOperation(); void vchange_autocorr(int v); + void vchange_askedge(int v); void vchange_dthr_up(int v); 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; @@ -84,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