summaryrefslogtreecommitdiff
path: root/displayvolume.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2013-10-25 20:50:08 +0200
committerlouis <louis.braun@gmx.de>2013-10-25 20:50:08 +0200
commit1aa2f6ace2419406b305f9fe238d9d341f761c73 (patch)
treeb58da850e207efd038ac0b88cbdf9fa444667dfd /displayvolume.c
parent086588958f25fcf065a947bd908e65c4a4c345bd (diff)
downloadskin-nopacity-1aa2f6ace2419406b305f9fe238d9d341f761c73.tar.gz
skin-nopacity-1aa2f6ace2419406b305f9fe238d9d341f761c73.tar.bz2
Version 0.9.0
Diffstat (limited to 'displayvolume.c')
-rw-r--r--displayvolume.c69
1 files changed, 41 insertions, 28 deletions
diff --git a/displayvolume.c b/displayvolume.c
index 390c339..979f182 100644
--- a/displayvolume.c
+++ b/displayvolume.c
@@ -1,40 +1,55 @@
#include "symbols/mute.xpm"
#include "displayvolume.h"
-cNopacityDisplayVolume::cNopacityDisplayVolume(void) {
- config.setDynamicValues();
+cNopacityDisplayVolume::cNopacityDisplayVolume(cImageCache *imgCache) {
+ this->imgCache = imgCache;
initial = true;
muted = false;
- FrameTime = config.volumeFrameTime;
- FadeTime = config.volumeFadeTime;
+ FadeTime = config.GetValue("volumeFadeTime");
+ FrameTime = FadeTime / 10;
- int top = (geoManager->osdHeight - geoManager->volumeHeight) - config.volumeBorderBottom;
+ int top = (geoManager->osdHeight - geoManager->volumeHeight) - config.GetValue("volumeBorderBottom");
int left = (geoManager->osdWidth - geoManager->volumeWidth) / 2;
osd = CreateOsd(left, top, geoManager->volumeWidth, geoManager->volumeHeight);
- pixmapBackgroundTop = osd->CreatePixmap(1, cRect(0, 0, geoManager->volumeWidth, geoManager->volumeHeight/2));
- pixmapBackgroundBottom = osd->CreatePixmap(1, cRect(0, geoManager->volumeHeight/2, geoManager->volumeWidth, geoManager->volumeHeight/2));
- if (config.doBlending) {
- DrawBlendedBackground(pixmapBackgroundTop, Theme.Color(clrChannelBackground), Theme.Color(clrChannelBackBlend), true);
- DrawBlendedBackground(pixmapBackgroundBottom, Theme.Color(clrChannelBackground), Theme.Color(clrChannelBackBlend), false);
+ pixmapBackground = osd->CreatePixmap(1, cRect(0, 0, geoManager->volumeWidth, geoManager->volumeHeight));
+
+ if (config.GetValue("displayType") == dtGraphical) {
+ cImage *imgBack = imgCache->GetSkinElement(seVolumeBackground);
+ if (imgBack) {
+ pixmapBackground->DrawImage(cPoint(0, 0), *imgBack);
+ }
} else {
- pixmapBackgroundTop->Fill(Theme.Color(clrChannelBackground));
- pixmapBackgroundBottom->Fill(Theme.Color(clrChannelBackground));
- }
- int cornerSize = geoManager->volumeHeight/4;
- if (cornerSize > 2) {
- pixmapBackgroundTop->DrawEllipse(cRect(0, 0, cornerSize, cornerSize), clrTransparent, -2);
- pixmapBackgroundTop->DrawEllipse(cRect(geoManager->volumeWidth - cornerSize, 0, cornerSize, cornerSize), clrTransparent, -1);
- pixmapBackgroundBottom->DrawEllipse(cRect(0, cornerSize, cornerSize, cornerSize), clrTransparent, -3);
- pixmapBackgroundBottom->DrawEllipse(cRect(geoManager->volumeWidth - cornerSize, cornerSize, cornerSize, cornerSize), clrTransparent, -4);
+ pixmapBackground->Fill(Theme.Color(clrChannelBackground));
+ if (config.GetValue("displayType") == dtBlending) {
+ DrawBlendedBackground(pixmapBackground,
+ 0,
+ geoManager->volumeWidth,
+ Theme.Color(clrChannelBackground),
+ Theme.Color(clrChannelBackBlend),
+ true);
+ DrawBlendedBackground(pixmapBackground,
+ 0,
+ geoManager->volumeWidth,
+ Theme.Color(clrChannelBackground),
+ Theme.Color(clrChannelBackBlend),
+ false);
+ }
+ int cornerRadius = geoManager->volumeHeight/4;
+ if (cornerRadius > 2) {
+ DrawRoundedCorners(pixmapBackground,
+ cornerRadius,
+ 0,
+ 0,
+ geoManager->volumeWidth,
+ geoManager->volumeHeight);
+ }
}
-
pixmapLabel = osd->CreatePixmap(2, cRect(0, 5, geoManager->volumeWidth, geoManager->volumeLabelHeight));
pixmapProgressBar = osd->CreatePixmap(2, cRect((geoManager->volumeWidth - geoManager->volumeProgressBarWidth) / 2, (geoManager->volumeHeight - geoManager->volumeProgressBarHeight)*2/3, geoManager->volumeProgressBarWidth, geoManager->volumeProgressBarHeight));
- if (config.volumeFadeTime) {
- pixmapBackgroundTop->SetAlpha(0);
- pixmapBackgroundBottom->SetAlpha(0);
+ if (FadeTime) {
+ pixmapBackground->SetAlpha(0);
pixmapProgressBar->SetAlpha(0);
pixmapLabel->SetAlpha(0);
}
@@ -44,8 +59,7 @@ cNopacityDisplayVolume::~cNopacityDisplayVolume() {
Cancel(-1);
while (Active())
cCondWait::SleepMs(10);
- osd->DestroyPixmap(pixmapBackgroundTop);
- osd->DestroyPixmap(pixmapBackgroundBottom);
+ osd->DestroyPixmap(pixmapBackground);
osd->DestroyPixmap(pixmapLabel);
osd->DestroyPixmap(pixmapProgressBar);
delete osd;
@@ -114,7 +128,7 @@ tColor cNopacityDisplayVolume::DrawProgressbarBackground(int left, int top, int
void cNopacityDisplayVolume::Flush(void) {
if (initial)
- if (config.volumeFadeTime)
+ if (FadeTime)
Start();
initial = false;
osd->Flush();
@@ -127,8 +141,7 @@ void cNopacityDisplayVolume::Action(void) {
cPixmap::Lock();
double t = min(double(Now - Start) / FadeTime, 1.0);
int Alpha = t * ALPHA_OPAQUE;
- pixmapBackgroundTop->SetAlpha(Alpha);
- pixmapBackgroundBottom->SetAlpha(Alpha);
+ pixmapBackground->SetAlpha(Alpha);
pixmapProgressBar->SetAlpha(Alpha);
pixmapLabel->SetAlpha(Alpha);
cPixmap::Unlock();