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 | 
