default to webcam off

This commit is contained in:
2025-02-27 04:24:01 -06:00
parent 810d5f580d
commit 3edb909866
3 changed files with 13 additions and 5 deletions

View File

@ -21,7 +21,7 @@ class HiddenField {
return dynamic_cast<T>(ptr); return dynamic_cast<T>(ptr);
} }
template<typename T> template<typename T>
T AllocField() T* AllocField()
{ {
auto v = new T(); auto v = new T();
SetField(v); SetField(v);

View File

@ -11,7 +11,7 @@
namespace Tesses::Framework::Threading namespace Tesses::Framework::Threading
{ {
#if defined(TESSESFRAMEWORK_ENABLE_THREADING)
class MutexHiddenFieldData : public HiddenFieldData class MutexHiddenFieldData : public HiddenFieldData
{ {
public: public:
@ -35,10 +35,11 @@ namespace Tesses::Framework::Threading
#endif #endif
} }
}; };
#endif
Mutex::Mutex() Mutex::Mutex()
{ {
auto md=this->data.AllocField<MutexHiddenFieldData*>(); #if defined(TESSESFRAMEWORK_ENABLE_THREADING)
auto md=this->data.AllocField<MutexHiddenFieldData>();
#if defined(_WIN32) #if defined(_WIN32)
md->mtx = CreateMutex(NULL,false,NULL); md->mtx = CreateMutex(NULL,false,NULL);
#elif defined(GEKKO) #elif defined(GEKKO)
@ -50,9 +51,11 @@ namespace Tesses::Framework::Threading
pthread_mutex_init(&md->mtx,&md->attr); pthread_mutex_init(&md->mtx,&md->attr);
#endif #endif
#endif
} }
void Mutex::Lock() void Mutex::Lock()
{ {
#if defined(TESSESFRAMEWORK_ENABLE_THREADING)
auto md = this->data.GetField<MutexHiddenFieldData*>(); auto md = this->data.GetField<MutexHiddenFieldData*>();
#if defined(_WIN32) #if defined(_WIN32)
WaitForSingleObject(md->mtx, INFINITE); WaitForSingleObject(md->mtx, INFINITE);
@ -61,9 +64,11 @@ namespace Tesses::Framework::Threading
#else #else
pthread_mutex_lock(&md->mtx); pthread_mutex_lock(&md->mtx);
#endif #endif
#endif
} }
void Mutex::Unlock() void Mutex::Unlock()
{ {
#if defined(TESSESFRAMEWORK_ENABLE_THREADING)
auto md = this->data.GetField<MutexHiddenFieldData*>(); auto md = this->data.GetField<MutexHiddenFieldData*>();
#if defined(_WIN32) #if defined(_WIN32)
ReleaseMutex(md->mtx); ReleaseMutex(md->mtx);
@ -72,9 +77,11 @@ namespace Tesses::Framework::Threading
#else #else
pthread_mutex_unlock(&md->mtx); pthread_mutex_unlock(&md->mtx);
#endif #endif
#endif
} }
bool Mutex::TryLock() bool Mutex::TryLock()
{ {
#if defined(TESSESFRAMEWORK_ENABLE_THREADING)
auto md = this->data.GetField<MutexHiddenFieldData*>(); auto md = this->data.GetField<MutexHiddenFieldData*>();
#if defined(_WIN32) #if defined(_WIN32)
return WaitForSingleObject(md->mtx, 100) == WAIT_OBJECT_0; return WaitForSingleObject(md->mtx, 100) == WAIT_OBJECT_0;
@ -83,6 +90,7 @@ namespace Tesses::Framework::Threading
#else #else
return pthread_mutex_trylock(&md->mtx) == 0; return pthread_mutex_trylock(&md->mtx) == 0;
#endif #endif
#endif
} }
Mutex::~Mutex() Mutex::~Mutex()
{ {

View File

@ -81,7 +81,7 @@ namespace Tesses::Framework::Threading
void Thread::Join() void Thread::Join()
{ {
#if defined(TESSESFRAMEWORK_ENABLE_THREADING) #if defined(TESSESFRAMEWORK_ENABLE_THREADING)
auto data = this->data.AllocField<ThreadHiddenFieldData*>(); auto data = this->data.AllocField<ThreadHiddenFieldData>();
#if defined(_WIN32) #if defined(_WIN32)
WaitForSingleObject(data->thrd, INFINITE); WaitForSingleObject(data->thrd, INFINITE);
#elif defined(GEKKO) #elif defined(GEKKO)