From 148f49eb2ba088ae4c62585a09296e503554d7f9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 10 Aug 2024 19:38:50 -0500 Subject: [PATCH] further preparations --- src/engine/export.h | 1 + src/engine/export/abstract.cpp | 4 ++++ src/engine/export/amigaValidation.cpp | 14 ++++++++++++++ src/engine/export/amigaValidation.h | 3 +++ 4 files changed, 22 insertions(+) diff --git a/src/engine/export.h b/src/engine/export.h index 9f7ed8abd..9445ecfe9 100644 --- a/src/engine/export.h +++ b/src/engine/export.h @@ -62,6 +62,7 @@ class DivROMExport { virtual void wait(); std::vector& getResult(); virtual bool hasFailed(); + virtual bool isRunning(); virtual DivROMExportProgress getProgress(); virtual ~DivROMExport() {} }; diff --git a/src/engine/export/abstract.cpp b/src/engine/export/abstract.cpp index a30fbecdd..c33c38502 100644 --- a/src/engine/export/abstract.cpp +++ b/src/engine/export/abstract.cpp @@ -51,3 +51,7 @@ void DivROMExport::logAppend(String what) { void DivROMExport::wait() { } + +bool DivROMExport::isRunning() { + return false; +} diff --git a/src/engine/export/amigaValidation.cpp b/src/engine/export/amigaValidation.cpp index 3e2074bd0..2d9072aaa 100644 --- a/src/engine/export/amigaValidation.cpp +++ b/src/engine/export/amigaValidation.cpp @@ -271,10 +271,24 @@ void DivExportAmigaValidation::run() { output.push_back(DivROMExportOutput("sample.bin",sample)); output.push_back(DivROMExportOutput("wave.bin",wave)); output.push_back(DivROMExportOutput("seq.bin",seq)); + + running=false; } bool DivExportAmigaValidation::go(DivEngine* eng) { e=eng; + running=true; exportThread=new std::thread(&DivExportAmigaValidation::run,this); return true; } + +void DivExportAmigaValidation::wait() { + if (exportThread!=NULL) { + exportThread->join(); + delete exportThread; + } +} + +bool DivExportAmigaValidation::isRunning() { + return running; +} diff --git a/src/engine/export/amigaValidation.h b/src/engine/export/amigaValidation.h index 46c693880..b3e57382c 100644 --- a/src/engine/export/amigaValidation.h +++ b/src/engine/export/amigaValidation.h @@ -22,8 +22,11 @@ class DivExportAmigaValidation: public DivROMExport { DivEngine* e; std::thread* exportThread; + bool running; void run(); public: bool go(DivEngine* e); + void abort(); + void wait(); ~DivExportAmigaValidation() {} };