From ef399b1a8b6a8e9b495ebddb03db242f6225cee9 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 19 Aug 2009 21:32:36 +0200 Subject: update the bcs values via updateBcsValues() method and remove all other setters --- dxr3.c | 24 ++++++++++++------------ dxr3interface.c | 53 +++++++++++------------------------------------------ dxr3interface.h | 6 ++---- 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; } // ================================== @@ -791,20 +788,6 @@ int cDxr3Interface::GetContrast() return m_bcs.contrast; } -// ================================== -//! 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() @@ -812,20 +795,6 @@ int cDxr3Interface::GetSaturation() return m_bcs.saturation; } -// ================================== -//! 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; 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 -- cgit v1.2.3