blob: e6dc1f99909cc9ca396df8750df6cca3c56e58d2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
#include "plexSdOsd.h"
cPlexSdOsd::cPlexSdOsd()
{
}
void cPlexSdOsd::Show(void)
{
bool skinDesignerAvailable = InitSkindesignerInterface("plex");
if (!skinDesignerAvailable) {
return;
}
m_pRootView = GetOsdView(eViews::viRootView);
if (!m_pRootView) {
esyslog("[plex]: used skindesigner skin does not support plex");
return;
}
m_pViewHeader = std::shared_ptr<cViewHeader>(
new cViewHeader(m_pRootView->GetViewElement(eViewElementsRoot::verHeader))
);
m_pBrowserGrid = std::shared_ptr<cBrowserGrid>(
new cBrowserGrid( m_pRootView->GetViewGrid(eViewGrids::vgBrowser))
);
Flush();
}
void cPlexSdOsd::Flush()
{
m_pBrowserGrid->Flush();
m_pViewHeader->Draw();
m_pRootView->Display();
}
eOSState cPlexSdOsd::ProcessKey(eKeys Key)
{
switch (Key & ~k_Repeat) {
case kUp:
m_pBrowserGrid->NavigateUp();
Flush();
break;
case kDown:
m_pBrowserGrid->NavigateDown();
Flush();
break;
case kLeft:
m_pBrowserGrid->NavigateLeft();
Flush();
break;
case kRight:
m_pBrowserGrid->NavigateRight();
Flush();
break;
case kOk:
// Play movie or change dir
m_pBrowserGrid->NavigateSelect();
Flush();
break;
case kBack:
m_pBrowserGrid->NavigateBack();
Flush();
break;
case kRed:
// Prev Tab
SwitchGrid(m_pViewHeader->NextTab());
Flush();
break;
case kGreen:
// Next Tab
SwitchGrid(m_pViewHeader->PrevTab());
Flush();
break;
default:
break;
}
return eOSState::osContinue;
}
void cPlexSdOsd::SwitchGrid(ePlexMenuTab currentTab)
{
if(currentTab == ePlexMenuTab::pmtOnDeck) {
auto service = std::shared_ptr<plexclient::Plexservice>(new plexclient::Plexservice( new plexclient::PlexServer("192.168.1.175", 32400), "/hubs/home/onDeck" ) );
m_pBrowserGrid = std::shared_ptr<cBrowserGrid>(
new cBrowserGrid( m_pRootView->GetViewGrid(eViewGrids::vgBrowser), service)
);
} else if(currentTab == ePlexMenuTab::pmtRecentlyAdded) {
auto service = std::shared_ptr<plexclient::Plexservice>(new plexclient::Plexservice( new plexclient::PlexServer("192.168.1.175", 32400), "/library/sections" ) );
m_pBrowserGrid = std::shared_ptr<cBrowserGrid>(
new cBrowserGrid( m_pRootView->GetViewGrid(eViewGrids::vgBrowser), service)
);
} else if(currentTab == ePlexMenuTab::pmtLibrary) {
m_pBrowserGrid = std::shared_ptr<cBrowserGrid>(
new cBrowserGrid( m_pRootView->GetViewGrid(eViewGrids::vgBrowser))
);
}
}
|