diff options
author | Donovan Baarda <abo@minkirri.apana.org.au> | 2014-10-15 14:07:20 +1100 |
---|---|---|
committer | Donovan Baarda <abo@minkirri.apana.org.au> | 2014-10-15 14:07:20 +1100 |
commit | dbd04e283082ab869a22abf03c4c6280b03935bb (patch) | |
tree | 3951c6f91f76047e655f35e04db4eecd576c49df /facetracknoir/qcopyable-mutex.hpp | |
parent | d880464fbe9180aefde94594330126e115066dc3 (diff) | |
parent | 051a2e4392bc75b246cc5cb897ae0bbb1f92042e (diff) |
Merge branch 'unstable' of https://github.com/opentrack/opentrack into dev/kalman
Conflicts:
ftnoir_filter_kalman/ftnoir_filter_kalman.h
Diffstat (limited to 'facetracknoir/qcopyable-mutex.hpp')
-rw-r--r-- | facetracknoir/qcopyable-mutex.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/facetracknoir/qcopyable-mutex.hpp b/facetracknoir/qcopyable-mutex.hpp new file mode 100644 index 00000000..f7f36f93 --- /dev/null +++ b/facetracknoir/qcopyable-mutex.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include <QMutex> + +class MyMutex { +private: + QMutex inner; + +public: + QMutex* operator->() { return &inner; } + QMutex* operator->() const { return &const_cast<MyMutex*>(this)->inner; } + + MyMutex operator=(const MyMutex& datum) + { + auto mode = + datum->isRecursive() + ? QMutex::Recursive + : QMutex::NonRecursive; + + return MyMutex(mode); + } + + MyMutex(const MyMutex& datum) + { + *this = datum; + } + + MyMutex(QMutex::RecursionMode mode = QMutex::NonRecursive) : + inner(mode) + { + } + + QMutex* operator&() + { + return &inner; + } +}; |