updated zapcockpit patch

This commit is contained in:
louis 2016-05-29 10:38:18 +02:00
parent 87f3d895f7
commit 5d927af79c

View File

@ -1,7 +1,7 @@
diff -Naur vdr-2.2.0/config.c vdr-2.2.0_zapcockpit/config.c diff -Naur vdr-2.2.0/config.c vdr-2.2.0_zapcockpit/config.c
--- vdr-2.2.0/config.c 2015-02-10 13:24:13.000000000 +0100 --- vdr-2.2.0/config.c 2015-02-10 13:24:13.000000000 +0100
+++ vdr-2.2.0_zapcockpit/config.c 2016-05-26 07:29:05.736117301 +0200 +++ vdr-2.2.0_zapcockpit/config.c 2016-05-29 10:19:47.824125112 +0200
@@ -414,6 +414,10 @@ @@ -414,6 +414,11 @@
SVDRPTimeout = 300; SVDRPTimeout = 300;
ZapTimeout = 3; ZapTimeout = 3;
ChannelEntryTimeout = 1000; ChannelEntryTimeout = 1000;
@ -9,35 +9,38 @@ diff -Naur vdr-2.2.0/config.c vdr-2.2.0_zapcockpit/config.c
+ ZapcockpitUseHints = 1; + ZapcockpitUseHints = 1;
+ ZapcockpitUseInfo = 1; + ZapcockpitUseInfo = 1;
+ ZapcockpitHideLastGroup = 0; + ZapcockpitHideLastGroup = 0;
+ ZapcockpitShowAllChannels = 0;
RcRepeatDelay = 300; RcRepeatDelay = 300;
RcRepeatDelta = 100; RcRepeatDelta = 100;
DefaultPriority = 50; DefaultPriority = 50;
@@ -636,6 +640,10 @@ @@ -636,6 +641,11 @@
else if (!strcasecmp(Name, "SVDRPTimeout")) SVDRPTimeout = atoi(Value); else if (!strcasecmp(Name, "SVDRPTimeout")) SVDRPTimeout = atoi(Value);
else if (!strcasecmp(Name, "ZapTimeout")) ZapTimeout = atoi(Value); else if (!strcasecmp(Name, "ZapTimeout")) ZapTimeout = atoi(Value);
else if (!strcasecmp(Name, "ChannelEntryTimeout")) ChannelEntryTimeout= atoi(Value); else if (!strcasecmp(Name, "ChannelEntryTimeout")) ChannelEntryTimeout= atoi(Value);
+ else if (!strcasecmp(Name, "ZapcockpitUseGroups")) ZapcockpitUseGroups= atoi(Value); + else if (!strcasecmp(Name, "ZapcockpitUseGroups")) ZapcockpitUseGroups= atoi(Value);
+ else if (!strcasecmp(Name, "ZapcockpitUseHints")) ZapcockpitUseHints = atoi(Value); + else if (!strcasecmp(Name, "ZapcockpitUseHints")) ZapcockpitUseHints = atoi(Value);
+ else if (!strcasecmp(Name, "ZapcockpitUseInfo")) ZapcockpitUseInfo = atoi(Value); + else if (!strcasecmp(Name, "ZapcockpitUseInfo")) ZapcockpitUseInfo = atoi(Value);
+ else if (!strcasecmp(Name, "ZapcockpitHideLastGroup")) ZapcockpitHideLastGroup = atoi(Value); + else if (!strcasecmp(Name, "ZapcockpitHideLastGroup")) ZapcockpitHideLastGroup = atoi(Value);
+ else if (!strcasecmp(Name, "ZapcockpitShowAllChannels")) ZapcockpitShowAllChannels = atoi(Value);
else if (!strcasecmp(Name, "RcRepeatDelay")) RcRepeatDelay = atoi(Value); else if (!strcasecmp(Name, "RcRepeatDelay")) RcRepeatDelay = atoi(Value);
else if (!strcasecmp(Name, "RcRepeatDelta")) RcRepeatDelta = atoi(Value); else if (!strcasecmp(Name, "RcRepeatDelta")) RcRepeatDelta = atoi(Value);
else if (!strcasecmp(Name, "DefaultPriority")) DefaultPriority = atoi(Value); else if (!strcasecmp(Name, "DefaultPriority")) DefaultPriority = atoi(Value);
@@ -762,6 +770,10 @@ @@ -762,6 +772,11 @@
Store("SVDRPTimeout", SVDRPTimeout); Store("SVDRPTimeout", SVDRPTimeout);
Store("ZapTimeout", ZapTimeout); Store("ZapTimeout", ZapTimeout);
Store("ChannelEntryTimeout",ChannelEntryTimeout); Store("ChannelEntryTimeout",ChannelEntryTimeout);
+ Store("ZapcockpitUseGroups",ZapcockpitUseGroups); + Store("ZapcockpitUseGroups",ZapcockpitUseGroups);
+ Store("ZapcockpitUseHints", ZapcockpitUseHints); + Store("ZapcockpitUseHints", ZapcockpitUseHints);
+ Store("ZapcockpitUseInfo", ZapcockpitUseInfo); + Store("ZapcockpitUseInfo", ZapcockpitUseInfo);
+ Store("ZapcockpitHideLastGroup", ZapcockpitHideLastGroup); + Store("ZapcockpitHideLastGroup", ZapcockpitHideLastGroup);
+ Store("ZapcockpitShowAllChannels", ZapcockpitShowAllChannels);
Store("RcRepeatDelay", RcRepeatDelay); Store("RcRepeatDelay", RcRepeatDelay);
Store("RcRepeatDelta", RcRepeatDelta); Store("RcRepeatDelta", RcRepeatDelta);
Store("DefaultPriority", DefaultPriority); Store("DefaultPriority", DefaultPriority);
diff -Naur vdr-2.2.0/config.h vdr-2.2.0_zapcockpit/config.h diff -Naur vdr-2.2.0/config.h vdr-2.2.0_zapcockpit/config.h
--- vdr-2.2.0/config.h 2015-02-13 16:39:08.000000000 +0100 --- vdr-2.2.0/config.h 2015-02-13 16:39:08.000000000 +0100
+++ vdr-2.2.0_zapcockpit/config.h 2016-05-26 07:29:05.708117300 +0200 +++ vdr-2.2.0_zapcockpit/config.h 2016-05-29 10:18:02.140106749 +0200
@@ -290,6 +290,10 @@ @@ -290,6 +290,11 @@
int SVDRPTimeout; int SVDRPTimeout;
int ZapTimeout; int ZapTimeout;
int ChannelEntryTimeout; int ChannelEntryTimeout;
@ -45,13 +48,14 @@ diff -Naur vdr-2.2.0/config.h vdr-2.2.0_zapcockpit/config.h
+ int ZapcockpitUseHints; + int ZapcockpitUseHints;
+ int ZapcockpitUseInfo; + int ZapcockpitUseInfo;
+ int ZapcockpitHideLastGroup; + int ZapcockpitHideLastGroup;
+ int ZapcockpitShowAllChannels;
int RcRepeatDelay; int RcRepeatDelay;
int RcRepeatDelta; int RcRepeatDelta;
int DefaultPriority, DefaultLifetime; int DefaultPriority, DefaultLifetime;
diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
--- vdr-2.2.0/menu.c 2015-02-10 13:37:06.000000000 +0100 --- vdr-2.2.0/menu.c 2015-02-10 13:37:06.000000000 +0100
+++ vdr-2.2.0_zapcockpit/menu.c 2016-05-26 07:29:05.880117306 +0200 +++ vdr-2.2.0_zapcockpit/menu.c 2016-05-29 10:33:18.502497774 +0200
@@ -3759,6 +3759,10 @@ @@ -3759,6 +3759,11 @@
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$SVDRP timeout (s)"), &data.SVDRPTimeout)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$SVDRP timeout (s)"), &data.SVDRPTimeout));
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Zap timeout (s)"), &data.ZapTimeout)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Zap timeout (s)"), &data.ZapTimeout));
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Channel entry timeout (ms)"), &data.ChannelEntryTimeout, 0)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Channel entry timeout (ms)"), &data.ChannelEntryTimeout, 0));
@ -59,10 +63,11 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Use extended channel group display"), &data.ZapcockpitUseGroups)); + Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Use extended channel group display"), &data.ZapcockpitUseGroups));
+ Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Use channel hints"), &data.ZapcockpitUseHints)); + Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Use channel hints"), &data.ZapcockpitUseHints));
+ Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Hide last channel group"), &data.ZapcockpitHideLastGroup)); + Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Hide last channel group"), &data.ZapcockpitHideLastGroup));
+ Add(new cMenuEditBoolItem( tr("Setup.Miscellaneous$Zapcockpit: Show \"All Channels\" Item in Group List"), &data.ZapcockpitShowAllChannels));
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Remote control repeat delay (ms)"), &data.RcRepeatDelay, 0)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Remote control repeat delay (ms)"), &data.RcRepeatDelay, 0));
Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Remote control repeat delta (ms)"), &data.RcRepeatDelta, 0)); Add(new cMenuEditIntItem( tr("Setup.Miscellaneous$Remote control repeat delta (ms)"), &data.RcRepeatDelta, 0));
Add(new cMenuEditChanItem(tr("Setup.Miscellaneous$Initial channel"), &data.InitialChannel, tr("Setup.Miscellaneous$as before"))); Add(new cMenuEditChanItem(tr("Setup.Miscellaneous$Initial channel"), &data.InitialChannel, tr("Setup.Miscellaneous$as before")));
@@ -4207,7 +4211,7 @@ @@ -4207,7 +4212,7 @@
lastTime.Set(); lastTime.Set();
} }
@ -71,7 +76,7 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
:cOsdObject(true) :cOsdObject(true)
{ {
currentDisplayChannel = this; currentDisplayChannel = this;
@@ -4220,7 +4224,8 @@ @@ -4220,7 +4225,8 @@
displayChannel = Skins.Current()->DisplayChannel(withInfo); displayChannel = Skins.Current()->DisplayChannel(withInfo);
positioner = NULL; positioner = NULL;
channel = Channels.GetByNumber(cDevice::CurrentChannel()); channel = Channels.GetByNumber(cDevice::CurrentChannel());
@ -81,15 +86,23 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
} }
cDisplayChannel::~cDisplayChannel() cDisplayChannel::~cDisplayChannel()
@@ -4461,6 +4466,700 @@ @@ -4461,6 +4467,784 @@
return osEnd; return osEnd;
} }
+// --- cGroupListItem -------------------------------------------------------
+const char *cGroupListItem::GroupName(void) {
+ if (channel)
+ return channel->Name();
+ return tr("Setup.Miscellaneous$All Channels");
+}
+
+// --- cDisplayChannelExtended ------------------------------------------------------- +// --- cDisplayChannelExtended -------------------------------------------------------
+cDisplayChannelExtended::cDisplayChannelExtended(int Number, bool Switched) +cDisplayChannelExtended::cDisplayChannelExtended(int Number, bool Switched)
+:cDisplayChannel(Number, Switched) +:cDisplayChannel(Number, Switched)
+{ +{
+ state = esDefault; + state = esDefault;
+ keyRightOpensChannellist = -1;
+ numItemsChannel = 0; + numItemsChannel = 0;
+ currentChannel = -1; + currentChannel = -1;
+ startChannel = -1; + startChannel = -1;
@ -102,6 +115,7 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+:cDisplayChannel(FirstKey, false) +:cDisplayChannel(FirstKey, false)
+{ +{
+ state = esInit; + state = esInit;
+ keyRightOpensChannellist = -1;
+ numItemsChannel = 0; + numItemsChannel = 0;
+ currentChannel = -1; + currentChannel = -1;
+ startChannel = -1; + startChannel = -1;
@ -155,6 +169,8 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ break; + break;
+ } + }
+ } + }
+ if (state == esClose)
+ return osEnd;
+ //in extended state, no timeout + //in extended state, no timeout
+ if (state != esDefault) + if (state != esDefault)
+ lastTime.Set(); + lastTime.Set();
@ -201,9 +217,11 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ +
+bool cDisplayChannelExtended::StateInit(int key, cSkinDisplayChannelExtended *dcExt) +bool cDisplayChannelExtended::StateInit(int key, cSkinDisplayChannelExtended *dcExt)
+{ +{
+ if (keyRightOpensChannellist == -1)
+ keyRightOpensChannellist = dcExt->KeyRightOpensChannellist() ? 1 : 0;
+
+ bool keyHandeled = false; + bool keyHandeled = false;
+ switch (key) { + switch (key) {
+ //left openes groups list
+ case kLeft|k_Repeat: case kLeft: + case kLeft|k_Repeat: case kLeft:
+ case kPrev|k_Repeat: case kPrev: { + case kPrev|k_Repeat: case kPrev: {
+ if (!Setup.ZapcockpitUseGroups) + if (!Setup.ZapcockpitUseGroups)
@ -211,12 +229,16 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ cOsdProvider::OsdSizeChanged(osdState); // just to get the current state + cOsdProvider::OsdSizeChanged(osdState); // just to get the current state
+ DisplayChannel(); + DisplayChannel();
+ DisplayInfo(); + DisplayInfo();
+ InitGroupList(dcExt); + if (keyRightOpensChannellist) {
+ state = esGroupsList; + InitGroupList(dcExt);
+ state = esGroupsList;
+ } else {
+ InitChannelList(dcExt);
+ state = esChannelList;
+ }
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
+ //right openes channels list
+ case kRight|k_Repeat: case kRight: + case kRight|k_Repeat: case kRight:
+ case kNext|k_Repeat: case kNext: { + case kNext|k_Repeat: case kNext: {
+ if (!Setup.ZapcockpitUseGroups) + if (!Setup.ZapcockpitUseGroups)
@ -224,8 +246,13 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ cOsdProvider::OsdSizeChanged(osdState); // just to get the current state + cOsdProvider::OsdSizeChanged(osdState); // just to get the current state
+ DisplayChannel(); + DisplayChannel();
+ DisplayInfo(); + DisplayInfo();
+ InitChannelList(dcExt); + if (keyRightOpensChannellist) {
+ state = esChannelList; + InitChannelList(dcExt);
+ state = esChannelList;
+ } else {
+ InitGroupList(dcExt);
+ state = esGroupsList;
+ }
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
@ -240,6 +267,8 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ +
+bool cDisplayChannelExtended::StateDefault(int key, cSkinDisplayChannelExtended *dcExt) +bool cDisplayChannelExtended::StateDefault(int key, cSkinDisplayChannelExtended *dcExt)
+{ +{
+ if (keyRightOpensChannellist == -1)
+ keyRightOpensChannellist = dcExt->KeyRightOpensChannellist() ? 1 : 0;
+ bool keyHandeled = false; + bool keyHandeled = false;
+ switch (key) { + switch (key) {
+ //2nd ok opens extended info for current channel + //2nd ok opens extended info for current channel
@ -252,23 +281,31 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
+ //left openes groups list
+ case kLeft|k_Repeat: case kLeft: + case kLeft|k_Repeat: case kLeft:
+ case kPrev|k_Repeat: case kPrev: { + case kPrev|k_Repeat: case kPrev: {
+ if (!Setup.ZapcockpitUseGroups) + if (!Setup.ZapcockpitUseGroups)
+ return false; + return false;
+ InitGroupList(dcExt); + if (keyRightOpensChannellist) {
+ state = esGroupsList; + InitGroupList(dcExt);
+ state = esGroupsList;
+ } else {
+ InitChannelList(dcExt);
+ state = esChannelList;
+ }
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
+ //right openes channels list
+ case kRight|k_Repeat: case kRight: + case kRight|k_Repeat: case kRight:
+ case kNext|k_Repeat: case kNext: { + case kNext|k_Repeat: case kNext: {
+ if (!Setup.ZapcockpitUseGroups) + if (!Setup.ZapcockpitUseGroups)
+ return false; + return false;
+ InitChannelList(dcExt); + if (keyRightOpensChannellist) {
+ state = esChannelList; + InitChannelList(dcExt);
+ state = esChannelList;
+ } else {
+ InitGroupList(dcExt);
+ state = esGroupsList;
+ }
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
@ -301,23 +338,31 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ dcExt->SetViewType(dcDefault); + dcExt->SetViewType(dcDefault);
+ state = esDefault; + state = esDefault;
+ break; + break;
+ //left openes groups list
+ case kLeft|k_Repeat: case kLeft: + case kLeft|k_Repeat: case kLeft:
+ case kPrev|k_Repeat: case kPrev: { + case kPrev|k_Repeat: case kPrev: {
+ if (!Setup.ZapcockpitUseGroups) + if (!Setup.ZapcockpitUseGroups)
+ return false; + return false;
+ InitGroupList(dcExt); + if (keyRightOpensChannellist) {
+ state = esGroupsList; + InitGroupList(dcExt);
+ state = esGroupsList;
+ } else {
+ InitChannelList(dcExt);
+ state = esChannelList;
+ }
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
+ //right openes channels list
+ case kRight|k_Repeat: case kRight: + case kRight|k_Repeat: case kRight:
+ case kNext|k_Repeat: case kNext: { + case kNext|k_Repeat: case kNext: {
+ if (!Setup.ZapcockpitUseGroups) + if (!Setup.ZapcockpitUseGroups)
+ return false; + return false;
+ InitChannelList(dcExt); + if (keyRightOpensChannellist) {
+ state = esChannelList; + InitChannelList(dcExt);
+ state = esChannelList;
+ } else {
+ InitGroupList(dcExt);
+ state = esGroupsList;
+ }
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ } + }
@ -353,32 +398,32 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ CursorDown(dcExt); + CursorDown(dcExt);
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ //left closes channel list
+ case kLeft|k_Repeat: case kLeft: { + case kLeft|k_Repeat: case kLeft: {
+ if (state == esChannelList) { + keyHandeled = true;
+ keyHandeled = true; + if (keyRightOpensChannellist) {
+ dcExt->SetViewType(dcDefault); + if (state == esChannelList) {
+ state = esDefault; + state = esClose;
+ } else if (state == esChannelListInfo) { + } else if (state == esChannelListInfo) {
+ keyHandeled = true; + dcExt->SetViewType(dcChannelList);
+ dcExt->SetViewType(dcChannelList); + state = esChannelList;
+ state = esChannelList; + }
+ } + } else
+ break; } + ShowChannellistInfo(dcExt, dcChannelListInfo);
+ break;
+ }
+ //right shows extended info of currently selected channel + //right shows extended info of currently selected channel
+ case kRight|k_Repeat: case kRight: { + case kRight|k_Repeat: case kRight: {
+ keyHandeled = true; + keyHandeled = true;
+ if (state != esChannelList) + if (keyRightOpensChannellist)
+ break; + ShowChannellistInfo(dcExt, dcChannelListInfo);
+ cChannelListItem *li = channellist.Get(currentChannel); + else {
+ if (li) { + if (state == esChannelList) {
+ const cChannel *selected = li->Channel(); + state = esClose;
+ if (selected) { + } else if (state == esChannelListInfo) {
+ dcExt->SetViewType(dcChannelListInfo); + dcExt->SetViewType(dcChannelList);
+ dcExt->SetChannelInfo(selected); + state = esChannelList;
+ state = esChannelListInfo; + }
+ } + }
+ }
+ break; + break;
+ } + }
+ default: + default:
@ -413,17 +458,22 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ dcExt->SetViewType(dcGroupsList); + dcExt->SetViewType(dcGroupsList);
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ //left shows channel list of selected group
+ case kLeft|k_Repeat: case kLeft: + case kLeft|k_Repeat: case kLeft:
+ state = esGroupsChannelList;
+ InitGroupChannelList(dcExt);
+ keyHandeled = true; + keyHandeled = true;
+ if (keyRightOpensChannellist) {
+ state = esGroupsChannelList;
+ InitGroupChannelList(dcExt);
+ } else
+ state = esClose;
+ break; + break;
+ //right closes group list
+ case kRight|k_Repeat: case kRight: + case kRight|k_Repeat: case kRight:
+ keyHandeled = true; + keyHandeled = true;
+ dcExt->SetViewType(dcDefault); + if (keyRightOpensChannellist)
+ state = esDefault; + state = esClose;
+ else {
+ state = esGroupsChannelList;
+ InitGroupChannelList(dcExt);
+ }
+ break; + break;
+ default: + default:
+ break; + break;
@ -457,33 +507,33 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ CursorDown(dcExt); + CursorDown(dcExt);
+ keyHandeled = true; + keyHandeled = true;
+ break; + break;
+ //left shows extended info of currently selected channel
+ case kLeft|k_Repeat: case kLeft: { + case kLeft|k_Repeat: case kLeft: {
+ keyHandeled = true; + keyHandeled = true;
+ if (state != esGroupsChannelList) + if (keyRightOpensChannellist)
+ break; + ShowChannellistInfo(dcExt, dcGroupsChannelListInfo);
+ cChannelListItem *li = channellist.Get(currentChannel); + else {
+ if (li) { + if (state == esGroupsChannelList) {
+ const cChannel *selected = li->Channel(); + state = esGroupsList;
+ if (selected) { + dcExt->SetViewType(dcGroupsList);
+ dcExt->SetViewType(dcGroupsChannelListInfo); + } else if (state == esGroupsChannelListInfo) {
+ dcExt->SetChannelInfo(selected); + state = esGroupsChannelList;
+ state = esGroupsChannelListInfo; + dcExt->SetViewType(dcGroupsChannelList);
+ } + }
+ } + }
+ break; + break;
+ } + }
+ //right closes channel list or channel info
+ case kRight|k_Repeat: case kRight: { + case kRight|k_Repeat: case kRight: {
+ if (state == esGroupsChannelList) { + keyHandeled = true;
+ state = esGroupsList; + if (keyRightOpensChannellist) {
+ dcExt->SetViewType(dcGroupsList); + if (state == esGroupsChannelList) {
+ keyHandeled = true; + state = esGroupsList;
+ } else if (state == esGroupsChannelListInfo) { + dcExt->SetViewType(dcGroupsList);
+ state = esGroupsChannelList; + } else if (state == esGroupsChannelListInfo) {
+ dcExt->SetViewType(dcGroupsChannelList); + state = esGroupsChannelList;
+ keyHandeled = true; + dcExt->SetViewType(dcGroupsChannelList);
+ } + }
+ } else
+ ShowChannellistInfo(dcExt, dcGroupsChannelListInfo);
+ break; + break;
+ } + }
+ default: + default:
@ -492,6 +542,23 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ return keyHandeled; + return keyHandeled;
+} +}
+ +
+void cDisplayChannelExtended::ShowChannellistInfo(cSkinDisplayChannelExtended *dcExt, eDisplaychannelView newViewType) {
+ if (newViewType == dcChannelListInfo && state != esChannelList)
+ return;
+ if (newViewType == dcGroupsChannelListInfo && state != esGroupsChannelList)
+ return;
+
+ cChannelListItem *li = channellist.Get(currentChannel);
+ if (li) {
+ const cChannel *selected = li->Channel();
+ if (selected) {
+ dcExt->SetViewType(newViewType);
+ dcExt->SetChannelInfo(selected);
+ state = (newViewType == dcChannelListInfo) ? esChannelListInfo : esGroupsChannelListInfo;
+ }
+ }
+}
+
+void cDisplayChannelExtended::InitChannelList(cSkinDisplayChannelExtended *dcExt) +void cDisplayChannelExtended::InitChannelList(cSkinDisplayChannelExtended *dcExt)
+{ +{
+ dcExt->SetViewType(dcChannelList); + dcExt->SetViewType(dcChannelList);
@ -551,6 +618,25 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+void cDisplayChannelExtended::SetGroupList(void) +void cDisplayChannelExtended::SetGroupList(void)
+{ +{
+ grouplist.Clear(); + grouplist.Clear();
+ if (Setup.ZapcockpitShowAllChannels) {
+ cGroupListItem *allChannels = new cGroupListItem(NULL);
+ int totalNumChannels = 0;
+ cChannel *lastSep = NULL;
+ if (Setup.ZapcockpitHideLastGroup)
+ lastSep = LastChannelSep();
+ for (cChannel *c = Channels.First(); c; c = Channels.Next(c)) {
+ if (c->GroupSep()) {
+ if (Setup.ZapcockpitHideLastGroup && c == lastSep)
+ break;
+ else
+ continue;
+ }
+ totalNumChannels++;
+ }
+ allChannels->SetNumChannels(totalNumChannels);
+ grouplist.Add(allChannels);
+ }
+
+ cChannel *lastSep = NULL; + cChannel *lastSep = NULL;
+ if (Setup.ZapcockpitHideLastGroup) + if (Setup.ZapcockpitHideLastGroup)
+ lastSep = LastChannelSep(); + lastSep = LastChannelSep();
@ -611,8 +697,11 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
+ if (!curGroup) + if (!curGroup)
+ return; + return;
+ cChannel *curChannel = curGroup->Channel(); + cChannel *curChannel = curGroup->Channel();
+ if (!curChannel) + if (!curChannel) {
+ return; + if (Setup.ZapcockpitShowAllChannels)
+ SetChannelList();
+ return;
+ }
+ channellist.Clear(); + channellist.Clear();
+ for (cChannel *c = dynamic_cast<cChannel*>(curChannel->Next()); c; c = Channels.Next(c)) { + for (cChannel *c = dynamic_cast<cChannel*>(curChannel->Next()); c; c = Channels.Next(c)) {
+ if (c->GroupSep()) + if (c->GroupSep())
@ -784,8 +873,8 @@ diff -Naur vdr-2.2.0/menu.c vdr-2.2.0_zapcockpit/menu.c
#define VOLUMETIMEOUT 1000 //ms #define VOLUMETIMEOUT 1000 //ms
diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h
--- vdr-2.2.0/menu.h 2015-02-06 10:47:30.000000000 +0100 --- vdr-2.2.0/menu.h 2015-02-06 10:47:30.000000000 +0100
+++ vdr-2.2.0_zapcockpit/menu.h 2016-05-26 07:29:05.680117299 +0200 +++ vdr-2.2.0_zapcockpit/menu.h 2016-05-29 10:20:44.602884721 +0200
@@ -115,30 +115,99 @@ @@ -115,30 +115,102 @@
class cDisplayChannel : public cOsdObject { class cDisplayChannel : public cOsdObject {
private: private:
@ -830,7 +919,8 @@ diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h
+ esChannelListInfo, + esChannelListInfo,
+ esGroupsList, + esGroupsList,
+ esGroupsChannelList, + esGroupsChannelList,
+ esGroupsChannelListInfo + esGroupsChannelListInfo,
+ esClose
+ }; + };
+ +
+class cChannelListItem : public cListObject { +class cChannelListItem : public cListObject {
@ -849,7 +939,7 @@ diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h
+public: +public:
+ cGroupListItem(cChannel *Channel) { channel = Channel; numChannels = 0; }; + cGroupListItem(cChannel *Channel) { channel = Channel; numChannels = 0; };
+ virtual ~cGroupListItem(void) { }; + virtual ~cGroupListItem(void) { };
+ const char *GroupName(void) { return channel->Name(); } + const char *GroupName(void);
+ void SetNumChannels(int NumChannels) { numChannels = NumChannels; }; + void SetNumChannels(int NumChannels) { numChannels = NumChannels; };
+ int NumChannels(void) { return numChannels; }; + int NumChannels(void) { return numChannels; };
+ cChannel *Channel(void) { return channel; } + cChannel *Channel(void) { return channel; }
@ -858,6 +948,7 @@ diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h
+class cDisplayChannelExtended : public cDisplayChannel { +class cDisplayChannelExtended : public cDisplayChannel {
+private: +private:
+ eExtendedState state; + eExtendedState state;
+ int keyRightOpensChannellist;
+ int numItemsChannel, startChannel, currentChannel; + int numItemsChannel, startChannel, currentChannel;
+ int numItemsGroup, startGroup, currentGroup; + int numItemsGroup, startGroup, currentGroup;
+ cList<cChannelListItem> channellist; + cList<cChannelListItem> channellist;
@ -869,6 +960,7 @@ diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h
+ bool StateChannelList(int key, cSkinDisplayChannelExtended *dcExt); + bool StateChannelList(int key, cSkinDisplayChannelExtended *dcExt);
+ bool StateGroupList(int key, cSkinDisplayChannelExtended *dcExt); + bool StateGroupList(int key, cSkinDisplayChannelExtended *dcExt);
+ bool StateGroupChannelList(int key, cSkinDisplayChannelExtended *dcExt); + bool StateGroupChannelList(int key, cSkinDisplayChannelExtended *dcExt);
+ void ShowChannellistInfo(cSkinDisplayChannelExtended *dcExt, eDisplaychannelView newViewType);
+ void InitChannelList(cSkinDisplayChannelExtended *dcExt); + void InitChannelList(cSkinDisplayChannelExtended *dcExt);
+ void SetChannelList(void); + void SetChannelList(void);
+ int GetIndexChannel(cChannel *c); + int GetIndexChannel(cChannel *c);
@ -895,7 +987,7 @@ diff -Naur vdr-2.2.0/menu.h vdr-2.2.0_zapcockpit/menu.h
cSkinDisplayVolume *displayVolume; cSkinDisplayVolume *displayVolume;
diff -Naur vdr-2.2.0/po/de_DE.po vdr-2.2.0_zapcockpit/po/de_DE.po diff -Naur vdr-2.2.0/po/de_DE.po vdr-2.2.0_zapcockpit/po/de_DE.po
--- vdr-2.2.0/po/de_DE.po 2015-02-19 10:12:22.401201125 +0100 --- vdr-2.2.0/po/de_DE.po 2015-02-19 10:12:22.401201125 +0100
+++ vdr-2.2.0_zapcockpit/po/de_DE.po 2016-05-26 07:29:05.836117304 +0200 +++ vdr-2.2.0_zapcockpit/po/de_DE.po 2016-05-29 10:23:35.581064022 +0200
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.2.0\n" "Project-Id-Version: VDR 2.2.0\n"
@ -905,7 +997,7 @@ diff -Naur vdr-2.2.0/po/de_DE.po vdr-2.2.0_zapcockpit/po/de_DE.po
"PO-Revision-Date: 2015-02-10 13:45+0100\n" "PO-Revision-Date: 2015-02-10 13:45+0100\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n" "Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"
@@ -1284,6 +1284,18 @@ @@ -1284,6 +1284,21 @@
msgid "Setup.Miscellaneous$Channel entry timeout (ms)" msgid "Setup.Miscellaneous$Channel entry timeout (ms)"
msgstr "Zeitlimit für Kanaleingabe (ms)" msgstr "Zeitlimit für Kanaleingabe (ms)"
@ -920,13 +1012,26 @@ diff -Naur vdr-2.2.0/po/de_DE.po vdr-2.2.0_zapcockpit/po/de_DE.po
+ +
+msgid "Setup.Miscellaneous$Zapcockpit: Hide last channel group" +msgid "Setup.Miscellaneous$Zapcockpit: Hide last channel group"
+msgstr "Zapcockpit: letzte Kanalgruppe ausblenden" +msgstr "Zapcockpit: letzte Kanalgruppe ausblenden"
+
+msgid "Setup.Miscellaneous$Zapcockpit: Show \"All Channels\" Item in Group List"
+msgstr "Zapcockpit: Zeige \"Alle Kanäle\" in Kanalgruppen Liste"
+ +
msgid "Setup.Miscellaneous$Remote control repeat delay (ms)" msgid "Setup.Miscellaneous$Remote control repeat delay (ms)"
msgstr "Fernbedienung Wiederholverzögerung (ms)" msgstr "Fernbedienung Wiederholverzögerung (ms)"
@@ -1359,6 +1374,9 @@
msgid "Cancel editing?"
msgstr "Bearbeitung abbrechen?"
+msgid "Setup.Miscellaneous$All Channels"
+msgstr "Alle Kanäle"
+
msgid "No audio available!"
msgstr "Kein Audio verfügbar!"
diff -Naur vdr-2.2.0/skins.c vdr-2.2.0_zapcockpit/skins.c diff -Naur vdr-2.2.0/skins.c vdr-2.2.0_zapcockpit/skins.c
--- vdr-2.2.0/skins.c 2013-08-18 14:07:22.000000000 +0200 --- vdr-2.2.0/skins.c 2013-08-18 14:07:22.000000000 +0200
+++ vdr-2.2.0_zapcockpit/skins.c 2016-05-26 07:29:05.788117303 +0200 +++ vdr-2.2.0_zapcockpit/skins.c 2016-05-29 10:16:17.436017479 +0200
@@ -79,6 +79,13 @@ @@ -79,6 +79,13 @@
SetMessage(mtInfo, cString::sprintf(tr("Moving dish to %.1f..."), double(positioner->TargetLongitude()) / 10)); SetMessage(mtInfo, cString::sprintf(tr("Moving dish to %.1f..."), double(positioner->TargetLongitude()) / 10));
} }
@ -943,8 +1048,8 @@ diff -Naur vdr-2.2.0/skins.c vdr-2.2.0_zapcockpit/skins.c
cSkinDisplayMenu::cSkinDisplayMenu(void) cSkinDisplayMenu::cSkinDisplayMenu(void)
diff -Naur vdr-2.2.0/skins.h vdr-2.2.0_zapcockpit/skins.h diff -Naur vdr-2.2.0/skins.h vdr-2.2.0_zapcockpit/skins.h
--- vdr-2.2.0/skins.h 2015-01-15 11:45:47.000000000 +0100 --- vdr-2.2.0/skins.h 2015-01-15 11:45:47.000000000 +0100
+++ vdr-2.2.0_zapcockpit/skins.h 2016-05-26 07:29:05.740117301 +0200 +++ vdr-2.2.0_zapcockpit/skins.h 2016-05-29 10:22:34.773793696 +0200
@@ -88,6 +88,33 @@ @@ -88,6 +88,34 @@
*/ */
}; };
@ -966,6 +1071,7 @@ diff -Naur vdr-2.2.0/skins.h vdr-2.2.0_zapcockpit/skins.h
+ cSkinDisplayChannelExtended(void); + cSkinDisplayChannelExtended(void);
+ virtual void SetViewType(eDisplaychannelView ViewType) = 0; + virtual void SetViewType(eDisplaychannelView ViewType) = 0;
+ virtual int MaxItems(void) = 0; + virtual int MaxItems(void) = 0;
+ virtual bool KeyRightOpensChannellist(void) = 0;
+ virtual void SetChannelInfo(const cChannel *Channel) = 0; + virtual void SetChannelInfo(const cChannel *Channel) = 0;
+ virtual void SetChannelList(const cChannel *Channel, int Index, bool Current) = 0; + virtual void SetChannelList(const cChannel *Channel, int Index, bool Current) = 0;
+ virtual void SetGroupList(const char *Group, int NumChannels, int Index, bool Current) = 0; + virtual void SetGroupList(const char *Group, int NumChannels, int Index, bool Current) = 0;
@ -980,7 +1086,7 @@ diff -Naur vdr-2.2.0/skins.h vdr-2.2.0_zapcockpit/skins.h
mcUnknown = 0, mcUnknown = 0,
diff -Naur vdr-2.2.0/vdr.c vdr-2.2.0_zapcockpit/vdr.c diff -Naur vdr-2.2.0/vdr.c vdr-2.2.0_zapcockpit/vdr.c
--- vdr-2.2.0/vdr.c 2015-02-10 15:13:12.000000000 +0100 --- vdr-2.2.0/vdr.c 2015-02-10 15:13:12.000000000 +0100
+++ vdr-2.2.0_zapcockpit/vdr.c 2016-05-26 07:29:05.676117299 +0200 +++ vdr-2.2.0_zapcockpit/vdr.c 2016-05-29 10:16:17.436017479 +0200
@@ -996,7 +996,7 @@ @@ -996,7 +996,7 @@
// Channel display: // Channel display:
if (!EITScanner.Active() && cDevice::CurrentChannel() != LastChannel) { if (!EITScanner.Active() && cDevice::CurrentChannel() != LastChannel) {