multicam: refactor to heavily optimize multicam monitor retrieval

This commit is contained in:
itsmattkc
2022-09-29 17:50:09 -07:00
parent 63163ba23e
commit 6e183fe4be
25 changed files with 300 additions and 162 deletions
+13 -11
View File
@@ -24,35 +24,37 @@
namespace olive {
#define super TimeBasedPanel
ViewerPanelBase::ViewerPanelBase(const QString& object_name, QWidget *parent) :
TimeBasedPanel(object_name, parent)
super(object_name, parent)
{
connect(PanelManager::instance(), &PanelManager::FocusedPanelChanged, this, &ViewerPanelBase::FocusedPanelChanged);
}
void ViewerPanelBase::PlayPause()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->TogglePlayPause();
GetViewerWidget()->TogglePlayPause();
}
void ViewerPanelBase::PlayInToOut()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->Play(true);
GetViewerWidget()->Play(true);
}
void ViewerPanelBase::ShuttleLeft()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->ShuttleLeft();
GetViewerWidget()->ShuttleLeft();
}
void ViewerPanelBase::ShuttleStop()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->ShuttleStop();
GetViewerWidget()->ShuttleStop();
}
void ViewerPanelBase::ShuttleRight()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->ShuttleRight();
GetViewerWidget()->ShuttleRight();
}
void ViewerPanelBase::ConnectTimeBasedPanel(TimeBasedPanel *panel)
@@ -75,22 +77,22 @@ void ViewerPanelBase::DisconnectTimeBasedPanel(TimeBasedPanel *panel)
void ViewerPanelBase::SetFullScreen(QScreen *screen)
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->SetFullScreen(screen);
GetViewerWidget()->SetFullScreen(screen);
}
void ViewerPanelBase::SetGizmos(Node *node)
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->SetGizmos(node);
GetViewerWidget()->SetGizmos(node);
}
void ViewerPanelBase::CacheEntireSequence()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->CacheEntireSequence();
GetViewerWidget()->CacheEntireSequence();
}
void ViewerPanelBase::CacheSequenceInOut()
{
static_cast<ViewerWidget*>(GetTimeBasedWidget())->CacheSequenceInOut();
GetViewerWidget()->CacheSequenceInOut();
}
void ViewerPanelBase::SetViewerWidget(ViewerWidget *vw)
@@ -104,7 +106,7 @@ void ViewerPanelBase::SetViewerWidget(ViewerWidget *vw)
void ViewerPanelBase::FocusedPanelChanged(PanelWidget *panel)
{
auto vw = static_cast<ViewerWidget*>(GetTimeBasedWidget());
auto vw = GetViewerWidget();
if (vw->IsPlaying() && panel != this) {
vw->Pause();
}