summaryrefslogtreecommitdiffhomepage
path: root/proto-ft/mutex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'proto-ft/mutex.cpp')
-rw-r--r--proto-ft/mutex.cpp60
1 files changed, 0 insertions, 60 deletions
diff --git a/proto-ft/mutex.cpp b/proto-ft/mutex.cpp
deleted file mode 100644
index a012ba90..00000000
--- a/proto-ft/mutex.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "ftnoir_protocol_ft.h"
-#include "mutex.hpp"
-#include <windows.h>
-#include <QDebug>
-
-check_for_first_run::check_for_first_run() : checked_for_first_run(false), is_first_instance(false), enabled(false)
-{
-}
-
-bool check_for_first_run::is_first_run()
-{
- return checked_for_first_run && is_first_instance;
-}
-
-void check_for_first_run::set_enabled(bool flag)
-{
- enabled = flag;
-}
-
-void check_for_first_run::try_runonce()
-{
- constexpr const char* name = "opentrack-freetrack-runonce";
-
- if (checked_for_first_run)
- return;
-
- // just leak it, no issue
- HANDLE h = CreateMutexA(nullptr, false, name);
-
- switch (WaitForSingleObject(h, 0))
- {
- case WAIT_OBJECT_0:
- is_first_instance = true;
- checked_for_first_run = true;
- break;
- case WAIT_TIMEOUT:
- checked_for_first_run = true;
- break;
- default:
- checked_for_first_run = false;
- break;
- }
-
- if (checked_for_first_run && !is_first_instance)
- CloseHandle(h);
-}
-
-check_for_first_run::~check_for_first_run()
-{
- try_exit();
-}
-
-void check_for_first_run::try_exit()
-{
- if (is_first_instance && enabled)
- {
- qDebug() << "ft runonce: removing registry keys";
- freetrack::set_protocols(false, false);
- }
-}