mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
UI,plugin: Refactor virtual camera enablement
This commit is contained in:
parent
11131682b1
commit
78cd07bd58
@ -5,7 +5,7 @@
|
||||
#include "audio-encoders.hpp"
|
||||
#include "window-basic-main.hpp"
|
||||
#include "window-basic-main-outputs.hpp"
|
||||
#include "window-basic-vcam-config.hpp"
|
||||
#include "window-basic-vcam.hpp"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -289,9 +289,8 @@ static const char *GetStreamOutputType(const obs_service_t *service)
|
||||
inline BasicOutputHandler::BasicOutputHandler(OBSBasic *main_) : main(main_)
|
||||
{
|
||||
if (main->vcamEnabled) {
|
||||
virtualCam = obs_output_create("virtualcam_output",
|
||||
"virtualcam_output", nullptr,
|
||||
nullptr);
|
||||
virtualCam = obs_output_create(
|
||||
VIRTUAL_CAM_ID, "virtualcam_output", nullptr, nullptr);
|
||||
|
||||
signal_handler_t *signal =
|
||||
obs_output_get_signal_handler(virtualCam);
|
||||
|
@ -2068,8 +2068,8 @@ void OBSBasic::OBSInit()
|
||||
cef_js_avail = cef && obs_browser_qcef_version() >= 3;
|
||||
#endif
|
||||
|
||||
OBSDataAutoRelease obsData = obs_get_private_data();
|
||||
vcamEnabled = obs_data_get_bool(obsData, "vcamEnabled");
|
||||
vcamEnabled =
|
||||
(obs_get_output_flags(VIRTUAL_CAM_ID) & OBS_OUTPUT_VIDEO) != 0;
|
||||
if (vcamEnabled) {
|
||||
AddVCamButton();
|
||||
}
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
constexpr const char *VIRTUAL_CAM_ID = "virtualcam_output";
|
||||
|
||||
enum VCamOutputType {
|
||||
Invalid,
|
||||
SceneOutput,
|
||||
|
@ -32,19 +32,12 @@ bool obs_module_load(void)
|
||||
{
|
||||
obs_register_source(&v4l2_input);
|
||||
|
||||
obs_data_t *obs_settings = obs_data_create();
|
||||
|
||||
if (loopback_module_available()) {
|
||||
obs_register_output(&virtualcam_info);
|
||||
obs_data_set_bool(obs_settings, "vcamEnabled", true);
|
||||
} else {
|
||||
obs_data_set_bool(obs_settings, "vcamEnabled", false);
|
||||
blog(LOG_WARNING,
|
||||
"v4l2loopback not installed, virtual camera disabled");
|
||||
"v4l2loopback not installed, virtual camera not registered");
|
||||
}
|
||||
|
||||
obs_apply_private_data(obs_settings);
|
||||
obs_data_release(obs_settings);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -552,10 +552,5 @@ bool obs_module_load(void)
|
||||
{
|
||||
obs_register_output(&virtualcam_output_info);
|
||||
|
||||
obs_data_t *obs_settings = obs_data_create();
|
||||
obs_data_set_bool(obs_settings, "vcamEnabled", true);
|
||||
obs_apply_private_data(obs_settings);
|
||||
obs_data_release(obs_settings);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -45,17 +45,9 @@ bool obs_module_load(void)
|
||||
RegisterDShowSource();
|
||||
RegisterDShowEncoders();
|
||||
#ifdef VIRTUALCAM_AVAILABLE
|
||||
if (vcam_installed(false))
|
||||
obs_register_output(&virtualcam_info);
|
||||
|
||||
bool installed = vcam_installed(false);
|
||||
#else
|
||||
bool installed = false;
|
||||
#endif
|
||||
|
||||
obs_data_t *obs_settings = obs_data_create();
|
||||
obs_data_set_bool(obs_settings, "vcamEnabled", installed);
|
||||
obs_apply_private_data(obs_settings);
|
||||
obs_data_release(obs_settings);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user