mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 07:22:57 +02:00
adzap: write adzap.data in monitor-mode too
Origin commit data
------------------
Commit: 8a522e891d
Author: vanhofen <vanhofen@gmx.de>
Date: 2016-03-10 (Thu, 10 Mar 2016)
Origin message was:
------------------
- adzap: write adzap.data in monitor-mode too
This commit is contained in:
@@ -105,7 +105,6 @@ time_t CAdZapMenu::getMonitorLifeTime()
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
CChannelEventList::iterator eli;
|
CChannelEventList::iterator eli;
|
||||||
struct timespec ts;
|
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
for (eli = evtlist.begin(); eli != evtlist.end(); ++eli)
|
for (eli = evtlist.begin(); eli != evtlist.end(); ++eli)
|
||||||
{
|
{
|
||||||
@@ -139,7 +138,6 @@ void CAdZapMenu::Run()
|
|||||||
|
|
||||||
if (monitor)
|
if (monitor)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
ts.tv_sec += 1;
|
ts.tv_sec += 1;
|
||||||
|
|
||||||
@@ -173,42 +171,19 @@ void CAdZapMenu::Run()
|
|||||||
{
|
{
|
||||||
if (g_settings.adzap_writeData)
|
if (g_settings.adzap_writeData)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
ts.tv_sec += 1;
|
ts.tv_sec += 1;
|
||||||
|
|
||||||
sem_timedwait(&sem, &ts);
|
sem_timedwait(&sem, &ts);
|
||||||
|
|
||||||
int zp = g_settings.adzap_zapBackPeriod;
|
|
||||||
long int zb = zapBackTime.tv_sec + ZAPBACK_ALERT_PERIOD - ts.tv_sec;
|
|
||||||
|
|
||||||
if (FILE *f = fopen(ADZAP_DATA, "w"))
|
|
||||||
{
|
|
||||||
fprintf(f, "%" PRIx64 "\n%s\n%d\n%d:%02d\n%ld\n%ld:%02ld\n",
|
|
||||||
channelId,
|
|
||||||
channelName.c_str(),
|
|
||||||
zp,
|
|
||||||
zp / 60, zp % 60,
|
|
||||||
zb,
|
|
||||||
zb / 60, zb % 60);
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
printf("CAdZapMenu::%s: write data failed.\n", __func__);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sem_timedwait(&sem, &zapBackTime);
|
sem_timedwait(&sem, &zapBackTime);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
if (access(ADZAP_DATA, F_OK) == 0)
|
|
||||||
unlink(ADZAP_DATA);
|
|
||||||
sem_wait(&sem);
|
sem_wait(&sem);
|
||||||
}
|
|
||||||
|
|
||||||
if (armed)
|
if (armed)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
if (ts.tv_sec >= zapBackTime.tv_sec)
|
if (ts.tv_sec >= zapBackTime.tv_sec)
|
||||||
{
|
{
|
||||||
@@ -237,9 +212,40 @@ void CAdZapMenu::Run()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_settings.adzap_writeData && (monitor || armed))
|
||||||
|
WriteData();
|
||||||
|
else
|
||||||
|
RemoveData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CAdZapMenu::WriteData()
|
||||||
|
{
|
||||||
|
int zp = g_settings.adzap_zapBackPeriod;
|
||||||
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
|
long int zb = armed ? zapBackTime.tv_sec + ZAPBACK_ALERT_PERIOD - ts.tv_sec : 0;
|
||||||
|
|
||||||
|
if (FILE *f = fopen(ADZAP_DATA, "w"))
|
||||||
|
{
|
||||||
|
fprintf(f, "%" PRIx64 "\n%s\n%d\n%d:%02d\n%ld\n%ld:%02ld\n",
|
||||||
|
channelId,
|
||||||
|
channelName.c_str(),
|
||||||
|
zp,
|
||||||
|
zp / 60, zp % 60,
|
||||||
|
zb,
|
||||||
|
zb / 60, zb % 60);
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("CAdZapMenu::%s: failed.\n", __func__);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAdZapMenu::RemoveData()
|
||||||
|
{
|
||||||
|
if (access(ADZAP_DATA, F_OK) == 0)
|
||||||
|
unlink(ADZAP_DATA);
|
||||||
|
}
|
||||||
int CAdZapMenu::exec(CMenuTarget *parent, const std::string & actionKey)
|
int CAdZapMenu::exec(CMenuTarget *parent, const std::string & actionKey)
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
|
@@ -40,6 +40,7 @@ class CAdZapMenu: public CMenuTarget, CChangeObserver
|
|||||||
bool armed;
|
bool armed;
|
||||||
bool alerted;
|
bool alerted;
|
||||||
bool monitor;
|
bool monitor;
|
||||||
|
struct timespec ts;
|
||||||
struct timespec zapBackTime;
|
struct timespec zapBackTime;
|
||||||
std::string channelName;
|
std::string channelName;
|
||||||
CMenuForwarder *forwarders[9];
|
CMenuForwarder *forwarders[9];
|
||||||
@@ -54,6 +55,8 @@ class CAdZapMenu: public CMenuTarget, CChangeObserver
|
|||||||
void ShowMenu();
|
void ShowMenu();
|
||||||
void Update();
|
void Update();
|
||||||
void Run(void);
|
void Run(void);
|
||||||
|
void WriteData(void);
|
||||||
|
void RemoveData(void);
|
||||||
static void *Run(void *arg);
|
static void *Run(void *arg);
|
||||||
public:
|
public:
|
||||||
static CAdZapMenu *getInstance();
|
static CAdZapMenu *getInstance();
|
||||||
|
Reference in New Issue
Block a user