Skip to content
Merged
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
48 changes: 0 additions & 48 deletions src/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,20 +300,6 @@ QSpinBox* Utils::GetTransitionDurationControl() {
return window->findChild<QSpinBox*>("transitionDuration");
}

int Utils::GetTransitionDuration() {
QSpinBox* control = GetTransitionDurationControl();
if (control)
return control->value();
else
return -1;
}

void Utils::SetTransitionDuration(int ms) {
QSpinBox* control = GetTransitionDurationControl();
if (control && ms >= 0)
control->setValue(ms);
}

bool Utils::SetTransitionByName(QString transitionName) {
OBSSourceAutoRelease transition = GetTransitionFromName(transitionName);

Expand All @@ -325,40 +311,6 @@ bool Utils::SetTransitionByName(QString transitionName) {
}
}

QPushButton* Utils::GetPreviewModeButtonControl() {
QMainWindow* main = (QMainWindow*)obs_frontend_get_main_window();
return main->findChild<QPushButton*>("modeSwitch");
}

QLayout* Utils::GetPreviewLayout() {
QMainWindow* main = (QMainWindow*)obs_frontend_get_main_window();
return main->findChild<QLayout*>("previewLayout");
}

void Utils::TransitionToProgram() {
if (!obs_frontend_preview_program_mode_active())
return;

// WARNING : if the layout created in OBS' CreateProgramOptions() changes
// then this won't work as expected

QMainWindow* main = (QMainWindow*)obs_frontend_get_main_window();

// The program options widget is the second item in the left-to-right layout
QWidget* programOptions = GetPreviewLayout()->itemAt(1)->widget();

// The "Transition" button lies in the mainButtonLayout
// which is the first itemin the program options' layout
QLayout* mainButtonLayout = programOptions->layout()->itemAt(1)->layout();
QWidget* transitionBtnWidget = mainButtonLayout->itemAt(0)->widget();

// Try to cast that widget into a button
QPushButton* transitionBtn = qobject_cast<QPushButton*>(transitionBtnWidget);

// Perform a click on that button
transitionBtn->click();
}

QString Utils::OBSVersionString() {
uint32_t version = obs_get_version();

Expand Down
8 changes: 0 additions & 8 deletions src/Utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,9 @@ class Utils {

// TODO contribute a proper frontend API method for this to OBS and remove this hack
static QSpinBox* GetTransitionDurationControl();
static int GetTransitionDuration();
static void SetTransitionDuration(int ms);

static bool SetTransitionByName(QString transitionName);

static QPushButton* GetPreviewModeButtonControl();
static QLayout* GetPreviewLayout();

// TODO contribute a proper frontend API method for this to OBS and remove this hack
static void TransitionToProgram();

static QString OBSVersionString();

static QSystemTrayIcon* GetTrayIcon();
Expand Down
2 changes: 1 addition & 1 deletion src/WSEvents.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,7 @@ void WSEvents::OnTransitionBegin(void* param, calldata_t* data) {
{
duration = obs_data_get_int(destinationSettings, "transition_duration");
} else {
duration = Utils::GetTransitionDuration();
duration = obs_frontend_get_transition_duration();
}

OBSDataAutoRelease fields = obs_data_create();
Expand Down
4 changes: 2 additions & 2 deletions src/WSRequestHandler_StudioMode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,11 @@ HandlerResponse WSRequestHandler::HandleTransitionToProgram(WSRequestHandler* re
if (obs_data_has_user_value(transitionInfo, "duration")) {
int transitionDuration =
obs_data_get_int(transitionInfo, "duration");
Utils::SetTransitionDuration(transitionDuration);
obs_frontend_set_transition_duration(transitionDuration);
}
}

Utils::TransitionToProgram();
obs_frontend_preview_program_trigger_transition();
return req->SendOKResponse();
}

Expand Down
6 changes: 3 additions & 3 deletions src/WSRequestHandler_Transitions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ HandlerResponse WSRequestHandler::HandleGetCurrentTransition(WSRequestHandler* r
obs_source_get_name(currentTransition));

if (!obs_transition_fixed(currentTransition))
obs_data_set_int(response, "duration", Utils::GetTransitionDuration());
obs_data_set_int(response, "duration", obs_frontend_get_transition_duration());

return req->SendOKResponse(response);
}
Expand Down Expand Up @@ -101,7 +101,7 @@ HandlerResponse WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler*
}

int ms = obs_data_get_int(req->data, "duration");
Utils::SetTransitionDuration(ms);
obs_frontend_set_transition_duration(ms);
return req->SendOKResponse();
}

Expand All @@ -117,6 +117,6 @@ HandlerResponse WSRequestHandler::HandleSetTransitionDuration(WSRequestHandler*
*/
HandlerResponse WSRequestHandler::HandleGetTransitionDuration(WSRequestHandler* req) {
OBSDataAutoRelease response = obs_data_create();
obs_data_set_int(response, "transition-duration", Utils::GetTransitionDuration());
obs_data_set_int(response, "transition-duration", obs_frontend_get_transition_duration());
return req->SendOKResponse(response);
}