aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui/coreview/memory.cpp
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-01-03 19:19:06 +0100
committerKarel Kočí <cynerd@email.cz>2018-01-03 19:19:06 +0100
commit1473699d8e204d9bf8b00c160b097b4adf85a66b (patch)
tree204fe38be7511764310053f05b198de6c18c30b8 /qtmips_gui/coreview/memory.cpp
parent615060bc4017a3db864568ee3bb7bfb3ec18d2e7 (diff)
downloadqtmips-1473699d8e204d9bf8b00c160b097b4adf85a66b.tar.gz
qtmips-1473699d8e204d9bf8b00c160b097b4adf85a66b.tar.bz2
qtmips-1473699d8e204d9bf8b00c160b097b4adf85a66b.zip
Add memory template for gui coreview
Diffstat (limited to 'qtmips_gui/coreview/memory.cpp')
-rw-r--r--qtmips_gui/coreview/memory.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/qtmips_gui/coreview/memory.cpp b/qtmips_gui/coreview/memory.cpp
new file mode 100644
index 0000000..e6044fe
--- /dev/null
+++ b/qtmips_gui/coreview/memory.cpp
@@ -0,0 +1,63 @@
+#include "memory.h"
+
+using namespace coreview;
+
+//////////////////////
+#define WIDTH 80
+#define HEIGHT 100
+#define PENW 1
+//////////////////////
+
+Memory::Memory(machine::QtMipsMachine *machine) : QGraphicsObject(nullptr) {
+#define CON_INIT(X) do { \
+ X.in = new Connector(); \
+ X.out = new Connector(); \
+ X.read = new Connector(); \
+ X.write = new Connector(); \
+ } while(false)
+ CON_INIT(con_program);
+ CON_INIT(con_data);
+#undef CON_INIT
+ // TODO cache?
+}
+
+QRectF Memory::boundingRect() const {
+ // TODO
+}
+
+void Memory::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {
+ // TODO
+}
+
+void Memory::setPos(qreal x, qreal y) {
+ QGraphicsObject::setPos(x, y);
+ // TODO con
+}
+
+const Connector *Memory::connector_in(bool program) const {
+ if (program)
+ return con_program.in;
+ else
+ return con_data.in;
+}
+
+const Connector *Memory::connector_out(bool program) const {
+ if (program)
+ return con_program.out;
+ else
+ return con_data.out;
+}
+
+const Connector *Memory::connector_read(bool program) const {
+ if (program)
+ return con_program.read;
+ else
+ return con_data.read;
+}
+
+const Connector *Memory::connector_write(bool program) const {
+ if (program)
+ return con_program.write;
+ else
+ return con_data.write;
+}