diff options
author | louis <louis.braun@gmx.de> | 2012-11-28 19:42:38 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2012-11-28 19:42:38 +0100 |
commit | ae248bc9e2350d9d17fe2df75b2fa25f0d2a7770 (patch) | |
tree | 7bcd7b9f4efe1fb864fbbf75f303879011eb7940 | |
parent | d4c74dc0b5a3dd62161a9b29ec2c98cc9f223783 (diff) | |
download | skin-nopacity-ae248bc9e2350d9d17fe2df75b2fa25f0d2a7770.tar.gz skin-nopacity-ae248bc9e2350d9d17fe2df75b2fa25f0d2a7770.tar.bz2 |
Added latest scaling patch from Zoolook and makefile patch
-rw-r--r-- | .dependencies | 168 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | displaymenuview.c | 24 | ||||
-rw-r--r-- | displaymenuview.c.orig | 629 | ||||
-rw-r--r-- | displaymenuview.h | 4 | ||||
-rwxr-xr-x | libvdr-skinnopacity.so | bin | 0 -> 503780 bytes | |||
-rw-r--r-- | po/de_DE.mo | bin | 0 -> 5587 bytes | |||
-rw-r--r-- | po/skinnopacity.pot | 207 | ||||
-rw-r--r-- | skinnopacity.o | bin | 0 -> 615200 bytes |
9 files changed, 1021 insertions, 14 deletions
diff --git a/.dependencies b/.dependencies new file mode 100644 index 0000000..220a30c --- /dev/null +++ b/.dependencies @@ -0,0 +1,168 @@ +skinnopacity.o: skinnopacity.c /usr/local/src/VDR/include/vdr/plugin.h \ + /usr/local/src/VDR/include/vdr/i18n.h \ + /usr/local/src/VDR/include/vdr/tools.h \ + /usr/local/src/VDR/include/vdr/config.h \ + /usr/local/src/VDR/include/vdr/font.h \ + /usr/local/src/VDR/include/vdr/menuitems.h \ + /usr/local/src/VDR/include/vdr/dvbdevice.h \ + /usr/local/src/VDR/include/vdr/device.h \ + /usr/local/src/VDR/include/vdr/channels.h \ + /usr/local/src/VDR/include/vdr/sources.h \ + /usr/local/src/VDR/include/vdr/thread.h \ + /usr/local/src/VDR/include/vdr/ci.h \ + /usr/local/src/VDR/include/vdr/dvbsubtitle.h \ + /usr/local/src/VDR/include/vdr/osd.h \ + /usr/local/src/VDR/include/vdr/eit.h \ + /usr/local/src/VDR/include/vdr/filter.h \ + /usr/local/src/VDR/include/vdr/nit.h \ + /usr/local/src/VDR/include/vdr/pat.h \ + /usr/local/src/VDR/include/vdr/remux.h \ + /usr/local/src/VDR/include/vdr/ringbuffer.h \ + /usr/local/src/VDR/include/vdr/sdt.h \ + /usr/local/src/VDR/include/vdr/sections.h \ + /usr/local/src/VDR/include/vdr/spu.h \ + /usr/local/src/VDR/include/vdr/osdbase.h \ + /usr/local/src/VDR/include/vdr/skins.h \ + /usr/local/src/VDR/include/vdr/epg.h \ + /usr/local/src/VDR/include/libsi/section.h \ + /usr/local/src/VDR/include/libsi/si.h \ + /usr/local/src/VDR/include/libsi/util.h \ + /usr/local/src/VDR/include/libsi/headers.h \ + /usr/local/src/VDR/include/vdr/keys.h \ + /usr/local/src/VDR/include/vdr/recording.h \ + /usr/local/src/VDR/include/vdr/timers.h \ + /usr/local/src/VDR/include/vdr/themes.h nopacity.c \ + /usr/local/src/VDR/include/vdr/osd.h \ + /usr/local/src/VDR/include/vdr/menu.h \ + /usr/local/src/VDR/include/vdr/dvbplayer.h \ + /usr/local/src/VDR/include/vdr/player.h \ + /usr/local/src/VDR/include/vdr/recorder.h \ + /usr/local/src/VDR/include/vdr/receiver.h config.c config.h setup.c \ + setup.h imageloader.c imageloader.h \ + /usr/local/src/VDR/include/vdr/skins.h \ + /usr/include/ImageMagick/Magick++.h \ + /usr/include/ImageMagick/Magick++/Include.h \ + /usr/include/ImageMagick/magick/magick-config.h \ + /usr/include/ImageMagick/magick/MagickCore.h \ + /usr/include/ImageMagick/magick/magick-type.h \ + /usr/include/ImageMagick/magick/accelerate.h \ + /usr/include/ImageMagick/magick/morphology.h \ + /usr/include/ImageMagick/magick/geometry.h \ + /usr/include/ImageMagick/magick/animate.h \ + /usr/include/ImageMagick/magick/annotate.h \ + /usr/include/ImageMagick/magick/draw.h \ + /usr/include/ImageMagick/magick/image.h \ + /usr/include/ImageMagick/magick/color.h \ + /usr/include/ImageMagick/magick/pixel.h \ + /usr/include/ImageMagick/magick/colorspace.h \ + /usr/include/ImageMagick/magick/constitute.h \ + /usr/include/ImageMagick/magick/exception.h \ + /usr/include/ImageMagick/magick/semaphore.h \ + /usr/include/ImageMagick/magick/blob.h \ + /usr/include/ImageMagick/magick/stream.h \ + /usr/include/ImageMagick/magick/cache-view.h \ + /usr/include/ImageMagick/magick/composite.h \ + /usr/include/ImageMagick/magick/compress.h \ + /usr/include/ImageMagick/magick/effect.h \ + /usr/include/ImageMagick/magick/layer.h \ + /usr/include/ImageMagick/magick/locale_.h \ + /usr/include/ImageMagick/magick/hashmap.h \ + /usr/include/ImageMagick/magick/monitor.h \ + /usr/include/ImageMagick/magick/profile.h \ + /usr/include/ImageMagick/magick/string_.h \ + /usr/include/ImageMagick/magick/quantum.h \ + /usr/include/ImageMagick/magick/resample.h \ + /usr/include/ImageMagick/magick/resize.h \ + /usr/include/ImageMagick/magick/timer.h \ + /usr/include/ImageMagick/magick/type.h \ + /usr/include/ImageMagick/magick/artifact.h \ + /usr/include/ImageMagick/magick/attribute.h \ + /usr/include/ImageMagick/magick/cache.h \ + /usr/include/ImageMagick/magick/cipher.h \ + /usr/include/ImageMagick/magick/client.h \ + /usr/include/ImageMagick/magick/coder.h \ + /usr/include/ImageMagick/magick/colormap.h \ + /usr/include/ImageMagick/magick/compare.h \ + /usr/include/ImageMagick/magick/configure.h \ + /usr/include/ImageMagick/magick/decorate.h \ + /usr/include/ImageMagick/magick/delegate.h \ + /usr/include/ImageMagick/magick/deprecate.h \ + /usr/include/ImageMagick/magick/quantize.h \ + /usr/include/ImageMagick/magick/registry.h \ + /usr/include/ImageMagick/magick/display.h \ + /usr/include/ImageMagick/magick/distort.h \ + /usr/include/ImageMagick/magick/enhance.h \ + /usr/include/ImageMagick/magick/feature.h \ + /usr/include/ImageMagick/magick/fourier.h \ + /usr/include/ImageMagick/magick/fx.h \ + /usr/include/ImageMagick/magick/gem.h \ + /usr/include/ImageMagick/magick/random_.h \ + /usr/include/ImageMagick/magick/histogram.h \ + /usr/include/ImageMagick/magick/identify.h \ + /usr/include/ImageMagick/magick/image-view.h \ + /usr/include/ImageMagick/magick/list.h \ + /usr/include/ImageMagick/magick/log.h \ + /usr/include/ImageMagick/magick/magic.h \ + /usr/include/ImageMagick/magick/magick.h \ + /usr/include/ImageMagick/magick/matrix.h \ + /usr/include/ImageMagick/magick/memory_.h \ + /usr/include/ImageMagick/magick/module.h \ + /usr/include/ImageMagick/magick/version.h \ + /usr/include/ImageMagick/magick/mime.h \ + /usr/include/ImageMagick/magick/montage.h \ + /usr/include/ImageMagick/magick/option.h \ + /usr/include/ImageMagick/magick/paint.h \ + /usr/include/ImageMagick/magick/policy.h \ + /usr/include/ImageMagick/magick/prepress.h \ + /usr/include/ImageMagick/magick/property.h \ + /usr/include/ImageMagick/magick/resource_.h \ + /usr/include/ImageMagick/magick/segment.h \ + /usr/include/ImageMagick/magick/shear.h \ + /usr/include/ImageMagick/magick/signature.h \ + /usr/include/ImageMagick/magick/splay-tree.h \ + /usr/include/ImageMagick/magick/statistic.h \ + /usr/include/ImageMagick/magick/token.h \ + /usr/include/ImageMagick/magick/transform.h \ + /usr/include/ImageMagick/magick/threshold.h \ + /usr/include/ImageMagick/magick/utility.h \ + /usr/include/ImageMagick/magick/xml-tree.h \ + /usr/include/ImageMagick/magick/xwindow.h \ + /usr/include/ImageMagick/wand/MagickWand.h \ + /usr/include/ImageMagick/wand/animate.h \ + /usr/include/ImageMagick/wand/compare.h \ + /usr/include/ImageMagick/wand/composite.h \ + /usr/include/ImageMagick/wand/conjure.h \ + /usr/include/ImageMagick/wand/convert.h \ + /usr/include/ImageMagick/wand/deprecate.h \ + /usr/include/ImageMagick/wand/drawing-wand.h \ + /usr/include/ImageMagick/wand/pixel-wand.h \ + /usr/include/ImageMagick/wand/magick-wand.h \ + /usr/include/ImageMagick/wand/pixel-iterator.h \ + /usr/include/ImageMagick/wand/display.h \ + /usr/include/ImageMagick/wand/identify.h \ + /usr/include/ImageMagick/wand/import.h \ + /usr/include/ImageMagick/wand/magick-property.h \ + /usr/include/ImageMagick/wand/magick-image.h \ + /usr/include/ImageMagick/wand/mogrify.h \ + /usr/include/ImageMagick/wand/montage.h \ + /usr/include/ImageMagick/wand/stream.h \ + /usr/include/ImageMagick/wand/wand-view.h \ + /usr/include/ImageMagick/Magick++/Image.h \ + /usr/include/ImageMagick/Magick++/Blob.h \ + /usr/include/ImageMagick/Magick++/Color.h \ + /usr/include/ImageMagick/Magick++/Drawable.h \ + /usr/include/ImageMagick/Magick++/Geometry.h \ + /usr/include/ImageMagick/Magick++/Exception.h \ + /usr/include/ImageMagick/Magick++/TypeMetric.h \ + /usr/include/ImageMagick/Magick++/Pixels.h \ + /usr/include/ImageMagick/Magick++/STL.h \ + /usr/include/ImageMagick/Magick++/CoderInfo.h \ + /usr/include/ImageMagick/Magick++/Montage.h nopacity.h \ + /usr/local/src/VDR/include/vdr/videodir.h helpers.c displaychannel.c \ + symbols/audio.xpm symbols/dolbydigital.xpm symbols/encrypted.xpm \ + symbols/radio.xpm symbols/recording.xpm symbols/teletext.xpm \ + displaychannel.h menuitem.c menuitem.h menudetailview.c menudetailview.h \ + displaymenuview.c displaymenuview.h displaymenu.c displaymenu.h \ + displayreplay.c displayreplay.h displayvolume.c symbols/mute.xpm \ + displayvolume.h displaytracks.c displaytracks.h displaymessage.c \ + displaymessage.h @@ -50,6 +50,9 @@ INCLUDES += -I/usr/include/ImageMagick DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +ifdef YAEPG +DEFINES += -DUSE_YAEPG +endif ### The object files (add further files here): OBJS = $(PLUGIN).o diff --git a/displaymenuview.c b/displaymenuview.c index abd921c..53fe6b2 100644 --- a/displaymenuview.c +++ b/displaymenuview.c @@ -41,11 +41,11 @@ cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) { #ifdef USE_YAEPG if (config.scalePicture) { tArea availableArea; - availableArea.x1 = 0; - availableArea.y1 = 0; - availableArea.x2 = osdWidth; - availableArea.y2 = osdHeight; - ScalePreserveAspect(osd->vidWin, 4.0/3.0, availableArea); + availableArea.x1 = -osdLeft; + availableArea.y1 = -osdTop; + availableArea.x2 = osdWidth + osdLeft; + availableArea.y2 = osdHeight + osdTop; + ScalePreserveAspect(osd->vidWin, vidAspect, availableArea); osd->vidWin.bpp = 12; } #endif @@ -57,7 +57,7 @@ cOsd *cNopacityDisplayMenuView::createOsd(void) { osdWidth = cOsd::OsdWidth(); osdHeight = cOsd::OsdHeight(); osd = CreateOsd(osdLeft, osdTop, osdWidth, osdHeight); - cDevice::PrimaryDevice()->GetVideoSize(screenWidth, screenHeight, aspect); + cDevice::PrimaryDevice()->GetVideoSize(vidWidth, vidHeight, vidAspect); return osd; } @@ -298,7 +298,7 @@ void cNopacityDisplayMenuView::AdjustContentBackground(bool contentNarrow, bool availableArea.y1 = osdTop + headerHeight; availableArea.x2 = contentWidthFull; availableArea.y2 = availableArea.y1 + contentHeight; - ScalePreserveAspect(osd->vidWin, aspect, availableArea); + ScalePreserveAspect(osd->vidWin, vidAspect, availableArea); osd->vidWin.bpp = 12; } #endif @@ -307,11 +307,11 @@ void cNopacityDisplayMenuView::AdjustContentBackground(bool contentNarrow, bool #ifdef USE_YAEPG if (config.scalePicture) { tArea availableArea; - availableArea.x1 = 0; - availableArea.y1 = 0; - availableArea.x2 = osdWidth; - availableArea.y2 = osdHeight; - ScalePreserveAspect(osd->vidWin, aspect, availableArea); + availableArea.x1 = -osdLeft; + availableArea.y1 = -osdTop; + availableArea.x2 = osdWidth + osdLeft; + availableArea.y2 = osdHeight + osdTop; + ScalePreserveAspect(osd->vidWin, vidAspect, availableArea); osd->vidWin.bpp = 12; } #endif diff --git a/displaymenuview.c.orig b/displaymenuview.c.orig new file mode 100644 index 0000000..abd921c --- /dev/null +++ b/displaymenuview.c.orig @@ -0,0 +1,629 @@ +#include "displaymenuview.h" + +cNopacityTimer::cNopacityTimer(cOsd *osd) { + this->osd = osd; +} + +cNopacityTimer::~cNopacityTimer(void) { + osd->DestroyPixmap(pixmap); +} + +cNopacityDisplayMenuView::cNopacityDisplayMenuView() { + diskUsageAlert = 95; + pixmapStatus = NULL; + pixmapHeaderIcon = NULL; +} + +cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) { + osd->DestroyPixmap(pixmapHeader); + osd->DestroyPixmap(pixmapHeaderLogo); + osd->DestroyPixmap(pixmapHeaderLabel); + osd->DestroyPixmap(pixmapDate); + osd->DestroyPixmap(pixmapFooter); + osd->DestroyPixmap(pixmapContent); + osd->DestroyPixmap(pixmapScrollbar); + osd->DestroyPixmap(pixmapDiskUsage); + osd->DestroyPixmap(pixmapDiskUsageIcon); + osd->DestroyPixmap(pixmapDiskUsageLabel); + if (pixmapHeaderIcon) + osd->DestroyPixmap(pixmapHeaderIcon); + + delete fontHeader; + delete fontDate; + delete fontMenuitemLarge; + delete fontMenuitemSchedule; + delete fontMenuitemDefault; + delete fontDiskUsage; + delete fontTimers; + delete fontTimersHead; + delete fontButtons; + delete fontMessage; +#ifdef USE_YAEPG + if (config.scalePicture) { + tArea availableArea; + availableArea.x1 = 0; + availableArea.y1 = 0; + availableArea.x2 = osdWidth; + availableArea.y2 = osdHeight; + ScalePreserveAspect(osd->vidWin, 4.0/3.0, availableArea); + osd->vidWin.bpp = 12; + } +#endif +} + +cOsd *cNopacityDisplayMenuView::createOsd(void) { + osdLeft = cOsd::OsdLeft(); + osdTop = cOsd::OsdTop(); + osdWidth = cOsd::OsdWidth(); + osdHeight = cOsd::OsdHeight(); + osd = CreateOsd(osdLeft, osdTop, osdWidth, osdHeight); + cDevice::PrimaryDevice()->GetVideoSize(screenWidth, screenHeight, aspect); + return osd; +} + +void cNopacityDisplayMenuView::SetGeometry(void) { + spaceMenu = 5; + widthScrollbar = 20; + dateWidth = osdWidth * 0.3; + headerHeight = osdHeight * config.headerHeight / 100; + footerHeight = osdHeight * config.footerHeight / 100; + contentHeight = osdHeight - headerHeight - footerHeight; + contentWidthNarrow = osdWidth * config.menuWidthNarrow / 100; + contentWidthFull = osdWidth - widthScrollbar - spaceMenu; + menuItemWidthDefault = contentWidthFull - 4 * spaceMenu; + menuItemWidthMain = contentWidthNarrow - 4*spaceMenu; + menuItemHeightMain = config.iconHeight + 2; + menuItemHeightSchedule = config.menuItemLogoHeight + 2; + menuItemHeightDefault = contentHeight / config.numDefaultMenuItems - spaceMenu; + diskUsageWidth = diskUsageHeight = timersWidth = osdWidth * config.menuWidthRightItems / 100; + buttonsBorder = 10; + buttonWidth = (osdWidth / 4) - 2 * buttonsBorder; + buttonHeight = footerHeight - 3 * buttonsBorder; + messageWidth = 0.8 * osdWidth; + messageHeight = 0.1 * osdHeight; +} + +void cNopacityDisplayMenuView::CreatePixmaps(void) { + pixmapHeader = osd->CreatePixmap(1, cRect(0, 0, osdWidth, headerHeight)); + pixmapHeaderLogo = osd->CreatePixmap(-1, cRect(0, 0, config.menuHeaderLogoWidth, config.menuHeaderLogoHeight)); + pixmapHeaderLabel = osd->CreatePixmap(2, cRect(0, 0, osdWidth - dateWidth, headerHeight)); + pixmapDate = osd->CreatePixmap(2, cRect(osdWidth - dateWidth, 0, dateWidth, headerHeight)); + pixmapFooter = osd->CreatePixmap(1, cRect(0, osdHeight-footerHeight, osdWidth, footerHeight)); + pixmapContent = osd->CreatePixmap(1, cRect(0, headerHeight, osdWidth, contentHeight), + cRect(0, 0, osdWidth + contentWidthFull - contentWidthNarrow, contentHeight)); + pixmapScrollbar = osd->CreatePixmap(2, cRect(contentWidthNarrow, headerHeight + spaceMenu, widthScrollbar, contentHeight - 2 * spaceMenu)); + pixmapDiskUsage = osd->CreatePixmap(2, cRect(osdWidth - diskUsageWidth - 10, headerHeight + spaceMenu, diskUsageWidth, diskUsageHeight)); + pixmapDiskUsageIcon = osd->CreatePixmap(3, cRect((osdWidth - diskUsageWidth - 10) + (diskUsageWidth)/8, headerHeight, diskUsageWidth*3/4, diskUsageWidth*3/4)); + pixmapDiskUsageLabel = osd->CreatePixmap(3, cRect(osdWidth - diskUsageWidth - 10, headerHeight + spaceMenu, diskUsageWidth, diskUsageHeight)); + pixmapHeaderLogo->Fill(clrTransparent); + pixmapHeaderLabel->Fill(clrTransparent); + pixmapDiskUsage->Fill(clrTransparent); + pixmapDiskUsageIcon->Fill(clrTransparent); + pixmapDiskUsageLabel->Fill(clrTransparent); + if (config.menuFadeTime) { + pixmapHeader->SetAlpha(0); + pixmapHeaderLogo->SetAlpha(0); + pixmapHeaderLabel->SetAlpha(0); + pixmapDate->SetAlpha(0); + pixmapFooter->SetAlpha(0); + pixmapContent->SetAlpha(0); + pixmapScrollbar->SetAlpha(0); + pixmapDiskUsage->SetAlpha(0); + pixmapDiskUsageIcon->SetAlpha(0); + pixmapDiskUsageLabel->SetAlpha(0); + } +} + +void cNopacityDisplayMenuView::SetPixmapAlpha(int Alpha) { + pixmapHeader->SetAlpha(Alpha); + pixmapHeaderLogo->SetAlpha(Alpha); + pixmapHeaderLabel->SetAlpha(Alpha); + pixmapDate->SetAlpha(Alpha); + pixmapContent->SetAlpha(Alpha); + pixmapFooter->SetAlpha(Alpha); + pixmapScrollbar->SetAlpha(Alpha); + pixmapDiskUsage->SetAlpha(Alpha); + pixmapDiskUsageIcon->SetAlpha(Alpha); + pixmapDiskUsageLabel->SetAlpha(Alpha); +} + +void cNopacityDisplayMenuView::CreateFonts(void) { + fontHeader = cFont::CreateFont(config.fontName, headerHeight / 2 + config.fontHeader); + fontDate = cFont::CreateFont(config.fontName, headerHeight / 2 + config.fontDate); + fontMenuitemLarge = cFont::CreateFont(config.fontName, menuItemHeightMain/3 + 4 + config.fontMenuitemLarge); + fontMenuitemSchedule = cFont::CreateFont(config.fontName, menuItemHeightSchedule / 4 + config.fontMenuitemSchedule); + fontMenuitemDefault = cFont::CreateFont(config.fontName, menuItemHeightDefault * 2 / 3 + config.fontMenuitemDefault); + fontDiskUsage = cFont::CreateFont(config.fontName, (diskUsageHeight/4)/2 - 2 + config.fontDiskUsage); + fontTimersHead = cFont::CreateFont(config.fontName, (contentHeight - 3*spaceMenu - diskUsageHeight) / 25 + config.fontTimersHead); + fontTimers = cFont::CreateFont(config.fontName, (contentHeight - 3*spaceMenu - diskUsageHeight) / 25 - 6 + config.fontTimers); + fontButtons = cFont::CreateFont(config.fontName, buttonHeight*0.8 + config.fontButtons); + fontMessage = cFont::CreateFont(config.fontName, messageHeight / 4 + config.fontMessageMenu); +} + +cFont *cNopacityDisplayMenuView::GetMenuItemFont(eMenuCategory menuCat) { + switch (menuCat) { + case mcUnknown: + return fontMenuitemDefault; + case mcMain: + return fontMenuitemLarge; + case mcSchedule: + return fontMenuitemSchedule; + case mcChannel: + return fontMenuitemLarge; + default: + return fontMenuitemDefault; + } + return fontMenuitemDefault; +} + +void cNopacityDisplayMenuView::GetMenuItemSize(eMenuCategory menuCat, cPoint *itemSize) { + int itemWidth = 0; + int itemHeight = 0; + switch (menuCat) { + case mcUnknown: + itemWidth = menuItemWidthDefault; + itemHeight = menuItemHeightDefault; + break; + case mcMain: + itemWidth = menuItemWidthMain; + itemHeight = menuItemHeightMain; + break; + case mcSchedule: + itemWidth = menuItemWidthMain; + itemHeight = menuItemHeightSchedule; + break; + case mcChannel: + itemWidth = menuItemWidthMain; + itemHeight = menuItemHeightSchedule; + break; + default: + itemWidth = menuItemWidthDefault; + itemHeight = menuItemHeightDefault; + break; + } + itemSize->Set(itemWidth, itemHeight); +} + +int cNopacityDisplayMenuView::GetMaxItems(eMenuCategory menuCat) { + int maxItems = 0; + switch (menuCat) { + case mcUnknown: + maxItems = config.numDefaultMenuItems; + break; + case mcMain: + maxItems = contentHeight / (menuItemHeightMain + spaceMenu); + break; + case mcSchedule: + case mcChannel: + maxItems = contentHeight / (menuItemHeightSchedule + spaceMenu); + break; + default: + maxItems = config.numDefaultMenuItems; + } + return maxItems; +} + +int cNopacityDisplayMenuView::GetMenuTop(int numItems, int itemHeight) { + return headerHeight + (contentHeight - numItems*(itemHeight + spaceMenu))/2; +} + +void cNopacityDisplayMenuView::SetAvrgFontWidth(void) { + avrgFontWidth = fontMenuitemDefault->Width("x")+3; +} + +void cNopacityDisplayMenuView::SetTabs(int Tab1, int Tab2, int Tab3, int Tab4, int Tab5) { + mytabs[0] = 1; + mytabs[1] = Tab1 ? mytabs[0] + Tab1 : 0; + mytabs[2] = Tab2 ? mytabs[1] + Tab2 : 0; + mytabs[3] = Tab3 ? mytabs[2] + Tab3 : 0; + mytabs[4] = Tab4 ? mytabs[3] + Tab4 : 0; + mytabs[5] = Tab5 ? mytabs[4] + Tab5 : 0; + if (Tab2) { + for (int i = 1; i < cSkinDisplayMenu::MaxTabs; i++) + mytabs[i] *= avrgFontWidth; + } else if (Tab1) { + mytabs[1] = GetEditableWidth(); + } +} + +int cNopacityDisplayMenuView::GetEditableWidth(void) { + return contentWidthFull*0.5; +} + +int cNopacityDisplayMenuView::GetTextAreaWidth(void) { + return contentWidthFull - 2*spaceMenu; +} + +const cFont *cNopacityDisplayMenuView::GetTextAreaFont(bool FixedFont) { + return cFont::CreateFont(config.fontName, contentHeight / 25 + config.fontDetailView); +} + +void cNopacityDisplayMenuView::CreateBackgroundImages(int *handleBackgrounds, int *handleButtons) { + cImageLoader imgLoader; + imgLoader.DrawBackground(Theme.Color(clrMenuItem), Theme.Color(clrMenuItemBlend), menuItemWidthDefault-2, menuItemHeightDefault-2); + handleBackgrounds[0] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuItemHigh), Theme.Color(clrMenuItemHighBlend), menuItemWidthDefault-2, menuItemHeightDefault-2); + handleBackgrounds[1] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuItem), Theme.Color(clrMenuItemBlend), menuItemWidthMain-2, menuItemHeightMain-2); + handleBackgrounds[2] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuItemHigh), Theme.Color(clrMenuItemHighBlend), menuItemWidthMain-2, menuItemHeightMain-2); + handleBackgrounds[3] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuItem), Theme.Color(clrMenuItemBlend), menuItemWidthMain-2, menuItemHeightSchedule-2); + handleBackgrounds[4] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuItemHigh), Theme.Color(clrMenuItemHighBlend), menuItemWidthMain-2, menuItemHeightSchedule-2); + handleBackgrounds[5] = cOsdProvider::StoreImage(imgLoader.GetImage()); + + tColor lutBg[] = { Theme.Color(clrButtonRed), Theme.Color(clrButtonGreen), Theme.Color(clrButtonYellow), Theme.Color(clrButtonBlue) }; + + imgLoader.DrawBackground(Theme.Color(clrMenuBack), lutBg[Setup.ColorKey0], buttonWidth-4, buttonHeight-4); + handleButtons[0] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuBack), lutBg[Setup.ColorKey1], buttonWidth-4, buttonHeight-4); + handleButtons[1] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuBack), lutBg[Setup.ColorKey2], buttonWidth-4, buttonHeight-4); + handleButtons[2] = cOsdProvider::StoreImage(imgLoader.GetImage()); + imgLoader.DrawBackground(Theme.Color(clrMenuBack), lutBg[Setup.ColorKey3], buttonWidth-4, buttonHeight-4); + handleButtons[3] = cOsdProvider::StoreImage(imgLoader.GetImage()); +} + +void cNopacityDisplayMenuView::DrawBorderDecoration() { + cImageLoader imgLoader; + imgLoader.DrawBackground(Theme.Color(clrMenuItemHighBlend), Theme.Color(clrMenuBack), osdWidth, headerHeight); + pixmapHeader->DrawImage(cPoint(0,0), imgLoader.GetImage()); + pixmapFooter->Fill(Theme.Color(clrMenuBack)); + + int borderWidth = 2; + int radius = 10; + + pixmapContent->Fill(clrTransparent); + pixmapContent->DrawRectangle(cRect(0, 0, contentWidthFull-radius, contentHeight), Theme.Color(clrMenuBack)); + pixmapContent->DrawRectangle(cRect(contentWidthFull, 0, osdWidth - contentWidthNarrow, borderWidth), Theme.Color(clrMenuBorder)); + pixmapContent->DrawRectangle(cRect(contentWidthFull, contentHeight - borderWidth, osdWidth - contentWidthNarrow, borderWidth), Theme.Color(clrMenuBorder)); + pixmapContent->DrawRectangle(cRect(contentWidthFull - radius, 0, radius, radius), Theme.Color(clrMenuBack)); + pixmapContent->DrawEllipse(cRect(contentWidthFull - radius, 0, radius, radius), Theme.Color(clrMenuBorder),2); + pixmapContent->DrawEllipse(cRect(contentWidthFull - radius + borderWidth, borderWidth, radius-borderWidth, radius-borderWidth), clrTransparent, 2); + pixmapContent->DrawRectangle(cRect(contentWidthFull-radius, radius, borderWidth, contentHeight - 2*radius), Theme.Color(clrMenuBorder)); + pixmapContent->DrawRectangle(cRect(contentWidthFull - radius, contentHeight - radius, radius, radius), Theme.Color(clrMenuBack)); + pixmapContent->DrawEllipse(cRect(contentWidthFull - radius, contentHeight - radius, radius, radius), Theme.Color(clrMenuBorder),3); + pixmapContent->DrawEllipse(cRect(contentWidthFull - radius + borderWidth, contentHeight - radius, radius-borderWidth, radius-borderWidth), clrTransparent, 3); + +} + +void cNopacityDisplayMenuView::AdjustContentBackground(bool contentNarrow, bool contentNarrowLast) { + if (contentNarrow) { + pixmapContent->SetDrawPortPoint(cPoint(contentWidthNarrow - contentWidthFull, 0)); +#ifdef USE_YAEPG + if (config.scalePicture) { + tArea availableArea; + availableArea.x1 = osdLeft + contentWidthNarrow; + availableArea.y1 = osdTop + headerHeight; + availableArea.x2 = contentWidthFull; + availableArea.y2 = availableArea.y1 + contentHeight; + ScalePreserveAspect(osd->vidWin, aspect, availableArea); + osd->vidWin.bpp = 12; + } +#endif + } else { + pixmapContent->SetDrawPortPoint(cPoint(0, 0)); +#ifdef USE_YAEPG + if (config.scalePicture) { + tArea availableArea; + availableArea.x1 = 0; + availableArea.y1 = 0; + availableArea.x2 = osdWidth; + availableArea.y2 = osdHeight; + ScalePreserveAspect(osd->vidWin, aspect, availableArea); + osd->vidWin.bpp = 12; + } +#endif + } + if (contentNarrow != contentNarrowLast) { + osd->DestroyPixmap(pixmapScrollbar); + int contentWidth = (contentNarrow)?contentWidthNarrow:contentWidthFull; + pixmapScrollbar = osd->CreatePixmap(2, cRect(contentWidth , headerHeight + spaceMenu, widthScrollbar, osdHeight - headerHeight - footerHeight - 2*spaceMenu)); + } +} + +void cNopacityDisplayMenuView::ScalePreserveAspect(tArea & videoWindowDest, const double & videoAspect, const tArea & availableArea) { + videoWindowDest.x1 = availableArea.x1; + videoWindowDest.x2 = availableArea.x2; + videoWindowDest.y1 = availableArea.y1; + videoWindowDest.y2 = availableArea.y2; + if (availableArea.Height() == 0) { + videoWindowDest.bpp = 0; // just for safety + return; + } + double availableAspect = double(availableArea.Width())/double(availableArea.Height()); + if (videoAspect < availableAspect) { + int offset = floor(double(availableArea.Width() - availableArea.Height() * videoAspect)/2); + videoWindowDest.x1 += offset; + videoWindowDest.x2 -= offset; + } else { + int offset = floor(double(availableArea.Height() - availableArea.Width() / videoAspect)/2); + videoWindowDest.y1 += offset; + videoWindowDest.y2 -= offset; + } +} + +void cNopacityDisplayMenuView::DrawHeaderLogo(void) { + cImageLoader imgLoader; + if (imgLoader.LoadIcon("vdrlogo", config.menuHeaderLogoWidth, config.menuHeaderLogoHeight)) { + pixmapHeaderLogo->DrawImage(cPoint(0,0), imgLoader.GetImage()); + } +} + +int cNopacityDisplayMenuView::ShowHeaderLogo(bool show) { + if (show) { + pixmapHeaderLogo->SetLayer(2); + } else { + pixmapHeaderLogo->SetLayer(-1); + } + return config.menuHeaderLogoWidth + spaceMenu; +} + +int cNopacityDisplayMenuView::DrawHeaderIcon(eMenuCategory menuCat) { + cString icon; + bool drawIcon = true; + switch (menuCat) { + case mcSchedule: + icon = "Schedule"; + break; + case mcChannel: + icon = "Channels"; + break; + case mcTimer: + icon = "Timers"; + break; + case mcRecording: + icon = "Recordings"; + break; + case mcSetup: + icon = "Setup"; + break; + case mcCommand: + icon = "Commands"; + break; + default: + drawIcon = false; + } + + int left = 0; + if (drawIcon) { + pixmapHeaderIcon = osd->CreatePixmap(2, cRect(0, 0, config.headerIconHeight, config.headerIconHeight)); + pixmapHeaderIcon->Fill(clrTransparent); + cImageLoader imgLoader; + if (imgLoader.LoadIcon(*icon, config.headerIconHeight)) { + pixmapHeaderIcon->DrawImage(cPoint(0,0), imgLoader.GetImage()); + left = config.headerIconHeight + spaceMenu; + } + } + return left; +} + +int cNopacityDisplayMenuView::ShowHeaderIconChannelLogo(const char *Title) { + pixmapHeaderIcon = osd->CreatePixmap(2, cRect(0, 0, config.menuItemLogoWidth, config.menuItemLogoHeight)); + pixmapHeaderIcon->Fill(clrTransparent); + std::string channel = Title; + std::string remove = trVDR("Schedule"); + remove.append(" - "); + channel.erase(0, remove.length()); + cImageLoader imgLoader; + int left = 0; + if (imgLoader.LoadLogo(channel.c_str(), config.menuItemLogoWidth, config.menuItemLogoHeight)) { + pixmapHeaderIcon->DrawImage(cPoint(0, 0), imgLoader.GetImage()); + left = config.menuItemLogoWidth + spaceMenu; + } + return left; +} + +void cNopacityDisplayMenuView::DestroyHeaderIcon(void) { + if (pixmapHeaderIcon) { + osd->DestroyPixmap(pixmapHeaderIcon); + pixmapHeaderIcon = NULL; + } +} + +void cNopacityDisplayMenuView::DrawHeaderLabel(int left, cString label) { + pixmapHeaderLabel->Fill(clrTransparent); + pixmapHeaderLabel->DrawText(cPoint(left, ((headerHeight - 10) - fontHeader->Height()) / 2), *label, Theme.Color(clrMenuFontHeader), clrTransparent, fontHeader); + +} + +void cNopacityDisplayMenuView::DrawDate(bool initial) { + cString date = DayDateTime(); + if (initial || strcmp(date, lastDate)) { + pixmapDate->Fill(clrTransparent); + int dateW = fontDate->Width(date); + pixmapDate->DrawText(cPoint(dateWidth - dateW - 2*spaceMenu, (headerHeight - fontDate->Height()) / 2), date, Theme.Color(clrMenuFontDate), clrTransparent, fontDate); + lastDate = date; + } +} + +void cNopacityDisplayMenuView::DrawDiskUsage(void) { + int iconWidth = diskUsageWidth * 3/4; + int DiskUsage = cVideoDiskUsage::UsedPercent(); + bool DiskAlert = DiskUsage > diskUsageAlert; + tColor bgColor = DiskAlert ? Theme.Color(clrDiskAlert) : Theme.Color(clrMenuBack); + pixmapDiskUsage->Fill(Theme.Color(clrMenuBorder)); + pixmapDiskUsage->DrawRectangle(cRect(2,2,diskUsageWidth-4, diskUsageHeight-4), bgColor); + cImageLoader imgLoader; + if (imgLoader.LoadIcon("DiskUsage", iconWidth)) { + cImage icon = imgLoader.GetImage(); + pixmapDiskUsageIcon->DrawImage(cPoint(0,0), icon); + } + pixmapDiskUsageLabel->Fill(clrTransparent); + cString usage = cString::sprintf("%s: %d%%", tr("Disc"), DiskUsage); + cString rest = cString::sprintf("%02d:%02dh %s", cVideoDiskUsage::FreeMinutes() / 60, cVideoDiskUsage::FreeMinutes() % 60, tr("free")); + pixmapDiskUsageLabel->DrawText(cPoint((diskUsageWidth - fontDiskUsage->Width(*usage))/2, diskUsageHeight - 2*fontDiskUsage->Height() - spaceMenu), *usage, Theme.Color(clrMenuFontDiscUsage), clrTransparent, fontDiskUsage); + pixmapDiskUsageLabel->DrawText(cPoint((diskUsageWidth - fontDiskUsage->Width(*rest))/2, diskUsageHeight - fontDiskUsage->Height() - spaceMenu), *rest, Theme.Color(clrMenuFontDiscUsage), clrTransparent, fontDiskUsage); + pixmapDiskUsage->SetLayer(2); + pixmapDiskUsageIcon->SetLayer(3); + pixmapDiskUsageLabel->SetLayer(4); +} + +void cNopacityDisplayMenuView::ShowDiskUsage(bool show) { + if (show) { + pixmapDiskUsage->SetLayer(2); + pixmapDiskUsageIcon->SetLayer(3); + pixmapDiskUsageLabel->SetLayer(4); + } else { + pixmapDiskUsage->SetLayer(-1); + pixmapDiskUsageIcon->SetLayer(-1); + pixmapDiskUsageLabel->SetLayer(-1); + } +} + +void cNopacityDisplayMenuView::DrawButton(const char *text, int handleImage, tColor borderColor, int num) { + int top = 2*buttonsBorder; + int left = num * buttonWidth + (2*num + 1) * buttonsBorder; + pixmapFooter->DrawRectangle(cRect(left, top, buttonWidth, buttonHeight), borderColor); + pixmapFooter->DrawImage(cPoint(left+2, top+2), handleImage); + int textWidth = fontButtons->Width(text); + int textHeight = fontButtons->Height(); + pixmapFooter->DrawText(cPoint(left + (buttonWidth-textWidth)/2, top + (buttonHeight-textHeight)/2), text, Theme.Color(clrMenuFontButton), clrTransparent, fontButtons); +} + +void cNopacityDisplayMenuView::ClearButton(int num) { + int top = 2*buttonsBorder; + int left = num * buttonWidth + (2*num + 1) * buttonsBorder; + pixmapFooter->DrawRectangle(cRect(left, top, buttonWidth, buttonHeight), Theme.Color(clrMenuBack)); +} + +int cNopacityDisplayMenuView::GetTimersInitHeight(void) { + return headerHeight + diskUsageHeight + 2*spaceMenu; +} + +int cNopacityDisplayMenuView::GetTimersMaxHeight(void) { + return headerHeight + contentHeight; +} + +cNopacityTimer *cNopacityDisplayMenuView::DrawTimer(const cTimer *Timer, int y) { + const cChannel *Channel = Timer->Channel(); + const cEvent *Event = Timer->Event(); + cString channelName(""), title(""); + if (Channel) { + channelName = Channel->Name(); + } + if (Event) { + title = Event->Title(); + } + cTextWrapper titleLines; + titleLines.Set(*title, fontTimers, timersWidth-10); + + cString Date; + if (Timer->Recording()) { + Date = cString::sprintf("-%s", *TimeString(Timer->StopTime())); + } else { + time_t Now = time(NULL); + cString Today = WeekDayName(Now); + cString Time = TimeString(Timer->StartTime()); + cString Day = WeekDayName(Timer->StartTime()); + if (Timer->StartTime() > Now + 6 * SECSINDAY) + Date = DayDateTime(Timer->StartTime()); + else if (strcmp(Day, Today) != 0) + Date = cString::sprintf("%s %s", *Day, *Time); + else + Date = Time; + if (Timer->Flags() & tfVps) + Date = cString::sprintf("VPS %s", *Date); + } + + int numLines = titleLines.Lines(); + int lineHeight = fontTimers->Height(); + int timerHeight = (numLines + 2)*lineHeight + spaceMenu; + + cNopacityTimer *t = new cNopacityTimer(osd); + t->pixmap = osd->CreatePixmap(2, cRect(osdWidth - timersWidth - 10, y, timersWidth, timerHeight)); + + cImageLoader imgLoader; + if(Timer->Recording()) { + t->pixmap->Fill(Theme.Color(clrDiskAlert)); + imgLoader.DrawBackground(Theme.Color(clrDiskAlert), Theme.Color(clrMenuItemHigh), timersWidth-2, timerHeight-2); + t->pixmap->DrawImage(cPoint(1,1), imgLoader.GetImage()); + } else { + t->pixmap->Fill(Theme.Color(clrMenuBorder)); + imgLoader.DrawBackground(Theme.Color(clrMenuItemHighBlend), Theme.Color(clrMenuItemHigh), timersWidth-2, timerHeight-2); + t->pixmap->DrawImage(cPoint(1,1), imgLoader.GetImage()); + } + t->pixmap->DrawText(cPoint(5, 0), *Date, Theme.Color(clrMenuFontTimersHeader), clrTransparent, fontTimersHead); + t->pixmap->DrawText(cPoint(5, lineHeight+2), *channelName, Theme.Color(clrMenuFontTimersHeader), clrTransparent, fontTimers); + int yStart = 2*lineHeight + 3; + for (int line=0; line<numLines; line++) + t->pixmap->DrawText(cPoint(5, yStart+line*(lineHeight-2)), titleLines.GetLine(line), Theme.Color(clrMenuFontTimers), clrTransparent, fontTimers); + + return t; +} + +void cNopacityDisplayMenuView::DrawScrollbar(double Height, double Offset) { + int totalHeight = pixmapScrollbar->ViewPort().Height() - 6; + int height = Height * totalHeight; + int offset = Offset * totalHeight; + pixmapScrollbar->Fill(Theme.Color(clrMenuScrollBar)); + pixmapScrollbar->DrawRectangle(cRect(2,2,widthScrollbar-4,totalHeight+2), Theme.Color(clrMenuScrollBarBack)); + pixmapScrollbar->DrawRectangle(cRect(3,3 + offset,widthScrollbar-6,height), Theme.Color(clrMenuScrollBar)); +} + +void cNopacityDisplayMenuView::ClearScrollbar(void) { + pixmapScrollbar->Fill(clrTransparent); +} + + +void cNopacityDisplayMenuView::DrawMessage(eMessageType Type, const char *Text) { + tColor col = Theme.Color(clrMessageStatus); + switch (Type) { + case mtStatus: + col = Theme.Color(clrMessageStatus); + break; + case mtInfo: + col = Theme.Color(clrMessageInfo); + break; + case mtWarning: + col = Theme.Color(clrMessageWarning); + break; + case mtError: + col = Theme.Color(clrMessageError); + break; + } + if (pixmapStatus) { + ClearMessage(); + } + pixmapStatus = osd->CreatePixmap(5, cRect(0.1*osdWidth, 0.8*osdHeight, messageWidth, messageHeight)); + pixmapStatus->Fill(col); + cImageLoader imgLoader; + imgLoader.DrawBackground2(Theme.Color(clrMenuBack), col, messageWidth-2, messageHeight-2); + pixmapStatus->DrawImage(cPoint(1, 1), imgLoader.GetImage()); + int textWidth = fontMessage->Width(Text); + pixmapStatus->DrawText(cPoint((messageWidth - textWidth) / 2, (messageHeight - fontMessage->Height()) / 2), Text, Theme.Color(clrMenuFontMessages), clrTransparent, fontMessage); +} + +void cNopacityDisplayMenuView::ClearMessage(void) { + if (pixmapStatus) { + osd->DestroyPixmap(pixmapStatus); + pixmapStatus = NULL; + } +} + +void cNopacityDisplayMenuView::SetDetailViewSize(eDetailViewType detailViewType, cNopacityMenuDetailView *detailView) { + int width = 0; + int height = 0; + int top = 0; + int contentBorder = 20; + int detailHeaderHeight = 0; + + switch (detailViewType) { + case dvEvent: + detailHeaderHeight = max(config.detailViewLogoHeight, config.epgImageHeight)+4; + break; + case dvRecording: + detailHeaderHeight = contentHeight/5; + break; + case dvText: + detailHeaderHeight = 0; + break; + default: + break; + } + width = contentWidthFull - 2*spaceMenu; + height = contentHeight; + top = headerHeight; + detailView->SetGeometry(width, height, top, contentBorder, detailHeaderHeight); +}
\ No newline at end of file diff --git a/displaymenuview.h b/displaymenuview.h index 28ec7ec..bd621ca 100644 --- a/displaymenuview.h +++ b/displaymenuview.h @@ -43,8 +43,8 @@ class cNopacityDisplayMenuView { cFont *fontMessage; int osdWidth, osdHeight; int osdLeft, osdTop; - int screenWidth, screenHeight; - double aspect; + int vidWidth, vidHeight; + double vidAspect; int widthScrollbar; int dateWidth; int headerHeight, footerHeight, contentHeight; diff --git a/libvdr-skinnopacity.so b/libvdr-skinnopacity.so Binary files differnew file mode 100755 index 0000000..799aceb --- /dev/null +++ b/libvdr-skinnopacity.so diff --git a/po/de_DE.mo b/po/de_DE.mo Binary files differnew file mode 100644 index 0000000..db04d25 --- /dev/null +++ b/po/de_DE.mo diff --git a/po/skinnopacity.pot b/po/skinnopacity.pot new file mode 100644 index 0000000..dc32625 --- /dev/null +++ b/po/skinnopacity.pot @@ -0,0 +1,207 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: vdr-skinnopacity 0.0.3\n" +"Report-Msgid-Bugs-To: <see README>\n" +"POT-Creation-Date: 2012-11-28 19:40+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Font" +msgstr "" + +msgid "VDR Menu" +msgstr "" + +msgid "Channel Switching" +msgstr "" + +msgid "Replay" +msgstr "" + +msgid "Audio Tracks" +msgstr "" + +msgid "Messages" +msgstr "" + +msgid "Volume" +msgstr "" + +msgid "Fade-In Time in ms (Zero for switching off fading)" +msgstr "" + +msgid "Scale Video size to fit into menu window" +msgstr "" + +msgid "Width of narrow Menu Bar (Percent of OSD Width)" +msgstr "" + +msgid "Width of Disc Usage and Timers Display (Percent of OSD Width)" +msgstr "" + +msgid "Header Height (Percent of OSD Height)" +msgstr "" + +msgid "Footer Height (Percent of OSD Height)" +msgstr "" + +msgid "Number of Default Menu Entries per Page" +msgstr "" + +msgid "Icon Size (Square Main Menu Icons)" +msgstr "" + +msgid "Header Icon Size (Square Header Menu Icons)" +msgstr "" + +msgid "Channel Logo Width (on the Menu Buttons)" +msgstr "" + +msgid "Channel Logo Height (on the Menu Buttons)" +msgstr "" + +msgid "Main Menu Header Logo Width" +msgstr "" + +msgid "Main Menu Header Logo Height" +msgstr "" + +msgid "Detail EPG View Logo Width" +msgstr "" + +msgid "Detail EPG View Logo Height" +msgstr "" + +msgid "Detail EPG View EPG Image Width" +msgstr "" + +msgid "Detail EPG View EPG Image Height" +msgstr "" + +msgid "Adjust Font Size - Header" +msgstr "" + +msgid "Adjust Font Size - Date" +msgstr "" + +msgid "Adjust Font Size - Large Menu Item" +msgstr "" + +msgid "Adjust Font Size - Schedule Menu Item" +msgstr "" + +msgid "Adjust Font Size - Default Menu Item" +msgstr "" + +msgid "Adjust Font Size - Disc Usage" +msgstr "" + +msgid "Adjust Font Size - Timers Header" +msgstr "" + +msgid "Adjust Font Size - Timers Title" +msgstr "" + +msgid "Adjust Font Size - Color Buttons" +msgstr "" + +msgid "Adjust Font Size - Messages" +msgstr "" + +msgid "Adjust Font Size - Detail View Text" +msgstr "" + +msgid "Adjust Font Size - Detail View Header" +msgstr "" + +msgid "Adjust Font Size - Detail View Header Large" +msgstr "" + +msgid "Hight of Channel Display (Percent of OSD Height)" +msgstr "" + +msgid "Left & Right Border Width" +msgstr "" + +msgid "Bottom Border Height" +msgstr "" + +msgid "Channel Logo Width" +msgstr "" + +msgid "Channel Logo Height" +msgstr "" + +msgid "Channel Logo Border" +msgstr "" + +msgid "Display Signal Strength & Quality" +msgstr "" + +msgid "Screen Resolution Icon Size" +msgstr "" + +msgid "Adjust Font Size - EPG Text" +msgstr "" + +msgid "Adjust Font Size - EPG Infotext" +msgstr "" + +msgid "Hight of Replay Display (Percent of OSD Height)" +msgstr "" + +msgid "Adjust Font Size - Text" +msgstr "" + +msgid "Width of Tracks Display (Percent of OSD Width)" +msgstr "" + +msgid "Hight of Tracks Display (Percent of OSD Height)" +msgstr "" + +msgid "Position (0: bot. center, 1: bot. left, ... , 7: bot. right)" +msgstr "" + +msgid "Border Top / Bottom" +msgstr "" + +msgid "Border Left / Right" +msgstr "" + +msgid "Adjust Font Size - Buttons" +msgstr "" + +msgid "Width of Message Display (Percent of OSD Height)" +msgstr "" + +msgid "Hight of Message Display (Percent of OSD Height)" +msgstr "" + +msgid "Adjust Font Size" +msgstr "" + +msgid "Volume Display" +msgstr "" + +msgid "Width of Volume Display (Percent of OSD Height)" +msgstr "" + +msgid "Hight of Volume Display (Percent of OSD Height)" +msgstr "" + +msgid "Disc" +msgstr "" + +msgid "free" +msgstr "" diff --git a/skinnopacity.o b/skinnopacity.o Binary files differnew file mode 100644 index 0000000..a10c1b2 --- /dev/null +++ b/skinnopacity.o |