diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2009-01-07 14:59:04 +0100 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2009-01-07 14:59:04 +0100 |
commit | b97736a0a89ecbc3aa2ece133cc0a4839bd1e043 (patch) | |
tree | e4e5ae12f626bbabf8f469491d4a07b76418616e /dxr3.c | |
parent | b17bb75da5810312f1c29d93d92931a4a0fc87f5 (diff) | |
download | vdr-plugin-dxr3-b97736a0a89ecbc3aa2ece133cc0a4839bd1e043.tar.gz vdr-plugin-dxr3-b97736a0a89ecbc3aa2ece133cc0a4839bd1e043.tar.bz2 |
better singleton template
With the old singleton pattern it could happen that two instances are
created. See...
static T& Instance()
{
static T m_Instance;
return m_Instance;
}
static T* InstanceP()
{
static T* m_InstanceP = new T;
return m_InstanceP;
}
Diffstat (limited to 'dxr3.c')
-rw-r--r-- | dxr3.c | 14 |
1 files changed, 5 insertions, 9 deletions
@@ -33,8 +33,7 @@ eOSState cDxr3OsdItem::ProcessKey(eKeys Key) { case DXR3_RESET_HARDWARE: cDxr3Interface::Instance().ResetHardware(); - if (cDxr3Device::InstanceP()) - cDxr3Device::InstanceP()->Reset(); + cDxr3Device::Instance().Reset(); break; case DXR3_FORCE_LETTER_BOX: @@ -44,14 +43,12 @@ eOSState cDxr3OsdItem::ProcessKey(eKeys Key) case DXR3_ANALOG_OUT: cDxr3ConfigData::Instance().SetUseDigitalOut(0); - if (cDxr3Device::InstanceP()) - cDxr3Device::InstanceP()->Reset(); + cDxr3Device::Instance().Reset(); break; case DXR3_DIGITAL_OUT: cDxr3ConfigData::Instance().SetUseDigitalOut(1); - if (cDxr3Device::InstanceP()) - cDxr3Device::InstanceP()->Reset(); + cDxr3Device::Instance().Reset(); break; } } @@ -123,8 +120,7 @@ void cMenuSetupDxr3::Store(void) cDxr3Interface::Instance().SetBrightness(newBrightness); cDxr3Interface::Instance().SetContrast(newContrast); cDxr3Interface::Instance().SetSaturation(newSaturation); - if (cDxr3Device::InstanceP()) - cDxr3Device::InstanceP()->Reset(); + cDxr3Device::Instance().Reset(); } // ================================== @@ -175,7 +171,7 @@ cPluginDxr3::~cPluginDxr3() // ================================== bool cPluginDxr3::Initialize() { - cDxr3Device::InstanceP(); + cDxr3Device::Instance(); return true; } |