Пример #1
0
//-------------------------------------------------------------------------
void CTimerdClient::setRecordingSafety(int pre, int post)
{
	CTimerdMsg::commandRecordingSafety data;
	VALGRIND_PARANOIA(data);
	data.pre = pre;
	data.post = post;
	send(CTimerdMsg::CMD_SETRECSAFETY, (char*) &data, sizeof(data)); 
	close_connection();
}
Пример #2
0
//-------------------------------------------------------------------------
void CTimerdClient::modifyTimerAPid(int eventid, unsigned char apids)
{
	CTimerdMsg::commandSetAPid data;
	VALGRIND_PARANOIA(data);
	data.eventID=eventid;
	data.apids = apids;
	send(CTimerdMsg::CMD_SETAPID, (char*) &data, sizeof(data)); 
	close_connection();
}
Пример #3
0
//-------------------------------------------------------------------------
void CTimerdClient::stopTimerEvent( int evId)
{
	CTimerdMsg::commandRemoveTimer msgRemoveTimer;
	VALGRIND_PARANOIA(msgRemoveTimer);

	msgRemoveTimer.eventID  = evId;

	send(CTimerdMsg::CMD_STOPTIMER, (char*) &msgRemoveTimer, sizeof(msgRemoveTimer));

	close_connection();  
}
Пример #4
0
void CTimerdClient::unRegisterEvent(unsigned int eventID, unsigned int clientID)
{
	CEventServer::commandUnRegisterEvent msg2;
	VALGRIND_PARANOIA(msg2);

	msg2.eventID = eventID;
	msg2.clientID = clientID;

	send(CTimerdMsg::CMD_UNREGISTEREVENT, (char*)&msg2, sizeof(msg2));

	close_connection();
}
void CSectionsdClient::unRegisterEvent(const unsigned int eventID, const unsigned int clientID)
{
	CEventServer::commandUnRegisterEvent msg2;
	VALGRIND_PARANOIA(msg2);

	msg2.eventID = eventID;
	msg2.clientID = clientID;

	send(sectionsd::CMD_unregisterEvents, (char*)&msg2, sizeof(msg2));

	close_connection();
}
Пример #6
0
void CTimerdClient::removeTimerEvent( int evId)
{
	if(evId == adzap_eventID)
		adzap_eventID = 0;//reset adzap flag

	CTimerdMsg::commandRemoveTimer msgRemoveTimer;
	VALGRIND_PARANOIA(msgRemoveTimer);
	msgRemoveTimer.eventID  = evId;

	send(CTimerdMsg::CMD_REMOVETIMER, (char*) &msgRemoveTimer, sizeof(msgRemoveTimer));

	close_connection();  
}
Пример #7
0
void CTimerdClient::registerEvent(unsigned int eventID, unsigned int clientID, const char * const udsName)
{
	CEventServer::commandRegisterEvent msg2;
	VALGRIND_PARANOIA(msg2);

	msg2.eventID = eventID;
	msg2.clientID = clientID;

	cstrncpy(msg2.udsName, udsName, sizeof(msg2.udsName));

	send(CTimerdMsg::CMD_REGISTEREVENT, (char*)&msg2, sizeof(msg2));

	close_connection();
}
void CSectionsdClient::registerEvent(const unsigned int eventID, const unsigned int clientID, const char * const udsName)
{
	CEventServer::commandRegisterEvent msg2;
	VALGRIND_PARANOIA(msg2);

	msg2.eventID = eventID;
	msg2.clientID = clientID;

	cstrncpy(msg2.udsName, udsName, sizeof(msg2.udsName));

	send(sectionsd::CMD_registerEvents, (char*)&msg2, sizeof(msg2));

	close_connection();
}
void CSectionsdClient::setServiceChanged(const t_channel_id channel_id, const bool requestEvent, int dnum)
{
	sectionsd::commandSetServiceChanged msg;
	VALGRIND_PARANOIA(msg);

	msg.channel_id   = channel_id;
	msg.requestEvent = requestEvent;
	msg.dnum = dnum;

	send(sectionsd::serviceChanged, (char *)&msg, sizeof(msg));

	readResponse();
	close_connection();
}
Пример #10
0
bool CTimerdClient::rescheduleTimerEvent(int eventid, time_t announcediff, time_t alarmdiff, time_t stopdiff)
{
	CTimerdMsg::commandModifyTimer msgModifyTimer;
	VALGRIND_PARANOIA(msgModifyTimer);
	msgModifyTimer.eventID = eventid;
	msgModifyTimer.announceTime = announcediff;
	msgModifyTimer.alarmTime = alarmdiff;
	msgModifyTimer.stopTime = stopdiff;

	send(CTimerdMsg::CMD_RESCHEDULETIMER, (char*) &msgModifyTimer, sizeof(msgModifyTimer));

	CTimerdMsg::responseStatus response;
	receive_data((char*)&response, sizeof(response));

	close_connection();
	return response.status;
}
bool CSectionsdClient::send(const unsigned char command, const char* data, const unsigned int size)
{
	sectionsd::msgRequestHeader msgHead;
	VALGRIND_PARANOIA(msgHead);

	msgHead.version    = getVersion();
	msgHead.command    = command;
	msgHead.dataLength = size;

	open_connection(); // if the return value is false, the next send_data call will return false, too

        if (!send_data((char*)&msgHead, sizeof(msgHead)))
            return false;

        if (size != 0)
            return send_data(data, size);

        return true;
}
Пример #12
0
bool CTimerdClient::modifyTimerEvent(int eventid, time_t announcetime, time_t alarmtime, time_t stoptime, CTimerd::CTimerEventRepeat evrepeat, uint32_t repeatcount, void *data,
				     int datalen)
{
	// set new time values for event eventid

	CTimerdMsg::commandModifyTimer msgModifyTimer;
	VALGRIND_PARANOIA(msgModifyTimer);
	msgModifyTimer.eventID = eventid;
	msgModifyTimer.announceTime = announcetime;
	msgModifyTimer.alarmTime = alarmtime;
	msgModifyTimer.stopTime = stoptime;
	msgModifyTimer.eventRepeat = evrepeat;
	msgModifyTimer.repeatCount = repeatcount;
	send(CTimerdMsg::CMD_MODIFYTIMER, (char*) &msgModifyTimer, sizeof(msgModifyTimer));

	if (data && datalen)
		send_data((char*)data,datalen);

	CTimerdMsg::responseStatus response;
	receive_data((char*)&response, sizeof(response));

	close_connection();
	return true;
}
Пример #13
0
//-------------------------------------------------------------------------
int CTimerdClient::addTimerEvent( CTimerd::CTimerEventTypes evType, void* data, time_t announcetime, time_t alarmtime,time_t stoptime,
				  CTimerd::CTimerEventRepeat evrepeat, uint32_t repeatcount,bool forceadd)
{
	if(checkDouble(evType, data, announcetime,  alarmtime, stoptime, evrepeat,  repeatcount))//check if timer is add double
		return -1;

	if (!forceadd)
	{
		//printf("[CTimerdClient] checking for overlapping timers\n");
		CTimerd::TimerList overlappingTimer;
		overlappingTimer = getOverlappingTimers(alarmtime, stoptime);
		if (!overlappingTimer.empty())
		{
			// timerd starts eventID at 0 so we can return -1
			return -1;
		}
	}
	bool adzaptimer = false;
	if(evType == CTimerd::TIMER_ADZAP){
		evType = CTimerd::TIMER_ZAPTO;
		adzaptimer = true;
	}
	CTimerd::TransferEventInfo tei; 
	CTimerd::TransferRecordingInfo tri;
	CTimerdMsg::commandAddTimer msgAddTimer;
	VALGRIND_PARANOIA(tei);
	VALGRIND_PARANOIA(tri);
	VALGRIND_PARANOIA(msgAddTimer);
	msgAddTimer.alarmTime  = alarmtime;
	msgAddTimer.announceTime = announcetime;
	msgAddTimer.stopTime   = stoptime;
	msgAddTimer.eventType = evType;
	msgAddTimer.eventRepeat = evrepeat;
	msgAddTimer.repeatCount = repeatcount;
	int length;
	if( evType == CTimerd::TIMER_SHUTDOWN || evType == CTimerd::TIMER_SLEEPTIMER )
	{
		length = 0;
	}
	/* else if(evType == CTimerd::TIMER_NEXTPROGRAM || evType == CTimerd::TIMER_ZAPTO || */
	else if (evType == CTimerd::TIMER_ZAPTO ||
		evType == CTimerd::TIMER_IMMEDIATE_RECORD || 
		evType == CTimerd::TIMER_ADZAP)
	{
		CTimerd::EventInfo *ei=static_cast<CTimerd::EventInfo*>(data); 
		tei.apids = ei->apids;
		tei.channel_id = ei->channel_id;
		tei.epg_starttime	= ei->epg_starttime;
		tei.epgID = ei->epgID;
		tei.recordingSafety = ei->recordingSafety;
		length = sizeof( CTimerd::TransferEventInfo);
		data = &tei;
	}
	else if(evType == CTimerd::TIMER_RECORD)
	{
		CTimerd::RecordingInfo *ri=static_cast<CTimerd::RecordingInfo*>(data); 
		tri.apids = ri->apids;
		tri.channel_id = ri->channel_id;
		tri.epg_starttime	= ri->epg_starttime;
		tri.epgID = ri->epgID;
		tri.recordingSafety = ri->recordingSafety;
		strncpy(tri.recordingDir, ri->recordingDir, RECORD_DIR_MAXLEN-1);
		length = sizeof( CTimerd::TransferRecordingInfo);
		data = &tri;
	}
	else if(evType == CTimerd::TIMER_STANDBY)
	{
		length = sizeof(CTimerdMsg::commandSetStandby);
	}
	else if(evType == CTimerd::TIMER_REMIND)
	{
		length = sizeof(CTimerdMsg::commandRemind);
	}
	else if(evType == CTimerd::TIMER_EXEC_PLUGIN)
	{
		length = sizeof(CTimerdMsg::commandExecPlugin);
	}
	else
	{
		length = 0;
	}

	send(CTimerdMsg::CMD_ADDTIMER, (char*)&msgAddTimer, sizeof(msgAddTimer));

	if((data != NULL) && (length > 0))
		send_data((char*)data, length);

	CTimerdMsg::responseAddTimer response;
	receive_data((char*)&response, sizeof(response));
	close_connection();
	
	if(adzaptimer){
		adzap_eventID = response.eventID;//set adzap flag
	}
	return( response.eventID);
}