apply configure video settings on startup

This commit is contained in:
jp9000
2013-12-22 23:40:07 -07:00
parent 991b5739d6
commit 399b0c8d10
9 changed files with 199 additions and 61 deletions

View File

@@ -40,8 +40,10 @@ class BasicVideoData : public BasicSettingsData {
void LoadFPSNanoseconds();
void ResetScaleList(uint32_t cx, uint32_t cy);
void BaseResListChanged(wxCommandEvent &event);
void OutputResListChanged(wxCommandEvent &event);
void RendererChanged(wxCommandEvent &event);
void BaseResChanged(wxCommandEvent &event);
void OutputResChanged(wxCommandEvent &event);
void FPSChanged(wxCommandEvent &event);
void SaveOther();
void SaveFPSData();
@@ -280,6 +282,11 @@ void BasicVideoData::ResetScaleList(uint32_t cx, uint32_t cy)
}
}
#define ADD_CONNECT(control, event, func) \
connections.Add(window->control, event, \
wxCommandEventHandler(BasicVideoData::func), \
NULL, this)
BasicVideoData::BasicVideoData(OBSBasicSettings *window)
: BasicSettingsData(window)
{
@@ -288,19 +295,37 @@ BasicVideoData::BasicVideoData(OBSBasicSettings *window)
LoadOther();
/* load connectors after loading data to prevent them from triggering */
connections.Add(window->baseResList, wxEVT_TEXT,
wxCommandEventHandler(
BasicVideoData::BaseResListChanged),
NULL, this);
connections.Add(window->outputResList, wxEVT_TEXT,
wxCommandEventHandler(
BasicVideoData::OutputResListChanged),
NULL, this);
ADD_CONNECT(baseResList, wxEVT_TEXT, BaseResChanged);
ADD_CONNECT(outputResList, wxEVT_TEXT, OutputResChanged);
ADD_CONNECT(rendererList, wxEVT_COMBOBOX, RendererChanged);
ADD_CONNECT(fpsCommonList, wxEVT_COMBOBOX, FPSChanged);
ADD_CONNECT(fpsIntegerScroller, wxEVT_SPINCTRL, FPSChanged);
ADD_CONNECT(fpsNumeratorScroller, wxEVT_SPINCTRL, FPSChanged);
ADD_CONNECT(fpsDenominatorScroller, wxEVT_SPINCTRL, FPSChanged);
ADD_CONNECT(fpsNanosecondsScroller, wxEVT_SPINCTRL, FPSChanged);
ADD_CONNECT(fpsIntegerScroller, wxEVT_TEXT, FPSChanged);
ADD_CONNECT(fpsNumeratorScroller, wxEVT_TEXT, FPSChanged);
ADD_CONNECT(fpsDenominatorScroller, wxEVT_TEXT, FPSChanged);
ADD_CONNECT(fpsNanosecondsScroller, wxEVT_TEXT, FPSChanged);
ADD_CONNECT(fpsTypeList, wxEVT_CHOICEBOOK_PAGE_CHANGED,
FPSChanged);
window->videoChangedText->Hide();
}
void BasicVideoData::BaseResListChanged(wxCommandEvent &event)
void BasicVideoData::RendererChanged(wxCommandEvent &event)
{
SetChanged();
window->videoChangedText->SetLabel(WXStr("Settings.ProgramRestart"));
window->videoChangedText->Show();
}
void BasicVideoData::FPSChanged(wxCommandEvent &event)
{
SetChanged();
}
void BasicVideoData::BaseResChanged(wxCommandEvent &event)
{
uint32_t cx, cy;
if (!ConvertTextRes(window->baseResList, cx, cy)) {
@@ -311,13 +336,11 @@ void BasicVideoData::BaseResListChanged(wxCommandEvent &event)
}
SetChanged();
window->videoChangedText->SetLabel(WXStr("Settings.StreamRestart"));
window->videoChangedText->Show();
ResetScaleList(cx, cy);
}
void BasicVideoData::OutputResListChanged(wxCommandEvent &event)
void BasicVideoData::OutputResChanged(wxCommandEvent &event)
{
uint32_t cx, cy;
if (!ConvertTextRes(window->outputResList, cx, cy)) {
@@ -328,8 +351,6 @@ void BasicVideoData::OutputResListChanged(wxCommandEvent &event)
}
SetChanged();
window->videoChangedText->SetLabel(WXStr("Settings.StreamRestart"));
window->videoChangedText->Show();
}
void BasicVideoData::SaveOther()
@@ -412,6 +433,8 @@ void BasicVideoData::Apply()
config_save(GetGlobalConfig());
/* TODO: If resolutiosn/fps were chaned, reset video */
SetSaved();
}