From 2ce7865e5372cf32fc362a03f7d157e0faa3faa6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Frakn=C3=B3i=20Tam=C3=A1s?= <fraknoitamas@gmail.com>
Date: Sun, 14 Apr 2019 19:55:03 +0200
Subject: [PATCH] Gitignore update, animhandler cleanup

---
 .gitignore                    |  2 +-
 MiniMatrixRPi/animhandler.cpp | 52 +++++++++++++++++++++++++++++++++++
 MiniMatrixRPi/animhandler.h   | 35 ++++++++++++-----------
 3 files changed, 70 insertions(+), 19 deletions(-)

diff --git a/.gitignore b/.gitignore
index fab7372..9956744 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
 # This file is used to ignore files which are generated
 # ----------------------------------------------------------------------------
-
+build-MiniMatrixRPi-Desktop_Qt_5_12_2_GCC_64bit-Debug
 *~
 *.autosave
 *.a
diff --git a/MiniMatrixRPi/animhandler.cpp b/MiniMatrixRPi/animhandler.cpp
index 14c9d71..1791bd3 100644
--- a/MiniMatrixRPi/animhandler.cpp
+++ b/MiniMatrixRPi/animhandler.cpp
@@ -2,3 +2,55 @@
 
 
 
+void AnimHandler::start()
+{
+    mode = START;
+}
+void AnimHandler::pause()
+{
+    mode = PAUSE;
+}
+void AnimHandler::stop()
+{
+    mode = STOP;
+}
+void AnimHandler::enableExit()
+{
+    exitThread = true;
+}
+
+void AnimHandler::run() {
+    qDebug() << "STARTED BITCHES";
+    while (!exitThread) {
+        if (lastmode != mode)
+        {
+            switch (mode) {
+            case STOP: emit onStoped(); break;
+            case START: emit onStarted(); break;
+            case PAUSE: emit onPaused(); break;
+            }
+        }
+        lastmode = mode;
+        switch (mode) {
+        case STOP: break;
+        case START: break;
+        case PAUSE: break;
+        default: mode = STOP; break;
+        }
+        progress++;
+        emit progressUpdate(progress);
+        usleep(100);
+    }
+    qDebug() << "KÖRTE";
+    emit resultReady("ALMA");
+}
+
+void AnimHandler::openFile(const QString filepath) {
+    this->filepath = filepath;
+    if (!file.isOpen())
+        file.close();
+    file.setFileName(filepath);
+    file.open(QIODevice::ReadOnly | QIODevice::Text);
+}
+
+
diff --git a/MiniMatrixRPi/animhandler.h b/MiniMatrixRPi/animhandler.h
index 7c6d8e3..3396265 100644
--- a/MiniMatrixRPi/animhandler.h
+++ b/MiniMatrixRPi/animhandler.h
@@ -3,34 +3,33 @@
 
 #include <QThread>
 #include <QDebug>
-
-
-
+#include <QFile>
 
 class AnimHandler: public QThread
 {
     Q_OBJECT
-    void run() override {
-        qDebug() << "STARTED BITCHES";
-        while (!exitThread) {
-            usleep(100);
-            progress++;
-            emit progressUpdate(progress);
-        }
-        qDebug() << "KÖRTE";
-        emit resultReady("ALMA");
-    }
+    void run() override;
 private:
-    bool exitThread = false;
     uint32_t progress = 0;
+    bool exitThread = false;
+    enum Mode {STOP=0, START, PAUSE} mode = STOP;
+    enum Mode lastmode = mode;
+    QFile file;
+    QString filepath;
+
+public:
+    void openFile(const QString filepath);
 
 public slots:
-    void enableExit()
-    {
-        exitThread = true;
-    }
+    void start();
+    void pause();
+    void stop();
+    void enableExit();
 
 signals:
+    void onPaused();
+    void onStarted();
+    void onStoped();
     void progressUpdate(uint32_t progress);
     void resultReady(const QString &result);
 };
-- 
GitLab