mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-30 17:01:15 +02:00
CScreenSaver: add signal/slot handler OnBeforeStart(), try to fix infoclock
In some constelations it is not required to enable infoclock after close screensaver. So it is possible to cotrol this from other objects.
This commit is contained in:
@@ -52,7 +52,6 @@ CScreenSaver::CScreenSaver()
|
|||||||
m_viewer = new CPictureViewer();
|
m_viewer = new CPictureViewer();
|
||||||
index = 0;
|
index = 0;
|
||||||
status_mute = CAudioMute::getInstance()->getStatus();
|
status_mute = CAudioMute::getInstance()->getStatus();
|
||||||
status_clock = InfoClock->getStatus();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CScreenSaver::~CScreenSaver()
|
CScreenSaver::~CScreenSaver()
|
||||||
@@ -77,12 +76,10 @@ CScreenSaver* CScreenSaver::getInstance()
|
|||||||
|
|
||||||
void CScreenSaver::Start()
|
void CScreenSaver::Start()
|
||||||
{
|
{
|
||||||
|
OnBeforeStart();
|
||||||
status_mute = CAudioMute::getInstance()->getStatus();
|
status_mute = CAudioMute::getInstance()->getStatus();
|
||||||
CAudioMute::getInstance()->enableMuteIcon(false);
|
CAudioMute::getInstance()->enableMuteIcon(false);
|
||||||
|
|
||||||
status_clock = InfoClock->getStatus();
|
|
||||||
InfoClock->enableInfoClock(false);
|
|
||||||
|
|
||||||
m_viewer->SetScaling((CPictureViewer::ScalingMode)g_settings.picviewer_scaling);
|
m_viewer->SetScaling((CPictureViewer::ScalingMode)g_settings.picviewer_scaling);
|
||||||
m_viewer->SetVisible(g_settings.screen_StartX, g_settings.screen_EndX, g_settings.screen_StartY, g_settings.screen_EndY);
|
m_viewer->SetVisible(g_settings.screen_StartX, g_settings.screen_EndX, g_settings.screen_StartY, g_settings.screen_EndY);
|
||||||
|
|
||||||
@@ -117,8 +114,12 @@ void CScreenSaver::Stop()
|
|||||||
thrScreenSaver = 0;
|
thrScreenSaver = 0;
|
||||||
|
|
||||||
m_frameBuffer->paintBackground(); //clear entire screen
|
m_frameBuffer->paintBackground(); //clear entire screen
|
||||||
InfoClock->enableInfoClock(status_clock);
|
|
||||||
CAudioMute::getInstance()->enableMuteIcon(status_mute);
|
CAudioMute::getInstance()->enableMuteIcon(status_mute);
|
||||||
|
if (!OnAfterStop.empty())
|
||||||
|
OnAfterStop();
|
||||||
|
else
|
||||||
|
InfoClock->enableInfoClock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void* CScreenSaver::ScreenSaverPrg(void* arg)
|
void* CScreenSaver::ScreenSaverPrg(void* arg)
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
class CScreenSaver
|
class CScreenSaver : public sigc::trackable
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
CFrameBuffer *m_frameBuffer;
|
CFrameBuffer *m_frameBuffer;
|
||||||
@@ -40,7 +40,6 @@ class CScreenSaver
|
|||||||
unsigned int index;
|
unsigned int index;
|
||||||
|
|
||||||
bool status_mute;
|
bool status_mute;
|
||||||
bool status_clock;
|
|
||||||
|
|
||||||
bool ReadDir();
|
bool ReadDir();
|
||||||
void PaintPicture();
|
void PaintPicture();
|
||||||
@@ -52,6 +51,8 @@ class CScreenSaver
|
|||||||
|
|
||||||
void Start();
|
void Start();
|
||||||
void Stop();
|
void Stop();
|
||||||
|
sigc::signal<void> OnBeforeStart;
|
||||||
|
sigc::signal<void> OnAfterStop;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __CSCREENSAVER_H__
|
#endif // __CSCREENSAVER_H__
|
||||||
|
Reference in New Issue
Block a user