UI: Create an API for opening projector windows
This commit is contained in:
parent
412a75601e
commit
7c540acc11
@ -371,6 +371,31 @@ struct OBSStudioAPI : obs_frontend_callbacks {
|
||||
return App()->GlobalConfig();
|
||||
}
|
||||
|
||||
void obs_frontend_open_projector(const char *type, int monitor,
|
||||
const char *geometry,
|
||||
const char *name) override
|
||||
{
|
||||
SavedProjectorInfo proj = {
|
||||
ProjectorType::Preview,
|
||||
monitor,
|
||||
geometry ? geometry : "",
|
||||
name ? name : "",
|
||||
};
|
||||
if (type) {
|
||||
if (astrcmpi(type, "Source") == 0)
|
||||
proj.type = ProjectorType::Source;
|
||||
else if (astrcmpi(type, "Scene") == 0)
|
||||
proj.type = ProjectorType::Scene;
|
||||
else if (astrcmpi(type, "StudioProgram") == 0)
|
||||
proj.type = ProjectorType::StudioProgram;
|
||||
else if (astrcmpi(type, "Multiview") == 0)
|
||||
proj.type = ProjectorType::Multiview;
|
||||
}
|
||||
QMetaObject::invokeMethod(main, "OpenSavedProjector",
|
||||
WaitConnection(),
|
||||
Q_ARG(SavedProjectorInfo *, &proj));
|
||||
}
|
||||
|
||||
void obs_frontend_save(void) override { main->SaveProject(); }
|
||||
|
||||
void obs_frontend_defer_save_begin(void) override
|
||||
|
@ -327,6 +327,13 @@ config_t *obs_frontend_get_global_config(void)
|
||||
: nullptr;
|
||||
}
|
||||
|
||||
void obs_frontend_open_projector(const char *type, int monitor,
|
||||
const char *geometry, const char *name)
|
||||
{
|
||||
if (callbacks_valid())
|
||||
c->obs_frontend_open_projector(type, monitor, geometry, name);
|
||||
}
|
||||
|
||||
void obs_frontend_save(void)
|
||||
{
|
||||
if (callbacks_valid())
|
||||
|
@ -165,6 +165,8 @@ EXPORT void obs_frontend_replay_buffer_save(void);
|
||||
EXPORT void obs_frontend_replay_buffer_stop(void);
|
||||
EXPORT bool obs_frontend_replay_buffer_active(void);
|
||||
|
||||
EXPORT void obs_frontend_open_projector(const char *type, int monitor,
|
||||
const char *geometry, const char *name);
|
||||
EXPORT void obs_frontend_save(void);
|
||||
EXPORT void obs_frontend_defer_save_begin(void);
|
||||
EXPORT void obs_frontend_defer_save_end(void);
|
||||
|
@ -72,6 +72,9 @@ struct obs_frontend_callbacks {
|
||||
virtual config_t *obs_frontend_get_profile_config(void) = 0;
|
||||
virtual config_t *obs_frontend_get_global_config(void) = 0;
|
||||
|
||||
virtual void obs_frontend_open_projector(const char *type, int monitor,
|
||||
const char *geometry,
|
||||
const char *name) = 0;
|
||||
virtual void obs_frontend_save(void) = 0;
|
||||
virtual void obs_frontend_defer_save_begin(void) = 0;
|
||||
virtual void obs_frontend_defer_save_end(void) = 0;
|
||||
|
@ -242,6 +242,7 @@ OBSBasic::OBSBasic(QWidget *parent)
|
||||
qRegisterMetaType<OBSSceneItem>("OBSSceneItem");
|
||||
qRegisterMetaType<OBSSource>("OBSSource");
|
||||
qRegisterMetaType<obs_hotkey_id>("obs_hotkey_id");
|
||||
qRegisterMetaType<SavedProjectorInfo *>("SavedProjectorInfo *");
|
||||
|
||||
qRegisterMetaTypeStreamOperators<std::vector<std::shared_ptr<OBSSignal>>>(
|
||||
"std::vector<std::shared_ptr<OBSSignal>>");
|
||||
|
Loading…
x
Reference in New Issue
Block a user