summaryrefslogtreecommitdiff
path: root/detailView.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'detailView.cpp')
-rw-r--r--detailView.cpp317
1 files changed, 156 insertions, 161 deletions
diff --git a/detailView.cpp b/detailView.cpp
index 3055cb0..f44869d 100644
--- a/detailView.cpp
+++ b/detailView.cpp
@@ -2,102 +2,102 @@
#include "Config.h"
cDetailView::cDetailView(std::shared_ptr<skindesignerapi::cOsdView> detailView, plexclient::cVideo *video)
- : cViewGridNavigator(detailView)
-{
- m_pBackground = std::shared_ptr<skindesignerapi::cViewElement>(detailView->GetViewElement((int)eViewElementsDetail::background));
- m_pfooter = std::shared_ptr<skindesignerapi::cViewElement>(detailView->GetViewElement((int)eViewElementsDetail::footer));
- m_pInfo = std::shared_ptr<skindesignerapi::cViewElement>(detailView->GetViewElement((int)eViewElementsDetail::info));
- m_pScrollbar = std::shared_ptr<skindesignerapi::cViewElement>(detailView->GetViewElement((int)eViewElementsDetail::scrollbar));
- m_pWatch = std::shared_ptr<skindesignerapi::cViewElement>(detailView->GetViewElement((int)eViewElementsDetail::watch));
-
- m_pVideo = video;
- m_drawall = true;
-
- m_pGrid = NULL;
- SetViewGrid(std::shared_ptr<skindesignerapi::cViewGrid>(detailView->GetViewGrid((int)eViewDetailViewGrids::extras)));
- SetGridDimensions(Config::GetInstance().ExtrasGridRows, Config::GetInstance().ExtrasGridColumns);
-
- m_vElements.clear();
-
- int pos = 0;
- for(auto it = m_pVideo->m_vExtras.begin(); it != m_pVideo->m_vExtras.end(); ++it) {
- plexclient::cVideo *elem = &(*it);
- elem->AbsolutePosition = pos++;;
- m_vElements.push_back(elem);
- }
-
- m_startIndex = 0;
-
- m_setIterator = true;
- FilterElements(0);
+ : cViewGridNavigator(detailView) {
+ m_pBackground = std::shared_ptr<skindesignerapi::cViewElement>(
+ detailView->GetViewElement((int) eViewElementsDetail::background));
+ m_pfooter = std::shared_ptr<skindesignerapi::cViewElement>(
+ detailView->GetViewElement((int) eViewElementsDetail::footer));
+ m_pInfo = std::shared_ptr<skindesignerapi::cViewElement>(
+ detailView->GetViewElement((int) eViewElementsDetail::info));
+ m_pScrollbar = std::shared_ptr<skindesignerapi::cViewElement>(
+ detailView->GetViewElement((int) eViewElementsDetail::scrollbar));
+ m_pWatch = std::shared_ptr<skindesignerapi::cViewElement>(
+ detailView->GetViewElement((int) eViewElementsDetail::watch));
+
+ m_pVideo = video;
+ m_drawall = true;
+
+ m_pGrid = NULL;
+ SetViewGrid(
+ std::shared_ptr<skindesignerapi::cViewGrid>(detailView->GetViewGrid((int) eViewDetailViewGrids::extras)));
+ SetGridDimensions(Config::GetInstance().ExtrasGridRows, Config::GetInstance().ExtrasGridColumns);
+
+ m_vElements.clear();
+
+ int pos = 0;
+ for (auto it = m_pVideo->m_vExtras.begin(); it != m_pVideo->m_vExtras.end(); ++it) {
+ plexclient::cVideo *elem = &(*it);
+ elem->AbsolutePosition = pos++;;
+ m_vElements.push_back(elem);
+ }
+
+ m_startIndex = 0;
+
+ m_setIterator = true;
+ FilterElements(0);
}
-void cDetailView::Flush()
-{
- if (m_drawall) {
- m_pBackground->Display();
- m_pInfo->Display();
- m_drawall = false;
- }
- m_pfooter->Display();
- m_pGrid->Display();
- m_pScrollbar->Display();
-
- m_pRootView->Display();
+void cDetailView::Flush() {
+ if (m_drawall) {
+ m_pBackground->Display();
+ m_pInfo->Display();
+ m_drawall = false;
+ }
+ m_pfooter->Display();
+ m_pGrid->Display();
+ m_pScrollbar->Display();
+
+ m_pRootView->Display();
}
-void cDetailView::Draw()
-{
- // Draw Grid
-
- DrawBackground();
- DrawFooter();
- DrawInfo();
- DrawScrollbar();
- DrawTime();
+void cDetailView::Draw() {
+ // Draw Grid
+
+ DrawBackground();
+ DrawFooter();
+ DrawInfo();
+ DrawScrollbar();
+ DrawTime();
}
-void cDetailView::Clear()
-{
- m_pBackground->Clear();
- m_pInfo->Clear();
- m_pScrollbar->Clear();
- m_pfooter->Clear();
- m_pGrid->Clear();
- m_pWatch->Clear();
+void cDetailView::Clear() {
+ m_pBackground->Clear();
+ m_pInfo->Clear();
+ m_pScrollbar->Clear();
+ m_pfooter->Clear();
+ m_pGrid->Clear();
+ m_pWatch->Clear();
}
-void cDetailView::DrawBackground()
-{
- m_pBackground->ClearTokens();
- bool art = m_pVideo->m_sArt.empty() == false;
- m_pBackground->AddIntToken((int)eTokenDetailBackgroundInt::hasfanart, art);
- if(art) m_pBackground->AddStringToken((int)eTokenDetailBackgroundStr::fanartpath, m_pVideo->m_sArt.c_str());
-
- bool cover = m_pVideo->m_sThumb.empty() == false;
- m_pBackground->AddIntToken((int)eTokenDetailBackgroundInt::hascover, cover);
- if(cover) m_pBackground->AddStringToken((int)eTokenDetailBackgroundStr::coverpath, m_pVideo->m_sThumb.c_str());
+void cDetailView::DrawBackground() {
+ m_pBackground->ClearTokens();
+ bool art = m_pVideo->m_sArt.empty() == false;
+ m_pBackground->AddIntToken((int) eTokenDetailBackgroundInt::hasfanart, art);
+ if (art) m_pBackground->AddStringToken((int) eTokenDetailBackgroundStr::fanartpath, m_pVideo->m_sArt.c_str());
+
+ bool cover = m_pVideo->m_sThumb.empty() == false;
+ m_pBackground->AddIntToken((int) eTokenDetailBackgroundInt::hascover, cover);
+ if (cover) m_pBackground->AddStringToken((int) eTokenDetailBackgroundStr::coverpath, m_pVideo->m_sThumb.c_str());
}
-void cDetailView::DrawFooter()
-{
- string textRed = tr("Play");
- string textGreen = tr("Rewind");
- string textYellow = "";
- string textBlue = "";
+void cDetailView::DrawFooter() {
+ string textRed = tr("Play");
+ string textGreen = tr("Rewind");
+ string textYellow = "";
+ string textBlue = "";
- if(m_pVideo->m_iViewCount > 0) textYellow = tr("Unscrobble");
- else textYellow = tr("Scrobble");
+ if (m_pVideo->m_iViewCount > 0) textYellow = tr("Unscrobble");
+ else textYellow = 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;
@@ -120,96 +120,91 @@ void cDetailView::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 cDetailView::DrawInfo()
-{
- m_pInfo->Clear();
- m_pVideo->AddTokens(m_pInfo, true);
- m_pInfo->Display();
+void cDetailView::DrawInfo() {
+ m_pInfo->Clear();
+ m_pVideo->AddTokens(m_pInfo, true);
+ m_pInfo->Display();
}
-void cDetailView::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 cDetailView::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();
}
-bool cDetailView::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 cDetailView::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;
}
-eOSState cDetailView::NavigateSelect()
-{
- if(m_setIterator) return eOSState::osContinue;
-
- if(dynamic_cast<plexclient::cVideo*>(SelectedObject())) {
- return eOSState::osUser1;
- } else return eOSState::osBack;
+eOSState cDetailView::NavigateSelect() {
+ if (m_setIterator) return eOSState::osContinue;
+
+ if (dynamic_cast<plexclient::cVideo *>(SelectedObject())) {
+ return eOSState::osUser1;
+ } else return eOSState::osBack;
}
-eOSState cDetailView::NavigateBack()
-{
- if(m_setIterator) return eOSState::osContinue;
- return eOSState::osBack;
+eOSState cDetailView::NavigateBack() {
+ if (m_setIterator) return eOSState::osContinue;
+ return eOSState::osBack;
}