From 66b223adfcb8e1a279bd99b47c52dbb1932305bc Mon Sep 17 00:00:00 2001 From: glaba13 Date: Tue, 28 May 2019 13:38:20 -0400 Subject: [PATCH 1/3] Add option to failed mask in settings --- plugin/strings.h | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/strings.h b/plugin/strings.h index 19e9daf..3a4b8d0 100644 --- a/plugin/strings.h +++ b/plugin/strings.h @@ -29,6 +29,7 @@ // Properties #define P_MASK "Mask" +#define P_FAILED_MASK "failedMask" #define P_MASK_BROWSE "Browse to mask" #define P_BEFORE "Before Video" #define P_AFTER "After Video" From 0feb554501a11653e6609a5a87c84de31c007921 Mon Sep 17 00:00:00 2001 From: glaba13 Date: Tue, 28 May 2019 13:38:43 -0400 Subject: [PATCH 2/3] Add failed mask set --- plugin/face-mask-filter.cpp | 10 ++++++++-- plugin/face-mask-filter.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin/face-mask-filter.cpp b/plugin/face-mask-filter.cpp index e0b14b7..9e6211d 100644 --- a/plugin/face-mask-filter.cpp +++ b/plugin/face-mask-filter.cpp @@ -123,7 +123,7 @@ Plugin::FaceMaskFilter::Instance::Instance(obs_data_t *data, obs_source_t *sourc : source(source), canvasWidth(0), canvasHeight(0), baseWidth(640), baseHeight(480), demoModeRecord(false), recordTriggered(false), isActive(true), isVisible(true), videoTicked(true), - taskHandle(NULL), + taskHandle(NULL), failedMask(""), introFilename(nullptr), outroFilename(nullptr), alertActivate(true), alertDoIntro(false), alertDoOutro(false), alertDuration(10.0f), alertElapsedTime(BIG_FLOAT), alertTriggered(false), alertShown(false), alertsLoaded(false), @@ -394,6 +394,8 @@ void Plugin::FaceMaskFilter::Instance::get_defaults(obs_data_t *data) { obs_data_set_default_string(data, P_BEFORE_TEXT, kDefaultBeforeText); obs_data_set_default_string(data, P_AFTER_TEXT, kDefaultAfterText); + obs_data_set_default_string(data, P_FAILED_MASK, ""); + #if !defined(PUBLIC_RELEASE) // default advanced params smll::Config::singleton().set_defaults(data); @@ -558,7 +560,7 @@ void Plugin::FaceMaskFilter::Instance::get_properties(obs_properties_t *props) { #if !defined(PUBLIC_RELEASE) // mask add_json_file_property(props, P_MASK_BROWSE, NULL); - + add_text_property(props, P_FAILED_MASK); // ALERT PROPERTIES add_bool_property(props, P_ALERT_ACTIVATE); add_float_slider(props, P_ALERT_DURATION, 10.0f, 60.0f, 0.1f); @@ -765,6 +767,8 @@ void Plugin::FaceMaskFilter::Instance::update(obs_data_t *data) { beforeFile = (char*)obs_data_get_string(data, P_BEFORE); afterText = (char*)obs_data_get_string(data, P_AFTER_TEXT); afterFile = (char*)obs_data_get_string(data, P_AFTER); + // set last failed mask + obs_data_set_string(data, P_FAILED_MASK, failedMask.c_str()); } void Plugin::FaceMaskFilter::Instance::activate(void *ptr) { @@ -1881,9 +1885,11 @@ Plugin::FaceMaskFilter::Instance::LoadMask(std::string filename) { try { mdat->Load(filename); PLOG_INFO("Loading mask '%s' successful!", filename.c_str()); + failedMask = ""; } catch (...) { PLOG_ERROR("Failed to load mask %s.", filename.c_str()); + failedMask = filename; } return mdat; diff --git a/plugin/face-mask-filter.h b/plugin/face-mask-filter.h index 0f7b7b2..2f9ad26 100644 --- a/plugin/face-mask-filter.h +++ b/plugin/face-mask-filter.h @@ -177,6 +177,7 @@ namespace Plugin { std::string maskFilePath; std::string maskInternal; std::string currentMaskFilename; + std::string failedMask; const char* introFilename; std::string currentIntroFilename; const char* outroFilename; From b02c2f1a471c12f62824840cf2b19669b97ad34a Mon Sep 17 00:00:00 2001 From: glaba13 Date: Wed, 29 May 2019 13:16:40 -0400 Subject: [PATCH 3/3] Remove empty loaded mask and hide option from preventing missing update --- plugin/face-mask-filter.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugin/face-mask-filter.cpp b/plugin/face-mask-filter.cpp index 9e6211d..1ce4af0 100644 --- a/plugin/face-mask-filter.cpp +++ b/plugin/face-mask-filter.cpp @@ -560,7 +560,7 @@ void Plugin::FaceMaskFilter::Instance::get_properties(obs_properties_t *props) { #if !defined(PUBLIC_RELEASE) // mask add_json_file_property(props, P_MASK_BROWSE, NULL); - add_text_property(props, P_FAILED_MASK); + //add_text_property(props, P_FAILED_MASK); // ALERT PROPERTIES add_bool_property(props, P_ALERT_ACTIVATE); add_float_slider(props, P_ALERT_DURATION, 10.0f, 60.0f, 0.1f); @@ -1776,7 +1776,7 @@ int32_t Plugin::FaceMaskFilter::Instance::LocalMaskDataThreadMain() { } // time to load intro? - if ((introData == nullptr) && + /*if ((introData == nullptr) && introFilename && introFilename[0]) { // save current currentIntroFilename = introFilename; @@ -1801,7 +1801,7 @@ int32_t Plugin::FaceMaskFilter::Instance::LocalMaskDataThreadMain() { SetThreadPriority(GetCurrentThread(), THREAD_MODE_BACKGROUND_BEGIN); outroData = std::unique_ptr(LoadMask(maskFn)); SetThreadPriority(GetCurrentThread(), THREAD_MODE_BACKGROUND_END); - } + }*/ // demo mode @@ -1885,7 +1885,6 @@ Plugin::FaceMaskFilter::Instance::LoadMask(std::string filename) { try { mdat->Load(filename); PLOG_INFO("Loading mask '%s' successful!", filename.c_str()); - failedMask = ""; } catch (...) { PLOG_ERROR("Failed to load mask %s.", filename.c_str());