summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dxr3.c24
-rw-r--r--dxr3interface.c53
-rw-r--r--dxr3interface.h6
3 files changed, 25 insertions, 58 deletions
diff --git a/dxr3.c b/dxr3.c
index 103e72e..7a5f20d 100644
--- a/dxr3.c
+++ b/dxr3.c
@@ -114,9 +114,7 @@ void cMenuSetupDxr3::Store(void)
cDxr3ConfigData::instance()->SetDxr3Card(newDxr3Card));
// Apply (some of the) settings
- cDxr3Interface::instance()->SetBrightness(newBrightness);
- cDxr3Interface::instance()->SetContrast(newContrast);
- cDxr3Interface::instance()->SetSaturation(newSaturation);
+ cDxr3Interface::instance()->updateBcsValues();
//cDxr3Device::instance()->Reset();
}
@@ -269,20 +267,22 @@ const char **cPluginDxr3::SVDRPHelpPages(void)
cString cPluginDxr3::SVDRPCommand(const char *Command, const char *Option,
int &ReplyCode)
{
+ int value = atoi(Option);
+
if (!strcasecmp(Command, "BRI")) {
- cDxr3Interface::instance()->SetBrightness(atoi(Option));
- return cString::sprintf("Brightness set to %d",
- cDxr3Interface::instance()->GetBrightness());
+ cDxr3ConfigData::instance()->SetBrightness(value);
+ cDxr3Interface::instance()->updateBcsValues();
+ return cString::sprintf("Brightness set to %d", value);
}
if (!strcasecmp(Command, "CON")) {
- cDxr3Interface::instance()->SetContrast(atoi(Option));
- return cString::sprintf("Contrast set to %d",
- cDxr3Interface::instance()->GetContrast());
+ cDxr3ConfigData::instance()->SetContrast(value);
+ cDxr3Interface::instance()->updateBcsValues();
+ return cString::sprintf("Contrast set to %d", value);
}
if (!strcasecmp(Command, "SAT")) {
- cDxr3Interface::instance()->SetSaturation(atoi(Option));
- return cString::sprintf("Saturation set to %d",
- cDxr3Interface::instance()->GetSaturation());
+ cDxr3ConfigData::instance()->SetSaturation(value);
+ cDxr3Interface::instance()->updateBcsValues();
+ return cString::sprintf("Saturation set to %d", value);
}
if (!strcasecmp(Command, "SDO")) {
device->getAudioOutput()->setAudioMode(iAudio::DigitalPcm);
diff --git a/dxr3interface.c b/dxr3interface.c
index 64bdb91..2115112 100644
--- a/dxr3interface.c
+++ b/dxr3interface.c
@@ -763,25 +763,22 @@ void cDxr3Interface::ResetHardware()
Unlock();
}
-// ==================================
-//! get brightness
-int cDxr3Interface::GetBrightness()
+void cDxr3Interface::updateBcsValues()
{
- return m_bcs.brightness;
+ // update m_bcs with values from settings
+ m_bcs.brightness = cDxr3ConfigData::instance()->GetBrightness();
+ m_bcs.contrast = cDxr3ConfigData::instance()->GetContrast();
+ m_bcs.saturation = cDxr3ConfigData::instance()->GetSaturation();
+
+ // update bcs values in hardware
+ CHECK(ioctl(m_fdControl, EM8300_IOCTL_SETBCS, &m_bcs));
}
// ==================================
-//! set brightness
-void cDxr3Interface::SetBrightness(int value)
+//! get brightness
+int cDxr3Interface::GetBrightness()
{
- int oldval = m_bcs.brightness;
- m_bcs.brightness = value;
-
- if (ioctl(m_fdControl, EM8300_IOCTL_SETBCS, &m_bcs) == -1)
- {
- esyslog("dxr3: unable to set brightness to %d: %m", value);
- m_bcs.brightness = oldval;
- }
+ return m_bcs.brightness;
}
// ==================================
@@ -792,20 +789,6 @@ int cDxr3Interface::GetContrast()
}
// ==================================
-//! set contrast
-void cDxr3Interface::SetContrast(int value)
-{
- int oldval = m_bcs.contrast;
- m_bcs.contrast = value;
-
- if (ioctl(m_fdControl, EM8300_IOCTL_SETBCS, &m_bcs) == -1)
- {
- esyslog("dxr3: unable to set contrast to %d: %m", value);
- m_bcs.contrast = oldval;
- }
-}
-
-// ==================================
//! get saturation
int cDxr3Interface::GetSaturation()
{
@@ -813,20 +796,6 @@ int cDxr3Interface::GetSaturation()
}
// ==================================
-//! set saturation
-void cDxr3Interface::SetSaturation(int value)
-{
- int oldval = m_bcs.saturation;
- m_bcs.saturation = value;
-
- if (ioctl(m_fdControl, EM8300_IOCTL_SETBCS, &m_bcs) == -1)
- {
- esyslog("dxr3: unable to set saturation to %d: %m", value);
- m_bcs.saturation = oldval;
- }
-}
-
-// ==================================
cMutex* cDxr3Interface::m_pMutex = new cMutex;
// Local variables:
diff --git a/dxr3interface.h b/dxr3interface.h
index ba5e3f1..c1a3548 100644
--- a/dxr3interface.h
+++ b/dxr3interface.h
@@ -133,13 +133,11 @@ public:
// helper functions for dxr3 main osd screen
void ResetHardware();
- // get/set brightness/contrast/saturation
+ void updateBcsValues();
+ // get brightness/contrast/saturation
int GetBrightness();
- void SetBrightness(int value);
int GetContrast();
- void SetContrast(int value);
int GetSaturation();
- void SetSaturation(int value);
private:
// file handles