summaryrefslogtreecommitdiff
path: root/browserGrid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'browserGrid.cpp')
-rw-r--r--browserGrid.cpp762
1 files changed, 374 insertions, 388 deletions
diff --git a/browserGrid.cpp b/browserGrid.cpp
index 4fcbb2f..8cebb83 100644
--- a/browserGrid.cpp
+++ b/browserGrid.cpp
@@ -7,320 +7,315 @@
#include "pictureCache.h"
#include "tokendefinitions.h"
-cBrowserGrid::cBrowserGrid(std::shared_ptr<skindesignerapi::cOsdView> rootView) : cViewGridNavigator(rootView)
-{
- m_pBackground = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int)eViewElementsRoot::background));
- m_pHeader = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int)eViewElementsRoot::header));
- m_pfooter = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int)eViewElementsRoot::footer));
- m_pInfopane = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int)eViewElementsRoot::infopane));
- m_pWatch = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int)eViewElementsRoot::watch));
- m_pScrollbar = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int)eViewElementsRoot::scrollbar));
- m_lastsecond = 0;
-
- m_pService = NULL;
- m_pContainer = NULL;
- m_viewEntryIndex = 0;
- m_redrawBackground = true;
-
- Config *conf = &Config::GetInstance();
- if(conf->DefaultViewMode == ViewMode::Cover) {
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(rootView->GetViewGrid((int)eViewGrids::cover) ));
- SetGridDimensions(conf->CoverGridRows, conf->CoverGridColumns);
- } else if(conf->DefaultViewMode == ViewMode::Detail) {
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(rootView->GetViewGrid((int)eViewGrids::detail) ));
- SetGridDimensions(conf->DetailGridRows, conf->DetailGridColumns);
- } else if(conf->DefaultViewMode == ViewMode::List) {
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(rootView->GetViewGrid((int)eViewGrids::list) ));
- SetGridDimensions(conf->ListGridRows, conf->ListGridColumns);
- }
-
- SwitchGrid(m_viewEntryIndex);
- SwitchView();
+cBrowserGrid::cBrowserGrid(std::shared_ptr<skindesignerapi::cOsdView> rootView) : cViewGridNavigator(rootView) {
+ m_pBackground = std::shared_ptr<skindesignerapi::cViewElement>(
+ rootView->GetViewElement((int) eViewElementsRoot::background));
+ m_pHeader = std::shared_ptr<skindesignerapi::cViewElement>(
+ rootView->GetViewElement((int) eViewElementsRoot::header));
+ m_pfooter = std::shared_ptr<skindesignerapi::cViewElement>(
+ rootView->GetViewElement((int) eViewElementsRoot::footer));
+ m_pInfopane = std::shared_ptr<skindesignerapi::cViewElement>(
+ rootView->GetViewElement((int) eViewElementsRoot::infopane));
+ m_pWatch = std::shared_ptr<skindesignerapi::cViewElement>(rootView->GetViewElement((int) eViewElementsRoot::watch));
+ m_pScrollbar = std::shared_ptr<skindesignerapi::cViewElement>(
+ rootView->GetViewElement((int) eViewElementsRoot::scrollbar));
+ m_lastsecond = 0;
+
+ m_pService = NULL;
+ m_pContainer = NULL;
+ m_viewEntryIndex = 0;
+ m_redrawBackground = true;
+
+ Config *conf = &Config::GetInstance();
+ if (conf->DefaultViewMode == ViewMode::Cover) {
+ SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(rootView->GetViewGrid((int) eViewGrids::cover)));
+ SetGridDimensions(conf->CoverGridRows, conf->CoverGridColumns);
+ } else if (conf->DefaultViewMode == ViewMode::Detail) {
+ SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(rootView->GetViewGrid((int) eViewGrids::detail)));
+ SetGridDimensions(conf->DetailGridRows, conf->DetailGridColumns);
+ } else if (conf->DefaultViewMode == ViewMode::List) {
+ SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(rootView->GetViewGrid((int) eViewGrids::list)));
+ SetGridDimensions(conf->ListGridRows, conf->ListGridColumns);
+ }
+
+ SwitchGrid(m_viewEntryIndex);
+ SwitchView();
}
-cBrowserGrid::~cBrowserGrid()
-{
- m_vServerElements.clear();
- m_vElements.clear();
+cBrowserGrid::~cBrowserGrid() {
+ m_vServerElements.clear();
+ m_vElements.clear();
}
-void cBrowserGrid::Clear()
-{
- m_pBackground->Clear();
- m_pfooter->Clear();
- m_pInfopane->Clear();
- m_pWatch->Clear();
- m_pGrid->Clear();
+void cBrowserGrid::Clear() {
+ m_pBackground->Clear();
+ m_pfooter->Clear();
+ m_pInfopane->Clear();
+ m_pWatch->Clear();
+ m_pGrid->Clear();
}
-void cBrowserGrid::Flush()
-{
- if(m_redrawBackground){
- m_pBackground->Display();
- m_redrawBackground = false;
- }
-
- cMutexLock MutexLock(&cPlexSdOsd::RedrawMutex);
- m_pGrid->Display();
- m_pScrollbar->Display();
-
- m_pRootView->Display();
+void cBrowserGrid::Flush() {
+ if (m_redrawBackground) {
+ m_pBackground->Display();
+ m_redrawBackground = false;
+ }
+
+ cMutexLock MutexLock(&cPlexSdOsd::RedrawMutex);
+ m_pGrid->Display();
+ m_pScrollbar->Display();
+
+ m_pRootView->Display();
}
-void cBrowserGrid::SwitchView(ViewMode mode)
-{
- auto selObj = SelectedObject();
- if(!selObj) return;
-
- Config *conf = &Config::GetInstance();
- conf->DefaultViewMode = mode;
- if(conf->DefaultViewMode == ViewMode::Cover) {
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(m_pRootView->GetViewGrid((int)eViewGrids::cover) ));
- SetGridDimensions(conf->CoverGridRows, conf->CoverGridColumns);
- } else if(conf->DefaultViewMode == ViewMode::Detail) {
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(m_pRootView->GetViewGrid((int)eViewGrids::detail) ));
- SetGridDimensions(conf->DetailGridRows, conf->DetailGridColumns);
- } else if(conf->DefaultViewMode == ViewMode::List) {
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(m_pRootView->GetViewGrid((int)eViewGrids::list) ));
- SetGridDimensions(conf->ListGridRows, conf->ListGridColumns);
- }
-
- int activePos = selObj->AbsolutePosition;
- //ProcessData();
-
- for(std::vector<cGridElement*>::iterator it = m_vElements.begin(); it != m_vElements.end(); ++it) {
- cGridElement *elem = *it;
- elem->Position = -1;
- elem->Dirty();
- elem->SetPosition(-1,-1);
- }
-
- m_pGrid->Clear();
- m_startIndex = activePos;
- m_setIterator = true;
- FilterElements(0);
+void cBrowserGrid::SwitchView(ViewMode mode) {
+ auto selObj = SelectedObject();
+ if (!selObj) return;
+
+ Config *conf = &Config::GetInstance();
+ conf->DefaultViewMode = mode;
+ if (conf->DefaultViewMode == ViewMode::Cover) {
+ SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(m_pRootView->GetViewGrid((int) eViewGrids::cover)));
+ SetGridDimensions(conf->CoverGridRows, conf->CoverGridColumns);
+ } else if (conf->DefaultViewMode == ViewMode::Detail) {
+ SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(m_pRootView->GetViewGrid((int) eViewGrids::detail)));
+ SetGridDimensions(conf->DetailGridRows, conf->DetailGridColumns);
+ } else if (conf->DefaultViewMode == ViewMode::List) {
+ SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(m_pRootView->GetViewGrid((int) eViewGrids::list)));
+ SetGridDimensions(conf->ListGridRows, conf->ListGridColumns);
+ }
+
+ int activePos = selObj->AbsolutePosition;
+ //ProcessData();
+
+ for (std::vector<cGridElement *>::iterator it = m_vElements.begin(); it != m_vElements.end(); ++it) {
+ cGridElement *elem = *it;
+ elem->Position = -1;
+ elem->Dirty();
+ elem->SetPosition(-1, -1);
+ }
+
+ m_pGrid->Clear();
+ m_startIndex = activePos;
+ m_setIterator = true;
+ FilterElements(0);
}
-void cBrowserGrid::NextViewMode()
-{
- ViewMode mode = Config::GetInstance().DefaultViewMode;
- if(mode == ViewMode::Cover) {
- mode = ViewMode::Detail;
- } else if(mode == ViewMode::Detail) {
- mode = ViewMode::List;
- } else if(mode == ViewMode::List) {
- mode = ViewMode::Cover;
- }
- SwitchView(mode);
+void cBrowserGrid::NextViewMode() {
+ ViewMode mode = Config::GetInstance().DefaultViewMode;
+ if (mode == ViewMode::Cover) {
+ mode = ViewMode::Detail;
+ } else if (mode == ViewMode::Detail) {
+ mode = ViewMode::List;
+ } else if (mode == ViewMode::List) {
+ mode = ViewMode::Cover;
+ }
+ SwitchView(mode);
}
-void cBrowserGrid::SwitchGrid(int index)
-{
- m_pHeader->Clear();
- m_pHeader->ClearTokens();
- m_pHeader->AddIntToken((int)eTokenGridInt::columns, m_columns);
- m_pHeader->AddIntToken((int)eTokenGridInt::rows, m_rows);
- m_pHeader->AddIntToken((int)eTokenGridInt::totalcount, m_vElements.size());
-
- if(plexclient::plexgdm::GetInstance().GetFirstServer()) {
- if(m_viewEntryIndex < (int)Config::GetInstance().m_viewentries.size()) {
- ViewEntry entry = Config::GetInstance().m_viewentries[index];
- m_pHeader->AddStringToken((int)eTokenGridStr::tabname, tr(entry.Name.c_str()));
- m_pService = std::shared_ptr<plexclient::Plexservice>(new plexclient::Plexservice( plexclient::plexgdm::GetInstance().GetFirstServer(), entry.PlexPath ) );
- m_pContainer = m_pService->GetSection(m_pService->StartUri);
- m_bServersAreRoot = false;
- m_vServerElements.clear();
- } else {
- //Server View
- m_pHeader->AddStringToken((int)eTokenGridStr::tabname, tr("Library"));
- m_pService = NULL;
- m_pContainer = NULL;
- m_bServersAreRoot = true;
- SetServerElements();
- }
- } else {
- m_pHeader->AddStringToken((int)eTokenGridStr::tabname, tr("No Plex Media Server found."));
- m_pInfopane->AddStringToken((int)eTokenGridStr::title, tr("No Plex Media Server found."));
- m_pService = NULL;
- m_pContainer = NULL;
- }
- ProcessData();
- auto selObj = SelectedObject();
- if(selObj) {
- selObj->AddTokens(m_pHeader, false);
- m_pHeader->AddIntToken((int)eTokenGridInt::position, selObj->AbsolutePosition);
- }
-
- DrawBackground();
+void cBrowserGrid::SwitchGrid(int index) {
+ m_pHeader->Clear();
+ m_pHeader->ClearTokens();
+ m_pHeader->AddIntToken((int) eTokenGridInt::columns, m_columns);
+ m_pHeader->AddIntToken((int) eTokenGridInt::rows, m_rows);
+ m_pHeader->AddIntToken((int) eTokenGridInt::totalcount, m_vElements.size());
+
+ if (plexclient::plexgdm::GetInstance().GetFirstServer()) {
+ if (m_viewEntryIndex < (int) Config::GetInstance().m_viewentries.size()) {
+ ViewEntry entry = Config::GetInstance().m_viewentries[index];
+ m_pHeader->AddStringToken((int) eTokenGridStr::tabname, tr(entry.Name.c_str()));
+ m_pService = std::shared_ptr<plexclient::Plexservice>(
+ new plexclient::Plexservice(plexclient::plexgdm::GetInstance().GetFirstServer(), entry.PlexPath));
+ m_pContainer = m_pService->GetSection(m_pService->StartUri);
+ m_bServersAreRoot = false;
+ m_vServerElements.clear();
+ } else {
+ //Server View
+ m_pHeader->AddStringToken((int) eTokenGridStr::tabname, tr("Library"));
+ m_pService = NULL;
+ m_pContainer = NULL;
+ m_bServersAreRoot = true;
+ SetServerElements();
+ }
+ } else {
+ m_pHeader->AddStringToken((int) eTokenGridStr::tabname, tr("No Plex Media Server found."));
+ m_pInfopane->AddStringToken((int) eTokenGridStr::title, tr("No Plex Media Server found."));
+ m_pService = NULL;
+ m_pContainer = NULL;
+ }
+ ProcessData();
+ auto selObj = SelectedObject();
+ if (selObj) {
+ selObj->AddTokens(m_pHeader, false);
+ m_pHeader->AddIntToken((int) eTokenGridInt::position, selObj->AbsolutePosition);
+ }
+
+ DrawBackground();
}
-void cBrowserGrid::SetServerElements()
-{
- m_vServerElements.clear();
+void cBrowserGrid::SetServerElements() {
+ m_vServerElements.clear();
- for(std::vector<plexclient::PlexServer>::iterator it = plexclient::plexgdm::GetInstance().GetPlexservers().begin(); it != plexclient::plexgdm::GetInstance().GetPlexservers().end(); ++it) {
- for(std::vector<ViewEntry>::iterator vEntry = Config::GetInstance().m_serverViewentries.begin(); vEntry != Config::GetInstance().m_serverViewentries.end(); ++vEntry) {
- m_vServerElements.push_back(cServerElement(&(*it), vEntry->PlexPath, vEntry->Name));
- }
- }
+ for (std::vector<plexclient::PlexServer>::iterator it = plexclient::plexgdm::GetInstance().GetPlexservers().begin();
+ it != plexclient::plexgdm::GetInstance().GetPlexservers().end(); ++it) {
+ for (std::vector<ViewEntry>::iterator vEntry = Config::GetInstance().m_serverViewentries.begin();
+ vEntry != Config::GetInstance().m_serverViewentries.end(); ++vEntry) {
+ m_vServerElements.push_back(cServerElement(&(*it), vEntry->PlexPath, vEntry->Name));
+ }
+ }
}
-void cBrowserGrid::ProcessData()
-{
- m_vElements.clear();
-
- if(m_vServerElements.size() > 0) {
- for(auto it = m_vServerElements.begin(); it !=m_vServerElements.end(); ++it) {
- cServerElement *elem = &(*it);
- m_vElements.push_back(elem);
- }
- } else if (m_pContainer) {
- if (!m_pService->IsRoot()) {
- m_vElements.push_back(&m_Dummy);
- m_Dummy.Dirty();
- }
-
- if(m_pContainer->m_vVideos.size() > 0) {
- for(std::vector<plexclient::cVideo>::iterator it = m_pContainer->m_vVideos.begin(); it != m_pContainer->m_vVideos.end(); ++it) {
- plexclient::cVideo *elem = &(*it);
- m_vElements.push_back(elem);
- }
- }
- if(m_pContainer->m_vDirectories.size() > 0) {
- for(std::vector<plexclient::Directory>::iterator it = m_pContainer->m_vDirectories.begin(); it != m_pContainer->m_vDirectories.end(); ++it) {
- plexclient::Directory *elem = &(*it);
- m_vElements.push_back(elem);
- }
- }
- }
-
- int pos = 0;
- for(std::vector<cGridElement*>::iterator it = m_vElements.begin(); it != m_vElements.end(); ++it) {
- cGridElement *elem = *it;
- elem->AbsolutePosition = pos++;
- }
-
- m_startIndex = 0;
-
- m_pGrid->Clear();
- m_setIterator = true;
- FilterElements(0);
+void cBrowserGrid::ProcessData() {
+ m_vElements.clear();
+
+ if (m_vServerElements.size() > 0) {
+ for (auto it = m_vServerElements.begin(); it != m_vServerElements.end(); ++it) {
+ cServerElement *elem = &(*it);
+ m_vElements.push_back(elem);
+ }
+ } else if (m_pContainer) {
+ if (!m_pService->IsRoot()) {
+ m_vElements.push_back(&m_Dummy);
+ m_Dummy.Dirty();
+ }
+
+ if (m_pContainer->m_vVideos.size() > 0) {
+ for (std::vector<plexclient::cVideo>::iterator it = m_pContainer->m_vVideos.begin();
+ it != m_pContainer->m_vVideos.end(); ++it) {
+ plexclient::cVideo *elem = &(*it);
+ m_vElements.push_back(elem);
+ }
+ }
+ if (m_pContainer->m_vDirectories.size() > 0) {
+ for (std::vector<plexclient::Directory>::iterator it = m_pContainer->m_vDirectories.begin();
+ it != m_pContainer->m_vDirectories.end(); ++it) {
+ plexclient::Directory *elem = &(*it);
+ m_vElements.push_back(elem);
+ }
+ }
+ }
+
+ int pos = 0;
+ for (std::vector<cGridElement *>::iterator it = m_vElements.begin(); it != m_vElements.end(); ++it) {
+ cGridElement *elem = *it;
+ elem->AbsolutePosition = pos++;
+ }
+
+ m_startIndex = 0;
+
+ m_pGrid->Clear();
+ m_setIterator = true;
+ FilterElements(0);
}
-eOSState cBrowserGrid::NavigateSelect()
-{
- if(m_setIterator) return eOSState::osContinue;;
- plexclient::Directory* dir = dynamic_cast<plexclient::Directory*>(SelectedObject());
- if(dir) {
- m_pContainer = m_pService->GetSection(dir->m_sKey);
- ProcessData();
- return eOSState::osContinue;
- } else if(dynamic_cast<cDummyElement*>(SelectedObject())) {
- return NavigateBack();
- } else if(cServerElement* srv = dynamic_cast<cServerElement*>(SelectedObject())) {
- m_pService = std::shared_ptr<plexclient::Plexservice>(new plexclient::Plexservice( srv->Server() ) );
- m_pContainer = m_pService->GetSection(srv->StartPath());
- m_vServerElements.clear();
- ProcessData();
- return eOSState::osContinue;
- } else if(dynamic_cast<plexclient::cVideo*>(SelectedObject())) {
- return eOSState::osUser1;
- } else return eOSState::osEnd;
+eOSState cBrowserGrid::NavigateSelect() {
+ if (m_setIterator) return eOSState::osContinue;;
+ plexclient::Directory *dir = dynamic_cast<plexclient::Directory *>(SelectedObject());
+ if (dir) {
+ m_pContainer = m_pService->GetSection(dir->m_sKey);
+ ProcessData();
+ return eOSState::osContinue;
+ } else if (dynamic_cast<cDummyElement *>(SelectedObject())) {
+ return NavigateBack();
+ } else if (cServerElement *srv = dynamic_cast<cServerElement *>(SelectedObject())) {
+ m_pService = std::shared_ptr<plexclient::Plexservice>(new plexclient::Plexservice(srv->Server()));
+ m_pContainer = m_pService->GetSection(srv->StartPath());
+ m_vServerElements.clear();
+ ProcessData();
+ return eOSState::osContinue;
+ } else if (dynamic_cast<plexclient::cVideo *>(SelectedObject())) {
+ return eOSState::osUser1;
+ } else return eOSState::osEnd;
}
-eOSState cBrowserGrid::NavigateBack()
-{
- if(m_setIterator) return eOSState::osContinue;;
- std::shared_ptr<plexclient::MediaContainer> pCont = NULL;
- if(m_pService) {
- pCont = m_pService->GetLastSection();
- }
-
- if(pCont) {
- m_pContainer = pCont;
- ProcessData();
- return eOSState::osContinue;
-
- } else if(m_bServersAreRoot && m_pService) {
- m_pContainer = NULL;
- m_pService = NULL;
- SetServerElements();
- ProcessData();
- return eOSState::osContinue;
- }
- return eOSState::osEnd;
+eOSState cBrowserGrid::NavigateBack() {
+ if (m_setIterator) return eOSState::osContinue;;
+ std::shared_ptr<plexclient::MediaContainer> pCont = NULL;
+ if (m_pService) {
+ pCont = m_pService->GetLastSection();
+ }
+
+ if (pCont) {
+ m_pContainer = pCont;
+ ProcessData();
+ return eOSState::osContinue;
+
+ } else if (m_bServersAreRoot && m_pService) {
+ m_pContainer = NULL;
+ m_pService = NULL;
+ SetServerElements();
+ ProcessData();
+ return eOSState::osContinue;
+ }
+ return eOSState::osEnd;
}
-void cBrowserGrid::DrawGrid()
-{
- m_pHeader->Display();
- DrawInfopane();
- DrawFooter();
- DrawScrollbar();
+void cBrowserGrid::DrawGrid() {
+ m_pHeader->Display();
+ DrawInfopane();
+ DrawFooter();
+ DrawScrollbar();
}
-void cBrowserGrid::DrawBackground()
-{
- m_redrawBackground = true;
- m_pBackground->ClearTokens();
-
- /*auto video = dynamic_cast<plexclient::Video*>(SelectedObject());
- if(video) {
- bool cached = false;
- std::string path = cPictureCache::GetInstance().GetPath(video->ArtUri(), 1920, 1080, cached);
- m_pBackground->AddStringToken("selecteditembackground", path);
- }
- */
- m_pBackground->AddIntToken((int)eTokenBackgroundInt::isdirectory, 1);
- m_pBackground->AddStringToken((int)eTokenBackgroundStr::currentdirectorybackground, "/path");
- m_pBackground->AddIntToken((int)eTokenBackgroundInt::viewmode, Config::GetInstance().DefaultViewMode);
+void cBrowserGrid::DrawBackground() {
+ m_redrawBackground = true;
+ m_pBackground->ClearTokens();
+
+ /*auto video = dynamic_cast<plexclient::Video*>(SelectedObject());
+ if(video) {
+ bool cached = false;
+ std::string path = cPictureCache::GetInstance().GetPath(video->ArtUri(), 1920, 1080, cached);
+ m_pBackground->AddStringToken("selecteditembackground", path);
+ }
+ */
+ m_pBackground->AddIntToken((int) eTokenBackgroundInt::isdirectory, 1);
+ m_pBackground->AddStringToken((int) eTokenBackgroundStr::currentdirectorybackground, "/path");
+ m_pBackground->AddIntToken((int) eTokenBackgroundInt::viewmode, Config::GetInstance().DefaultViewMode);
}
-void cBrowserGrid::DrawInfopane()
-{
- m_pInfopane->Clear();
- if(SelectedObject()) {
- SelectedObject()->AddTokens(m_pInfopane, true);
- m_pInfopane->AddIntToken((int)eTokenGridInt::columns, m_columns);
- m_pInfopane->AddIntToken((int)eTokenGridInt::rows, m_rows);
- m_pInfopane->AddIntToken((int)eTokenGridInt::totalcount, m_vElements.size());
- m_pInfopane->AddIntToken((int)eTokenGridInt::position, SelectedObject()->AbsolutePosition);
- }
- m_pInfopane->Display();
+void cBrowserGrid::DrawInfopane() {
+ m_pInfopane->Clear();
+ if (SelectedObject()) {
+ SelectedObject()->AddTokens(m_pInfopane, true);
+ m_pInfopane->AddIntToken((int) eTokenGridInt::columns, m_columns);
+ m_pInfopane->AddIntToken((int) eTokenGridInt::rows, m_rows);
+ m_pInfopane->AddIntToken((int) eTokenGridInt::totalcount, m_vElements.size());
+ m_pInfopane->AddIntToken((int) eTokenGridInt::position, SelectedObject()->AbsolutePosition);
+ }
+ m_pInfopane->Display();
}
-void cBrowserGrid::DrawFooter()
-{
- //if (!active)
- // return;
- cString nextTab = "Library";
- if(m_viewEntryIndex + 1 < (int)Config::GetInstance().m_viewentries.size()) {
- nextTab = Config::GetInstance().m_viewentries[m_viewEntryIndex + 1].Name.c_str();
- } else if(m_viewEntryIndex + 1 == (int)Config::GetInstance().m_viewentries.size() + 1) {
- nextTab = Config::GetInstance().m_viewentries[0].Name.c_str();
- }
- cString details = "Details";
+void cBrowserGrid::DrawFooter() {
+ //if (!active)
+ // return;
+ cString nextTab = "Library";
+ if (m_viewEntryIndex + 1 < (int) Config::GetInstance().m_viewentries.size()) {
+ nextTab = Config::GetInstance().m_viewentries[m_viewEntryIndex + 1].Name.c_str();
+ } else if (m_viewEntryIndex + 1 == (int) Config::GetInstance().m_viewentries.size() + 1) {
+ nextTab = Config::GetInstance().m_viewentries[0].Name.c_str();
+ }
+ cString details = "Details";
- string textGreen = tr(details);
- string textYellow = tr(nextTab);
- string textRed = "";
- string textBlue = tr("Switch View");
+ string textGreen = tr(details);
+ string textYellow = tr(nextTab);
+ string textRed = "";
+ string textBlue = tr("Switch View");
- if(auto vid = dynamic_cast<plexclient::cVideo*>(SelectedObject()) ) {
- if(vid->m_iViewCount > 0) textRed = tr("Unscrobble");
- else textRed = tr("Scrobble");
- }
+ if (auto vid = dynamic_cast<plexclient::cVideo *>(SelectedObject())) {
+ if (vid->m_iViewCount > 0) textRed = tr("Unscrobble");
+ else textRed = tr("Scrobble");
+ }
- int colorKeys[4] = { Setup.ColorKey0, Setup.ColorKey1, Setup.ColorKey2, Setup.ColorKey3 };
+ int colorKeys[4] = {Setup.ColorKey0, Setup.ColorKey1, Setup.ColorKey2, Setup.ColorKey3};
- m_pfooter->Clear();
- m_pfooter->ClearTokens();
+ m_pfooter->Clear();
+ m_pfooter->ClearTokens();
- m_pfooter->AddStringToken((int)eTokenFooterStr::red, textRed.c_str());
- m_pfooter->AddStringToken((int)eTokenFooterStr::green, textGreen.c_str());
- m_pfooter->AddStringToken((int)eTokenFooterStr::yellow, textYellow.c_str());
- m_pfooter->AddStringToken((int)eTokenFooterStr::blue, textBlue.c_str());
+ m_pfooter->AddStringToken((int) eTokenFooterStr::red, textRed.c_str());
+ m_pfooter->AddStringToken((int) eTokenFooterStr::green, textGreen.c_str());
+ m_pfooter->AddStringToken((int) eTokenFooterStr::yellow, textYellow.c_str());
+ m_pfooter->AddStringToken((int) eTokenFooterStr::blue, textBlue.c_str());
for (int button = 0; button < 4; button++) {
bool isRed = false;
@@ -343,146 +338,137 @@ void cBrowserGrid::DrawFooter()
default:
break;
}
- m_pfooter->AddIntToken(0 + button, isRed);
- m_pfooter->AddIntToken(4 + button, isGreen);
- m_pfooter->AddIntToken(8 + button, isYellow);
+ m_pfooter->AddIntToken(0 + button, isRed);
+ m_pfooter->AddIntToken(4 + button, isGreen);
+ m_pfooter->AddIntToken(8 + button, isYellow);
m_pfooter->AddIntToken(12 + button, isBlue);
}
- m_pfooter->Display();
+ m_pfooter->Display();
}
-void cBrowserGrid::DrawScrollbar()
-{
- m_pScrollbar->Clear();
- m_pScrollbar->ClearTokens();
-
- if ((int)m_vElements.size() > (m_columns * m_rows)) {
- int currentRow = SelectedObject()->AbsolutePosition / m_columns;
- int totalRows = ceil((double) m_vElements.size() / m_columns);
-
- int scrollBarHeight = 100.0 / totalRows * m_rows;
-
- int offset = 100.0 / totalRows * currentRow;
- if(offset >= 100 - scrollBarHeight) {
- offset = 100.0 - scrollBarHeight;
- }
- m_pScrollbar->AddIntToken((int)eTokenScrollbarInt::height, scrollBarHeight);
- m_pScrollbar->AddIntToken((int)eTokenScrollbarInt::offset, offset);
- m_pScrollbar->AddIntToken((int)eTokenScrollbarInt::hasscrollbar, true);
- } else {
- m_pScrollbar->AddIntToken((int)eTokenScrollbarInt::hasscrollbar, false);
- }
-
- m_pScrollbar->Display();
+void cBrowserGrid::DrawScrollbar() {
+ m_pScrollbar->Clear();
+ m_pScrollbar->ClearTokens();
+
+ if ((int) m_vElements.size() > (m_columns * m_rows)) {
+ int currentRow = SelectedObject()->AbsolutePosition / m_columns;
+ int totalRows = ceil((double) m_vElements.size() / m_columns);
+
+ int scrollBarHeight = 100.0 / totalRows * m_rows;
+
+ int offset = 100.0 / totalRows * currentRow;
+ if (offset >= 100 - scrollBarHeight) {
+ offset = 100.0 - scrollBarHeight;
+ }
+ m_pScrollbar->AddIntToken((int) eTokenScrollbarInt::height, scrollBarHeight);
+ m_pScrollbar->AddIntToken((int) eTokenScrollbarInt::offset, offset);
+ m_pScrollbar->AddIntToken((int) eTokenScrollbarInt::hasscrollbar, true);
+ } else {
+ m_pScrollbar->AddIntToken((int) eTokenScrollbarInt::hasscrollbar, false);
+ }
+
+ m_pScrollbar->Display();
}
-void cBrowserGrid::NextTab()
-{
- m_viewEntryIndex++;
- if(m_viewEntryIndex > (int)Config::GetInstance().m_viewentries.size()) {
- m_viewEntryIndex = 0;
- }
- SwitchGrid(m_viewEntryIndex);
+void cBrowserGrid::NextTab() {
+ m_viewEntryIndex++;
+ if (m_viewEntryIndex > (int) Config::GetInstance().m_viewentries.size()) {
+ m_viewEntryIndex = 0;
+ }
+ SwitchGrid(m_viewEntryIndex);
}
-void cBrowserGrid::PrevTab()
-{
- m_viewEntryIndex--;
- if(m_viewEntryIndex < 0) {
- m_viewEntryIndex = Config::GetInstance().m_viewentries.size();
- }
- SwitchGrid(m_viewEntryIndex);
+void cBrowserGrid::PrevTab() {
+ m_viewEntryIndex--;
+ if (m_viewEntryIndex < 0) {
+ m_viewEntryIndex = Config::GetInstance().m_viewentries.size();
+ }
+ SwitchGrid(m_viewEntryIndex);
}
-bool cBrowserGrid::DrawTime()
-{
- time_t t = time(0); // get time now
- struct tm * now = localtime(&t);
- int sec = now->tm_sec;
- if (sec == m_lastsecond)
- return false;
-
- int min = now->tm_min;
- int hour = now->tm_hour;
- int hourMinutes = hour%12 * 5 + min / 12;
-
- char monthname[20];
- char monthshort[10];
- strftime(monthshort, sizeof(monthshort), "%b", now);
- strftime(monthname, sizeof(monthname), "%B", now);
-
- m_pWatch->Clear();
- m_pWatch->ClearTokens();
- m_pWatch->AddIntToken((int)eTokenTimeInt::sec, sec);
- m_pWatch->AddIntToken((int)eTokenTimeInt::min, min);
- m_pWatch->AddIntToken((int)eTokenTimeInt::hour, hour);
- m_pWatch->AddIntToken((int)eTokenTimeInt::hmins, hourMinutes);
- m_pWatch->AddIntToken((int)eTokenTimeInt::year, now->tm_year + 1900);
- m_pWatch->AddIntToken((int)eTokenTimeInt::day, now->tm_mday);
- m_pWatch->AddStringToken((int)eTokenTimeStr::time, *TimeString(t));
- m_pWatch->AddStringToken((int)eTokenTimeStr::monthname, monthname);
- m_pWatch->AddStringToken((int)eTokenTimeStr::monthnameshort, monthshort);
- m_pWatch->AddStringToken((int)eTokenTimeStr::month, *cString::sprintf("%02d", now->tm_mon + 1));
- m_pWatch->AddStringToken((int)eTokenTimeStr::dayleadingzero, *cString::sprintf("%02d", now->tm_mday));
- m_pWatch->AddStringToken((int)eTokenTimeStr::dayname, *WeekDayNameFull(now->tm_wday));
- m_pWatch->AddStringToken((int)eTokenTimeStr::daynameshort, *WeekDayName(now->tm_wday));
- m_pWatch->Display();
-
- m_lastsecond = sec;
- return true;
+bool cBrowserGrid::DrawTime() {
+ time_t t = time(0); // get time now
+ struct tm *now = localtime(&t);
+ int sec = now->tm_sec;
+ if (sec == m_lastsecond)
+ return false;
+
+ int min = now->tm_min;
+ int hour = now->tm_hour;
+ int hourMinutes = hour % 12 * 5 + min / 12;
+
+ char monthname[20];
+ char monthshort[10];
+ strftime(monthshort, sizeof(monthshort), "%b", now);
+ strftime(monthname, sizeof(monthname), "%B", now);
+
+ m_pWatch->Clear();
+ m_pWatch->ClearTokens();
+ m_pWatch->AddIntToken((int) eTokenTimeInt::sec, sec);
+ m_pWatch->AddIntToken((int) eTokenTimeInt::min, min);
+ m_pWatch->AddIntToken((int) eTokenTimeInt::hour, hour);
+ m_pWatch->AddIntToken((int) eTokenTimeInt::hmins, hourMinutes);
+ m_pWatch->AddIntToken((int) eTokenTimeInt::year, now->tm_year + 1900);
+ m_pWatch->AddIntToken((int) eTokenTimeInt::day, now->tm_mday);
+ m_pWatch->AddStringToken((int) eTokenTimeStr::time, *TimeString(t));
+ m_pWatch->AddStringToken((int) eTokenTimeStr::monthname, monthname);
+ m_pWatch->AddStringToken((int) eTokenTimeStr::monthnameshort, monthshort);
+ m_pWatch->AddStringToken((int) eTokenTimeStr::month, *cString::sprintf("%02d", now->tm_mon + 1));
+ m_pWatch->AddStringToken((int) eTokenTimeStr::dayleadingzero, *cString::sprintf("%02d", now->tm_mday));
+ m_pWatch->AddStringToken((int) eTokenTimeStr::dayname, *WeekDayNameFull(now->tm_wday));
+ m_pWatch->AddStringToken((int) eTokenTimeStr::daynameshort, *WeekDayName(now->tm_wday));
+ m_pWatch->Display();
+
+ m_lastsecond = sec;
+ return true;
}
/*
* cDummyElement
*/
-cDummyElement::cDummyElement()
-{
- m_title = "../";
+cDummyElement::cDummyElement() {
+ m_title = "../";
}
-cDummyElement::cDummyElement(std::string title)
-{
- m_title = title;
+cDummyElement::cDummyElement(std::string title) {
+ m_title = title;
}
-void cDummyElement::AddTokens(std::shared_ptr<skindesignerapi::cOsdElement> grid, bool clear, std::function<void(cGridElement*)> OnCached)
-{
- if(clear) grid->ClearTokens();
- grid->AddIntToken((int)eTokenGridInt::isdummy, 1);
- grid->AddStringToken((int)eTokenGridStr::title, m_title.c_str());
+void cDummyElement::AddTokens(std::shared_ptr<skindesignerapi::cOsdElement> grid, bool clear,
+ std::function<void(cGridElement *)> OnCached) {
+ if (clear) grid->ClearTokens();
+ grid->AddIntToken((int) eTokenGridInt::isdummy, 1);
+ grid->AddStringToken((int) eTokenGridStr::title, m_title.c_str());
}
-std::string cDummyElement::GetTitle()
-{
- return "Dummy";
+std::string cDummyElement::GetTitle() {
+ return "Dummy";
}
/*
* cServerElement
*/
-cServerElement::cServerElement(plexclient::PlexServer* server, std::string startPath, std::string startName)
-{
- m_pServer = server;
- m_sStartPath = startPath;
- m_sStartName = startName;
+cServerElement::cServerElement(plexclient::PlexServer *server, std::string startPath, std::string startName) {
+ m_pServer = server;
+ m_sStartPath = startPath;
+ m_sStartName = startName;
}
-void cServerElement::AddTokens(std::shared_ptr<skindesignerapi::cOsdElement> grid, bool clear, std::function<void(cGridElement*)> OnCached)
-{
- if(clear) grid->ClearTokens();
- grid->AddIntToken((int)eTokenGridInt::isserver, 1);
- grid->AddStringToken((int)eTokenGridStr::title, m_pServer->GetServerName().c_str());
- grid->AddStringToken((int)eTokenGridStr::serverstartpointname, m_sStartName.c_str());
- grid->AddStringToken((int)eTokenGridStr::serverip, m_pServer->GetHost().c_str());
- grid->AddIntToken((int)eTokenGridInt::serverport, m_pServer->GetPort());
- grid->AddStringToken((int)eTokenGridStr::serverversion, m_pServer->GetVersion().c_str());
- grid->AddIntToken((int)eTokenGridInt::viewmode, Config::GetInstance().DefaultViewMode);
+void cServerElement::AddTokens(std::shared_ptr<skindesignerapi::cOsdElement> grid, bool clear,
+ std::function<void(cGridElement *)> OnCached) {
+ if (clear) grid->ClearTokens();
+ grid->AddIntToken((int) eTokenGridInt::isserver, 1);
+ grid->AddStringToken((int) eTokenGridStr::title, m_pServer->GetServerName().c_str());
+ grid->AddStringToken((int) eTokenGridStr::serverstartpointname, m_sStartName.c_str());
+ grid->AddStringToken((int) eTokenGridStr::serverip, m_pServer->GetHost().c_str());
+ grid->AddIntToken((int) eTokenGridInt::serverport, m_pServer->GetPort());
+ grid->AddStringToken((int) eTokenGridStr::serverversion, m_pServer->GetVersion().c_str());
+ grid->AddIntToken((int) eTokenGridInt::viewmode, Config::GetInstance().DefaultViewMode);
}
-std::string cServerElement::GetTitle()
-{
- return "Server";
+std::string cServerElement::GetTitle() {
+ return "Server";
}