summaryrefslogtreecommitdiff
path: root/gui/gui.h
diff options
context:
space:
mode:
authorSiddarth-Suresh <65844402+Siddarth-Suresh@users.noreply.github.com>2025-04-01 21:54:38 -0400
committerSiddarth-Suresh <65844402+Siddarth-Suresh@users.noreply.github.com>2025-04-01 21:54:38 -0400
commitcc2781682a47dc331f7bbcb5d7842db5197d29fc (patch)
tree248c770c6e1a51756c5a8fa904ec4873fb66644e /gui/gui.h
parent6f536bd1bd1abab307c79d688c993e930cf7c250 (diff)
GUI and controller on separate threads
Diffstat (limited to 'gui/gui.h')
-rw-r--r--gui/gui.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/gui/gui.h b/gui/gui.h
index 1b700cc..77a8867 100644
--- a/gui/gui.h
+++ b/gui/gui.h
@@ -2,6 +2,12 @@
#define GUI_H
#include <QMainWindow>
+#include <QThread>
+#include <QFileDialog>
+#include <QFile>
+#include <QTextStream>
+#include <QTextEdit>
+#include "worker.h"
QT_BEGIN_NAMESPACE
namespace Ui {
@@ -17,7 +23,47 @@ public:
GUI(QWidget *parent = nullptr);
~GUI();
+signals:
+ void sendRefreshDram();
+ void sendRefreshCache();
+ void sendRefreshRegisters();
+ void sendRunSteps(int steps);
+ void sendRunStep();
+
+private slots:
+ void onWorkerClockCycles(int value, int pc);
+
+ void onWorkerShowDram(const std::vector<std::array<signed int, LINE_SIZE>> data);
+
+ void onWorkerShowCache(const std::vector<std::array<signed int, LINE_SIZE>> data);
+
+ void onWorkerShowRegisters(const std::array<int, GPR_NUM> &data);
+
+ void onWorkerFinished();
+
+ void on_upload_intructions_btn_clicked();
+
+ void on_upload_program_state_btn_clicked();
+
+ void on_refresh_dram_btn_clicked();
+
+ void on_refresh_cache_btn_clicked();
+
+ void on_refresh_registers_btn_clicked();
+
+ void on_enable_pipeline_checkbox_checkStateChanged(const Qt::CheckState &arg1);
+
+ void on_enabl_cache_checkbox_checkStateChanged(const Qt::CheckState &arg1);
+
+ void on_run_steps_btn_clicked();
+
+ void on_step_btn_clicked();
+
+ void on_save_program_state_btn_clicked();
+
private:
Ui::GUI *ui;
+ QThread workerThread;
+ Worker *worker;
};
#endif // GUI_H