Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frontend/OBSApp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1219,7 +1219,7 @@ static void ui_task_handler(obs_task_t task, void *param, bool wait)
/* to get clang-format to behave */
task(param);
};
QMetaObject::invokeMethod(App(), "Exec", wait ? WaitConnection() : Qt::AutoConnection, Q_ARG(VoidFunc, doTask));
QMetaObject::invokeMethod(App(), &OBSApp::Exec, wait ? WaitConnection() : Qt::AutoConnection, doTask);
}

bool OBSApp::OBSInit()
Expand Down
2 changes: 1 addition & 1 deletion frontend/OBSApp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ class OBSApp : public QApplication {

private slots:
void commitData(QSessionManager &manager);
void addLogLine(int logLevel, const QString &message);
void themeFileChanged(const QString &);
void applicationShutdown() noexcept;

Expand Down Expand Up @@ -244,6 +243,7 @@ private slots:
void pluginManagerOpenDialog();

public slots:
void addLogLine(int logLevel, const QString &message);
void Exec(VoidFunc func);
void processSigInt();
void processSigTerm();
Expand Down
68 changes: 34 additions & 34 deletions frontend/OBSStudioAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,10 @@ obs_source_t *OBSStudioAPI::obs_frontend_get_current_scene()
void OBSStudioAPI::obs_frontend_set_current_scene(obs_source_t *scene)
{
if (main->IsPreviewProgramMode()) {
QMetaObject::invokeMethod(main, "TransitionToScene", WaitConnection(),
Q_ARG(OBSSource, OBSSource(scene)));
QMetaObject::invokeMethod(main, [this, scene]() { main->TransitionToScene(scene); }, WaitConnection());
} else {
QMetaObject::invokeMethod(main, "SetCurrentScene", WaitConnection(), Q_ARG(OBSSource, OBSSource(scene)),
Q_ARG(bool, false));
QMetaObject::invokeMethod(main, qOverload<OBSSource, bool>(&OBSBasic::SetCurrentScene),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does qOverload do here?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OBSBasic has two functions named SetCurrentScene.

void SetCurrentScene(obs_scene_t *scene, bool force = false);
void SetCurrentScene(OBSSource scene, bool force = false);

qOverload is for resolving it.

Selecting Overloaded Signals and Slots

WaitConnection(), scene, false);
}
}

Expand All @@ -93,7 +92,7 @@ obs_source_t *OBSStudioAPI::obs_frontend_get_current_transition()

void OBSStudioAPI::obs_frontend_set_current_transition(obs_source_t *transition)
{
QMetaObject::invokeMethod(main, "SetTransition", Q_ARG(OBSSource, OBSSource(transition)));
QMetaObject::invokeMethod(main, &OBSBasic::SetTransition, OBSSource(transition));
}

int OBSStudioAPI::obs_frontend_get_transition_duration()
Expand All @@ -103,17 +102,17 @@ int OBSStudioAPI::obs_frontend_get_transition_duration()

void OBSStudioAPI::obs_frontend_set_transition_duration(int duration)
{
QMetaObject::invokeMethod(main, "SetTransitionDuration", Q_ARG(int, duration));
QMetaObject::invokeMethod(main, &OBSBasic::SetTransitionDuration, duration);
}

void OBSStudioAPI::obs_frontend_release_tbar()
{
QMetaObject::invokeMethod(main, "TBarReleased");
QMetaObject::invokeMethod(main, &OBSBasic::TBarReleased);
}

void OBSStudioAPI::obs_frontend_set_tbar_position(int position)
{
QMetaObject::invokeMethod(main, "TBarChanged", Q_ARG(int, position));
QMetaObject::invokeMethod(main, &OBSBasic::TBarChanged, position);
}

int OBSStudioAPI::obs_frontend_get_tbar_position()
Expand Down Expand Up @@ -161,8 +160,9 @@ void OBSStudioAPI::obs_frontend_set_current_scene_collection(const char *collect
bool OBSStudioAPI::obs_frontend_add_scene_collection(const char *name)
{
bool success = false;
QMetaObject::invokeMethod(main, "CreateNewSceneCollection", WaitConnection(), Q_RETURN_ARG(bool, success),
Q_ARG(QString, QT_UTF8(name)));
QMetaObject::invokeMethod(
main, [this, &success, name = QT_UTF8(name)]() { success = main->CreateNewSceneCollection(name); },
WaitConnection());
return success;
}

Expand Down Expand Up @@ -208,27 +208,27 @@ void OBSStudioAPI::obs_frontend_set_current_profile(const char *profile)

void OBSStudioAPI::obs_frontend_create_profile(const char *name)
{
QMetaObject::invokeMethod(main, "CreateNewProfile", Q_ARG(QString, name));
QMetaObject::invokeMethod(main, &OBSBasic::CreateNewProfile, QString::fromUtf8(name));
}

void OBSStudioAPI::obs_frontend_duplicate_profile(const char *name)
{
QMetaObject::invokeMethod(main, "CreateDuplicateProfile", Q_ARG(QString, name));
QMetaObject::invokeMethod(main, &OBSBasic::CreateDuplicateProfile, QString::fromUtf8(name));
}

void OBSStudioAPI::obs_frontend_delete_profile(const char *profile)
{
QMetaObject::invokeMethod(main, "DeleteProfile", Q_ARG(QString, profile));
QMetaObject::invokeMethod(main, &OBSBasic::DeleteProfile, QString::fromUtf8(profile));
}

void OBSStudioAPI::obs_frontend_streaming_start()
{
QMetaObject::invokeMethod(main, "StartStreaming");
QMetaObject::invokeMethod(main, &OBSBasic::StartStreaming);
}

void OBSStudioAPI::obs_frontend_streaming_stop()
{
QMetaObject::invokeMethod(main, "StopStreaming");
QMetaObject::invokeMethod(main, &OBSBasic::StopStreaming);
}

bool OBSStudioAPI::obs_frontend_streaming_active()
Expand All @@ -238,12 +238,12 @@ bool OBSStudioAPI::obs_frontend_streaming_active()

void OBSStudioAPI::obs_frontend_recording_start()
{
QMetaObject::invokeMethod(main, "StartRecording");
QMetaObject::invokeMethod(main, &OBSBasic::StartRecording);
}

void OBSStudioAPI::obs_frontend_recording_stop()
{
QMetaObject::invokeMethod(main, "StopRecording");
QMetaObject::invokeMethod(main, &OBSBasic::StopRecording);
}

bool OBSStudioAPI::obs_frontend_recording_active()
Expand Down Expand Up @@ -294,17 +294,17 @@ bool OBSStudioAPI::obs_frontend_recording_add_chapter(const char *name)

void OBSStudioAPI::obs_frontend_replay_buffer_start()
{
QMetaObject::invokeMethod(main, "StartReplayBuffer");
QMetaObject::invokeMethod(main, &OBSBasic::StartReplayBuffer);
}

void OBSStudioAPI::obs_frontend_replay_buffer_save()
{
QMetaObject::invokeMethod(main, "ReplayBufferSave");
QMetaObject::invokeMethod(main, &OBSBasic::ReplayBufferSave);
}

void OBSStudioAPI::obs_frontend_replay_buffer_stop()
{
QMetaObject::invokeMethod(main, "StopReplayBuffer");
QMetaObject::invokeMethod(main, &OBSBasic::StopReplayBuffer);
}

bool OBSStudioAPI::obs_frontend_replay_buffer_active()
Expand Down Expand Up @@ -455,7 +455,7 @@ void OBSStudioAPI::obs_frontend_open_projector(const char *type, int monitor, co
proj.type = ProjectorType::Multiview;
}
}
QMetaObject::invokeMethod(main, "OpenSavedProjector", WaitConnection(), Q_ARG(SavedProjectorInfo *, &proj));
QMetaObject::invokeMethod(main, [this, &proj]() { main->OpenSavedProjector(&proj); }, WaitConnection());
}

void OBSStudioAPI::obs_frontend_save()
Expand All @@ -465,12 +465,12 @@ void OBSStudioAPI::obs_frontend_save()

void OBSStudioAPI::obs_frontend_defer_save_begin()
{
QMetaObject::invokeMethod(main, "DeferSaveBegin");
QMetaObject::invokeMethod(main, &OBSBasic::DeferSaveBegin);
}

void OBSStudioAPI::obs_frontend_defer_save_end()
{
QMetaObject::invokeMethod(main, "DeferSaveEnd");
QMetaObject::invokeMethod(main, &OBSBasic::DeferSaveEnd);
}

void OBSStudioAPI::obs_frontend_add_save_callback(obs_frontend_save_cb callback, void *private_data)
Expand Down Expand Up @@ -546,7 +546,7 @@ void OBSStudioAPI::obs_frontend_set_preview_program_mode(bool enable)

void OBSStudioAPI::obs_frontend_preview_program_trigger_transition()
{
QMetaObject::invokeMethod(main, "TransitionClicked");
QMetaObject::invokeMethod(main, &OBSBasic::TransitionClicked);
}

bool OBSStudioAPI::obs_frontend_preview_enabled()
Expand Down Expand Up @@ -574,19 +574,19 @@ obs_source_t *OBSStudioAPI::obs_frontend_get_current_preview_scene()
void OBSStudioAPI::obs_frontend_set_current_preview_scene(obs_source_t *scene)
{
if (main->IsPreviewProgramMode()) {
QMetaObject::invokeMethod(main, "SetCurrentScene", Q_ARG(OBSSource, OBSSource(scene)),
Q_ARG(bool, false));
QMetaObject::invokeMethod(main, qOverload<OBSSource, bool>(&OBSBasic::SetCurrentScene),
OBSSource(scene), false);
}
}

void OBSStudioAPI::obs_frontend_take_screenshot()
{
QMetaObject::invokeMethod(main, "Screenshot");
QMetaObject::invokeMethod(main, &OBSBasic::Screenshot, nullptr);
}

void OBSStudioAPI::obs_frontend_take_source_screenshot(obs_source_t *source)
{
QMetaObject::invokeMethod(main, "Screenshot", Q_ARG(OBSSource, OBSSource(source)));
QMetaObject::invokeMethod(main, &OBSBasic::Screenshot, OBSSource(source));
}

obs_output_t *OBSStudioAPI::obs_frontend_get_virtualcam_output()
Expand All @@ -597,12 +597,12 @@ obs_output_t *OBSStudioAPI::obs_frontend_get_virtualcam_output()

void OBSStudioAPI::obs_frontend_start_virtualcam()
{
QMetaObject::invokeMethod(main, "StartVirtualCam");
QMetaObject::invokeMethod(main, &OBSBasic::StartVirtualCam);
}

void OBSStudioAPI::obs_frontend_stop_virtualcam()
{
QMetaObject::invokeMethod(main, "StopVirtualCam");
QMetaObject::invokeMethod(main, &OBSBasic::StopVirtualCam);
}

bool OBSStudioAPI::obs_frontend_virtualcam_active()
Expand All @@ -617,22 +617,22 @@ void OBSStudioAPI::obs_frontend_reset_video()

void OBSStudioAPI::obs_frontend_open_source_properties(obs_source_t *source)
{
QMetaObject::invokeMethod(main, "OpenProperties", Q_ARG(OBSSource, OBSSource(source)));
QMetaObject::invokeMethod(main, &OBSBasic::OpenProperties, OBSSource(source));
}

void OBSStudioAPI::obs_frontend_open_source_filters(obs_source_t *source)
{
QMetaObject::invokeMethod(main, "OpenFilters", Q_ARG(OBSSource, OBSSource(source)));
QMetaObject::invokeMethod(main, &OBSBasic::OpenFilters, OBSSource(source));
}

void OBSStudioAPI::obs_frontend_open_source_interaction(obs_source_t *source)
{
QMetaObject::invokeMethod(main, "OpenInteraction", Q_ARG(OBSSource, OBSSource(source)));
QMetaObject::invokeMethod(main, &OBSBasic::OpenInteraction, OBSSource(source));
}

void OBSStudioAPI::obs_frontend_open_sceneitem_edit_transform(obs_sceneitem_t *item)
{
QMetaObject::invokeMethod(main, "OpenEditTransform", Q_ARG(OBSSceneItem, OBSSceneItem(item)));
QMetaObject::invokeMethod(main, &OBSBasic::OpenEditTransform, OBSSceneItem(item));
}

char *OBSStudioAPI::obs_frontend_get_current_record_output_path()
Expand Down
12 changes: 6 additions & 6 deletions frontend/components/MediaControls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,37 +10,37 @@
void MediaControls::OBSMediaStopped(void *data, calldata_t *)
{
MediaControls *media = static_cast<MediaControls *>(data);
QMetaObject::invokeMethod(media, "SetRestartState");
QMetaObject::invokeMethod(media, &MediaControls::SetRestartState);
}

void MediaControls::OBSMediaPlay(void *data, calldata_t *)
{
MediaControls *media = static_cast<MediaControls *>(data);
QMetaObject::invokeMethod(media, "SetPlayingState");
QMetaObject::invokeMethod(media, &MediaControls::SetPlayingState);
}

void MediaControls::OBSMediaPause(void *data, calldata_t *)
{
MediaControls *media = static_cast<MediaControls *>(data);
QMetaObject::invokeMethod(media, "SetPausedState");
QMetaObject::invokeMethod(media, &MediaControls::SetPausedState);
}

void MediaControls::OBSMediaStarted(void *data, calldata_t *)
{
MediaControls *media = static_cast<MediaControls *>(data);
QMetaObject::invokeMethod(media, "SetPlayingState");
QMetaObject::invokeMethod(media, &MediaControls::SetPlayingState);
}

void MediaControls::OBSMediaNext(void *data, calldata_t *)
{
MediaControls *media = static_cast<MediaControls *>(data);
QMetaObject::invokeMethod(media, "UpdateSlideCounter");
QMetaObject::invokeMethod(media, &MediaControls::UpdateSlideCounter);
}

void MediaControls::OBSMediaPrevious(void *data, calldata_t *)
{
MediaControls *media = static_cast<MediaControls *>(data);
QMetaObject::invokeMethod(media, "UpdateSlideCounter");
QMetaObject::invokeMethod(media, &MediaControls::UpdateSlideCounter);
}

MediaControls::MediaControls(QWidget *parent) : QWidget(parent), ui(new Ui::MediaControls)
Expand Down
22 changes: 11 additions & 11 deletions frontend/components/OBSAdvAudioCtrl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -266,57 +266,57 @@ void OBSAdvAudioCtrl::ShowAudioControl(QGridLayout *layout)

void OBSAdvAudioCtrl::OBSSourceActivated(void *param, calldata_t *)
{
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceActiveChanged", Q_ARG(bool, true));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceActiveChanged, true);
}

void OBSAdvAudioCtrl::OBSSourceDeactivated(void *param, calldata_t *)
{
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceActiveChanged", Q_ARG(bool, false));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceActiveChanged, false);
}

void OBSAdvAudioCtrl::OBSSourceFlagsChanged(void *param, calldata_t *calldata)
{
uint32_t flags = (uint32_t)calldata_int(calldata, "flags");
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceFlagsChanged", Q_ARG(uint32_t, flags));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceFlagsChanged, flags);
}

void OBSAdvAudioCtrl::OBSSourceVolumeChanged(void *param, calldata_t *calldata)
{
float volume = (float)calldata_float(calldata, "volume");
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceVolumeChanged", Q_ARG(float, volume));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceVolumeChanged, volume);
}

void OBSAdvAudioCtrl::OBSSourceSyncChanged(void *param, calldata_t *calldata)
{
int64_t offset = calldata_int(calldata, "offset");
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceSyncChanged", Q_ARG(int64_t, offset));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceSyncChanged, offset);
}

void OBSAdvAudioCtrl::OBSSourceMonitoringTypeChanged(void *param, calldata_t *calldata)
{
int type = calldata_int(calldata, "type");
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceMonitoringTypeChanged",
Q_ARG(int, type));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceMonitoringTypeChanged,
type);
}

void OBSAdvAudioCtrl::OBSSourceMixersChanged(void *param, calldata_t *calldata)
{
uint32_t mixers = (uint32_t)calldata_int(calldata, "mixers");
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceMixersChanged",
Q_ARG(uint32_t, mixers));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceMixersChanged, mixers);
}

void OBSAdvAudioCtrl::OBSSourceBalanceChanged(void *param, calldata_t *calldata)
{
int balance = (float)calldata_float(calldata, "balance") * 100.0f;
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SourceBalanceChanged", Q_ARG(int, balance));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SourceBalanceChanged,
balance);
}

void OBSAdvAudioCtrl::OBSSourceRenamed(void *param, calldata_t *calldata)
{
QString newName = QT_UTF8(calldata_string(calldata, "new_name"));

QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), "SetSourceName", Q_ARG(QString, newName));
QMetaObject::invokeMethod(static_cast<OBSAdvAudioCtrl *>(param), &OBSAdvAudioCtrl::SetSourceName, newName);
}

/* ------------------------------------------------------------------------- */
Expand Down
Loading
Loading