Merge remote-tracking branch 'check/cst-next'

Conflicts:
	src/gui/epgview.cpp


Origin commit data
------------------
Branch: ni/coolstream
Commit: 66adad0811
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2015-02-07 (Sat, 07 Feb 2015)



------------------
This commit was generated by Migit
This commit is contained in:
Stefan Seyfried
2015-02-07 23:12:01 +01:00
26 changed files with 251 additions and 99 deletions

View File

@@ -59,6 +59,7 @@ bool timerd_parse_command(CBasicMessage::Header &rmsg, int connfd)
case CTimerdMsg::CMD_GETSLEEPTIMER:
rspGetSleeptimer.eventID = 0;
CTimerManager::getInstance()->lockEvents();
if (CTimerManager::getInstance()->listEvents(events))
{
for (pos = events.begin(); pos != events.end(); ++pos)
@@ -71,6 +72,7 @@ bool timerd_parse_command(CBasicMessage::Header &rmsg, int connfd)
}
}
}
CTimerManager::getInstance()->unlockEvents();
CBasicServer::send_data(connfd, &rspGetSleeptimer, sizeof(rspGetSleeptimer));
break;
@@ -78,6 +80,7 @@ bool timerd_parse_command(CBasicMessage::Header &rmsg, int connfd)
CTimerdMsg::commandGetTimer msgGetTimer;
CTimerd::responseGetTimer resp;
CBasicServer::receive_data(connfd,&msgGetTimer, sizeof(msgGetTimer));
CTimerManager::getInstance()->lockEvents();
if(CTimerManager::getInstance()->listEvents(events))
{
if(events[msgGetTimer.eventID])
@@ -134,11 +137,13 @@ bool timerd_parse_command(CBasicMessage::Header &rmsg, int connfd)
}
}
}
CTimerManager::getInstance()->unlockEvents();
CBasicServer::send_data(connfd, &resp, sizeof(CTimerd::responseGetTimer));
break;
case CTimerdMsg::CMD_GETTIMERLIST:
CTimerdMsg::generalInteger responseInteger;
CTimerManager::getInstance()->lockEvents();
responseInteger.number = (CTimerManager::getInstance()->listEvents(events)) ? events.size() : 0;
if (CBasicServer::send_data(connfd, &responseInteger, sizeof(responseInteger)) == true)
@@ -200,6 +205,7 @@ bool timerd_parse_command(CBasicMessage::Header &rmsg, int connfd)
CBasicServer::send_data(connfd, &lresp, sizeof(CTimerd::responseGetTimer));
}
}
CTimerManager::getInstance()->unlockEvents();
break;
case CTimerdMsg::CMD_RESCHEDULETIMER: // event nach vorne oder hinten schieben

View File

@@ -277,12 +277,24 @@ bool CTimerManager::stopEvent(int peventID)
}
//------------------------------------------------------------
int CTimerManager::lockEvents()
{
return pthread_mutex_lock(&tm_eventsMutex);
}
//------------------------------------------------------------
int CTimerManager::unlockEvents()
{
return pthread_mutex_unlock(&tm_eventsMutex);
}
//------------------------------------------------------------
bool CTimerManager::listEvents(CTimerEventMap &Events)
{
if(!&Events)
return false;
pthread_mutex_lock(&tm_eventsMutex);
Events.clear();
for (CTimerEventMap::iterator pos = events.begin(); pos != events.end(); ++pos)
@@ -290,7 +302,6 @@ bool CTimerManager::listEvents(CTimerEventMap &Events)
pos->second->Refresh();
Events[pos->second->eventID] = pos->second;
}
pthread_mutex_unlock(&tm_eventsMutex);
return true;
}
//------------------------------------------------------------
@@ -339,13 +350,19 @@ int CTimerManager::modifyEvent(int peventID, time_t announceTime, time_t alarmTi
break;
case CTimerd::TIMER_RECORD:
{
(static_cast<CTimerEvent_Record*>(event))->recordingDir = data.recordingDir;
(static_cast<CTimerEvent_Record*>(event))->getEpgId();
CTimerEvent_Record *event_record = static_cast<CTimerEvent_Record*>(event);
event_record->recordingDir = data.recordingDir;
event_record->eventInfo.epgID = 0;
event_record->eventInfo.epg_starttime = 0;
event_record->getEpgId();
break;
}
case CTimerd::TIMER_ZAPTO:
{
(static_cast<CTimerEvent_Zapto*>(event))->getEpgId();
CTimerEvent_Zapto *event_zapto = static_cast<CTimerEvent_Zapto*>(event);
event_zapto->eventInfo.epgID = 0;
event_zapto->eventInfo.epg_starttime = 0;
event_zapto->getEpgId();
break;
}
default:

View File

@@ -237,6 +237,8 @@ public:
bool removeEvent(int eventID);
bool stopEvent(int eventID);
CTimerEvent* getNextEvent();
int lockEvents();
int unlockEvents();
bool listEvents(CTimerEventMap &Events);
CTimerd::CTimerEventTypes *getEventType(int eventID);
// int modifyEvent(int eventID, time_t announceTime, time_t alarmTime, time_t stopTime, uint32_t repeatcount, CTimerd::CTimerEventRepeat evrepeat = CTimerd::TIMERREPEAT_ONCE);