#ifndef ANIMHANDLER_H
#define ANIMHANDLER_H

#include <QThread>
#include <QDebug>
#include <QFile>
#include "animation.h"
#include "spisender.h"

class AnimHandler: public QThread
{
    Q_OBJECT
    void run() override;
private:
    uint32_t progress = 0;
    bool exitThread = false;
    enum Mode {STOP=0, RUN, PAUSE};
    enum Mode mode = STOP;
    enum Mode lastmode = mode;
    Animation anim;
    SpiSender spisender;

public:
    AnimHandler();
    void openFile(const QString filepath);

public slots:
    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);
};

class Alma: public QObject
{
    Q_OBJECT
AnimHandler* animhandler;
public:
    Alma() {
        animhandler = new AnimHandler;
        connect(this, &Alma::exit, animhandler, &AnimHandler::enableExit);
        animhandler->start();
        emit exit();
    }

    ~Alma() {
    }

signals:
    void exit();
};



#endif // ANIMHANDLER_H