summaryrefslogtreecommitdiff
path: root/dxr3.c
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2010-04-16 21:05:57 +0200
committerChristian Gmeiner <christian.gmeiner@gmail.com>2010-04-16 21:05:57 +0200
commitc182191b3d54dcb22abc5c8b08d9c63e7a57b585 (patch)
tree253bbf0d84a0e79f226fc84910ac971d58aed99b /dxr3.c
parentc4bd8a38e6547b3ccd2eadd151053e0a5e7d7ac2 (diff)
downloadvdr-plugin-dxr3-c182191b3d54dcb22abc5c8b08d9c63e7a57b585.tar.gz
vdr-plugin-dxr3-c182191b3d54dcb22abc5c8b08d9c63e7a57b585.tar.bz2
add infrastructure to observe settings changes
Check it out by changing BSC vales in the settings osd.
Diffstat (limited to 'dxr3.c')
-rw-r--r--dxr3.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/dxr3.c b/dxr3.c
index 028120d..a7d2c99 100644
--- a/dxr3.c
+++ b/dxr3.c
@@ -90,6 +90,21 @@ cMenuSetupDxr3::cMenuSetupDxr3()
// save menu values
void cMenuSetupDxr3::Store()
{
+ bool emitAudio = false;
+ bool emitBCS = false;
+
+ // check which events we should emit
+ if (cSettings::instance()->useDigitalOut() != newUseDigitalOut) {
+ emitAudio = true;
+ }
+
+ if (cSettings::instance()->brightness() != newBrightness ||
+ cSettings::instance()->contrast() != newContrast ||
+ cSettings::instance()->saturation() != newSaturation) {
+ emitBCS = true;
+ }
+
+ // store new settings
SetupStore("Brightness", cSettings::instance()->brightness(newBrightness));
SetupStore("Contrast", cSettings::instance()->contrast(newContrast));
SetupStore("Saturation", cSettings::instance()->saturation(newSaturation));
@@ -98,6 +113,13 @@ void cMenuSetupDxr3::Store()
SetupStore("UseDigitalOut", cSettings::instance()->useDigitalOut(newUseDigitalOut));
SetupStore("HideMenu", cSettings::instance()->hideMenu(newHideMenu));
SetupStore("Dxr3Card", cSettings::instance()->card(newDxr3Card));
+
+ // emit
+ if (emitAudio)
+ cSettings::instance()->emitChange(AUDIO);
+
+ if (emitBCS)
+ cSettings::instance()->emitChange(BCS);
}
// ==================================