radiotext: rework radiotext handling

Radiotext moved into a separate class and will be shown with screensaver.
This commit is contained in:
2020-01-05 21:17:59 +01:00
parent b1f9c3c7f3
commit df64925b30
12 changed files with 732 additions and 192 deletions

View File

@@ -28,6 +28,9 @@
#include <vector>
#include <string>
#include <gui/components/cc.h>
#include <mutex>
#include <thread>
class CFrameBuffer;
@@ -35,14 +38,21 @@ class CScreenSaver : public sigc::trackable
{
private:
CFrameBuffer *m_frameBuffer;
CComponentsFrmClock *scr_clock;
pthread_t thrScreenSaver;
static void* ScreenSaverPrg(void *arg);
std::thread *thrScreenSaver;
static void ScreenSaverPrg(CScreenSaver *scr);
bool thr_exit;
std::mutex scr_mutex;
std::vector<std::string> v_bg_files;
unsigned int index;
t_channel_id pip_channel_id;
bool force_refresh;
bool status_mute;
uint seed[6];
void handleRadioText();
void hideRadioText();
bool ReadDir();
void paint();
@@ -57,6 +67,8 @@ class CScreenSaver : public sigc::trackable
};
u_color clr;
void thrExit();
sigc::slot<void> sl_scr_stop;
public:
enum
@@ -74,11 +86,13 @@ class CScreenSaver : public sigc::trackable
void Stop();
bool ignoredMsg(neutrino_msg_t msg);
sigc::signal<void> OnBeforeStart;
sigc::signal<void> OnAfterStart;
sigc::signal<void> OnAfterStop;
void resetIdleTime() { idletime = time(NULL); }
time_t getIdleTime() { return idletime; }
void forceRefresh() { force_refresh = true; }
static CComponentsFrmClock* getClockObject();
};
#endif // __CSCREENSAVER_H__