summaryrefslogtreecommitdiff
path: root/detailView.cpp
diff options
context:
space:
mode:
authorChristian <zerov83@gmail.com>2016-03-30 22:30:50 +0200
committerChristian <zerov83@gmail.com>2016-03-30 22:30:50 +0200
commiteef71c613bdd5b6c5b2e944a49ba43c314b73b0f (patch)
treec7d93bb8acb2fe92374575180305ce6fe1190ccb /detailView.cpp
parentee8662006d8bd06e79f12ee5143ecebd05eb2a75 (diff)
downloadvdr-plugin-plex-eef71c613bdd5b6c5b2e944a49ba43c314b73b0f.tar.gz
vdr-plugin-plex-eef71c613bdd5b6c5b2e944a49ba43c314b73b0f.tar.bz2
New viewelement "time" for detailview
Diffstat (limited to 'detailView.cpp')
-rw-r--r--detailView.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/detailView.cpp b/detailView.cpp
index 397247e..83152b0 100644
--- a/detailView.cpp
+++ b/detailView.cpp
@@ -8,6 +8,7 @@ cDetailView::cDetailView(std::shared_ptr<skindesignerapi::cOsdView> detailView,
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;
@@ -53,6 +54,7 @@ void cDetailView::Draw()
DrawFooter();
DrawInfo();
DrawScrollbar();
+ DrawTime();
}
void cDetailView::Clear()
@@ -62,6 +64,7 @@ void cDetailView::Clear()
m_pScrollbar->Clear();
m_pfooter->Clear();
m_pGrid->Clear();
+ m_pWatch->Clear();
}
void cDetailView::DrawBackground()
@@ -158,6 +161,44 @@ void cDetailView::DrawScrollbar()
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;
+}
+
eOSState cDetailView::NavigateSelect()
{
if(m_setIterator) return eOSState::osContinue;