mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 15:01:48 +02:00
Added channel group support
This commit is contained in:
parent
4f93ac2516
commit
4f960c48cb
6
HISTORY
6
HISTORY
@ -27,3 +27,9 @@ VDR Plugin 'tvguide' Revision History
|
|||||||
- Fixed some Bugs (position of video, deadlock)
|
- Fixed some Bugs (position of video, deadlock)
|
||||||
- setup of usage of blending now done with clrDoBlending theme color
|
- setup of usage of blending now done with clrDoBlending theme color
|
||||||
variable and not by setup
|
variable and not by setup
|
||||||
|
- font color of active grid themable
|
||||||
|
- avoided nasty font pixelation effects with theme iceblue
|
||||||
|
- Display of channel groups
|
||||||
|
- Buttons green / yellow can be configured to jump to prev / next channel
|
||||||
|
group
|
||||||
|
- Added setup option to hide last channel group
|
||||||
|
@ -6,10 +6,12 @@ cChannelColumn::cChannelColumn(int num, const cChannel *channel, cMyTime *myTime
|
|||||||
this->myTime = myTime;
|
this->myTime = myTime;
|
||||||
hasTimer = channel->HasTimer();
|
hasTimer = channel->HasTimer();
|
||||||
schedulesLock = new cSchedulesLock(false, 100);
|
schedulesLock = new cSchedulesLock(false, 100);
|
||||||
|
header = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
cChannelColumn::~cChannelColumn(void) {
|
cChannelColumn::~cChannelColumn(void) {
|
||||||
delete header;
|
if (header)
|
||||||
|
delete header;
|
||||||
grids.Clear();
|
grids.Clear();
|
||||||
delete schedulesLock;
|
delete schedulesLock;
|
||||||
}
|
}
|
||||||
|
84
channelgroup.c
Normal file
84
channelgroup.c
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
#include "channelgroup.h"
|
||||||
|
|
||||||
|
cChannelGroup::cChannelGroup(const char *name) {
|
||||||
|
channelStart = 0;
|
||||||
|
channelStop = 0;
|
||||||
|
this->name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
cChannelGroup::~cChannelGroup(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroup::Dump(void) {
|
||||||
|
esyslog("tvguide: Group %s, startChannel %d, stopChannel %d", name, channelStart, channelStop);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- cChannelGroupGrid -------------------------------------------------------------
|
||||||
|
|
||||||
|
cChannelGroupGrid::cChannelGroupGrid(const char *name) {
|
||||||
|
this->name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
cChannelGroupGrid::~cChannelGroupGrid(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroupGrid::SetBackground() {
|
||||||
|
if (isColor1) {
|
||||||
|
color = theme.Color(clrGrid1);
|
||||||
|
colorBlending = theme.Color(clrGrid1Blending);
|
||||||
|
} else {
|
||||||
|
color = theme.Color(clrGrid2);
|
||||||
|
colorBlending = theme.Color(clrGrid2Blending);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroupGrid::SetGeometry(int start, int end) {
|
||||||
|
int x, y, width, height;
|
||||||
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
|
x = tvguideConfig.timeLineWidth + start*tvguideConfig.colWidth;
|
||||||
|
y = tvguideConfig.statusHeaderHeight;
|
||||||
|
width = (end - start + 1) * tvguideConfig.colWidth;
|
||||||
|
height = tvguideConfig.channelGroupsHeight;
|
||||||
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
|
x = 0;
|
||||||
|
y = tvguideConfig.statusHeaderHeight + tvguideConfig.timeLineHeight + start*tvguideConfig.rowHeight;
|
||||||
|
width = tvguideConfig.channelGroupsWidth;
|
||||||
|
height = (end - start + 1) * tvguideConfig.rowHeight;
|
||||||
|
}
|
||||||
|
pixmap = osdManager.requestPixmap(1, cRect(x, y, width, height));
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroupGrid::Draw(void) {
|
||||||
|
drawBackground();
|
||||||
|
drawBorder();
|
||||||
|
tColor colorText = theme.Color(clrFont);
|
||||||
|
tColor colorTextBack = (tvguideConfig.useBlending==0)?color:clrTransparent;
|
||||||
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
|
int textY = (Height() - tvguideConfig.FontChannelGroups->Height()) / 2;
|
||||||
|
cString text = CutText(name, Width() - 4, tvguideConfig.FontChannelGroups).c_str();
|
||||||
|
int textWidth = tvguideConfig.FontChannelGroups->Width(*text);
|
||||||
|
int x = (Width() - textWidth) / 2;
|
||||||
|
pixmap->DrawText(cPoint(x, textY), *text, colorText, colorTextBack, tvguideConfig.FontChannelGroups);
|
||||||
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
|
std::string nameUpper = name;
|
||||||
|
std::transform(nameUpper.begin(), nameUpper.end(),nameUpper.begin(), ::toupper);
|
||||||
|
int numChars = nameUpper.length();
|
||||||
|
int charHeight = tvguideConfig.FontChannelGroupsHorizontal->Height();
|
||||||
|
int textHeight = numChars * charHeight;
|
||||||
|
int y = 5;
|
||||||
|
if ((textHeight +5) < Height()) {
|
||||||
|
y = (Height() - textHeight) / 2;
|
||||||
|
}
|
||||||
|
for (int i=0; i < numChars; i++) {
|
||||||
|
if (((y + 2*charHeight) > Height()) && ((i+1)<numChars)) {
|
||||||
|
int x = (Width() - tvguideConfig.FontChannelGroupsHorizontal->Width("...")) / 2;
|
||||||
|
pixmap->DrawText(cPoint(x, y), "...", colorText, colorTextBack, tvguideConfig.FontChannelGroupsHorizontal);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cString currentChar = cString::sprintf("%c", nameUpper.at(i));
|
||||||
|
int x = (Width() - tvguideConfig.FontChannelGroupsHorizontal->Width(*currentChar)) / 2;
|
||||||
|
pixmap->DrawText(cPoint(x, y), *currentChar, colorText, colorTextBack, tvguideConfig.FontChannelGroupsHorizontal);
|
||||||
|
y += tvguideConfig.FontChannelGroupsHorizontal->Height();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
38
channelgroup.h
Normal file
38
channelgroup.h
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#ifndef __TVGUIDE_CHANNELGROUP_H
|
||||||
|
#define __TVGUIDE_CHANNELGROUP_H
|
||||||
|
|
||||||
|
// --- cChannelGroup -------------------------------------------------------------
|
||||||
|
|
||||||
|
class cChannelGroup {
|
||||||
|
private:
|
||||||
|
int channelStart;
|
||||||
|
int channelStop;
|
||||||
|
const char *name;
|
||||||
|
public:
|
||||||
|
cChannelGroup(const char *name);
|
||||||
|
virtual ~cChannelGroup(void);
|
||||||
|
void SetChannelStart(int start) { channelStart = start; };
|
||||||
|
int StartChannel(void) { return channelStart; };
|
||||||
|
void SetChannelStop(int stop) { channelStop = stop; };
|
||||||
|
int StopChannel(void) { return channelStop; };
|
||||||
|
const char* GetName(void) { return name; };
|
||||||
|
void Dump(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
// --- cChannelGroupGrid -------------------------------------------------------------
|
||||||
|
|
||||||
|
class cChannelGroupGrid : public cListObject, public cStyledPixmap {
|
||||||
|
private:
|
||||||
|
const char *name;
|
||||||
|
bool isColor1;
|
||||||
|
public:
|
||||||
|
cChannelGroupGrid(const char *name);
|
||||||
|
virtual ~cChannelGroupGrid(void);
|
||||||
|
void SetColor(bool color) {isColor1 = color;};
|
||||||
|
void SetBackground(void);
|
||||||
|
void SetGeometry(int start, int end);
|
||||||
|
void Draw(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__TVGUIDE_CHANNELGROUP_H
|
137
channelgroups.c
Normal file
137
channelgroups.c
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
#include <vector>
|
||||||
|
#include "channelgroups.h"
|
||||||
|
|
||||||
|
cChannelGroups::cChannelGroups(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
cChannelGroups::~cChannelGroups(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroups::ReadChannelGroups(void) {
|
||||||
|
bool setStart = false;
|
||||||
|
int lastChannelNumber = 0;
|
||||||
|
const cChannel *first = Channels.First();
|
||||||
|
if (!first->GroupSep()) {
|
||||||
|
channelGroups.push_back(cChannelGroup(tr("Main Program")));
|
||||||
|
setStart = true;
|
||||||
|
}
|
||||||
|
for (const cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel)) {
|
||||||
|
if (setStart && (channelGroups.size() > 0)) {
|
||||||
|
channelGroups[channelGroups.size()-1].SetChannelStart(channel->Number());
|
||||||
|
setStart = false;
|
||||||
|
}
|
||||||
|
if (channel->GroupSep()) {
|
||||||
|
if (channelGroups.size() > 0) {
|
||||||
|
channelGroups[channelGroups.size()-1].SetChannelStop(lastChannelNumber);
|
||||||
|
}
|
||||||
|
channelGroups.push_back(cChannelGroup(channel->Name()));
|
||||||
|
setStart = true;
|
||||||
|
} else {
|
||||||
|
lastChannelNumber = channel->Number();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (channelGroups.size() > 0) {
|
||||||
|
channelGroups[channelGroups.size()-1].SetChannelStop(lastChannelNumber);
|
||||||
|
if ((tvguideConfig.hideLastGroup)&&(channelGroups.size() > 1)) {
|
||||||
|
channelGroups.pop_back();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int cChannelGroups::GetGroup(const cChannel *channel) {
|
||||||
|
int channelNumber = channel->Number();
|
||||||
|
int numGroups = channelGroups.size();
|
||||||
|
if (numGroups) {
|
||||||
|
for (int i=0; i<numGroups; i++) {
|
||||||
|
if ((channelGroups[i].StartChannel() <= channelNumber) && ((channelGroups[i].StopChannel() >= channelNumber))) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* cChannelGroups::GetPrev(int group) {
|
||||||
|
if (group > 0) {
|
||||||
|
return channelGroups[group-1].GetName();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* cChannelGroups::GetNext(int group) {
|
||||||
|
if (group > -1) {
|
||||||
|
if ((group+1) < channelGroups.size())
|
||||||
|
return channelGroups[group+1].GetName();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
int cChannelGroups::GetPrevGroupChannelNumber(const cChannel *channel) {
|
||||||
|
int currentGroup = GetGroup(channel);
|
||||||
|
if (currentGroup == -1)
|
||||||
|
return 0;
|
||||||
|
if (currentGroup > 0) {
|
||||||
|
return channelGroups[currentGroup-1].StartChannel();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cChannelGroups::GetNextGroupChannelNumber(const cChannel *channel) {
|
||||||
|
int currentGroup = GetGroup(channel);
|
||||||
|
if (currentGroup == -1)
|
||||||
|
return 0;
|
||||||
|
if ((currentGroup+1) < channelGroups.size()) {
|
||||||
|
return channelGroups[currentGroup+1].StartChannel();
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool cChannelGroups::IsInLastGroup(const cChannel *channel) {
|
||||||
|
if (!tvguideConfig.hideLastGroup)
|
||||||
|
return false;
|
||||||
|
if (channelGroups.size() > 0) {
|
||||||
|
if (channel->Number() > channelGroups[channelGroups.size()-1].StopChannel()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroups::DrawChannelGroups(const cChannel *start, const cChannel *stop) {
|
||||||
|
groupGrids.Clear();
|
||||||
|
int group = GetGroup(start);
|
||||||
|
int groupLast = group;
|
||||||
|
int line = 0;
|
||||||
|
int lineStart = 0;
|
||||||
|
for (const cChannel *channel = Channels.Next(start); channel; channel = Channels.Next(channel)) {
|
||||||
|
if (channel->GroupSep())
|
||||||
|
continue;
|
||||||
|
group = GetGroup(channel);
|
||||||
|
if (group != groupLast) {
|
||||||
|
CreateGroupGrid(channelGroups[groupLast].GetName(), group, lineStart, line);
|
||||||
|
lineStart = line + 1;
|
||||||
|
}
|
||||||
|
line++;
|
||||||
|
groupLast = group;
|
||||||
|
if (channel == stop) {
|
||||||
|
CreateGroupGrid(channelGroups[groupLast].GetName(), group, lineStart, line);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroups::CreateGroupGrid(const char *name, int number, int start, int end) {
|
||||||
|
cChannelGroupGrid *groupGrid = new cChannelGroupGrid(name);
|
||||||
|
groupGrid->SetColor(number%2);
|
||||||
|
groupGrid->SetBackground();
|
||||||
|
groupGrid->SetGeometry(start, end);
|
||||||
|
groupGrid->Draw();
|
||||||
|
groupGrids.Add(groupGrid);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cChannelGroups::DumpGroups(void) {
|
||||||
|
for (std::vector<cChannelGroup>::iterator group = channelGroups.begin(); group!=channelGroups.end(); ++group) {
|
||||||
|
group->Dump();
|
||||||
|
}
|
||||||
|
}
|
25
channelgroups.h
Normal file
25
channelgroups.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#ifndef __TVGUIDE_CHANNELGROUPS_H
|
||||||
|
#define __TVGUIDE_CHANNELGROUPS_H
|
||||||
|
|
||||||
|
// --- cChannelGroups -------------------------------------------------------------
|
||||||
|
|
||||||
|
class cChannelGroups {
|
||||||
|
private:
|
||||||
|
std::vector<cChannelGroup> channelGroups;
|
||||||
|
cList<cChannelGroupGrid> groupGrids;
|
||||||
|
public:
|
||||||
|
cChannelGroups(void);
|
||||||
|
virtual ~cChannelGroups(void);
|
||||||
|
void ReadChannelGroups(void);
|
||||||
|
const char* GetPrev(int group);
|
||||||
|
const char* GetNext(int group);
|
||||||
|
int GetGroup(const cChannel *channel);
|
||||||
|
int GetPrevGroupChannelNumber(const cChannel *channel);
|
||||||
|
int GetNextGroupChannelNumber(const cChannel *channel);
|
||||||
|
bool IsInLastGroup(const cChannel *channel);
|
||||||
|
void DrawChannelGroups(const cChannel *start, const cChannel *stop);
|
||||||
|
void CreateGroupGrid(const char *name, int number, int start, int end);
|
||||||
|
void DumpGroups(void);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //__TVGUIDE_CHANNELGROUPS_H
|
30
config.c
30
config.c
@ -10,6 +10,10 @@ enum {
|
|||||||
eHorizontal
|
eHorizontal
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
eNumJump,
|
||||||
|
eGroupJump
|
||||||
|
};
|
||||||
|
|
||||||
cTvguideConfig::cTvguideConfig() {
|
cTvguideConfig::cTvguideConfig() {
|
||||||
osdWidth = 0;
|
osdWidth = 0;
|
||||||
@ -22,8 +26,12 @@ cTvguideConfig::cTvguideConfig() {
|
|||||||
displayTime = 160;
|
displayTime = 160;
|
||||||
minutePixel = 0;
|
minutePixel = 0;
|
||||||
displayStatusHeader = 1;
|
displayStatusHeader = 1;
|
||||||
|
displayChannelGroups = 1;
|
||||||
statusHeaderPercent = 20;
|
statusHeaderPercent = 20;
|
||||||
statusHeaderHeight = 0;
|
statusHeaderHeight = 0;
|
||||||
|
channelGroupsPercent = 5;
|
||||||
|
channelGroupsWidth = 0;
|
||||||
|
channelGroupsHeight = 0;
|
||||||
scaleVideo = 1;
|
scaleVideo = 1;
|
||||||
decorateVideo = 1;
|
decorateVideo = 1;
|
||||||
timeLineWidthPercent = 8;
|
timeLineWidthPercent = 8;
|
||||||
@ -35,7 +43,9 @@ cTvguideConfig::cTvguideConfig() {
|
|||||||
stepMinutes = 30;
|
stepMinutes = 30;
|
||||||
bigStepHours = 3;
|
bigStepHours = 3;
|
||||||
hugeStepHours = 24;
|
hugeStepHours = 24;
|
||||||
|
channelJumpMode = eNumJump;
|
||||||
jumpChannels = 10;
|
jumpChannels = 10;
|
||||||
|
hideLastGroup = 0;
|
||||||
hideChannelLogos = 0;
|
hideChannelLogos = 0;
|
||||||
logoWidthRatio = 13;
|
logoWidthRatio = 13;
|
||||||
logoHeightRatio = 10;
|
logoHeightRatio = 10;
|
||||||
@ -53,12 +63,14 @@ cTvguideConfig::cTvguideConfig() {
|
|||||||
FontStatusHeaderDelta = 0;
|
FontStatusHeaderDelta = 0;
|
||||||
FontStatusHeaderLargeDelta = 0;
|
FontStatusHeaderLargeDelta = 0;
|
||||||
FontChannelHeaderDelta = 0;
|
FontChannelHeaderDelta = 0;
|
||||||
|
FontChannelGroupsDelta = 0;
|
||||||
FontGridDelta = 0;
|
FontGridDelta = 0;
|
||||||
FontGridSmallDelta = 0;
|
FontGridSmallDelta = 0;
|
||||||
FontTimeLineWeekdayDelta = 0;
|
FontTimeLineWeekdayDelta = 0;
|
||||||
FontTimeLineDateDelta = 0;
|
FontTimeLineDateDelta = 0;
|
||||||
FontTimeLineTimeDelta = 0;
|
FontTimeLineTimeDelta = 0;
|
||||||
FontChannelHeaderHorizontalDelta = 0;
|
FontChannelHeaderHorizontalDelta = 0;
|
||||||
|
FontChannelGroupsHorizontalDelta = 0;
|
||||||
FontGridHorizontalDelta = 0;
|
FontGridHorizontalDelta = 0;
|
||||||
FontGridHorizontalSmallDelta = 0;
|
FontGridHorizontalSmallDelta = 0;
|
||||||
FontTimeLineDateHorizontalDelta = 0;
|
FontTimeLineDateHorizontalDelta = 0;
|
||||||
@ -103,12 +115,14 @@ cTvguideConfig::~cTvguideConfig() {
|
|||||||
delete FontStatusHeader;
|
delete FontStatusHeader;
|
||||||
delete FontStatusHeaderLarge;
|
delete FontStatusHeaderLarge;
|
||||||
delete FontChannelHeader;
|
delete FontChannelHeader;
|
||||||
|
delete FontChannelGroups;
|
||||||
delete FontGrid;
|
delete FontGrid;
|
||||||
delete FontGridSmall;
|
delete FontGridSmall;
|
||||||
delete FontTimeLineWeekday;
|
delete FontTimeLineWeekday;
|
||||||
delete FontTimeLineDate;
|
delete FontTimeLineDate;
|
||||||
delete FontTimeLineTime;
|
delete FontTimeLineTime;
|
||||||
delete FontChannelHeaderHorizontal;
|
delete FontChannelHeaderHorizontal;
|
||||||
|
delete FontChannelGroupsHorizontal;
|
||||||
delete FontGridHorizontal;
|
delete FontGridHorizontal;
|
||||||
delete FontGridHorizontalSmall;
|
delete FontGridHorizontalSmall;
|
||||||
delete FontTimeLineDateHorizontal;
|
delete FontTimeLineDateHorizontal;
|
||||||
@ -124,6 +138,8 @@ void cTvguideConfig::SetGeometry(int width, int height) {
|
|||||||
osdWidth = width;
|
osdWidth = width;
|
||||||
osdHeight = height;
|
osdHeight = height;
|
||||||
statusHeaderHeight = (displayStatusHeader)?(statusHeaderPercent * osdHeight / 100):0;
|
statusHeaderHeight = (displayStatusHeader)?(statusHeaderPercent * osdHeight / 100):0;
|
||||||
|
channelGroupsWidth = (displayChannelGroups)?(channelGroupsPercent * osdWidth / 100):0;
|
||||||
|
channelGroupsHeight = (displayChannelGroups)?(channelGroupsPercent * osdHeight / 100):0;
|
||||||
channelHeaderWidth = channelHeaderWidthPercent * osdWidth / 100;
|
channelHeaderWidth = channelHeaderWidthPercent * osdWidth / 100;
|
||||||
channelHeaderHeight = channelHeaderHeightPercent * osdHeight / 100;
|
channelHeaderHeight = channelHeaderHeightPercent * osdHeight / 100;
|
||||||
timeLineWidth = timeLineWidthPercent * osdWidth / 100;
|
timeLineWidth = timeLineWidthPercent * osdWidth / 100;
|
||||||
@ -132,11 +148,11 @@ void cTvguideConfig::SetGeometry(int width, int height) {
|
|||||||
if (displayMode == eVertical) {
|
if (displayMode == eVertical) {
|
||||||
colWidth = (osdWidth - timeLineWidth) / channelCols;
|
colWidth = (osdWidth - timeLineWidth) / channelCols;
|
||||||
rowHeight = 0;
|
rowHeight = 0;
|
||||||
minutePixel = (osdHeight - statusHeaderHeight - channelHeaderHeight - footerHeight) / displayTime;
|
minutePixel = (osdHeight - statusHeaderHeight - channelGroupsHeight - channelHeaderHeight - footerHeight) / displayTime;
|
||||||
} else if (displayMode == eHorizontal) {
|
} else if (displayMode == eHorizontal) {
|
||||||
colWidth = 0;
|
colWidth = 0;
|
||||||
rowHeight = (osdHeight - statusHeaderHeight - timeLineHeight - footerHeight) / channelRows;
|
rowHeight = (osdHeight - statusHeaderHeight - timeLineHeight - footerHeight) / channelRows;
|
||||||
minutePixel = (osdWidth - channelHeaderWidth) / displayTime;
|
minutePixel = (osdWidth - channelHeaderWidth - channelGroupsWidth) / displayTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
numGrids = (displayMode == eVertical)?channelCols:channelRows;
|
numGrids = (displayMode == eVertical)?channelCols:channelRows;
|
||||||
@ -171,6 +187,7 @@ void cTvguideConfig::SetFonts(void){
|
|||||||
FontStatusHeaderLarge = cFont::CreateFont(*fontname, statusHeaderHeight/5 + FontStatusHeaderLargeDelta);
|
FontStatusHeaderLarge = cFont::CreateFont(*fontname, statusHeaderHeight/5 + FontStatusHeaderLargeDelta);
|
||||||
//Fonts for vertical Display
|
//Fonts for vertical Display
|
||||||
FontChannelHeader = cFont::CreateFont(*fontname, colWidth/10 + FontChannelHeaderDelta);
|
FontChannelHeader = cFont::CreateFont(*fontname, colWidth/10 + FontChannelHeaderDelta);
|
||||||
|
FontChannelGroups = cFont::CreateFont(*fontname, colWidth/8 + FontChannelGroupsDelta);
|
||||||
FontGrid = cFont::CreateFont(*fontname, colWidth/12 + FontGridDelta);
|
FontGrid = cFont::CreateFont(*fontname, colWidth/12 + FontGridDelta);
|
||||||
FontGridSmall = cFont::CreateFont(*fontname, colWidth/12 + FontGridSmallDelta);
|
FontGridSmall = cFont::CreateFont(*fontname, colWidth/12 + FontGridSmallDelta);
|
||||||
FontTimeLineWeekday = cFont::CreateFont(*fontname, timeLineWidth/3 + FontTimeLineWeekdayDelta);
|
FontTimeLineWeekday = cFont::CreateFont(*fontname, timeLineWidth/3 + FontTimeLineWeekdayDelta);
|
||||||
@ -178,6 +195,7 @@ void cTvguideConfig::SetFonts(void){
|
|||||||
FontTimeLineTime = cFont::CreateFont(*fontname, timeLineWidth/4 + FontTimeLineTimeDelta);
|
FontTimeLineTime = cFont::CreateFont(*fontname, timeLineWidth/4 + FontTimeLineTimeDelta);
|
||||||
//Fonts for horizontal Display
|
//Fonts for horizontal Display
|
||||||
FontChannelHeaderHorizontal = cFont::CreateFont(*fontname, rowHeight/3 + FontChannelHeaderHorizontalDelta);
|
FontChannelHeaderHorizontal = cFont::CreateFont(*fontname, rowHeight/3 + FontChannelHeaderHorizontalDelta);
|
||||||
|
FontChannelGroupsHorizontal = cFont::CreateFont(*fontname, rowHeight/3 + 5 + FontChannelGroupsHorizontalDelta);
|
||||||
FontGridHorizontal = cFont::CreateFont(*fontname, rowHeight/3 + 5 + FontGridHorizontalDelta);
|
FontGridHorizontal = cFont::CreateFont(*fontname, rowHeight/3 + 5 + FontGridHorizontalDelta);
|
||||||
FontGridHorizontalSmall = cFont::CreateFont(*fontname, rowHeight/4 + FontGridHorizontalSmallDelta);
|
FontGridHorizontalSmall = cFont::CreateFont(*fontname, rowHeight/4 + FontGridHorizontalSmallDelta);
|
||||||
FontTimeLineDateHorizontal = cFont::CreateFont(*fontname, timeLineHeight/2 + 5 + FontTimeLineDateHorizontalDelta);
|
FontTimeLineDateHorizontal = cFont::CreateFont(*fontname, timeLineHeight/2 + 5 + FontTimeLineDateHorizontalDelta);
|
||||||
@ -217,7 +235,9 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
|
|||||||
else if (strcmp(Name, "themeIndex") == 0) themeIndex = atoi(Value);
|
else if (strcmp(Name, "themeIndex") == 0) themeIndex = atoi(Value);
|
||||||
else if (strcmp(Name, "displayMode") == 0) displayMode = atoi(Value);
|
else if (strcmp(Name, "displayMode") == 0) displayMode = atoi(Value);
|
||||||
else if (strcmp(Name, "displayStatusHeader") == 0) displayStatusHeader = atoi(Value);
|
else if (strcmp(Name, "displayStatusHeader") == 0) displayStatusHeader = atoi(Value);
|
||||||
|
else if (strcmp(Name, "displayChannelGroups") == 0) displayChannelGroups = atoi(Value);
|
||||||
else if (strcmp(Name, "statusHeaderPercent") == 0) statusHeaderPercent = atoi(Value);
|
else if (strcmp(Name, "statusHeaderPercent") == 0) statusHeaderPercent = atoi(Value);
|
||||||
|
else if (strcmp(Name, "channelGroupsPercent") == 0) channelGroupsPercent = atoi(Value);
|
||||||
else if (strcmp(Name, "scaleVideo") == 0) scaleVideo = atoi(Value);
|
else if (strcmp(Name, "scaleVideo") == 0) scaleVideo = atoi(Value);
|
||||||
else if (strcmp(Name, "decorateVideo") == 0) decorateVideo = atoi(Value);
|
else if (strcmp(Name, "decorateVideo") == 0) decorateVideo = atoi(Value);
|
||||||
else if (strcmp(Name, "roundedCorners") == 0) roundedCorners = atoi(Value);
|
else if (strcmp(Name, "roundedCorners") == 0) roundedCorners = atoi(Value);
|
||||||
@ -230,7 +250,9 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
|
|||||||
else if (strcmp(Name, "logoHeightRatio") == 0) logoHeightRatio = atoi(Value);
|
else if (strcmp(Name, "logoHeightRatio") == 0) logoHeightRatio = atoi(Value);
|
||||||
else if (strcmp(Name, "bigStepHours") == 0) bigStepHours = atoi(Value);
|
else if (strcmp(Name, "bigStepHours") == 0) bigStepHours = atoi(Value);
|
||||||
else if (strcmp(Name, "hugeStepHours") == 0) hugeStepHours = atoi(Value);
|
else if (strcmp(Name, "hugeStepHours") == 0) hugeStepHours = atoi(Value);
|
||||||
|
else if (strcmp(Name, "channelJumpMode") == 0) channelJumpMode = atoi(Value);
|
||||||
else if (strcmp(Name, "jumpChannels") == 0) jumpChannels = atoi(Value);
|
else if (strcmp(Name, "jumpChannels") == 0) jumpChannels = atoi(Value);
|
||||||
|
else if (strcmp(Name, "hideLastGroup") == 0) hideLastGroup = atoi(Value);
|
||||||
else if (strcmp(Name, "hideEpgImages") == 0) hideEpgImages = atoi(Value);
|
else if (strcmp(Name, "hideEpgImages") == 0) hideEpgImages = atoi(Value);
|
||||||
else if (strcmp(Name, "epgImageWidth") == 0) epgImageWidth = atoi(Value);
|
else if (strcmp(Name, "epgImageWidth") == 0) epgImageWidth = atoi(Value);
|
||||||
else if (strcmp(Name, "epgImageHeight") == 0) epgImageHeight = atoi(Value);
|
else if (strcmp(Name, "epgImageHeight") == 0) epgImageHeight = atoi(Value);
|
||||||
@ -248,13 +270,15 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
|
|||||||
else if (strcmp(Name, "FontMessageBoxLargeDelta") == 0) FontMessageBoxLargeDelta = atoi(Value);
|
else if (strcmp(Name, "FontMessageBoxLargeDelta") == 0) FontMessageBoxLargeDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontStatusHeaderDelta") == 0) FontStatusHeaderDelta = atoi(Value);
|
else if (strcmp(Name, "FontStatusHeaderDelta") == 0) FontStatusHeaderDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontStatusHeaderLargeDelta") == 0) FontStatusHeaderLargeDelta = atoi(Value);
|
else if (strcmp(Name, "FontStatusHeaderLargeDelta") == 0) FontStatusHeaderLargeDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontChannelHeaderDelta") == 0) FontChannelHeaderDelta = atoi(Value);
|
else if (strcmp(Name, "FontChannelHeaderDelta") == 0) FontChannelHeaderDelta = atoi(Value);
|
||||||
|
else if (strcmp(Name, "FontChannelGroupsDelta") == 0) FontChannelGroupsDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontGridDelta") == 0) FontGridDelta = atoi(Value);
|
else if (strcmp(Name, "FontGridDelta") == 0) FontGridDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontGridSmallDelta") == 0) FontGridSmallDelta = atoi(Value);
|
else if (strcmp(Name, "FontGridSmallDelta") == 0) FontGridSmallDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontTimeLineWeekdayDelta") == 0) FontTimeLineWeekdayDelta = atoi(Value);
|
else if (strcmp(Name, "FontTimeLineWeekdayDelta") == 0) FontTimeLineWeekdayDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontTimeLineDateDelta") == 0) FontTimeLineDateDelta = atoi(Value);
|
else if (strcmp(Name, "FontTimeLineDateDelta") == 0) FontTimeLineDateDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontTimeLineTimeDelta") == 0) FontTimeLineTimeDelta = atoi(Value);
|
else if (strcmp(Name, "FontTimeLineTimeDelta") == 0) FontTimeLineTimeDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontChannelHeaderHorizontalDelta") == 0) FontChannelHeaderHorizontalDelta = atoi(Value);
|
else if (strcmp(Name, "FontChannelHeaderHorizontalDelta") == 0) FontChannelHeaderHorizontalDelta = atoi(Value);
|
||||||
|
else if (strcmp(Name, "FontChannelGroupsHorizontalDelta") == 0) FontChannelGroupsHorizontalDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontGridHorizontalDelta") == 0) FontGridHorizontalDelta = atoi(Value);
|
else if (strcmp(Name, "FontGridHorizontalDelta") == 0) FontGridHorizontalDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontGridHorizontalSmallDelta") == 0) FontGridHorizontalSmallDelta = atoi(Value);
|
else if (strcmp(Name, "FontGridHorizontalSmallDelta") == 0) FontGridHorizontalSmallDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontTimeLineDateHorizontalDelta") == 0) FontTimeLineDateHorizontalDelta = atoi(Value);
|
else if (strcmp(Name, "FontTimeLineDateHorizontalDelta") == 0) FontTimeLineDateHorizontalDelta = atoi(Value);
|
||||||
|
10
config.h
10
config.h
@ -22,8 +22,12 @@ class cTvguideConfig {
|
|||||||
int displayTime;
|
int displayTime;
|
||||||
int minutePixel;
|
int minutePixel;
|
||||||
int displayStatusHeader;
|
int displayStatusHeader;
|
||||||
|
int displayChannelGroups;
|
||||||
int statusHeaderPercent;
|
int statusHeaderPercent;
|
||||||
int statusHeaderHeight;
|
int statusHeaderHeight;
|
||||||
|
int channelGroupsPercent;
|
||||||
|
int channelGroupsWidth;
|
||||||
|
int channelGroupsHeight;
|
||||||
int scaleVideo;
|
int scaleVideo;
|
||||||
int decorateVideo;
|
int decorateVideo;
|
||||||
int timeLineWidthPercent;
|
int timeLineWidthPercent;
|
||||||
@ -39,7 +43,9 @@ class cTvguideConfig {
|
|||||||
int stepMinutes;
|
int stepMinutes;
|
||||||
int bigStepHours;
|
int bigStepHours;
|
||||||
int hugeStepHours;
|
int hugeStepHours;
|
||||||
|
int channelJumpMode;
|
||||||
int jumpChannels;
|
int jumpChannels;
|
||||||
|
int hideLastGroup;
|
||||||
int hideChannelLogos;
|
int hideChannelLogos;
|
||||||
int logoWidthRatio;
|
int logoWidthRatio;
|
||||||
int logoHeightRatio;
|
int logoHeightRatio;
|
||||||
@ -59,18 +65,22 @@ class cTvguideConfig {
|
|||||||
int FontStatusHeaderDelta;
|
int FontStatusHeaderDelta;
|
||||||
int FontStatusHeaderLargeDelta;
|
int FontStatusHeaderLargeDelta;
|
||||||
int FontChannelHeaderDelta;
|
int FontChannelHeaderDelta;
|
||||||
|
int FontChannelGroupsDelta;
|
||||||
int FontGridDelta;
|
int FontGridDelta;
|
||||||
int FontGridSmallDelta;
|
int FontGridSmallDelta;
|
||||||
int FontTimeLineWeekdayDelta;
|
int FontTimeLineWeekdayDelta;
|
||||||
int FontTimeLineDateDelta;
|
int FontTimeLineDateDelta;
|
||||||
int FontTimeLineTimeDelta;
|
int FontTimeLineTimeDelta;
|
||||||
int FontChannelHeaderHorizontalDelta;
|
int FontChannelHeaderHorizontalDelta;
|
||||||
|
int FontChannelGroupsHorizontalDelta;
|
||||||
int FontGridHorizontalDelta;
|
int FontGridHorizontalDelta;
|
||||||
int FontGridHorizontalSmallDelta;
|
int FontGridHorizontalSmallDelta;
|
||||||
int FontTimeLineDateHorizontalDelta;
|
int FontTimeLineDateHorizontalDelta;
|
||||||
int FontTimeLineTimeHorizontalDelta;
|
int FontTimeLineTimeHorizontalDelta;
|
||||||
const cFont *FontChannelHeader;
|
const cFont *FontChannelHeader;
|
||||||
const cFont *FontChannelHeaderHorizontal;
|
const cFont *FontChannelHeaderHorizontal;
|
||||||
|
const cFont *FontChannelGroups;
|
||||||
|
const cFont *FontChannelGroupsHorizontal;
|
||||||
const cFont *FontStatusHeader;
|
const cFont *FontStatusHeader;
|
||||||
const cFont *FontStatusHeaderLarge;
|
const cFont *FontStatusHeaderLarge;
|
||||||
const cFont *FontGrid;
|
const cFont *FontGrid;
|
||||||
|
@ -21,7 +21,7 @@ void cDummyGrid::PositionPixmap() {
|
|||||||
int x0, y0;
|
int x0, y0;
|
||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
x0 = column->getX();
|
x0 = column->getX();
|
||||||
y0 = tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight;
|
y0 = tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight;
|
||||||
if ( column->Start() < StartTime() ) {
|
if ( column->Start() < StartTime() ) {
|
||||||
y0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
y0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
||||||
}
|
}
|
||||||
@ -34,7 +34,7 @@ void cDummyGrid::PositionPixmap() {
|
|||||||
pixmap->SetViewPort(cRect(x0, y0, tvguideConfig.colWidth, viewportHeight));
|
pixmap->SetViewPort(cRect(x0, y0, tvguideConfig.colWidth, viewportHeight));
|
||||||
}
|
}
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
x0 = tvguideConfig.channelHeaderWidth;
|
x0 = tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth;
|
||||||
y0 = column->getY();
|
y0 = column->getY();
|
||||||
if ( column->Start() < StartTime() ) {
|
if ( column->Start() < StartTime() ) {
|
||||||
x0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
x0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
||||||
|
@ -33,7 +33,7 @@ void cEpgGrid::PositionPixmap() {
|
|||||||
int x0, y0;
|
int x0, y0;
|
||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
int x0 = column->getX();
|
int x0 = column->getX();
|
||||||
int y0 = tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight;
|
int y0 = tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight;
|
||||||
if ( column->Start() < StartTime() ) {
|
if ( column->Start() < StartTime() ) {
|
||||||
y0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
y0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
||||||
}
|
}
|
||||||
@ -44,7 +44,7 @@ void cEpgGrid::PositionPixmap() {
|
|||||||
pixmap->SetViewPort(cRect(x0, y0, tvguideConfig.colWidth, viewportHeight));
|
pixmap->SetViewPort(cRect(x0, y0, tvguideConfig.colWidth, viewportHeight));
|
||||||
}
|
}
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
int x0 = tvguideConfig.channelHeaderWidth;
|
int x0 = tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth;
|
||||||
int y0 = column->getY();
|
int y0 = column->getY();
|
||||||
if ( column->Start() < StartTime() ) {
|
if ( column->Start() < StartTime() ) {
|
||||||
x0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
x0 += (StartTime() - column->Start())/60*tvguideConfig.minutePixel;
|
||||||
|
63
footer.c
63
footer.c
@ -1,6 +1,8 @@
|
|||||||
#include "footer.h"
|
#include "footer.h"
|
||||||
|
|
||||||
cFooter::cFooter() {
|
cFooter::cFooter(cChannelGroups *channelGroups) {
|
||||||
|
this->channelGroups = channelGroups;
|
||||||
|
currentGroup = -1;
|
||||||
buttonBorder = 20;
|
buttonBorder = 20;
|
||||||
buttonWidth = (tvguideConfig.osdWidth - tvguideConfig.timeLineWidth - 5*buttonBorder)/4;
|
buttonWidth = (tvguideConfig.osdWidth - tvguideConfig.timeLineWidth - 5*buttonBorder)/4;
|
||||||
buttonHeight= tvguideConfig.footerHeight - 2*buttonBorder;
|
buttonHeight= tvguideConfig.footerHeight - 2*buttonBorder;
|
||||||
@ -18,26 +20,6 @@ cFooter::~cFooter(void) {
|
|||||||
osdManager.releasePixmap(footer);
|
osdManager.releasePixmap(footer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cFooter::drawRedButton() {
|
|
||||||
cString text(tr("Set Timer"));
|
|
||||||
DrawButton(*text, theme.Color(clrButtonRed), theme.Color(clrButtonRedBorder), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void cFooter::drawGreenButton() {
|
|
||||||
cString text = cString::sprintf("%d %s", tvguideConfig.jumpChannels, tr("Channels back"));
|
|
||||||
DrawButton(*text, theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void cFooter::drawYellowButton() {
|
|
||||||
cString text = cString::sprintf("%d %s", tvguideConfig.jumpChannels, tr("Channels forward"));
|
|
||||||
DrawButton(*text, theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void cFooter::drawBlueButton() {
|
|
||||||
cString text(tr("Switch to Channel"));
|
|
||||||
DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, int num) {
|
void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, int num) {
|
||||||
tColor colorTextBack = (tvguideConfig.useBlending==0)?color:clrTransparent;
|
tColor colorTextBack = (tvguideConfig.useBlending==0)?color:clrTransparent;
|
||||||
int left = num * buttonWidth + (num + 1) * buttonBorder;
|
int left = num * buttonWidth + (num + 1) * buttonBorder;
|
||||||
@ -53,4 +35,43 @@ void cFooter::DrawButton(const char *text, tColor color, tColor borderColor, int
|
|||||||
int textWidth = tvguideConfig.FontButton->Width(text);
|
int textWidth = tvguideConfig.FontButton->Width(text);
|
||||||
int textHeight = tvguideConfig.FontButton->Height();
|
int textHeight = tvguideConfig.FontButton->Height();
|
||||||
footer->DrawText(cPoint(left + (buttonWidth-textWidth)/2, buttonY + (buttonHeight-textHeight)/2), text, theme.Color(clrFontButtons), colorTextBack, tvguideConfig.FontButton);
|
footer->DrawText(cPoint(left + (buttonWidth-textWidth)/2, buttonY + (buttonHeight-textHeight)/2), text, theme.Color(clrFontButtons), colorTextBack, tvguideConfig.FontButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::drawRedButton() {
|
||||||
|
cString text(tr("Set Timer"));
|
||||||
|
DrawButton(*text, theme.Color(clrButtonRed), theme.Color(clrButtonRedBorder), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::drawGreenButton() {
|
||||||
|
cString text = cString::sprintf("%d %s", tvguideConfig.jumpChannels, tr("Channels back"));
|
||||||
|
DrawButton(*text, theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::drawGreenButton(const char *text) {
|
||||||
|
std::string cuttedText = CutText(text, buttonWidth-6, tvguideConfig.FontButton);
|
||||||
|
DrawButton(cuttedText.c_str(), theme.Color(clrButtonGreen), theme.Color(clrButtonGreenBorder), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::drawYellowButton() {
|
||||||
|
cString text = cString::sprintf("%d %s", tvguideConfig.jumpChannels, tr("Channels forward"));
|
||||||
|
DrawButton(*text, theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::drawYellowButton(const char *text) {
|
||||||
|
std::string cuttedText = CutText(text, buttonWidth-6, tvguideConfig.FontButton);
|
||||||
|
DrawButton(cuttedText.c_str(), theme.Color(clrButtonYellow), theme.Color(clrButtonYellowBorder), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::drawBlueButton() {
|
||||||
|
cString text(tr("Switch to Channel"));
|
||||||
|
DrawButton(*text, theme.Color(clrButtonBlue), theme.Color(clrButtonBlueBorder), 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cFooter::UpdateGroupButtons(const cChannel *channel) {
|
||||||
|
int group = channelGroups->GetGroup(channel);
|
||||||
|
if (group != currentGroup) {
|
||||||
|
currentGroup = group;
|
||||||
|
drawGreenButton(channelGroups->GetPrev(group));
|
||||||
|
drawYellowButton(channelGroups->GetNext(group));
|
||||||
|
}
|
||||||
}
|
}
|
7
footer.h
7
footer.h
@ -10,14 +10,19 @@ private:
|
|||||||
int buttonHeight;
|
int buttonHeight;
|
||||||
int buttonY;
|
int buttonY;
|
||||||
int buttonBorder;
|
int buttonBorder;
|
||||||
|
cChannelGroups *channelGroups;
|
||||||
|
int currentGroup;
|
||||||
void DrawButton(const char *text, tColor color, tColor borderColor, int num);
|
void DrawButton(const char *text, tColor color, tColor borderColor, int num);
|
||||||
public:
|
public:
|
||||||
cFooter();
|
cFooter(cChannelGroups *channelGroups);
|
||||||
virtual ~cFooter(void);
|
virtual ~cFooter(void);
|
||||||
void drawRedButton();
|
void drawRedButton();
|
||||||
void drawGreenButton();
|
void drawGreenButton();
|
||||||
void drawYellowButton();
|
void drawYellowButton();
|
||||||
|
void drawGreenButton(const char *text);
|
||||||
|
void drawYellowButton(const char *text);
|
||||||
void drawBlueButton();
|
void drawBlueButton();
|
||||||
|
void UpdateGroupButtons(const cChannel *channel);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //__TVGUIDE_FOOTER_H
|
#endif //__TVGUIDE_FOOTER_H
|
@ -15,11 +15,11 @@ void cHeaderGrid::createBackground(int num) {
|
|||||||
int x, y, width, height;
|
int x, y, width, height;
|
||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
x = tvguideConfig.timeLineWidth + num*tvguideConfig.colWidth;
|
x = tvguideConfig.timeLineWidth + num*tvguideConfig.colWidth;
|
||||||
y = tvguideConfig.statusHeaderHeight;
|
y = tvguideConfig.statusHeaderHeight + tvguideConfig.channelGroupsHeight;
|
||||||
width = tvguideConfig.colWidth;
|
width = tvguideConfig.colWidth;
|
||||||
height = tvguideConfig.channelHeaderHeight;
|
height = tvguideConfig.channelHeaderHeight;
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
x = 0;
|
x = tvguideConfig.channelGroupsWidth;
|
||||||
y = tvguideConfig.statusHeaderHeight + tvguideConfig.timeLineHeight + num*tvguideConfig.rowHeight;
|
y = tvguideConfig.statusHeaderHeight + tvguideConfig.timeLineHeight + num*tvguideConfig.rowHeight;
|
||||||
width = tvguideConfig.channelHeaderWidth;
|
width = tvguideConfig.channelHeaderWidth;
|
||||||
height = tvguideConfig.rowHeight;
|
height = tvguideConfig.rowHeight;
|
||||||
@ -114,11 +114,11 @@ void cHeaderGrid::setPosition(int num) {
|
|||||||
int x, y, width, height;
|
int x, y, width, height;
|
||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
x = tvguideConfig.timeLineWidth + num*tvguideConfig.colWidth;
|
x = tvguideConfig.timeLineWidth + num*tvguideConfig.colWidth;
|
||||||
y = tvguideConfig.statusHeaderHeight;
|
y = tvguideConfig.statusHeaderHeight + tvguideConfig.channelGroupsHeight;
|
||||||
width = tvguideConfig.colWidth;
|
width = tvguideConfig.colWidth;
|
||||||
height = tvguideConfig.channelHeaderHeight;
|
height = tvguideConfig.channelHeaderHeight;
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
x = 0;
|
x = tvguideConfig.channelGroupsWidth;
|
||||||
y = tvguideConfig.statusHeaderHeight + tvguideConfig.timeLineHeight + num*tvguideConfig.rowHeight;
|
y = tvguideConfig.statusHeaderHeight + tvguideConfig.timeLineHeight + num*tvguideConfig.rowHeight;
|
||||||
width = tvguideConfig.channelHeaderWidth;
|
width = tvguideConfig.channelHeaderWidth;
|
||||||
height = tvguideConfig.rowHeight;
|
height = tvguideConfig.rowHeight;
|
||||||
|
@ -38,8 +38,6 @@ bool cOsdManager::setOsd() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void cOsdManager::setBackground() {
|
void cOsdManager::setBackground() {
|
||||||
esyslog("tvguide: %d %d", Width(), Height());
|
|
||||||
|
|
||||||
if (tvguideConfig.displayStatusHeader && tvguideConfig.scaleVideo) {
|
if (tvguideConfig.displayStatusHeader && tvguideConfig.scaleVideo) {
|
||||||
int widthStatus = cOsd::OsdWidth() - tvguideConfig.statusHeaderHeight * 16 / 9;
|
int widthStatus = cOsd::OsdWidth() - tvguideConfig.statusHeaderHeight * 16 / 9;
|
||||||
osd->DrawRectangle(0, 0, widthStatus, tvguideConfig.statusHeaderHeight, theme.Color(clrBackgroundOSD));
|
osd->DrawRectangle(0, 0, widthStatus, tvguideConfig.statusHeaderHeight, theme.Color(clrBackgroundOSD));
|
||||||
|
36
po/de_DE.po
36
po/de_DE.po
@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: vdr-tvguide 0.0.1\n"
|
"Project-Id-Version: vdr-tvguide 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: <see README>\n"
|
"Report-Msgid-Bugs-To: <see README>\n"
|
||||||
"POT-Creation-Date: 2013-05-28 16:45+0200\n"
|
"POT-Creation-Date: 2013-05-31 11:43+0200\n"
|
||||||
"PO-Revision-Date: 2012-08-25 17:49+0200\n"
|
"PO-Revision-Date: 2012-08-25 17:49+0200\n"
|
||||||
"Last-Translator: Horst\n"
|
"Last-Translator: Horst\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -12,6 +12,9 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
msgid "Main Program"
|
||||||
|
msgstr "Hauptprogramm"
|
||||||
|
|
||||||
msgid "RERUNS OF THIS SHOW"
|
msgid "RERUNS OF THIS SHOW"
|
||||||
msgstr "Wiederholungen dieser Sendung"
|
msgstr "Wiederholungen dieser Sendung"
|
||||||
|
|
||||||
@ -39,6 +42,12 @@ msgstr "Anzeigeoptionen"
|
|||||||
msgid "Fonts and Fontsizes"
|
msgid "Fonts and Fontsizes"
|
||||||
msgstr "Schriften und Schriftgrößen"
|
msgstr "Schriften und Schriftgrößen"
|
||||||
|
|
||||||
|
msgid "x channels back / forward"
|
||||||
|
msgstr "x Kanäle zurück / vor"
|
||||||
|
|
||||||
|
msgid "previous / next channel group"
|
||||||
|
msgstr "vorherige / nächste Kanalgruppe"
|
||||||
|
|
||||||
msgid "never"
|
msgid "never"
|
||||||
msgstr "nie"
|
msgstr "nie"
|
||||||
|
|
||||||
@ -54,8 +63,14 @@ msgstr "Theme"
|
|||||||
msgid "Rounded Corners"
|
msgid "Rounded Corners"
|
||||||
msgstr "Abgerundete Ecken"
|
msgstr "Abgerundete Ecken"
|
||||||
|
|
||||||
msgid "Channels to Jump (Keys Green / Yellow)"
|
msgid "Channel Jump Mode (Keys Green / Yellow)"
|
||||||
msgstr "Kanalsprung (Tasten Grün / Gelb)"
|
msgstr "Kanalsprung Modus (Tasten grün / gelb)"
|
||||||
|
|
||||||
|
msgid "Channels to Jump"
|
||||||
|
msgstr "Anzahl der Kanäle"
|
||||||
|
|
||||||
|
msgid "Hide last Channel Group"
|
||||||
|
msgstr "Letzte Kanalgruppe verstecken"
|
||||||
|
|
||||||
msgid "Time to display in minutes"
|
msgid "Time to display in minutes"
|
||||||
msgstr "Angezeigte Zeitspanne in Minuten"
|
msgstr "Angezeigte Zeitspanne in Minuten"
|
||||||
@ -114,6 +129,15 @@ msgstr "Abgerundete Ecken um Videofenster"
|
|||||||
msgid "Display Channel Names in Header"
|
msgid "Display Channel Names in Header"
|
||||||
msgstr "Kanalnamen im Header anzeigen"
|
msgstr "Kanalnamen im Header anzeigen"
|
||||||
|
|
||||||
|
msgid "Display channel groups"
|
||||||
|
msgstr "Kanalgruppen anzeigen"
|
||||||
|
|
||||||
|
msgid "Height of channel groups (Perc. of osd height)"
|
||||||
|
msgstr "Höhe der Kanalgruppen (% der OSD Höhe)"
|
||||||
|
|
||||||
|
msgid "Width of channel groups (Perc. of osd width)"
|
||||||
|
msgstr "Breite der Kanalgruppen (% der OSD Breite)"
|
||||||
|
|
||||||
msgid "Show Channel Logos"
|
msgid "Show Channel Logos"
|
||||||
msgstr "Kanallogos anzeigen"
|
msgstr "Kanallogos anzeigen"
|
||||||
|
|
||||||
@ -168,6 +192,9 @@ msgstr "Button Schriftgröße"
|
|||||||
msgid "Channel Header Font Size"
|
msgid "Channel Header Font Size"
|
||||||
msgstr "Kanal Header Schriftgröße"
|
msgstr "Kanal Header Schriftgröße"
|
||||||
|
|
||||||
|
msgid "Channel Groups Font Size"
|
||||||
|
msgstr "Kanalgruppen Schriftgröße"
|
||||||
|
|
||||||
msgid "Grid Font Size"
|
msgid "Grid Font Size"
|
||||||
msgstr "Grid Schriftgröße"
|
msgstr "Grid Schriftgröße"
|
||||||
|
|
||||||
@ -188,6 +215,3 @@ msgstr "Timer wurde nicht gesetzt! Es existiert bereits ein Timer für diese Sen
|
|||||||
|
|
||||||
msgid "Timer set"
|
msgid "Timer set"
|
||||||
msgstr "Timer gesetzt"
|
msgstr "Timer gesetzt"
|
||||||
|
|
||||||
#~ msgid "Use color gradients"
|
|
||||||
#~ msgstr "Farbverläufe verwenden"
|
|
||||||
|
27
setup.c
27
setup.c
@ -48,7 +48,9 @@ void cTvguideSetup::Store(void) {
|
|||||||
SetupStore("themeIndex", tvguideConfig.themeIndex);
|
SetupStore("themeIndex", tvguideConfig.themeIndex);
|
||||||
SetupStore("displayMode", tvguideConfig.displayMode);
|
SetupStore("displayMode", tvguideConfig.displayMode);
|
||||||
SetupStore("displayStatusHeader", tvguideConfig.displayStatusHeader);
|
SetupStore("displayStatusHeader", tvguideConfig.displayStatusHeader);
|
||||||
|
SetupStore("displayChannelGroups", tvguideConfig.displayChannelGroups);
|
||||||
SetupStore("statusHeaderPercent", tvguideConfig.statusHeaderPercent);
|
SetupStore("statusHeaderPercent", tvguideConfig.statusHeaderPercent);
|
||||||
|
SetupStore("channelGroupsPercent", tvguideConfig.channelGroupsPercent);
|
||||||
SetupStore("scaleVideo", tvguideConfig.scaleVideo);
|
SetupStore("scaleVideo", tvguideConfig.scaleVideo);
|
||||||
SetupStore("decorateVideo", tvguideConfig.decorateVideo);
|
SetupStore("decorateVideo", tvguideConfig.decorateVideo);
|
||||||
SetupStore("roundedCorners", tvguideConfig.roundedCorners);
|
SetupStore("roundedCorners", tvguideConfig.roundedCorners);
|
||||||
@ -58,7 +60,9 @@ void cTvguideSetup::Store(void) {
|
|||||||
SetupStore("displayTime", tvguideConfig.displayTime);
|
SetupStore("displayTime", tvguideConfig.displayTime);
|
||||||
SetupStore("bigStepHours", tvguideConfig.bigStepHours);
|
SetupStore("bigStepHours", tvguideConfig.bigStepHours);
|
||||||
SetupStore("hugeStepHours", tvguideConfig.hugeStepHours);
|
SetupStore("hugeStepHours", tvguideConfig.hugeStepHours);
|
||||||
|
SetupStore("channelJumpMode", tvguideConfig.channelJumpMode);
|
||||||
SetupStore("jumpChannels", tvguideConfig.jumpChannels);
|
SetupStore("jumpChannels", tvguideConfig.jumpChannels);
|
||||||
|
SetupStore("hideLastGroup", tvguideConfig.hideLastGroup);
|
||||||
SetupStore("hideChannelLogos", tvguideConfig.hideChannelLogos);
|
SetupStore("hideChannelLogos", tvguideConfig.hideChannelLogos);
|
||||||
SetupStore("logoExtension", tvguideConfig.logoExtension);
|
SetupStore("logoExtension", tvguideConfig.logoExtension);
|
||||||
SetupStore("logoWidthRatio", tvguideConfig.logoWidthRatio);
|
SetupStore("logoWidthRatio", tvguideConfig.logoWidthRatio);
|
||||||
@ -82,12 +86,14 @@ void cTvguideSetup::Store(void) {
|
|||||||
SetupStore("FontStatusHeaderDelta", tvguideConfig.FontStatusHeaderDelta);
|
SetupStore("FontStatusHeaderDelta", tvguideConfig.FontStatusHeaderDelta);
|
||||||
SetupStore("FontStatusHeaderLargeDelta", tvguideConfig.FontStatusHeaderLargeDelta);
|
SetupStore("FontStatusHeaderLargeDelta", tvguideConfig.FontStatusHeaderLargeDelta);
|
||||||
SetupStore("FontChannelHeaderDelta", tvguideConfig.FontChannelHeaderDelta);
|
SetupStore("FontChannelHeaderDelta", tvguideConfig.FontChannelHeaderDelta);
|
||||||
|
SetupStore("FontChannelGroupsDelta", tvguideConfig.FontChannelGroupsDelta);
|
||||||
SetupStore("FontGridDelta", tvguideConfig.FontGridDelta);
|
SetupStore("FontGridDelta", tvguideConfig.FontGridDelta);
|
||||||
SetupStore("FontGridSmallDelta", tvguideConfig.FontGridSmallDelta);
|
SetupStore("FontGridSmallDelta", tvguideConfig.FontGridSmallDelta);
|
||||||
SetupStore("FontTimeLineWeekdayDelta", tvguideConfig.FontTimeLineWeekdayDelta);
|
SetupStore("FontTimeLineWeekdayDelta", tvguideConfig.FontTimeLineWeekdayDelta);
|
||||||
SetupStore("FontTimeLineDateDelta", tvguideConfig.FontTimeLineDateDelta);
|
SetupStore("FontTimeLineDateDelta", tvguideConfig.FontTimeLineDateDelta);
|
||||||
SetupStore("FontTimeLineTimeDelta", tvguideConfig.FontTimeLineTimeDelta);
|
SetupStore("FontTimeLineTimeDelta", tvguideConfig.FontTimeLineTimeDelta);
|
||||||
SetupStore("FontChannelHeaderHorizontalDelta", tvguideConfig.FontChannelHeaderHorizontalDelta);
|
SetupStore("FontChannelHeaderHorizontalDelta", tvguideConfig.FontChannelHeaderHorizontalDelta);
|
||||||
|
SetupStore("FontChannelGroupsHorizontalDelta", tvguideConfig.FontChannelGroupsHorizontalDelta);
|
||||||
SetupStore("FontGridHorizontalDelta", tvguideConfig.FontGridHorizontalDelta);
|
SetupStore("FontGridHorizontalDelta", tvguideConfig.FontGridHorizontalDelta);
|
||||||
SetupStore("FontGridHorizontalSmallDelta", tvguideConfig.FontGridHorizontalSmallDelta);
|
SetupStore("FontGridHorizontalSmallDelta", tvguideConfig.FontGridHorizontalSmallDelta);
|
||||||
SetupStore("FontTimeLineDateHorizontalDelta", tvguideConfig.FontTimeLineDateHorizontalDelta);
|
SetupStore("FontTimeLineDateHorizontalDelta", tvguideConfig.FontTimeLineDateHorizontalDelta);
|
||||||
@ -127,6 +133,8 @@ cMenuSetupGeneral::cMenuSetupGeneral(cTvguideConfig* data) : cMenuSetupSubMenu(
|
|||||||
themes.Load(*cString("tvguide"));
|
themes.Load(*cString("tvguide"));
|
||||||
timeFormatItems[0] = "12h";
|
timeFormatItems[0] = "12h";
|
||||||
timeFormatItems[1] = "24h";
|
timeFormatItems[1] = "24h";
|
||||||
|
jumpMode[0] = tr("x channels back / forward");
|
||||||
|
jumpMode[1] = tr("previous / next channel group");
|
||||||
useSubtitleRerunTexts[0] = tr("never");
|
useSubtitleRerunTexts[0] = tr("never");
|
||||||
useSubtitleRerunTexts[1] = tr("if exists");
|
useSubtitleRerunTexts[1] = tr("if exists");
|
||||||
useSubtitleRerunTexts[2] = tr("always");
|
useSubtitleRerunTexts[2] = tr("always");
|
||||||
@ -140,8 +148,12 @@ void cMenuSetupGeneral::Set(void) {
|
|||||||
if (themes.NumThemes())
|
if (themes.NumThemes())
|
||||||
Add(new cMenuEditStraItem(tr("Theme"), &tmpTvguideConfig->themeIndex, themes.NumThemes(), themes.Descriptions()));
|
Add(new cMenuEditStraItem(tr("Theme"), &tmpTvguideConfig->themeIndex, themes.NumThemes(), themes.Descriptions()));
|
||||||
Add(new cMenuEditBoolItem(tr("Rounded Corners"), &tmpTvguideConfig->roundedCorners));
|
Add(new cMenuEditBoolItem(tr("Rounded Corners"), &tmpTvguideConfig->roundedCorners));
|
||||||
|
|
||||||
Add(new cMenuEditIntItem(tr("Channels to Jump (Keys Green / Yellow)"), &tmpTvguideConfig->jumpChannels, 2, 30));
|
Add(new cMenuEditStraItem(tr("Channel Jump Mode (Keys Green / Yellow)"), &tmpTvguideConfig->channelJumpMode, 2, jumpMode));
|
||||||
|
if (tmpTvguideConfig->channelJumpMode == eNumJump) {
|
||||||
|
Add(new cMenuEditIntItem(cString::sprintf("%s%s", indent, tr("Channels to Jump")), &tmpTvguideConfig->jumpChannels, 2, 30));
|
||||||
|
}
|
||||||
|
Add(new cMenuEditBoolItem(tr("Hide last Channel Group"), &tmpTvguideConfig->hideLastGroup));
|
||||||
Add(new cMenuEditIntItem(tr("Time to display in minutes"), &tmpTvguideConfig->displayTime, 120, 320));
|
Add(new cMenuEditIntItem(tr("Time to display in minutes"), &tmpTvguideConfig->displayTime, 120, 320));
|
||||||
Add(new cMenuEditIntItem(tr("Big Step (Keys 1 / 3) in hours"), &tmpTvguideConfig->bigStepHours, 1, 12));
|
Add(new cMenuEditIntItem(tr("Big Step (Keys 1 / 3) in hours"), &tmpTvguideConfig->bigStepHours, 1, 12));
|
||||||
Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48));
|
Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48));
|
||||||
@ -203,6 +215,15 @@ void cMenuSetupScreenLayout::Set(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Add(new cMenuEditBoolItem(tr("Display Channel Names in Header"), &tmpTvguideConfig->displayChannelName));
|
Add(new cMenuEditBoolItem(tr("Display Channel Names in Header"), &tmpTvguideConfig->displayChannelName));
|
||||||
|
Add(new cMenuEditBoolItem(tr("Display channel groups"), &tmpTvguideConfig->displayChannelGroups));
|
||||||
|
if (tmpTvguideConfig->displayChannelGroups) {
|
||||||
|
if (tmpTvguideConfig->displayMode == eVertical) {
|
||||||
|
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", indent, tr("Height of channel groups (Perc. of osd height)")), &tmpTvguideConfig->channelGroupsPercent, 3, 30));
|
||||||
|
} else if (tmpTvguideConfig->displayMode == eHorizontal) {
|
||||||
|
Add(new cMenuEditIntItem(*cString::sprintf("%s%s", indent, tr("Width of channel groups (Perc. of osd width)")), &tmpTvguideConfig->channelGroupsPercent, 3, 30));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Add(new cMenuEditStraItem(tr("Show Channel Logos"), &tmpTvguideConfig->hideChannelLogos, 2, hideChannelLogosItems));
|
Add(new cMenuEditStraItem(tr("Show Channel Logos"), &tmpTvguideConfig->hideChannelLogos, 2, hideChannelLogosItems));
|
||||||
if (!tmpTvguideConfig->hideChannelLogos) {
|
if (!tmpTvguideConfig->hideChannelLogos) {
|
||||||
Add(InfoItem(tr("Logo Path used"), *tvguideConfig.logoPath));
|
Add(InfoItem(tr("Logo Path used"), *tvguideConfig.logoPath));
|
||||||
@ -257,6 +278,7 @@ void cMenuSetupFont::Set(void) {
|
|||||||
|
|
||||||
if (tmpTvguideConfig->displayMode == eVertical) {
|
if (tmpTvguideConfig->displayMode == eVertical) {
|
||||||
Add(new cMenuEditIntItem(tr("Channel Header Font Size"), &tmpTvguideConfig->FontChannelHeaderDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Channel Header Font Size"), &tmpTvguideConfig->FontChannelHeaderDelta, -30, 30));
|
||||||
|
Add(new cMenuEditIntItem(tr("Channel Groups Font Size"), &tmpTvguideConfig->FontChannelGroupsDelta, -30, 30));
|
||||||
Add(new cMenuEditIntItem(tr("Grid Font Size"), &tmpTvguideConfig->FontGridDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Grid Font Size"), &tmpTvguideConfig->FontGridDelta, -30, 30));
|
||||||
Add(new cMenuEditIntItem(tr("Grid Font Small Size"), &tmpTvguideConfig->FontGridSmallDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Grid Font Small Size"), &tmpTvguideConfig->FontGridSmallDelta, -30, 30));
|
||||||
Add(new cMenuEditIntItem(tr("Timeline Weekday Font Size"), &tmpTvguideConfig->FontTimeLineWeekdayDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Timeline Weekday Font Size"), &tmpTvguideConfig->FontTimeLineWeekdayDelta, -30, 30));
|
||||||
@ -264,6 +286,7 @@ void cMenuSetupFont::Set(void) {
|
|||||||
Add(new cMenuEditIntItem(tr("Timeline Time Font Size"), &tmpTvguideConfig->FontTimeLineTimeDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Timeline Time Font Size"), &tmpTvguideConfig->FontTimeLineTimeDelta, -30, 30));
|
||||||
} else if (tmpTvguideConfig->displayMode == eHorizontal) {
|
} else if (tmpTvguideConfig->displayMode == eHorizontal) {
|
||||||
Add(new cMenuEditIntItem(tr("Channel Header Font Size"), &tmpTvguideConfig->FontChannelHeaderHorizontalDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Channel Header Font Size"), &tmpTvguideConfig->FontChannelHeaderHorizontalDelta, -30, 30));
|
||||||
|
Add(new cMenuEditIntItem(tr("Channel Groups Font Size"), &tmpTvguideConfig->FontChannelGroupsHorizontalDelta, -30, 30));
|
||||||
Add(new cMenuEditIntItem(tr("Grid Font Size"), &tmpTvguideConfig->FontGridHorizontalDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Grid Font Size"), &tmpTvguideConfig->FontGridHorizontalDelta, -30, 30));
|
||||||
Add(new cMenuEditIntItem(tr("Grid Font Small Size"), &tmpTvguideConfig->FontGridHorizontalSmallDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Grid Font Small Size"), &tmpTvguideConfig->FontGridHorizontalSmallDelta, -30, 30));
|
||||||
Add(new cMenuEditIntItem(tr("Timeline Date Font Size"), &tmpTvguideConfig->FontTimeLineDateHorizontalDelta, -30, 30));
|
Add(new cMenuEditIntItem(tr("Timeline Date Font Size"), &tmpTvguideConfig->FontTimeLineDateHorizontalDelta, -30, 30));
|
||||||
|
1
setup.h
1
setup.h
@ -29,6 +29,7 @@ class cMenuSetupGeneral : public cMenuSetupSubMenu {
|
|||||||
virtual eOSState ProcessKey(eKeys Key);
|
virtual eOSState ProcessKey(eKeys Key);
|
||||||
cThemes themes;
|
cThemes themes;
|
||||||
const char * timeFormatItems[2];
|
const char * timeFormatItems[2];
|
||||||
|
const char * jumpMode[2];
|
||||||
const char *useSubtitleRerunTexts[3];
|
const char *useSubtitleRerunTexts[3];
|
||||||
void Set(void);
|
void Set(void);
|
||||||
public:
|
public:
|
||||||
|
16
timeline.c
16
timeline.c
@ -6,11 +6,11 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
|||||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(3, cRect(0,
|
dateViewer = new cStyledPixmap(osdManager.requestPixmap(3, cRect(0,
|
||||||
tvguideConfig.statusHeaderHeight,
|
tvguideConfig.statusHeaderHeight,
|
||||||
tvguideConfig.timeLineWidth,
|
tvguideConfig.timeLineWidth,
|
||||||
tvguideConfig.channelHeaderHeight)));
|
tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight)));
|
||||||
timeline = osdManager.requestPixmap(2, cRect(0,
|
timeline = osdManager.requestPixmap(2, cRect(0,
|
||||||
tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight,
|
tvguideConfig.statusHeaderHeight + tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight,
|
||||||
tvguideConfig.timeLineWidth,
|
tvguideConfig.timeLineWidth,
|
||||||
tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.footerHeight)
|
tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.channelGroupsHeight - tvguideConfig.footerHeight)
|
||||||
, cRect(0,
|
, cRect(0,
|
||||||
0,
|
0,
|
||||||
tvguideConfig.timeLineWidth,
|
tvguideConfig.timeLineWidth,
|
||||||
@ -18,11 +18,11 @@ cTimeLine::cTimeLine(cMyTime *myTime) {
|
|||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
dateViewer = new cStyledPixmap(osdManager.requestPixmap(3, cRect(0,
|
dateViewer = new cStyledPixmap(osdManager.requestPixmap(3, cRect(0,
|
||||||
tvguideConfig.statusHeaderHeight,
|
tvguideConfig.statusHeaderHeight,
|
||||||
tvguideConfig.channelHeaderWidth,
|
tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
||||||
tvguideConfig.timeLineHeight)));
|
tvguideConfig.timeLineHeight)));
|
||||||
timeline = osdManager.requestPixmap(2, cRect(tvguideConfig.channelHeaderWidth,
|
timeline = osdManager.requestPixmap(2, cRect(tvguideConfig.channelHeaderWidth + tvguideConfig.channelGroupsWidth,
|
||||||
tvguideConfig.statusHeaderHeight,
|
tvguideConfig.statusHeaderHeight,
|
||||||
tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth,
|
tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth - tvguideConfig.channelGroupsWidth,
|
||||||
tvguideConfig.timeLineHeight)
|
tvguideConfig.timeLineHeight)
|
||||||
, cRect(0,
|
, cRect(0,
|
||||||
0,
|
0,
|
||||||
@ -54,8 +54,8 @@ void cTimeLine::drawDateViewer() {
|
|||||||
int textHeight = tvguideConfig.FontTimeLineWeekday->Height();
|
int textHeight = tvguideConfig.FontTimeLineWeekday->Height();
|
||||||
int weekdayWidth = tvguideConfig.FontTimeLineWeekday->Width(*weekDay);
|
int weekdayWidth = tvguideConfig.FontTimeLineWeekday->Width(*weekDay);
|
||||||
int dateWidth = tvguideConfig.FontTimeLineDate->Width(*date);
|
int dateWidth = tvguideConfig.FontTimeLineDate->Width(*date);
|
||||||
dateViewer->DrawText(cPoint((tvguideConfig.timeLineWidth-weekdayWidth)/2, (tvguideConfig.channelHeaderHeight-2*textHeight)/2), *weekDay, theme.Color(clrFontHeader), colorFontBack, tvguideConfig.FontTimeLineWeekday);
|
dateViewer->DrawText(cPoint((tvguideConfig.timeLineWidth-weekdayWidth)/2, (tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight -2*textHeight)/2), *weekDay, theme.Color(clrFontHeader), colorFontBack, tvguideConfig.FontTimeLineWeekday);
|
||||||
dateViewer->DrawText(cPoint((tvguideConfig.timeLineWidth-dateWidth)/2, (tvguideConfig.channelHeaderHeight-2*textHeight)/2 + textHeight + 5), *date, theme.Color(clrFontHeader), colorFontBack, tvguideConfig.FontTimeLineDate);
|
dateViewer->DrawText(cPoint((tvguideConfig.timeLineWidth-dateWidth)/2, (tvguideConfig.channelHeaderHeight + tvguideConfig.channelGroupsHeight -2*textHeight)/2 + textHeight + 5), *date, theme.Color(clrFontHeader), colorFontBack, tvguideConfig.FontTimeLineDate);
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
cString strDate = cString::sprintf("%s %s", *weekDay, *date);
|
cString strDate = cString::sprintf("%s %s", *weekDay, *date);
|
||||||
int x = (dateViewer->Width() - tvguideConfig.FontTimeLineDateHorizontal->Width(*strDate))/2;
|
int x = (dateViewer->Width() - tvguideConfig.FontTimeLineDateHorizontal->Width(*strDate))/2;
|
||||||
|
8
timer.c
8
timer.c
@ -16,9 +16,9 @@ void cMyTime::Now() {
|
|||||||
tStart = t;
|
tStart = t;
|
||||||
tStart = GetRounded();
|
tStart = GetRounded();
|
||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
tEnd = tStart + (tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.footerHeight)/tvguideConfig.minutePixel*60;
|
tEnd = tStart + (tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.channelGroupsHeight - tvguideConfig.footerHeight)/tvguideConfig.minutePixel*60;
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
tEnd = tStart + (tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth)/tvguideConfig.minutePixel*60;
|
tEnd = tStart + (tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth - tvguideConfig.channelGroupsWidth)/tvguideConfig.minutePixel*60;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,9 +39,9 @@ bool cMyTime::DelStep(int step) {
|
|||||||
void cMyTime::SetTime(time_t newTime) {
|
void cMyTime::SetTime(time_t newTime) {
|
||||||
tStart = newTime;
|
tStart = newTime;
|
||||||
if (tvguideConfig.displayMode == eVertical) {
|
if (tvguideConfig.displayMode == eVertical) {
|
||||||
tEnd = tStart + (tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.footerHeight)/tvguideConfig.minutePixel*60;
|
tEnd = tStart + (tvguideConfig.osdHeight - tvguideConfig.statusHeaderHeight - tvguideConfig.channelHeaderHeight - tvguideConfig.channelGroupsHeight - tvguideConfig.footerHeight)/tvguideConfig.minutePixel*60;
|
||||||
} else if (tvguideConfig.displayMode == eHorizontal) {
|
} else if (tvguideConfig.displayMode == eHorizontal) {
|
||||||
tEnd = tStart + (tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth)/tvguideConfig.minutePixel*60;
|
tEnd = tStart + (tvguideConfig.osdWidth - tvguideConfig.channelHeaderWidth - tvguideConfig.channelGroupsWidth)/tvguideConfig.minutePixel*60;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
123
tvguideosd.c
123
tvguideosd.c
@ -57,6 +57,8 @@ cOsdManager osdManager;
|
|||||||
#include "statusheader.c"
|
#include "statusheader.c"
|
||||||
#include "detailview.c"
|
#include "detailview.c"
|
||||||
#include "channelcolumn.c"
|
#include "channelcolumn.c"
|
||||||
|
#include "channelgroup.c"
|
||||||
|
#include "channelgroups.c"
|
||||||
#include "footer.c"
|
#include "footer.c"
|
||||||
|
|
||||||
#include "tvguideosd.h"
|
#include "tvguideosd.h"
|
||||||
@ -78,6 +80,7 @@ cTvGuideOsd::~cTvGuideOsd() {
|
|||||||
if (detailView)
|
if (detailView)
|
||||||
delete detailView;
|
delete detailView;
|
||||||
delete timeLine;
|
delete timeLine;
|
||||||
|
delete channelGroups;
|
||||||
delete footer;
|
delete footer;
|
||||||
cMessageBox::Destroy();
|
cMessageBox::Destroy();
|
||||||
osdManager.deleteOsd();
|
osdManager.deleteOsd();
|
||||||
@ -110,10 +113,15 @@ void cTvGuideOsd::drawOsd() {
|
|||||||
timeLine->drawDateViewer();
|
timeLine->drawDateViewer();
|
||||||
timeLine->drawTimeline();
|
timeLine->drawTimeline();
|
||||||
timeLine->drawClock();
|
timeLine->drawClock();
|
||||||
footer = new cFooter();
|
channelGroups = new cChannelGroups();
|
||||||
|
channelGroups->ReadChannelGroups();
|
||||||
|
//channelGroups->DumpGroups();
|
||||||
|
footer = new cFooter(channelGroups);
|
||||||
footer->drawRedButton();
|
footer->drawRedButton();
|
||||||
footer->drawGreenButton();
|
if (tvguideConfig.channelJumpMode == eNumJump) {
|
||||||
footer->drawYellowButton();
|
footer->drawGreenButton();
|
||||||
|
footer->drawYellowButton();
|
||||||
|
}
|
||||||
footer->drawBlueButton();
|
footer->drawBlueButton();
|
||||||
osdManager.flush();
|
osdManager.flush();
|
||||||
readChannels(startChannel);
|
readChannels(startChannel);
|
||||||
@ -124,21 +132,34 @@ void cTvGuideOsd::drawOsd() {
|
|||||||
|
|
||||||
void cTvGuideOsd::readChannels(const cChannel *channelStart) {
|
void cTvGuideOsd::readChannels(const cChannel *channelStart) {
|
||||||
int i=0;
|
int i=0;
|
||||||
|
bool foundEnough = false;
|
||||||
columns.Clear();
|
columns.Clear();
|
||||||
if (!channelStart)
|
if (!channelStart)
|
||||||
return;
|
return;
|
||||||
for (const cChannel *channel = channelStart; channel; channel = Channels.Next(channel)) {
|
for (const cChannel *channel = channelStart; channel; channel = Channels.Next(channel)) {
|
||||||
if (!channel->GroupSep()) {
|
if (!channel->GroupSep()) {
|
||||||
cChannelColumn *column = new cChannelColumn(i, channel, myTime);
|
if (channelGroups->IsInLastGroup(channel)) {
|
||||||
if (column->readGrids()) {
|
break;
|
||||||
columns.Add(column);
|
}
|
||||||
i++;
|
cChannelColumn *column = new cChannelColumn(i, channel, myTime);
|
||||||
} else {
|
if (column->readGrids()) {
|
||||||
delete column;
|
columns.Add(column);
|
||||||
|
i++;
|
||||||
|
} else {
|
||||||
|
delete column;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if (i == tvguideConfig.numGrids) {
|
||||||
if (i == tvguideConfig.numGrids)
|
foundEnough = true;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!foundEnough) {
|
||||||
|
int numCurrent = columns.Count();
|
||||||
|
int numBack = tvguideConfig.numGrids - numCurrent;
|
||||||
|
int newChannelNumber = columns.First()->getChannel()->Number() - numBack;
|
||||||
|
const cChannel *newStart = Channels.GetByNumber(newChannelNumber);
|
||||||
|
readChannels(newStart);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,6 +172,12 @@ void cTvGuideOsd::drawGridsChannelJump() {
|
|||||||
if (tvguideConfig.displayStatusHeader) {
|
if (tvguideConfig.displayStatusHeader) {
|
||||||
statusHeader->DrawInfoText(activeGrid);
|
statusHeader->DrawInfoText(activeGrid);
|
||||||
}
|
}
|
||||||
|
if (activeGrid && (tvguideConfig.channelJumpMode == eGroupJump)) {
|
||||||
|
footer->UpdateGroupButtons(activeGrid->column->getChannel());
|
||||||
|
}
|
||||||
|
if (tvguideConfig.displayChannelGroups) {
|
||||||
|
channelGroups->DrawChannelGroups(columns.First()->getChannel(), columns.Last()->getChannel());
|
||||||
|
}
|
||||||
for (cChannelColumn *column = columns.First(); column; column = columns.Next(column)) {
|
for (cChannelColumn *column = columns.First(); column; column = columns.Next(column)) {
|
||||||
column->createHeader();
|
column->createHeader();
|
||||||
column->drawGrids();
|
column->drawGrids();
|
||||||
@ -197,10 +224,14 @@ void cTvGuideOsd::setNextActiveGrid(cGrid *next) {
|
|||||||
|
|
||||||
void cTvGuideOsd::channelForward() {
|
void cTvGuideOsd::channelForward() {
|
||||||
cChannelColumn *colRight = columns.Next(activeGrid->column);
|
cChannelColumn *colRight = columns.Next(activeGrid->column);
|
||||||
|
bool colAdded = false;
|
||||||
if (!colRight) {
|
if (!colRight) {
|
||||||
const cChannel *channelRight = activeGrid->column->getChannel();
|
const cChannel *channelRight = activeGrid->column->getChannel();
|
||||||
while (channelRight = Channels.Next(channelRight)) {
|
while (channelRight = Channels.Next(channelRight)) {
|
||||||
if (!channelRight->GroupSep()) {
|
if (!channelRight->GroupSep()) {
|
||||||
|
if (channelGroups->IsInLastGroup(channelRight)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
colRight = new cChannelColumn(tvguideConfig.numGrids - 1, channelRight, myTime);
|
colRight = new cChannelColumn(tvguideConfig.numGrids - 1, channelRight, myTime);
|
||||||
if (colRight->readGrids()) {
|
if (colRight->readGrids()) {
|
||||||
break;
|
break;
|
||||||
@ -211,6 +242,7 @@ void cTvGuideOsd::channelForward() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (colRight) {
|
if (colRight) {
|
||||||
|
colAdded = true;
|
||||||
if (columns.Count() == tvguideConfig.numGrids) {
|
if (columns.Count() == tvguideConfig.numGrids) {
|
||||||
cChannelColumn *cFirst = columns.First();
|
cChannelColumn *cFirst = columns.First();
|
||||||
columns.Del(cFirst);
|
columns.Del(cFirst);
|
||||||
@ -231,11 +263,18 @@ void cTvGuideOsd::channelForward() {
|
|||||||
setNextActiveGrid(right);
|
setNextActiveGrid(right);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (tvguideConfig.displayChannelGroups && colAdded) {
|
||||||
|
channelGroups->DrawChannelGroups(columns.First()->getChannel(), columns.Last()->getChannel());
|
||||||
|
}
|
||||||
|
if (activeGrid && (tvguideConfig.channelJumpMode == eGroupJump)) {
|
||||||
|
footer->UpdateGroupButtons(activeGrid->column->getChannel());
|
||||||
|
}
|
||||||
osdManager.flush();
|
osdManager.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cTvGuideOsd::channelBack() {
|
void cTvGuideOsd::channelBack() {
|
||||||
cChannelColumn *colLeft = columns.Prev(activeGrid->column);
|
cChannelColumn *colLeft = columns.Prev(activeGrid->column);
|
||||||
|
bool colAdded = false;
|
||||||
if (!colLeft) {
|
if (!colLeft) {
|
||||||
const cChannel *channelLeft = activeGrid->column->getChannel();
|
const cChannel *channelLeft = activeGrid->column->getChannel();
|
||||||
while (channelLeft = Channels.Prev(channelLeft)) {
|
while (channelLeft = Channels.Prev(channelLeft)) {
|
||||||
@ -250,6 +289,7 @@ void cTvGuideOsd::channelBack() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (colLeft) {
|
if (colLeft) {
|
||||||
|
colAdded = true;
|
||||||
if (columns.Count() == tvguideConfig.numGrids) {
|
if (columns.Count() == tvguideConfig.numGrids) {
|
||||||
cChannelColumn *cLast = columns.Last();
|
cChannelColumn *cLast = columns.Last();
|
||||||
columns.Del(cLast);
|
columns.Del(cLast);
|
||||||
@ -271,6 +311,13 @@ void cTvGuideOsd::channelBack() {
|
|||||||
setNextActiveGrid(left);
|
setNextActiveGrid(left);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (tvguideConfig.displayChannelGroups && colAdded) {
|
||||||
|
channelGroups->DrawChannelGroups(columns.First()->getChannel(), columns.Last()->getChannel());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activeGrid && (tvguideConfig.channelJumpMode == eGroupJump)) {
|
||||||
|
footer->UpdateGroupButtons(activeGrid->column->getChannel());
|
||||||
|
}
|
||||||
osdManager.flush();
|
osdManager.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,16 +487,25 @@ void cTvGuideOsd::processKeyRed() {
|
|||||||
void cTvGuideOsd::processKeyGreen() {
|
void cTvGuideOsd::processKeyGreen() {
|
||||||
if (activeGrid == NULL)
|
if (activeGrid == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const cChannel *currentChannel = activeGrid->column->getChannel();
|
const cChannel *currentChannel = activeGrid->column->getChannel();
|
||||||
const cChannel *prev = NULL;
|
const cChannel *prev = NULL;
|
||||||
int i = tvguideConfig.jumpChannels + 1;
|
|
||||||
for (const cChannel *channel = currentChannel; channel; channel = Channels.Prev(channel)) {
|
if (tvguideConfig.channelJumpMode == eGroupJump) {
|
||||||
if (!channel->GroupSep()) {
|
int prevNum = channelGroups->GetPrevGroupChannelNumber(currentChannel);
|
||||||
prev = channel;
|
if (prevNum) {
|
||||||
i--;
|
prev = Channels.GetByNumber(prevNum);
|
||||||
|
}
|
||||||
|
} else if (tvguideConfig.channelJumpMode == eNumJump) {
|
||||||
|
int i = tvguideConfig.jumpChannels + 1;
|
||||||
|
for (const cChannel *channel = currentChannel; channel; channel = Channels.Prev(channel)) {
|
||||||
|
if (!channel->GroupSep()) {
|
||||||
|
prev = channel;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
if (i == 0)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (i == 0)
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if (prev) {
|
if (prev) {
|
||||||
readChannels(prev);
|
readChannels(prev);
|
||||||
@ -463,16 +519,29 @@ void cTvGuideOsd::processKeyGreen() {
|
|||||||
void cTvGuideOsd::processKeyYellow() {
|
void cTvGuideOsd::processKeyYellow() {
|
||||||
if (activeGrid == NULL)
|
if (activeGrid == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const cChannel *currentChannel = activeGrid->column->getChannel();
|
const cChannel *currentChannel = activeGrid->column->getChannel();
|
||||||
const cChannel *next = NULL;
|
const cChannel *next = NULL;
|
||||||
int i=0;
|
|
||||||
for (const cChannel *channel = currentChannel; channel; channel = Channels.Next(channel)) {
|
if (tvguideConfig.channelJumpMode == eGroupJump) {
|
||||||
if (!channel->GroupSep()) {
|
int nextNum = channelGroups->GetNextGroupChannelNumber(currentChannel);
|
||||||
next = channel;
|
if (nextNum) {
|
||||||
i++;
|
next = Channels.GetByNumber(nextNum);
|
||||||
|
}
|
||||||
|
} else if (tvguideConfig.channelJumpMode == eNumJump) {
|
||||||
|
int i=0;
|
||||||
|
for (const cChannel *channel = currentChannel; channel; channel = Channels.Next(channel)) {
|
||||||
|
if (channelGroups->IsInLastGroup(channel)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!channel->GroupSep()) {
|
||||||
|
next = channel;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (i == (tvguideConfig.jumpChannels+1)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (i == (tvguideConfig.jumpChannels+1))
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
if (next) {
|
if (next) {
|
||||||
readChannels(next);
|
readChannels(next);
|
||||||
|
@ -11,6 +11,7 @@ private:
|
|||||||
cStatusHeader *statusHeader;
|
cStatusHeader *statusHeader;
|
||||||
cDetailView *detailView;
|
cDetailView *detailView;
|
||||||
cTimeLine *timeLine;
|
cTimeLine *timeLine;
|
||||||
|
cChannelGroups *channelGroups;
|
||||||
cFooter *footer;
|
cFooter *footer;
|
||||||
bool detailViewActive;
|
bool detailViewActive;
|
||||||
void drawOsd();
|
void drawOsd();
|
||||||
|
Loading…
Reference in New Issue
Block a user