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 "audio-encoders.hpp"
|
||||||
#include "window-basic-main.hpp"
|
#include "window-basic-main.hpp"
|
||||||
#include "window-basic-main-outputs.hpp"
|
#include "window-basic-main-outputs.hpp"
|
||||||
#include "window-basic-vcam-config.hpp"
|
#include "window-basic-vcam.hpp"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -289,9 +289,8 @@ static const char *GetStreamOutputType(const obs_service_t *service)
|
|||||||
inline BasicOutputHandler::BasicOutputHandler(OBSBasic *main_) : main(main_)
|
inline BasicOutputHandler::BasicOutputHandler(OBSBasic *main_) : main(main_)
|
||||||
{
|
{
|
||||||
if (main->vcamEnabled) {
|
if (main->vcamEnabled) {
|
||||||
virtualCam = obs_output_create("virtualcam_output",
|
virtualCam = obs_output_create(
|
||||||
"virtualcam_output", nullptr,
|
VIRTUAL_CAM_ID, "virtualcam_output", nullptr, nullptr);
|
||||||
nullptr);
|
|
||||||
|
|
||||||
signal_handler_t *signal =
|
signal_handler_t *signal =
|
||||||
obs_output_get_signal_handler(virtualCam);
|
obs_output_get_signal_handler(virtualCam);
|
||||||
|
@ -2068,8 +2068,8 @@ void OBSBasic::OBSInit()
|
|||||||
cef_js_avail = cef && obs_browser_qcef_version() >= 3;
|
cef_js_avail = cef && obs_browser_qcef_version() >= 3;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
OBSDataAutoRelease obsData = obs_get_private_data();
|
vcamEnabled =
|
||||||
vcamEnabled = obs_data_get_bool(obsData, "vcamEnabled");
|
(obs_get_output_flags(VIRTUAL_CAM_ID) & OBS_OUTPUT_VIDEO) != 0;
|
||||||
if (vcamEnabled) {
|
if (vcamEnabled) {
|
||||||
AddVCamButton();
|
AddVCamButton();
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
constexpr const char *VIRTUAL_CAM_ID = "virtualcam_output";
|
||||||
|
|
||||||
enum VCamOutputType {
|
enum VCamOutputType {
|
||||||
Invalid,
|
Invalid,
|
||||||
SceneOutput,
|
SceneOutput,
|
||||||
|
@ -32,19 +32,12 @@ bool obs_module_load(void)
|
|||||||
{
|
{
|
||||||
obs_register_source(&v4l2_input);
|
obs_register_source(&v4l2_input);
|
||||||
|
|
||||||
obs_data_t *obs_settings = obs_data_create();
|
|
||||||
|
|
||||||
if (loopback_module_available()) {
|
if (loopback_module_available()) {
|
||||||
obs_register_output(&virtualcam_info);
|
obs_register_output(&virtualcam_info);
|
||||||
obs_data_set_bool(obs_settings, "vcamEnabled", true);
|
|
||||||
} else {
|
} else {
|
||||||
obs_data_set_bool(obs_settings, "vcamEnabled", false);
|
|
||||||
blog(LOG_WARNING,
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -552,10 +552,5 @@ bool obs_module_load(void)
|
|||||||
{
|
{
|
||||||
obs_register_output(&virtualcam_output_info);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -45,17 +45,9 @@ bool obs_module_load(void)
|
|||||||
RegisterDShowSource();
|
RegisterDShowSource();
|
||||||
RegisterDShowEncoders();
|
RegisterDShowEncoders();
|
||||||
#ifdef VIRTUALCAM_AVAILABLE
|
#ifdef VIRTUALCAM_AVAILABLE
|
||||||
obs_register_output(&virtualcam_info);
|
if (vcam_installed(false))
|
||||||
|
obs_register_output(&virtualcam_info);
|
||||||
bool installed = vcam_installed(false);
|
|
||||||
#else
|
|
||||||
bool installed = false;
|
|
||||||
#endif
|
#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;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user