diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp
index 38595342b..ab58b0b95 100644
--- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp
+++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp
@@ -1389,6 +1389,24 @@ void CControlAPI::SendTimers(CyhookHandler *hh)
}
}
+//-----------------------------------------------------------------------------
+void CControlAPI::_SendTime(CyhookHandler *hh, struct tm *Time, int digits){
+ char zTime[25] = {0};
+ char zDate[25] = {0};
+ strftime(zTime,20,"%H:%M",Time);
+ strftime(zDate,20,"%d.%m.%Y",Time);
+ hh->printf("\t\t\t\t\t%s %s\n",zDate,zTime);
+ hh->printf("\t\t\t\t\t%s\n",zDate);
+ hh->printf("\t\t\t\t\t\n",zTime);
+ hh->printf("\t\t\t\t\t%d\n",digits);
+ hh->printf("\t\t\t\t\t%d\n",Time->tm_mday);
+ hh->printf("\t\t\t\t\t%d\n",Time->tm_mon+1);
+ hh->printf("\t\t\t\t\t%d\n",Time->tm_year+1900);
+ hh->printf("\t\t\t\t\t%d\n",Time->tm_hour);
+ hh->printf("\t\t\t\t\t%d\n",Time->tm_min);
+}
+//-----------------------------------------------------------------------------
+// build xml for all timer data (needed for yWeb 3)
//-----------------------------------------------------------------------------
void CControlAPI::SendTimersXML(CyhookHandler *hh)
{
@@ -1409,14 +1427,10 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
// Look for Recording Safety Timers too
int pre=0, post=0;
- //FIXME: determine recording safety status
- //if(eventinfo->recordingSafety){
- NeutrinoAPI->Timerd->getRecordingSafety(pre,post);
- //}
+ NeutrinoAPI->Timerd->getRecordingSafety(pre,post);
// hh->printf("\t\t\t%d\n",(int)timer->recordingSafety);
hh->printf("\t\t\t%d\n",pre);
hh->printf("\t\t\t%d\n",post);
- // TODO: Timer config
hh->WriteLn("\t\n");
// start timer list
@@ -1430,50 +1444,53 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
hh->printf("\t\t\t%d\n",(int)timer->eventState);
hh->printf("\t\t\t%d\n",(int)timer->eventType);
- // build alarm/stoptime
- char zAlarmTime[25] = {0};
- struct tm *alarmTime = localtime(&(timer->alarmTime));
- strftime(zAlarmTime,20,"%d.%m. %H:%M",alarmTime);
- hh->printf("\t\t\t%s\n",zAlarmTime);
- hh->printf("\t\t\t%d\n",(int)timer->alarmTime);
+ // alarmtime
+ hh->WriteLn("\t\t\t\n");
+
+ struct tm *alarmTime = localtime(&(timer->alarmTime));
+ hh->WriteLn("\t\t\t\t\n");
+ _SendTime(hh, alarmTime, (int)timer->alarmTime);
+ hh->WriteLn("\t\t\t\t\n");
- char zSafetyAlarmTime[25] = {0};
time_t real_alarmTimeT = timer->alarmTime - pre;
struct tm *safetyAlarmTime = localtime(&real_alarmTimeT);
- strftime(zSafetyAlarmTime,20,"%d.%m. %H:%M",safetyAlarmTime);
- hh->printf("\t\t\t%s\n",zSafetyAlarmTime);
- hh->printf("\t\t\t%d\n",(int)real_alarmTimeT);
+ hh->WriteLn("\t\t\t\t\n");
+ _SendTime(hh, safetyAlarmTime, (int)real_alarmTimeT);
+ hh->WriteLn("\t\t\t\t\n");
- char zAnnounceTime[25] = {0};
+ hh->WriteLn("\t\t\t\n");
+
+ // announcetime
+ hh->WriteLn("\t\t\t\n");
struct tm *announceTime = localtime(&(timer->announceTime));
- strftime(zAnnounceTime,20,"%d.%m. %H:%M",announceTime);
- hh->printf("\t\t\t%s\n",zAnnounceTime);
- hh->printf("\t\t\t%d\n",(int)timer->announceTime);
+ hh->WriteLn("\t\t\t\t\n");
+ _SendTime(hh, announceTime, (int)timer->announceTime);
+ hh->WriteLn("\t\t\t\t\n");
- char zSafetyAnnounceTime[25] = {0};
time_t real_announceTimeT = timer->announceTime - pre;
struct tm *safetyAnnounceTime = localtime(&real_announceTimeT);
- strftime(zSafetyAnnounceTime,20,"%d.%m. %H:%M",safetyAnnounceTime);
- hh->printf("\t\t\t%s\n",zSafetyAnnounceTime);
- hh->printf("\t\t\t%d\n",(int)real_announceTimeT);
+ hh->WriteLn("\t\t\t\t\n");
+ _SendTime(hh, safetyAnnounceTime, (int)real_announceTimeT);
+ hh->WriteLn("\t\t\t\t\n");
+ hh->WriteLn("\t\t\t\n");
- char zStopTime[25] = {0};
+ // stoptime
if(timer->stopTime > 0){
+ hh->WriteLn("\t\t\t\n");
struct tm *stopTime = localtime(&(timer->stopTime));
- strftime(zStopTime,20,"%d.%m. %H:%M",stopTime);
- }
- hh->printf("\t\t\t%s\n",zStopTime);
- hh->printf("\t\t\t%d\n",(int)timer->stopTime);
+ hh->WriteLn("\t\t\t\t\n");
+ _SendTime(hh, stopTime, (int)timer->stopTime);
+ hh->WriteLn("\t\t\t\t\n");
- char zSafetyStopTime[25] = {0};
- time_t real_stopTimeT = timer->stopTime - post;
- if(timer->stopTime > 0){
+ time_t real_stopTimeT = timer->stopTime - post;
struct tm *safetyStopTime = localtime(&real_stopTimeT);
- strftime(zSafetyStopTime,20,"%d.%m. %H:%M",safetyStopTime);
+ hh->WriteLn("\t\t\t\t\n");
+ _SendTime(hh, safetyStopTime, (int)real_stopTimeT);
+ hh->WriteLn("\t\t\t\t\n");
+
+ hh->WriteLn("\t\t\t\n");
}
- hh->printf("\t\t\t%s\n",zSafetyStopTime);
- hh->printf("\t\t\t%d\n",(int)real_stopTimeT);
// repeat
std::string zRep = NeutrinoAPI->timerEventRepeat2Str(timer->eventRepeat);
@@ -1482,12 +1499,14 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
zRepCount = "-";
else
zRepCount = (timer->repeatCount == 0) ? "∞" : string_printf("%dx",timer->repeatCount);
- hh->printf("\t\t\t%s\n",zRepCount.c_str());
- hh->printf("\t\t\t%d\n",(int)timer->eventRepeat);
- hh->printf("\t\t\t%s\n",zRep.c_str());
+ hh->WriteLn("\t\t\t\n");
+ hh->printf("\t\t\t\t%s\n",zRepCount.c_str());
+ hh->printf("\t\t\t\t%d\n",(int)timer->eventRepeat);
+ hh->printf("\t\t\t\t%s\n",zRep.c_str());
char weekdays[8]={0};
NeutrinoAPI->Timerd->setWeekdaysToStr(timer->eventRepeat, weekdays);
- hh->printf("\t\t\t%s\n",weekdays);
+ hh->printf("\t\t\t\t%s\n",weekdays);
+ hh->WriteLn("\t\t\t\n");
// channel infos
std::string channel_name = NeutrinoAPI->GetServiceName(timer->channel_id);
@@ -1503,10 +1522,10 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
title = epgdata.title;
}
+ // timer specific data
switch(timer->eventType)
{
case CTimerd::TIMER_NEXTPROGRAM :{
-// hh->WriteLn("\t\t\tnext_program\n");
hh->printf("\t\t\t" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS "\n",timer->channel_id);
hh->printf("\t\t\t%s\n",channel_name.c_str());
hh->printf("\t\t\t
%s\n",title.c_str());
@@ -1514,7 +1533,6 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
break;
case CTimerd::TIMER_ZAPTO :{
-// hh->WriteLn("\t\t\tzapto\n");
hh->printf("\t\t\t" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS "\n",timer->channel_id);
hh->printf("\t\t\t%s\n",channel_name.c_str());
hh->printf("\t\t\t%s\n",title.c_str());
@@ -1522,7 +1540,6 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
break;
case CTimerd::TIMER_RECORD :{
-// hh->WriteLn("\t\t\trecord\n");
hh->printf("\t\t\t" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS "\n",timer->channel_id);
hh->printf("\t\t\t%s\n",channel_name.c_str());
hh->printf("\t\t\t%s\n",title.c_str());
@@ -1545,13 +1562,11 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
break;
case CTimerd::TIMER_STANDBY :{
-// hh->WriteLn("\t\t\tstandby\n");
hh->printf("\t\t\t%s\n",(timer->standby_on)? "on" : "off");
}
break;
case CTimerd::TIMER_REMIND :{
-// hh->WriteLn("\t\t\tremind\n");
std::string _message;
_message = std::string(timer->message).substr(0,20);
hh->printf("\t\t\t%s\n",_message.c_str());
@@ -1559,18 +1574,15 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
break;
case CTimerd::TIMER_EXEC_PLUGIN :{
-// hh->WriteLn("\t\t\tplugin\n");
hh->printf("\t\t\t%s\n",timer->pluginName);
}
break;
case CTimerd::TIMER_SLEEPTIMER :{
-// hh->WriteLn("\t\t\tsleeptimer\n");
}
break;
case CTimerd::TIMER_IMMEDIATE_RECORD :{
-// hh->WriteLn("\t\t\timmediate_record\n");
}
break;
@@ -1726,16 +1738,13 @@ void CControlAPI::doNewTimer(CyhookHandler *hh)
tnull = time(NULL);
struct tm *alarmTime=localtime(&tnull);
alarmTime->tm_sec = 0;
- if(sscanf(hh->ParamList["alDate"].c_str(),"%2d.%2d.%4d",&(alarmTime->tm_mday), &(alarmTime->tm_mon), &(alarmTime->tm_year)) == 3)
- {
- alarmTime->tm_mon -= 1;
- alarmTime->tm_year -= 1900;
- }
+ strptime(hh->ParamList["alDate"].c_str(), "%d.%m.%Y", alarmTime);
// Alarm Time - Format exact! HH:MM
if(hh->ParamList["alTime"] != "")
- sscanf(hh->ParamList["alTime"].c_str(),"%2d.%2d",&(alarmTime->tm_hour), &(alarmTime->tm_min));
+ strptime(hh->ParamList["alTime"].c_str(), "%H:%M", alarmTime);
alHour = alarmTime->tm_hour;
+
correctTime(alarmTime);
alarmTimeT = mktime(alarmTime);
announceTimeT = alarmTimeT;
@@ -1743,15 +1752,12 @@ void CControlAPI::doNewTimer(CyhookHandler *hh)
stopTime->tm_sec = 0;
// Stop Time - Format exact! HH:MM
if(hh->ParamList["stTime"] != "")
- sscanf(hh->ParamList["stTime"].c_str(),"%2d.%2d",&(stopTime->tm_hour), &(stopTime->tm_min));
+ strptime(hh->ParamList["stTime"].c_str(), "%H:%M", stopTime);
// Stop Date - Format exact! DD.MM.YYYY
if(hh->ParamList["stDate"] != "")
- if(sscanf(hh->ParamList["stDate"].c_str(),"%2d.%2d.%4d",&(stopTime->tm_mday), &(stopTime->tm_mon), &(stopTime->tm_year)) == 3)
- {
- stopTime->tm_mon -= 1;
- stopTime->tm_year -= 1900;
- }
+ strptime(hh->ParamList["stDate"].c_str(), "%d.%m.%Y", stopTime);
+ stopTime->tm_sec = 0;
correctTime(stopTime);
stopTimeT = mktime(stopTime);
if(hh->ParamList["stDate"] == "" && alHour > stopTime->tm_hour)
diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.h b/src/nhttpd/tuxboxapi/coolstream/controlapi.h
index de9d93bcc..986aaf82f 100644
--- a/src/nhttpd/tuxboxapi/coolstream/controlapi.h
+++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.h
@@ -43,7 +43,7 @@ private:
friend class CNeutrinoWebserver; // for timer /fb/ compatibility
void doModifyTimer(CyhookHandler *hh);
void doNewTimer(CyhookHandler *hh);
-
+ void _SendTime(CyhookHandler *hh, struct tm *Time, int digits);
//yweb
void YWeb_SendVideoStreamingPids(CyhookHandler *hh, int apid_no);
void YWeb_SendRadioStreamingPid(CyhookHandler *hh);
diff --git a/src/nhttpd/web/Y_Tools_Timer_Sync.js b/src/nhttpd/web/Y_Tools_Timer_Sync.js
index 276f74ce1..3a062af99 100644
--- a/src/nhttpd/web/Y_Tools_Timer_Sync.js
+++ b/src/nhttpd/web/Y_Tools_Timer_Sync.js
@@ -282,7 +282,7 @@ function do_set_timer()
+"&rec_dir="+document.f.rec_dir.value
+"&rs=1"
+"&update=1";
- _url = _urlt.replace(/:/gi,".");
+// _url = _urlt.replace(/:/gi,".");
/*_url = encodeURI(_url);*/
loadSyncURL(_url);
channels++;