diff options
-rw-r--r-- | dxr3.c | 24 | ||||
-rw-r--r-- | dxr3interface.c | 53 | ||||
-rw-r--r-- | dxr3interface.h | 6 |
3 files changed, 25 insertions, 58 deletions
@@ -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 |