core: Frontend and Updater are default features

This commit is contained in:
Michael Fabian 'Xaymar' Dirks 2023-09-30 06:51:56 +02:00 committed by Xaymar
parent a63eb8b80a
commit 915c85e60e
33 changed files with 3 additions and 130 deletions

View File

@ -643,9 +643,6 @@ list(APPEND PROJECT_PRIVATE_SOURCE
"source/updater.hpp"
"source/updater.cpp"
)
list(APPEND PROJECT_DEFINITIONS
ENABLE_UPDATER
)
# Frontend
list(APPEND PROJECT_UI
@ -667,9 +664,6 @@ list(APPEND PROJECT_UI_SOURCE
list(APPEND PROJECT_INCLUDE_DIRS
"source/ui"
)
list(APPEND PROJECT_DEFINITIONS
ENABLE_FRONTEND
)
list(APPEND PROJECT_UI_SOURCE
"source/ui/ui-updater.hpp"

View File

@ -1097,11 +1097,9 @@ obs_properties_t* autoframing_factory::get_properties2(autoframing_instance* dat
{
obs_properties_t* pr = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), autoframing_factory::on_manual_open, nullptr);
}
#endif
{
auto grp = obs_properties_create();
@ -1224,13 +1222,11 @@ obs_properties_t* autoframing_factory::get_properties2(autoframing_instance* dat
return pr;
}
#ifdef ENABLE_FRONTEND
bool streamfx::filter::autoframing::autoframing_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
streamfx::open_url(HELP_URL);
return false;
}
#endif
bool streamfx::filter::autoframing::autoframing_factory::is_provider_available(tracking_provider provider)
{

View File

@ -161,9 +161,7 @@ namespace streamfx::filter::autoframing {
void get_defaults2(obs_data_t* data) override;
obs_properties_t* get_properties2(autoframing_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
bool is_provider_available(tracking_provider);
tracking_provider find_ideal_provider();

View File

@ -745,11 +745,9 @@ obs_properties_t* blur_factory::get_properties2(blur_instance* data)
obs_properties_t* pr = obs_properties_create();
obs_property_t* p = NULL;
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::filter::blur::blur_factory::on_manual_open, nullptr);
}
#endif
// Blur Type and Sub-Type
{
@ -840,7 +838,6 @@ std::string blur_factory::translate_string(const char* format, ...)
return std::string(buffer.data(), buffer.data() + len);
}
#ifdef ENABLE_FRONTEND
bool blur_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -854,7 +851,6 @@ bool blur_factory::on_manual_open(obs_properties_t* props, obs_property_t* prope
return false;
}
}
#endif
std::shared_ptr<blur_factory> blur_factory::instance()
{

View File

@ -115,9 +115,7 @@ namespace streamfx::filter::blur {
std::string translate_string(const char* format, ...);
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static std::shared_ptr<blur_factory> instance();

View File

@ -613,11 +613,9 @@ obs_properties_t* color_grade_factory::get_properties2(color_grade_instance* dat
{
obs_properties_t* pr = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::filter::color_grade::color_grade_factory::on_manual_open, nullptr);
}
#endif
{
obs_properties_t* grp = obs_properties_create();
@ -810,7 +808,6 @@ obs_properties_t* color_grade_factory::get_properties2(color_grade_instance* dat
return pr;
}
#ifdef ENABLE_FRONTEND
bool color_grade_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -824,7 +821,6 @@ bool color_grade_factory::on_manual_open(obs_properties_t* props, obs_property_t
return false;
}
}
#endif
std::shared_ptr<color_grade_factory> streamfx::filter::color_grade::color_grade_factory::instance()
{

View File

@ -98,9 +98,7 @@ namespace streamfx::filter::color_grade {
virtual obs_properties_t* get_properties2(color_grade_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static std::shared_ptr<color_grade_factory> instance();

View File

@ -565,11 +565,9 @@ obs_properties_t* denoising_factory::get_properties2(denoising_instance* data)
{
obs_properties_t* pr = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), denoising_factory::on_manual_open, nullptr);
}
#endif
if (data) {
data->properties(pr);
@ -590,13 +588,11 @@ obs_properties_t* denoising_factory::get_properties2(denoising_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool denoising_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
streamfx::open_url(HELP_URL);
return false;
}
#endif
bool streamfx::filter::denoising::denoising_factory::is_provider_available(denoising_provider provider)
{

View File

@ -98,9 +98,7 @@ namespace streamfx::filter::denoising {
virtual void get_defaults2(obs_data_t* data) override;
virtual obs_properties_t* get_properties2(denoising_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
bool is_provider_available(denoising_provider);
denoising_provider find_ideal_provider();

View File

@ -721,11 +721,9 @@ obs_properties_t* dynamic_mask_factory::get_properties2(dynamic_mask_instance* d
_translation_cache.clear();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(props, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::filter::dynamic_mask::dynamic_mask_factory::on_manual_open, nullptr);
}
#endif
{ // Input
p = obs_properties_add_list(props, ST_KEY_INPUT, D_TRANSLATE(ST_I18N_INPUT), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
@ -806,7 +804,6 @@ std::string dynamic_mask_factory::translate_string(const char* format, ...)
return std::string(buffer.data(), buffer.data() + len);
}
#ifdef ENABLE_FRONTEND
bool dynamic_mask_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -820,7 +817,6 @@ bool dynamic_mask_factory::on_manual_open(obs_properties_t* props, obs_property_
return false;
}
}
#endif
std::shared_ptr<dynamic_mask_factory> dynamic_mask_factory::instance()
{

View File

@ -124,9 +124,7 @@ namespace streamfx::filter::dynamic_mask {
std::string translate_string(const char* format, ...);
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static void initialize();

View File

@ -1030,11 +1030,9 @@ obs_properties_t* ffmpeg_factory::get_properties2(instance_t* data)
{
obs_properties_t* props = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(props, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::encoder::ffmpeg::ffmpeg_factory::on_manual_open, this);
}
#endif
if (data) {
data->get_properties(props);
@ -1108,14 +1106,12 @@ obs_properties_t* ffmpeg_factory::get_properties2(instance_t* data)
return props;
}
#ifdef ENABLE_FRONTEND
bool ffmpeg_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
ffmpeg_factory* ptr = static_cast<ffmpeg_factory*>(data);
streamfx::open_url(ptr->_handler->help(ptr));
return false;
}
#endif
const AVCodec* ffmpeg_factory::get_avcodec()
{

View File

@ -129,9 +129,7 @@ namespace streamfx::encoder::ffmpeg {
obs_properties_t* get_properties2(instance_t* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public:
const AVCodec* get_avcodec();

View File

@ -316,11 +316,9 @@ obs_properties_t* mirror_factory::get_properties2(mirror_instance* data)
obs_properties_t* pr = obs_properties_create();
obs_property_t* p = nullptr;
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::source::mirror::mirror_factory::on_manual_open, nullptr);
}
#endif
{
p = obs_properties_add_list(pr, ST_KEY_SOURCE, D_TRANSLATE(ST_I18N_SOURCE), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
@ -365,7 +363,6 @@ obs_properties_t* mirror_factory::get_properties2(mirror_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool mirror_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -379,7 +376,6 @@ bool mirror_factory::on_manual_open(obs_properties_t* props, obs_property_t* pro
return false;
}
}
#endif
std::shared_ptr<mirror_factory> mirror_factory::instance()
{

View File

@ -81,9 +81,7 @@ namespace streamfx::source::mirror {
virtual obs_properties_t* get_properties2(source::mirror::mirror_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static void initialize();

View File

@ -594,11 +594,9 @@ obs_properties_t* sdf_effects_factory::get_properties2(sdf_effects_instance* dat
obs_properties_t* prs = obs_properties_create();
obs_property_t* p = nullptr;
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(prs, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::filter::sdf_effects::sdf_effects_factory::on_manual_open, nullptr);
}
#endif
{ // Shadow Outer
auto pr = obs_properties_create();
@ -669,7 +667,6 @@ obs_properties_t* sdf_effects_factory::get_properties2(sdf_effects_instance* dat
return prs;
}
#ifdef ENABLE_FRONTEND
bool sdf_effects_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -683,7 +680,6 @@ bool sdf_effects_factory::on_manual_open(obs_properties_t* props, obs_property_t
return false;
}
}
#endif
std::shared_ptr<sdf_effects_factory> sdf_effects_factory::instance()
{

View File

@ -91,9 +91,7 @@ namespace streamfx::filter::sdf_effects {
virtual obs_properties_t* get_properties2(filter::sdf_effects::sdf_effects_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static void initialize();

View File

@ -188,11 +188,9 @@ obs_properties_t* shader_factory::get_properties2(shader::shader_instance* data)
auto pr = obs_properties_create();
obs_properties_set_param(pr, data, nullptr);
#ifdef ENABLE_FRONTEND
{
auto p = obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::filter::shader::shader_factory::on_manual_open, nullptr);
}
#endif
if (data) {
reinterpret_cast<shader_instance*>(data)->properties(pr);
@ -201,7 +199,6 @@ obs_properties_t* shader_factory::get_properties2(shader::shader_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool shader_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -215,7 +212,6 @@ bool shader_factory::on_manual_open(obs_properties_t* props, obs_property_t* pro
return false;
}
}
#endif
std::shared_ptr<shader_factory> shader_factory::instance()
{

View File

@ -48,9 +48,7 @@ namespace streamfx::filter::shader {
virtual obs_properties_t* get_properties2(filter::shader::shader_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static void initialize();

View File

@ -142,11 +142,9 @@ obs_properties_t* shader_factory::get_properties2(shader_instance* data)
auto pr = obs_properties_create();
obs_properties_set_param(pr, data, nullptr);
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::source::shader::shader_factory::on_manual_open, nullptr);
}
#endif
if (data) {
reinterpret_cast<shader_instance*>(data)->properties(pr);
@ -155,7 +153,6 @@ obs_properties_t* shader_factory::get_properties2(shader_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool shader_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -169,7 +166,6 @@ bool shader_factory::on_manual_open(obs_properties_t* props, obs_property_t* pro
return false;
}
}
#endif
std::shared_ptr<shader_factory> shader_factory::instance()
{

View File

@ -47,9 +47,7 @@ namespace streamfx::source::shader {
virtual obs_properties_t* get_properties2(source::shader::shader_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static std::shared_ptr<shader_factory> instance();

View File

@ -149,11 +149,9 @@ obs_properties_t* shader_factory::get_properties2(shader::shader_instance* data)
auto pr = obs_properties_create();
obs_properties_set_param(pr, data, nullptr);
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::transition::shader::shader_factory::on_manual_open, nullptr);
}
#endif
if (data) {
reinterpret_cast<shader_instance*>(data)->properties(pr);
@ -162,7 +160,6 @@ obs_properties_t* shader_factory::get_properties2(shader::shader_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool shader_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -176,7 +173,6 @@ bool shader_factory::on_manual_open(obs_properties_t* props, obs_property_t* pro
return false;
}
}
#endif
std::shared_ptr<shader_factory> shader_factory::instance()
{

View File

@ -47,9 +47,7 @@ namespace streamfx::transition::shader {
virtual obs_properties_t* get_properties2(transition::shader::shader_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static std::shared_ptr<shader_factory> instance();

View File

@ -623,11 +623,9 @@ obs_properties_t* transform_factory::get_properties2(transform_instance* data)
{
obs_properties_t* pr = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), streamfx::filter::transform::transform_factory::on_manual_open, nullptr);
}
#endif
// Camera
{
@ -794,7 +792,6 @@ obs_properties_t* transform_factory::get_properties2(transform_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool transform_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -808,7 +805,6 @@ bool transform_factory::on_manual_open(obs_properties_t* props, obs_property_t*
return false;
}
}
#endif
std::shared_ptr<transform_factory> transform_factory::instance()
{

View File

@ -91,9 +91,7 @@ namespace streamfx::filter::transform {
virtual obs_properties_t* get_properties2(filter::transform::transform_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
public: // Singleton
static std::shared_ptr<transform_factory> instance();

View File

@ -562,11 +562,9 @@ obs_properties_t* upscaling_factory::get_properties2(upscaling_instance* data)
{
obs_properties_t* pr = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), upscaling_factory::on_manual_open, nullptr);
}
#endif
if (data) {
data->properties(pr);
@ -587,7 +585,6 @@ obs_properties_t* upscaling_factory::get_properties2(upscaling_instance* data)
return pr;
}
#ifdef ENABLE_FRONTEND
bool upscaling_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -601,7 +598,6 @@ bool upscaling_factory::on_manual_open(obs_properties_t* props, obs_property_t*
return false;
}
}
#endif
bool streamfx::filter::upscaling::upscaling_factory::is_provider_available(upscaling_provider provider)
{

View File

@ -99,9 +99,7 @@ namespace streamfx::filter::upscaling {
virtual void get_defaults2(obs_data_t* data) override;
virtual obs_properties_t* get_properties2(upscaling_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
bool is_provider_available(upscaling_provider);
upscaling_provider find_ideal_provider();

View File

@ -561,11 +561,9 @@ obs_properties_t* virtual_greenscreen_factory::get_properties2(virtual_greenscre
{
obs_properties_t* pr = obs_properties_create();
#ifdef ENABLE_FRONTEND
{
obs_properties_add_button2(pr, S_MANUAL_OPEN, D_TRANSLATE(S_MANUAL_OPEN), virtual_greenscreen_factory::on_manual_open, nullptr);
}
#endif
if (data) {
data->properties(pr);
@ -586,7 +584,6 @@ obs_properties_t* virtual_greenscreen_factory::get_properties2(virtual_greenscre
return pr;
}
#ifdef ENABLE_FRONTEND
bool virtual_greenscreen_factory::on_manual_open(obs_properties_t* props, obs_property_t* property, void* data)
{
try {
@ -600,7 +597,6 @@ bool virtual_greenscreen_factory::on_manual_open(obs_properties_t* props, obs_pr
return false;
}
}
#endif
bool streamfx::filter::virtual_greenscreen::virtual_greenscreen_factory::is_provider_available(virtual_greenscreen_provider provider)
{

View File

@ -99,9 +99,7 @@ namespace streamfx::filter::virtual_greenscreen {
virtual void get_defaults2(obs_data_t* data) override;
virtual obs_properties_t* get_properties2(virtual_greenscreen_instance* data) override;
#ifdef ENABLE_FRONTEND
static bool on_manual_open(obs_properties_t* props, obs_property_t* property, void* data);
#endif
bool is_provider_available(virtual_greenscreen_provider);
virtual_greenscreen_provider find_ideal_provider();

View File

@ -3,22 +3,13 @@
// AUTOGENERATED COPYRIGHT HEADER END
#include "plugin.hpp"
#include "configuration.hpp"
#include "gfx/gfx-opengl.hpp"
#include "obs/gs/gs-helper.hpp"
#include "obs/gs/gs-vertexbuffer.hpp"
#ifdef ENABLE_NVIDIA_CUDA
#include "nvidia/cuda/nvidia-cuda-obs.hpp"
#endif
#ifdef ENABLE_FRONTEND
#include "configuration.hpp"
#include "ui/ui.hpp"
#endif
#ifdef ENABLE_UPDATER
#include "updater.hpp"
#endif
#include "warning-disable.hpp"
#include <fstream>
@ -78,16 +69,6 @@ MODULE_EXPORT bool obs_module_load(void)
}
}
#ifdef ENABLE_NVIDIA_CUDA
// Initialize CUDA if features requested it.
std::shared_ptr<::streamfx::nvidia::cuda::obs> cuda;
try {
cuda = ::streamfx::nvidia::cuda::obs::get();
} catch (...) {
// If CUDA failed to load, it is considered safe to ignore.
}
#endif
// Run all initializers.
for (auto kv : streamfx::get_initializers()) {
for (auto init : kv.second) {
@ -175,10 +156,8 @@ std::filesystem::path streamfx::config_file_path(std::string_view file)
}
}
#ifdef ENABLE_FRONTEND
bool streamfx::open_url(std::string_view url)
{
QUrl qurl = QString::fromUtf8(url.data());
return QDesktopServices::openUrl(qurl);
}
#endif

View File

@ -40,7 +40,5 @@ namespace streamfx {
std::filesystem::path data_file_path(std::string_view file);
std::filesystem::path config_file_path(std::string_view file);
#ifdef ENABLE_FRONTEND
bool open_url(std::string_view url);
#endif
} // namespace streamfx

View File

@ -72,11 +72,7 @@ streamfx::ui::handler::handler()
_about_action(), _about_dialog(),
_translator()
#ifdef ENABLE_UPDATER
,
_updater()
#endif
_translator(), _updater()
{
obs_frontend_add_event_callback(frontend_event_handler, this);
}
@ -168,9 +164,7 @@ void streamfx::ui::handler::on_obs_loaded()
}
// Create the updater.
#ifdef ENABLE_UPDATER
_updater = streamfx::ui::updater::instance(_menu);
#endif
_menu->addSeparator();
@ -204,10 +198,7 @@ void streamfx::ui::handler::on_obs_loaded()
}
// Let the Updater start its work.
#ifdef ENABLE_UPDATER
this->_updater->obs_ready();
#endif
}
void streamfx::ui::handler::on_obs_exit()
@ -260,7 +251,7 @@ void streamfx::ui::handler::on_action_about(bool checked)
std::shared_ptr<streamfx::ui::handler> streamfx::ui::handler::instance()
{
static std::weak_ptr<streamfx::ui::handler> winst;
static std::mutex mtx;
static std::mutex mtx;
std::unique_lock<decltype(mtx)> lock(mtx);
auto instance = winst.lock();

View File

@ -5,10 +5,7 @@
#pragma once
#include "ui-common.hpp"
#include "ui-about.hpp"
#ifdef ENABLE_UPDATER
#include "ui-updater.hpp"
#endif
namespace streamfx::ui {
class handler : public QObject {
@ -32,9 +29,7 @@ namespace streamfx::ui {
QTranslator* _translator;
#ifdef ENABLE_UPDATER
std::shared_ptr<streamfx::ui::updater> _updater;
#endif
private:
handler();