filter-color-grade: Fix and improve various problematic locations

This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2019-10-13 07:27:59 +02:00
parent e07d7c01fc
commit bbcbd0fa1e
1 changed files with 65 additions and 55 deletions

View File

@ -74,13 +74,17 @@
#define MODE_LOG Log #define MODE_LOG Log
#define MODE_LOG10 Log10 #define MODE_LOG10 Log10
const char* get_name(void*) static const char* get_name(void*) noexcept try {
{
return D_TRANSLATE(ST); return D_TRANSLATE(ST);
} catch (const std::exception& ex) {
P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
return "";
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
return "";
} }
void get_defaults(obs_data_t* data) static void get_defaults(obs_data_t* data) noexcept try {
{
obs_data_set_default_string(data, ST_TOOL, ST_CORRECTION); obs_data_set_default_string(data, ST_TOOL, ST_CORRECTION);
obs_data_set_default_double(data, ST_LIFT_(RED), 0); obs_data_set_default_double(data, ST_LIFT_(RED), 0);
obs_data_set_default_double(data, ST_LIFT_(GREEN), 0); obs_data_set_default_double(data, ST_LIFT_(GREEN), 0);
@ -115,10 +119,13 @@ void get_defaults(obs_data_t* data)
obs_data_set_default_double(data, ST_CORRECTION_(SATURATION), 100.0); obs_data_set_default_double(data, ST_CORRECTION_(SATURATION), 100.0);
obs_data_set_default_double(data, ST_CORRECTION_(LIGHTNESS), 100.0); obs_data_set_default_double(data, ST_CORRECTION_(LIGHTNESS), 100.0);
obs_data_set_default_double(data, ST_CORRECTION_(CONTRAST), 100.0); obs_data_set_default_double(data, ST_CORRECTION_(CONTRAST), 100.0);
} catch (const std::exception& ex) {
P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
bool tool_modified(obs_properties_t* props, obs_property_t* property, obs_data_t* settings) static bool tool_modified(obs_properties_t* props, obs_property_t* property, obs_data_t* settings) noexcept try {
{
const std::string mode{obs_data_get_string(settings, ST_TOOL)}; const std::string mode{obs_data_get_string(settings, ST_TOOL)};
std::vector<std::pair<std::string, std::vector<std::string>>> tool_to_property{ std::vector<std::pair<std::string, std::vector<std::string>>> tool_to_property{
@ -163,10 +170,15 @@ bool tool_modified(obs_properties_t* props, obs_property_t* property, obs_data_t
} }
return true; return true;
} catch (const std::exception& ex) {
P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
return false;
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
return false;
} }
obs_properties_t* get_properties(void*) static obs_properties_t* get_properties(void*) noexcept try {
{
obs_properties_t* pr = obs_properties_create(); obs_properties_t* pr = obs_properties_create();
if (util::are_property_groups_broken()) { if (util::are_property_groups_broken()) {
@ -316,72 +328,70 @@ obs_properties_t* get_properties(void*)
} }
return pr; return pr;
} } catch (const std::exception& ex) {
P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
void* create(obs_data_t* data, obs_source_t* source) return nullptr;
try { } catch (...) {
return new filter::color_grade::color_grade_instance(data, source); P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} catch (std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to create: %s", obs_source_get_name(source), ex.what());
return nullptr; return nullptr;
} }
void destroy(void* ptr) static void* create(obs_data_t* data, obs_source_t* source) noexcept try {
try { return new filter::color_grade::color_grade_instance(data, source);
} catch (const std::exception& ex) {
P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
return nullptr;
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
return nullptr;
}
static void destroy(void* ptr) noexcept try {
delete reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr); delete reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr);
} catch (std::exception& ex) { } catch (const std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to destroy: %s", ex.what()); P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
uint32_t get_width(void* ptr) static void update(void* ptr, obs_data_t* data) try {
try {
return reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->get_width();
} catch (std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to get width: %s", ex.what());
return 0;
}
uint32_t get_height(void* ptr)
try {
return reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->get_height();
} catch (std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to get height: %s", ex.what());
return 0;
}
void update(void* ptr, obs_data_t* data)
try {
reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->update(data); reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->update(data);
} catch (std::exception& ex) { } catch (const std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to update: %s", ex.what()); P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
void activate(void* ptr) static void activate(void* ptr) try {
try {
reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->activate(); reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->activate();
} catch (std::exception& ex) { } catch (const std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to activate: %s", ex.what()); P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
void deactivate(void* ptr) static void deactivate(void* ptr) try {
try {
reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->deactivate(); reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->deactivate();
} catch (std::exception& ex) { } catch (const std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to deactivate: %s", ex.what()); P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
void video_tick(void* ptr, float time) static void video_tick(void* ptr, float time) try {
try {
reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->video_tick(time); reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->video_tick(time);
} catch (std::exception& ex) { } catch (const std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to tick video: %s", ex.what()); P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
void video_render(void* ptr, gs_effect_t* effect) static void video_render(void* ptr, gs_effect_t* effect) try {
try {
reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->video_render(effect); reinterpret_cast<filter::color_grade::color_grade_instance*>(ptr)->video_render(effect);
} catch (std::exception& ex) { } catch (const std::exception& ex) {
P_LOG_ERROR("<filter-color-grade> Failed to render video: %s", ex.what()); P_LOG_ERROR("Unexpected exception in function '%s': %s.", __FUNCTION_NAME__, ex.what());
} catch (...) {
P_LOG_ERROR("Unexpected exception in function '%s'.", __FUNCTION_NAME__);
} }
static std::shared_ptr<filter::color_grade::color_grade_factory> factory_instance = nullptr; static std::shared_ptr<filter::color_grade::color_grade_factory> factory_instance = nullptr;