summaryrefslogtreecommitdiff
path: root/osdmenu.c
diff options
context:
space:
mode:
authorMartin Schirrmacher <vdr.lightpack@schirrmacher.eu>2013-05-08 19:59:43 +0200
committerMartin Schirrmacher <vdr.lightpack@schirrmacher.eu>2013-05-08 19:59:43 +0200
commitdb66ccaf555f3b209452f33d0c3238a1b6b7a4ed (patch)
tree21a610f24e11203fd67164822e0c4cdf8e4e9a1f /osdmenu.c
parent5ab076d93a99e84dca20d685f30821ae61bcc762 (diff)
downloadvdr-plugin-lightpack-db66ccaf555f3b209452f33d0c3238a1b6b7a4ed.tar.gz
vdr-plugin-lightpack-db66ccaf555f3b209452f33d0c3238a1b6b7a4ed.tar.bz2
many changes; svdrp commands; get & set profiles
Diffstat (limited to 'osdmenu.c')
-rw-r--r--osdmenu.c119
1 files changed, 66 insertions, 53 deletions
diff --git a/osdmenu.c b/osdmenu.c
index f484666..1cabd1b 100644
--- a/osdmenu.c
+++ b/osdmenu.c
@@ -3,27 +3,32 @@
myOsdMenu::myOsdMenu() : cOsdMenu("Lightpack", 32)
{
- LastGamma = LightpackGamma;
- LastBrightness = LightpackBrightness;
- LastSmooth = LightpackSmooth;
-
- int ret = libLightpack.Connect();
- if( ret == 0 ) {
+ Gamma = LastGamma = LightpackGamma;
+ Brightness = LastBrightness = LightpackBrightness;
+ Smooth = LastSmooth = LightpackSmooth;
+ ProfileIndex = LastProfileIndex = LightpackProfileIndex;
+
+ if( libLightpack.Connect() ) {
Add(new cOsdItem(tr("Appearance"), osUnknown, false));
- Add(new cMenuEditIntItem(tr("Gamma"), &LightpackGamma, 0, 100));
- Add(new cMenuEditIntItem(tr("Brightness"), &LightpackBrightness));
- Add(new cMenuEditIntItem(tr("Smooth"), &LightpackSmooth));
+ Add(new cMenuEditIntItem(tr("Gamma"), &Gamma, 0, 100));
+ Add(new cMenuEditIntItem(tr("Brightness"), &Brightness));
+ Add(new cMenuEditIntItem(tr("Smooth"), &Smooth));
+ if( libLightpack.GetProfiles( Profiles ) ) {
+ cString Profile;
+ libLightpack.GetProfile( Profile );
+ ProfileIndex = LastProfileIndex = Profiles.Find( *Profile );
+ if( ProfileIndex < 0 || ProfileIndex > Profiles.Size() )
+ ProfileIndex = 0;
+ Add(new cMenuEditStraItem(tr("Profile"), &ProfileIndex, Profiles.Size(), &Profiles[0]));
+ }
+ else
+ Add(new cOsdItem(tr("can't get profiles list"), osUnknown, false));
MySetHelp();
- } else if( ret == 1 ) {
+ } else {
Add(new cOsdItem(tr("Lightpack not available"), osUnknown, false));
- Add(new cOsdItem(tr("init error"), osUnknown, false));
- } else if( ret == 2 ) {
- Add(new cOsdItem(tr("Lightpack not available"), osUnknown, false));
- Add(new cOsdItem(tr("connect error (Server/Port wrong? Prismatik running?)"), osUnknown, false));
- } else if( ret == 3 ) {
- Add(new cOsdItem(tr("Lightpack not available"), osUnknown, false));
- Add(new cOsdItem(tr("login error (ApiKey wrong?)"), osUnknown, false));
+ cString Error = libLightpack.GetLastError();
+ Add(new cOsdItem(*Error, osUnknown, false));
}
Display();
@@ -39,16 +44,16 @@ void myOsdMenu::MySetHelp()
else if( LastMode == 2 )
SetHelp(tr("Stop"), tr("Ambilight"), NULL, NULL);
else
- Skins.Message(mtError, tr("can't get lightpack mode"));
+ Skins.Message(mtError, libLightpack.GetLastError() );
} else if( LastStatus == 2 ) {
if( LastMode == 1 )
SetHelp(tr("Start"), tr("Lamp"), NULL, NULL);
else if( LastMode == 2 )
SetHelp(tr("Start"), tr("Ambilight"), NULL, NULL);
else
- Skins.Message(mtError, tr("can't get lightpack mode"));
+ Skins.Message(mtError, libLightpack.GetLastError() );
} else
- Skins.Message(mtError, tr("can't get lightpack status"));
+ Skins.Message(mtError, libLightpack.GetLastError() );
}
myOsdMenu::~myOsdMenu()
@@ -62,37 +67,49 @@ eOSState myOsdMenu::ProcessKey(eKeys Key)
if( !libLightpack.isConnected() )
return state;
- int lightRet = 0;
-
- if( LastGamma != LightpackGamma )
+ if( LastGamma != Gamma )
{
- lightRet = libLightpack.SetGamma( (double) LightpackGamma / 10.0);
- if( lightRet == 0 )
- LastGamma = LightpackGamma;
+
+ if( libLightpack.SetGamma( (double) Gamma / 10.0) )
+ LastGamma = Gamma;
else {
- LightpackGamma = LastGamma;
- Skins.Message(mtError, tr("lightpack error"));
+ Gamma = LastGamma;
+ Skins.Message(mtError, libLightpack.GetLastError() );
}
}
- if( LastBrightness != LightpackBrightness )
+ if( LastBrightness != Brightness )
{
- lightRet = libLightpack.SetBrightness(LightpackBrightness);
- if( lightRet == 0 )
- LastBrightness = LightpackBrightness;
+ if( libLightpack.SetBrightness(Brightness) )
+ LastBrightness = Brightness;
else {
- LightpackBrightness = LastBrightness;
- Skins.Message(mtError, tr("lightpack error"));
+ Brightness = LastBrightness;
+ Skins.Message(mtError, libLightpack.GetLastError() );
}
}
- if( LastSmooth != LightpackSmooth )
+ if( LastSmooth != Smooth )
{
- lightRet = libLightpack.SetSmooth(LightpackSmooth);
- if( lightRet == 0 )
- LastSmooth = LightpackSmooth;
+ if( libLightpack.SetSmooth(Smooth) )
+ LastSmooth = Smooth;
else {
- LightpackSmooth = LastSmooth;
- Skins.Message(mtError, tr("lightpack error"));
+ Smooth = LastSmooth;
+ Skins.Message(mtError, libLightpack.GetLastError() );
+ }
+ }
+ if( LastProfileIndex != ProfileIndex )
+ {
+ cStringList Profiles;
+ if( libLightpack.GetProfiles( Profiles ) ) {
+ if( ProfileIndex < 0 || ProfileIndex > Profiles.Size() )
+ ProfileIndex = 0;
+ if( libLightpack.SetProfile( Profiles[ProfileIndex] ) )
+ LastProfileIndex = ProfileIndex;
+ else {
+ ProfileIndex = LastProfileIndex;
+ Skins.Message(mtError, libLightpack.GetLastError() );
+ }
}
+ else
+ Skins.Message(mtError, libLightpack.GetLastError() );
}
switch(Key)
@@ -100,26 +117,23 @@ eOSState myOsdMenu::ProcessKey(eKeys Key)
case kRed:
LastStatus = libLightpack.GetStatus();
if( LastStatus == 1 ) {
- lightRet = libLightpack.SetStatus( false );
- if( lightRet > 0 )
- Skins.Message(mtError, tr("lightpack error"));
+
+ if( !libLightpack.SetStatus( false ) )
+ Skins.Message(mtError, libLightpack.GetLastError() );
} else if( LastStatus == 2 ) {
- lightRet = libLightpack.SetStatus( true );
- if( lightRet > 0 )
- Skins.Message(mtError, tr("lightpack error"));
+ if( !libLightpack.SetStatus( true ) )
+ Skins.Message(mtError, libLightpack.GetLastError() );
}
MySetHelp();
break;
case kGreen:
LastMode = libLightpack.GetMode();
if( LastMode == 1 ) {
- lightRet = libLightpack.SetMode( 2 );
- if( lightRet > 0 )
- Skins.Message(mtError, tr("lightpack error"));
+ if( !libLightpack.SetMode( 2 ) )
+ Skins.Message(mtError, libLightpack.GetLastError() );
} else if( LastMode == 2 ) {
- lightRet = libLightpack.SetMode( 1 );
- if( lightRet > 0 )
- Skins.Message(mtError, tr("lightpack error"));
+ if( !libLightpack.SetMode( 1 ) )
+ Skins.Message(mtError, libLightpack.GetLastError() );
}
MySetHelp();
break;
@@ -130,6 +144,5 @@ eOSState myOsdMenu::ProcessKey(eKeys Key)
default:
break;
}
- //syslog(LOG_ERR, "lightpack Gamma=%d Brightness=%d Smooth=%d", LightpackGamma, LightpackBrightness, LightpackSmooth);
return state;
}