Project "Tuxbox-GIT: apps":
The branch, master has been updated
via 62e610549182843a26c04ed04e5fd6b9cbd807f6 (commit)
via 84b24096d52cd105cdc2b8206675dc36acdff91f (commit)
via 1de4361b414701cca1115a97209cde79e28a1e7e (commit)
via c38c2baf0a7a599b0f3954ac422c8b1c54d69b27 (commit)
via 108db7191980288ae0913f74ac6a631099e8e4aa (commit)
via 02b79fbde6123b2c91c54e3064959766e2b0b418 (commit)
via 689aa7ef274825fe3172b39698c18a5bae0dc754 (commit)
via d1b8bc02894a76f0445e493b2d2c557f95984d39 (commit)
via da04fabe85065c3d88c4bae3b73fa2710991a8d8 (commit)
via 45971173f59debd02fcac74107b4a1c4d2506e28 (commit)
via 47eea8f986f868c062d24a483877cb59a89461ca (commit)
via 23ebc31d506f7f64e7c72ba30d43bb62050ec202 (commit)
via b8eab431be06215d2b69b6980dca2221587d3a91 (commit)
via 637f72c2b0d0a88f79212174b25ee4b9577ae17c (commit)
via f054482507a28ab8bdb40118364403629abbe8e5 (commit)
via 616b1b309489fef1848f1b976b1837ecd5ab2a99 (commit)
via 244ac84bed746f4da84f7761a2ca4633d7d8851e (commit)
via 92dbcbfe0db2303c31c600d6de3a11fdb4cf2f34 (commit)
via b3386eae7c5eea9cda4567f9cd3895bade97c56b (commit)
from a6db6293464565ac79c5e52a1358fbea51353e7d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 62e610549182843a26c04ed04e5fd6b9cbd807f6
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Feb 8 19:38:55 2014 +0100
Neutrino event list: consider announce time instead of start time ...
.. when asking user on timer conflict
just to be conform with EPG Viewer, EPG Plus and timer list
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/src/gui/eventlist.cpp
b/tuxbox/neutrino/src/gui/eventlist.cpp
index a276c66..729023f 100644
--- a/tuxbox/neutrino/src/gui/eventlist.cpp
+++ b/tuxbox/neutrino/src/gui/eventlist.cpp
@@ -438,7 +438,7 @@ int EventList::exec(const t_channel_id channel_id, const
std::string& channelnam
evtlist[selected].startTime - (ANNOUNCETIME + 120),
TIMERD_APIDS_CONF, true, recDir,false) == -1)
{
-
if(askUserOnTimerConflict(evtlist[selected].startTime,
+
if(askUserOnTimerConflict(evtlist[selected].startTime - (ANNOUNCETIME + 120),
evtlist[selected].startTime + evtlist[selected].duration))
{
//
Timer.addRecordTimerEvent(channel_id,
commit 84b24096d52cd105cdc2b8206675dc36acdff91f
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Feb 8 18:48:07 2014 +0100
Neutrino: don't get full EPG data if not needed
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
index b7c9da4..814eaf1 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
@@ -1946,8 +1946,8 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh)
std::string title = timer->epgTitle;
if (timer->epgID != 0)
{
- CEPGData epgdata;
- if (NeutrinoAPI->Sectionsd->getEPGid(timer->epgID,
timer->epg_starttime, &epgdata))
+ CShortEPGData epgdata;
+ if (NeutrinoAPI->Sectionsd->getEPGidShort(timer->epgID,
&epgdata))
title = epgdata.title;
}
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
index ab8e6ad..363f1c9 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
@@ -806,8 +806,8 @@ std::string
CNeutrinoYParser::func_get_timer_list(CyhookHandler */*hh*/, std::s
}
if(timer->epgID!=0)
{
- CEPGData epgdata;
- if
(NeutrinoAPI->Sectionsd->getEPGid(timer->epgID, timer->epg_starttime, &epgdata))
+ CShortEPGData epgdata;
+ if
(NeutrinoAPI->Sectionsd->getEPGidShort(timer->epgID, &epgdata))
sAddData+="<br/>" +
epgdata.title;
else
sAddData+=std::string("<br/>")+timer->epgTitle;
diff --git a/tuxbox/neutrino/src/gui/channellist.cpp
b/tuxbox/neutrino/src/gui/channellist.cpp
index eb68fab..4609d7b 100644
--- a/tuxbox/neutrino/src/gui/channellist.cpp
+++ b/tuxbox/neutrino/src/gui/channellist.cpp
@@ -1717,7 +1717,7 @@ void CChannelList::showdescription(int index)
{
ffheight = g_Font[eventFont]->getHeight();
CChannelEvent *p_event = &chanlist[index]->currentEvent;
- g_Sectionsd->getEPGid(p_event->eventID, p_event->startTime, &epgData);
+ g_Sectionsd->getEPGidShort(p_event->eventID, &epgData);
#warning fixme sectionsd should deliver data in UTF-8 format
if (!(epgData.info2.empty()))
diff --git a/tuxbox/neutrino/src/gui/channellist.h
b/tuxbox/neutrino/src/gui/channellist.h
index c94b252..8a6f051 100644
--- a/tuxbox/neutrino/src/gui/channellist.h
+++ b/tuxbox/neutrino/src/gui/channellist.h
@@ -103,7 +103,7 @@ class CChannelList
int infozone_width;
int infozone_height;
- CEPGData epgData;
+ CShortEPGData epgData;
bool historyMode;
bool usedInBouquet;
bool displayNext;
diff --git a/tuxbox/neutrino/src/gui/timerlist.cpp
b/tuxbox/neutrino/src/gui/timerlist.cpp
index e7fb080..7e2d2e5 100644
--- a/tuxbox/neutrino/src/gui/timerlist.cpp
+++ b/tuxbox/neutrino/src/gui/timerlist.cpp
@@ -664,8 +664,8 @@ void CTimerList::paintItem(int pos)
}
if(timer.epgID!=0)
{
- CEPGData epgdata;
- if
(g_Sectionsd->getEPGid(timer.epgID, timer.epg_starttime, &epgdata))
+ CShortEPGData epgdata;
+ if
(g_Sectionsd->getEPGidShort(timer.epgID, &epgdata))
{
#warning fixme sectionsd should deliver data in UTF-8 format
zAddData += " : ";
@@ -1288,9 +1288,9 @@ bool askUserOnTimerConflict(time_t announceTime, time_t
stopTime)
timerbuf +=
CTimerList::convertChannelId2String(it->channel_id); // UTF-8
if(it->epgID != 0)
{
- CEPGData epgdata;
+ CShortEPGData epgdata;
timerbuf += ": ";
- if (g_Sectionsd->getEPGid(it->epgID, it->epg_starttime,
&epgdata))
+ if (g_Sectionsd->getEPGidShort(it->epgID, &epgdata))
{
#warning fixme sectionsd should deliver data in UTF-8 format
timerbuf += Latin1_to_UTF8(epgdata.title);
diff --git a/tuxbox/neutrino/src/neutrino.cpp b/tuxbox/neutrino/src/neutrino.cpp
index ed2684b..ec360d9 100644
--- a/tuxbox/neutrino/src/neutrino.cpp
+++ b/tuxbox/neutrino/src/neutrino.cpp
@@ -3046,10 +3046,10 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t m,
neutrino_msg_data_t data)
if (eventinfo->epgID != 0)
{
- CEPGData epgdata;
+ CShortEPGData epgdata;
#warning fixme sectionsd should deliver data in UTF-8 format
zAddData += " :\n";
- if
(g_Sectionsd->getEPGid(eventinfo->epgID, eventinfo->epg_starttime, &epgdata))
+ if
(g_Sectionsd->getEPGidShort(eventinfo->epgID, &epgdata))
zAddData +=
Latin1_to_UTF8(epgdata.title);
else if (strlen(eventinfo->epgTitle) !=
0)
zAddData +=
Latin1_to_UTF8(eventinfo->epgTitle);
@@ -3120,10 +3120,10 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t m,
neutrino_msg_data_t data)
if (eventinfo->epgID != 0)
{
- CEPGData epgdata;
+ CShortEPGData epgdata;
#warning fixme sectionsd should deliver data in UTF-8 format
zAddData += " :\n";
- if
(g_Sectionsd->getEPGid(eventinfo->epgID, eventinfo->epg_starttime, &epgdata))
+ if
(g_Sectionsd->getEPGidShort(eventinfo->epgID, &epgdata))
zAddData +=
Latin1_to_UTF8(epgdata.title);
else if (strlen(eventinfo->epgTitle) !=
0)
zAddData +=
Latin1_to_UTF8(eventinfo->epgTitle);
commit 1de4361b414701cca1115a97209cde79e28a1e7e
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Wed Jan 29 18:31:05 2014 +0100
nhttpd controlapi and yParser: avoid unnecessary socket communication ...
... if current EPG is not available
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
index e1b7cb9..b7c9da4 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/controlapi.cpp
@@ -1409,8 +1409,8 @@ void CControlAPI::ZaptoCGI(CyhookHandler *hh)
t_channel_id current_channel =
NeutrinoAPI->Zapit->getCurrentServiceID();
CSectionsdClient::LinkageDescriptorList desc;
CSectionsdClient::responseGetCurrentNextInfoChannelID
currentNextInfo;
-
NeutrinoAPI->Sectionsd->getCurrentNextServiceKey(current_channel,
currentNextInfo);
- if
(NeutrinoAPI->Sectionsd->getLinkageDescriptorsUniqueKey(currentNextInfo.current_uniqueKey,desc))
+ bool has_current_next =
NeutrinoAPI->Sectionsd->getCurrentNextServiceKey(current_channel,
currentNextInfo);
+ if (has_current_next &&
NeutrinoAPI->Sectionsd->getLinkageDescriptorsUniqueKey(currentNextInfo.current_uniqueKey,
desc))
{
for(unsigned int i=0;i< desc.size();i++)
{
@@ -1677,8 +1677,8 @@ void CControlAPI::SendAllCurrentVAPid(CyhookHandler *hh)
t_channel_id current_channel =
NeutrinoAPI->Zapit->getCurrentServiceID();
CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo;
- NeutrinoAPI->Sectionsd->getCurrentNextServiceKey(current_channel,
currentNextInfo);
- if
(NeutrinoAPI->Sectionsd->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags))
+ bool has_current_next =
NeutrinoAPI->Sectionsd->getCurrentNextServiceKey(current_channel,
currentNextInfo);
+ if (has_current_next &&
NeutrinoAPI->Sectionsd->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,
tags))
{
for (unsigned short j=0; j< pids.APIDs.size(); j++)
{
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
index ec636f2..ab8e6ad 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
@@ -537,8 +537,8 @@ std::string
CNeutrinoYParser::func_get_audio_pids_as_dropdown(CyhookHandler */*
t_channel_id current_channel =
NeutrinoAPI->Zapit->getCurrentServiceID();
CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo;
- NeutrinoAPI->Sectionsd->getCurrentNextServiceKey(current_channel,
currentNextInfo);
- if
(NeutrinoAPI->Sectionsd->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags))
+ bool has_current_next =
NeutrinoAPI->Sectionsd->getCurrentNextServiceKey(current_channel,
currentNextInfo);
+ if (has_current_next &&
NeutrinoAPI->Sectionsd->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,
tags))
{
for (unsigned short j=0; j< pids.APIDs.size(); j++)
{
commit c38c2baf0a7a599b0f3954ac422c8b1c54d69b27
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Tue Jan 28 21:41:54 2014 +0100
nhttpd NeutrinoAPI: fix getting channel events if sections scan is active
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
index 18abee9..e128e60 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
@@ -241,7 +241,7 @@ bool CNeutrinoAPI::GetStreamInfo(int bitInfo[10])
bool CNeutrinoAPI::GetChannelEvents(void)
{
- eList = Sectionsd->getChannelEvents();
+ eList = Sectionsd->getChannelEvents(Zapit->getMode() !=
CZapitClient::MODE_RADIO);
CChannelEventList::iterator eventIterator;
ChannelListEvents.clear();
commit 108db7191980288ae0913f74ac6a631099e8e4aa
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Mon Jan 27 19:08:14 2014 +0100
Neutrino SHTDCNT: init shutdown_cnt
also remove undefined method 'setlcdparameter'
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/src/driver/shutdown_count.cpp
b/tuxbox/neutrino/src/driver/shutdown_count.cpp
index 688bd85..8c4b6d6 100644
--- a/tuxbox/neutrino/src/driver/shutdown_count.cpp
+++ b/tuxbox/neutrino/src/driver/shutdown_count.cpp
@@ -62,6 +62,7 @@ void* SHTDCNT::TimeThread(void *)
void SHTDCNT::init()
{
+ shutdown_cnt = atoi(g_settings.shutdown_count) * 60;
if (pthread_create (&thrTime, NULL, TimeThread, NULL) != 0 )
{
perror("[SHTDCNT]: pthread_create(TimeThread)");
diff --git a/tuxbox/neutrino/src/driver/shutdown_count.h
b/tuxbox/neutrino/src/driver/shutdown_count.h
index 81a68a2..7eb350f 100644
--- a/tuxbox/neutrino/src/driver/shutdown_count.h
+++ b/tuxbox/neutrino/src/driver/shutdown_count.h
@@ -42,8 +42,6 @@ class SHTDCNT
public:
- void setlcdparameter(void);
-
static SHTDCNT* getInstance();
void init();
};
commit 02b79fbde6123b2c91c54e3064959766e2b0b418
Author: Thilo Graf <d...@novatux.de>
Date: Mon Jan 27 18:27:28 2014 +0100
Neutrino CBookmarkManager: init bookmarksmodified in constructor
var bookmarksmodified was not intitialized
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/src/gui/bookmarkmanager.cpp
b/tuxbox/neutrino/src/gui/bookmarkmanager.cpp
index 4b5e41c..51bb9bf 100644
--- a/tuxbox/neutrino/src/gui/bookmarkmanager.cpp
+++ b/tuxbox/neutrino/src/gui/bookmarkmanager.cpp
@@ -185,6 +185,7 @@ void CBookmarkManager::writeBookmarkFile() {
CBookmarkManager::CBookmarkManager() : bookmarkfile ('\t')
{
+ bookmarksmodified = false;
readBookmarkFile();
}
commit 689aa7ef274825fe3172b39698c18a5bae0dc754
Author: martii <m4r...@gmx.de>
Date: Sun Jan 26 17:53:44 2014 +0100
nhttpd yParser: fix apparent typo
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
index 9312c06..ec636f2 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
@@ -613,7 +613,7 @@ std::string
CNeutrinoYParser::func_unmount_get_list(CyhookHandler */*hh*/, std:
in >> ymount >> ylocal_dir >> yfstype;
in.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
yfstype = trim(yfstype);
- if( (yfstype == "nfs") << (yfstype == "ftp") || (yfstype ==
"lufsd") )
+ if( (yfstype == "nfs") || (yfstype == "ftp") || (yfstype ==
"lufsd") )
{
mounts=ylocal_dir +" on "+ ymount + " ("+yfstype+")";
ysel = ((j==0) ? "checked=\"checked\"" : "");
commit d1b8bc02894a76f0445e493b2d2c557f95984d39
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Jan 25 14:46:53 2014 +0100
yWeb: bump version to 2.7.0.31
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
b/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
index a8e3b95..d98bacb 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
@@ -1,5 +1,5 @@
-version=2.7.0.30
-date=23.10.2013
+version=2.7.0.31
+date=11.01.2014
type=Release
info=
commit da04fabe85065c3d88c4bae3b73fa2710991a8d8
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sun Jan 19 19:33:57 2014 +0100
timerd: reset EPG ID when modifying record or zapto timer
this ensures an up-to-date EPG ID if no EPG infos available for the
modified event during modification
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/timerd/timermanager.cpp
b/tuxbox/neutrino/daemons/timerd/timermanager.cpp
index 14a8b69..3dbc6da 100644
--- a/tuxbox/neutrino/daemons/timerd/timermanager.cpp
+++ b/tuxbox/neutrino/daemons/timerd/timermanager.cpp
@@ -360,13 +360,19 @@ int CTimerManager::modifyEvent(int ev_ID, time_t
announceTime, time_t alarmTime,
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:
commit 45971173f59debd02fcac74107b4a1c4d2506e28
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sun Jan 19 14:38:59 2014 +0100
Neutrino timerlist: sort timer type chooser alphabetically
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/data/locale/english.locale
b/tuxbox/neutrino/data/locale/english.locale
index 835ebe3..8d6f200 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -1475,7 +1475,7 @@ timerlist.standby SB mode
timerlist.standby.off Leave standby
timerlist.standby.on Enter standby
timerlist.stoptime Stop time
-timerlist.type Timer typ
+timerlist.type Timer type
timerlist.type.execplugin Execute plugin
timerlist.type.nextprogram Next program
timerlist.type.record Record
diff --git a/tuxbox/neutrino/src/gui/timerlist.cpp
b/tuxbox/neutrino/src/gui/timerlist.cpp
index 41cff0f..e7fb080 100644
--- a/tuxbox/neutrino/src/gui/timerlist.cpp
+++ b/tuxbox/neutrino/src/gui/timerlist.cpp
@@ -1138,7 +1138,7 @@ int CTimerList::newTimer()
CTimerListNewNotifier notifier2((int *)&timerNew.eventType,
&timerNew.stopTime,m2,m6,m8,m9,m10,m7,
timerSettings_stopTime.getValue());
- CMenuOptionChooser* m0 = new CMenuOptionChooser(LOCALE_TIMERLIST_TYPE,
(int *)&timerNew.eventType, TIMERLIST_TYPE_OPTIONS,
TIMERLIST_TYPE_OPTION_COUNT, true, ¬ifier2);
+ CMenuOptionChooser* m0 = new CMenuOptionChooser(LOCALE_TIMERLIST_TYPE,
(int *)&timerNew.eventType, TIMERLIST_TYPE_OPTIONS,
TIMERLIST_TYPE_OPTION_COUNT, true, ¬ifier2, CRCInput::RC_nokey, "", false,
true);
timerSettings.addItem( m0);
timerSettings.addItem( m1);
commit 47eea8f986f868c062d24a483877cb59a89461ca
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Jan 18 22:37:04 2014 +0100
Neutrino CVCRControl: always use correct EPG ID when filling movie infos
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/src/driver/vcrcontrol.cpp
b/tuxbox/neutrino/src/driver/vcrcontrol.cpp
index a61a967..398a2a3 100644
--- a/tuxbox/neutrino/src/driver/vcrcontrol.cpp
+++ b/tuxbox/neutrino/src/driver/vcrcontrol.cpp
@@ -441,6 +441,7 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
CMovieInfo cMovieInfo;
MI_MOVIE_INFO movieInfo;
std::string info1, info2;
+ event_id_t epg_id = epgid;
cMovieInfo.clearMovieInfo(&movieInfo);
CZapitClient::responseGetPIDs pids;
@@ -454,12 +455,12 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
movieInfo.epgChannel = tmpstring;
tmpstring = (epgTitle.empty()) ? "not available" :
Latin1_to_UTF8(epgTitle);
- if (epgid != 0)
+ if (epg_id != 0)
{
//#define SHORT_EPG
#ifdef SHORT_EPG
CShortEPGData epgdata;
- if (g_Sectionsd->getEPGidShort(epgid, &epgdata))
+ if (g_Sectionsd->getEPGidShort(epg_id, &epgdata))
{
#warning fixme sectionsd should deliver data in UTF-8 format
tmpstring = Latin1_to_UTF8(epgdata.title);
@@ -468,12 +469,14 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
}
#else
CEPGData epgdata;
- bool has_epgdata = g_Sectionsd->getEPGid(epgid, epg_time,
&epgdata);
+ bool has_epgdata = g_Sectionsd->getEPGid(epg_id, epg_time,
&epgdata);
if (!has_epgdata)
{
has_epgdata =
g_Sectionsd->getActualEPGServiceKey(channel_id, &epgdata);
if (has_epgdata && !epgTitle.empty() && epgTitle !=
epgdata.title)
has_epgdata = false;
+ if (has_epgdata)
+ epg_id = epgdata.eventID;
}
if (has_epgdata)
{
@@ -496,13 +499,13 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
movieInfo.epgId = channel_id;
movieInfo.epgInfo1 = info1;
movieInfo.epgInfo2 = info2;
- movieInfo.epgEpgId = epgid ;
+ movieInfo.epgEpgId = epg_id;
movieInfo.epgMode = g_Zapit->getMode();
movieInfo.epgVideoPid = si.vpid;
EPG_AUDIO_PIDS audio_pids;
// super hack :-), der einfachste weg an die apid descriptions
ranzukommen
- g_RemoteControl->current_EPGid = epgid;
+ g_RemoteControl->current_EPGid = epg_id;
g_RemoteControl->current_PIDs = pids;
g_RemoteControl->processAPIDnames();
APIDList apid_list;
commit 23ebc31d506f7f64e7c72ba30d43bb62050ec202
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Jan 18 21:19:47 2014 +0100
Neutrino CVCRControl: only use current EPG if it has wanted EPG title
based on patch by Jacek Jendrzej <crash...@googlemail.com> in Coolstream Git
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/src/driver/vcrcontrol.cpp
b/tuxbox/neutrino/src/driver/vcrcontrol.cpp
index 0247d2d..a61a967 100644
--- a/tuxbox/neutrino/src/driver/vcrcontrol.cpp
+++ b/tuxbox/neutrino/src/driver/vcrcontrol.cpp
@@ -469,8 +469,12 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
#else
CEPGData epgdata;
bool has_epgdata = g_Sectionsd->getEPGid(epgid, epg_time,
&epgdata);
- if (!has_epgdata && epgTitle.empty())
+ if (!has_epgdata)
+ {
has_epgdata =
g_Sectionsd->getActualEPGServiceKey(channel_id, &epgdata);
+ if (has_epgdata && !epgTitle.empty() && epgTitle !=
epgdata.title)
+ has_epgdata = false;
+ }
if (has_epgdata)
{
#warning fixme sectionsd should deliver data in UTF-8 format
commit b8eab431be06215d2b69b6980dca2221587d3a91
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Jan 18 19:25:45 2014 +0100
Neutrino timerlist: skip repeated timer event with blue key
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/data/locale/deutsch.locale
b/tuxbox/neutrino/data/locale/deutsch.locale
index e959463..459ef9b 100644
--- a/tuxbox/neutrino/data/locale/deutsch.locale
+++ b/tuxbox/neutrino/data/locale/deutsch.locale
@@ -1432,7 +1432,6 @@ timerlist.apids_dflt Voreingestellte Tonspuren aufnehmen
timerlist.bouquetselect Bouquet wählen
timerlist.channel Kanal
timerlist.channelselect Kanal wählen
-timerlist.close SchlieÃen
timerlist.delete Löschen
timerlist.menumodify Timer bearbeiten
timerlist.menunew Neuer Timer
@@ -1471,6 +1470,7 @@ timerlist.repeatcount Wiederholungen
timerlist.repeatcount.help1 Anzahl der Timerausführungen
timerlist.repeatcount.help2 0 für unbegrenzte Anzahl
timerlist.save Timer speichern
+timerlist.skip Aussetzen
timerlist.standby SB Modus
timerlist.standby.off Aufwachen aus Standby
timerlist.standby.on Auf Standby gehen
diff --git a/tuxbox/neutrino/data/locale/english.locale
b/tuxbox/neutrino/data/locale/english.locale
index d03aa0f..835ebe3 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -1432,7 +1432,6 @@ timerlist.apids_dflt record default audio streams
timerlist.bouquetselect choose bouquet
timerlist.channel Channel
timerlist.channelselect choose channel
-timerlist.close Exit
timerlist.delete Delete
timerlist.menumodify Modify timer
timerlist.menunew New timer
@@ -1471,6 +1470,7 @@ timerlist.repeatcount repeats
timerlist.repeatcount.help1 amount of timer repeats
timerlist.repeatcount.help2 0 for unlimited repeats
timerlist.save Save timer
+timerlist.skip Skip
timerlist.standby SB mode
timerlist.standby.off Leave standby
timerlist.standby.on Enter standby
diff --git a/tuxbox/neutrino/src/gui/timerlist.cpp
b/tuxbox/neutrino/src/gui/timerlist.cpp
index 52b1181..41cff0f 100644
--- a/tuxbox/neutrino/src/gui/timerlist.cpp
+++ b/tuxbox/neutrino/src/gui/timerlist.cpp
@@ -515,7 +515,11 @@ int CTimerList::show()
{
update=true;
}
- else if ( msg == CRCInput::RC_blue || CRCInput::isNumeric(msg) )
+ else if (msg == CRCInput::RC_blue && !timerlist.empty())
+ {
+ update = skipTimer();
+ }
+ else if (CRCInput::isNumeric(msg))
{
//Ignore
}
@@ -751,8 +755,8 @@ const struct button_label TimerListButtons[5] =
{ NEUTRINO_ICON_BUTTON_RED , LOCALE_TIMERLIST_DELETE },
{ NEUTRINO_ICON_BUTTON_GREEN , LOCALE_TIMERLIST_NEW },
{ NEUTRINO_ICON_BUTTON_YELLOW, LOCALE_TIMERLIST_RELOAD },
- { NEUTRINO_ICON_BUTTON_HOME , LOCALE_TIMERLIST_CLOSE },
- { NEUTRINO_ICON_BUTTON_OKAY , LOCALE_TIMERLIST_MODIFY }
+ { NEUTRINO_ICON_BUTTON_OKAY , LOCALE_TIMERLIST_MODIFY },
+ { NEUTRINO_ICON_BUTTON_BLUE , LOCALE_TIMERLIST_SKIP }
};
void CTimerList::paintFoot()
@@ -761,9 +765,13 @@ void CTimerList::paintFoot()
int ButtonWidth = (width - 20) / 5;
frameBuffer->paintBoxRel(x, y_foot, width, footHeight,
COL_INFOBAR_SHADOW_PLUS_1, RADIUS_MID, CORNER_BOTTOM);
if (timerlist.empty())
- ::paintButtons(frameBuffer,
g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], g_Locale, x + 10 +
ButtonWidth, y_foot, ButtonWidth, 3, &(TimerListButtons[1]));
+ ::paintButtons(frameBuffer,
g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], g_Locale, x + 10 +
ButtonWidth, y_foot, ButtonWidth, 2, &(TimerListButtons[1]));
else
- ::paintButtons(frameBuffer,
g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], g_Locale, x + 10, y_foot,
ButtonWidth, 5, TimerListButtons);
+ {
+ CTimerd::responseGetTimer* timer = &timerlist[selected];
+ unsigned int buttonsCount = (timer->eventRepeat !=
CTimerd::TIMERREPEAT_ONCE && timer->repeatCount != 1) ? 5 : 4;
+ ::paintButtons(frameBuffer,
g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL], g_Locale, x + 10, y_foot,
ButtonWidth, buttonsCount, TimerListButtons);
+ }
}
void CTimerList::paint()
@@ -810,6 +818,8 @@ void CTimerList::updateSelection(unsigned int newpos)
paintItem(prev_selected - liststart);
paintItem(selected - liststart);
}
+
+ paintFoot();
}
}
@@ -1153,6 +1163,89 @@ int CTimerList::newTimer()
return ret;
}
+bool CTimerList::skipTimer()
+{
+ CTimerd::responseGetTimer* timer = &timerlist[selected];
+ if (timer->eventRepeat != CTimerd::TIMERREPEAT_ONCE &&
timer->repeatCount != 1)
+ {
+ struct tm *t = localtime(&timer->alarmTime);
+ int isdst1 = t->tm_isdst;
+ switch (timer->eventRepeat)
+ {
+ case CTimerd::TIMERREPEAT_DAILY:
+ t->tm_mday++;
+ break;
+ case CTimerd::TIMERREPEAT_WEEKLY:
+ t->tm_mday += 7;
+ break;
+ case CTimerd::TIMERREPEAT_BIWEEKLY:
+ t->tm_mday += 14;
+ break;
+ case CTimerd::TIMERREPEAT_FOURWEEKLY:
+ t->tm_mday += 28;
+ break;
+ case CTimerd::TIMERREPEAT_MONTHLY:
+ t->tm_mon++;
+ break;
+ default:
+ if (timer->eventRepeat >=
CTimerd::TIMERREPEAT_WEEKDAYS)
+ {
+ int weekdays =
((int)timer->eventRepeat) >> 9;
+ if (weekdays > 0)
+ {
+ bool weekday_arr[7];
+ weekday_arr[0] = ((weekdays &
0x40) > 0); //So
+ weekday_arr[1] = ((weekdays &
0x1) > 0); //Mo
+ weekday_arr[2] = ((weekdays &
0x2) > 0); //Di
+ weekday_arr[3] = ((weekdays &
0x4) > 0); //Mi
+ weekday_arr[4] = ((weekdays &
0x8) > 0); //Do
+ weekday_arr[5] = ((weekdays &
0x10) > 0); //Fr
+ weekday_arr[6] = ((weekdays &
0x20) > 0); //Sa
+ struct tm *t2 =
localtime(&timer->alarmTime);
+ int day = 1;
+ for (;
!weekday_arr[(t2->tm_wday + day) % 7]; day++);
+ t2->tm_mday += day;
+ }
+ }
+ }
+ time_t diff = mktime(t) - timer->alarmTime;
+ timer->alarmTime += diff;
+ t = localtime(&timer->alarmTime);
+ int isdst2 = t->tm_isdst;
+ if (isdst2 > isdst1) //change from winter to summer
+ {
+ diff -= 3600;
+ timer->alarmTime -= 3600;
+ }
+ else if (isdst1 > isdst2) //change from summer to winter
+ {
+ diff += 3600;
+ timer->alarmTime += 3600;
+ }
+ if (timer->announceTime > 0)
+ timer->announceTime += diff;
+ if (timer->stopTime > 0)
+ timer->stopTime += diff;
+ if (timer->repeatCount > 0)
+ timer->repeatCount--;
+
+ if (timer->eventType == CTimerd::TIMER_RECORD)
+ {
+ Timer->modifyRecordTimerEvent(timer->eventID,
timer->announceTime, timer->alarmTime,
+ timer->stopTime,
timer->eventRepeat, timer->repeatCount, timer->recordingDir);
+ }
+ else
+ {
+ Timer->modifyTimerEvent(timer->eventID,
timer->announceTime, timer->alarmTime,
+ timer->stopTime,
timer->eventRepeat, timer->repeatCount);
+ }
+
+ return true;
+ }
+
+ return false;
+}
+
bool askUserOnTimerConflict(time_t announceTime, time_t stopTime)
{
CTimerdClient Timer;
diff --git a/tuxbox/neutrino/src/gui/timerlist.h
b/tuxbox/neutrino/src/gui/timerlist.h
index 6317150..5d29c5e 100644
--- a/tuxbox/neutrino/src/gui/timerlist.h
+++ b/tuxbox/neutrino/src/gui/timerlist.h
@@ -84,6 +84,7 @@ class CTimerList : public CMenuTarget
void updateSelection(unsigned int newpos);
int modifyTimer();
int newTimer();
+ bool skipTimer();
public:
CTimerList();
diff --git a/tuxbox/neutrino/src/system/locals.h
b/tuxbox/neutrino/src/system/locals.h
index 48c2862..bd6891e 100644
--- a/tuxbox/neutrino/src/system/locals.h
+++ b/tuxbox/neutrino/src/system/locals.h
@@ -1459,7 +1459,6 @@ typedef enum
LOCALE_TIMERLIST_BOUQUETSELECT,
LOCALE_TIMERLIST_CHANNEL,
LOCALE_TIMERLIST_CHANNELSELECT,
- LOCALE_TIMERLIST_CLOSE,
LOCALE_TIMERLIST_DELETE,
LOCALE_TIMERLIST_MENUMODIFY,
LOCALE_TIMERLIST_MENUNEW,
@@ -1498,6 +1497,7 @@ typedef enum
LOCALE_TIMERLIST_REPEATCOUNT_HELP1,
LOCALE_TIMERLIST_REPEATCOUNT_HELP2,
LOCALE_TIMERLIST_SAVE,
+ LOCALE_TIMERLIST_SKIP,
LOCALE_TIMERLIST_STANDBY,
LOCALE_TIMERLIST_STANDBY_OFF,
LOCALE_TIMERLIST_STANDBY_ON,
diff --git a/tuxbox/neutrino/src/system/locals_intern.h
b/tuxbox/neutrino/src/system/locals_intern.h
index f179574..a19ea99 100644
--- a/tuxbox/neutrino/src/system/locals_intern.h
+++ b/tuxbox/neutrino/src/system/locals_intern.h
@@ -1459,7 +1459,6 @@ const char * locale_real_names[] =
"timerlist.bouquetselect",
"timerlist.channel",
"timerlist.channelselect",
- "timerlist.close",
"timerlist.delete",
"timerlist.menumodify",
"timerlist.menunew",
@@ -1498,6 +1497,7 @@ const char * locale_real_names[] =
"timerlist.repeatcount.help1",
"timerlist.repeatcount.help2",
"timerlist.save",
+ "timerlist.skip",
"timerlist.standby",
"timerlist.standby.off",
"timerlist.standby.on",
commit 637f72c2b0d0a88f79212174b25ee4b9577ae17c
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Fri Jan 17 20:01:52 2014 +0100
Neutrino CVCRControl: use EPG title of timer if EPG entry missing
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/src/driver/vcrcontrol.cpp
b/tuxbox/neutrino/src/driver/vcrcontrol.cpp
index 6252261..0247d2d 100644
--- a/tuxbox/neutrino/src/driver/vcrcontrol.cpp
+++ b/tuxbox/neutrino/src/driver/vcrcontrol.cpp
@@ -434,8 +434,8 @@ void
CVCRControl::CFileAndServerDevice::CutBackNeutrino(const t_channel_id chann
std::string CVCRControl::CFileAndServerDevice::getMovieInfoString(const
t_channel_id channel_id,
const
event_id_t epgid, const time_t epg_time,
- unsigned char
apids, const bool save_vtxt_pid,
- const bool
save_sub_pids)
+ const
std::string& epgTitle, unsigned char apids,
+ const bool
save_vtxt_pid, const bool save_sub_pids)
{
std::string extMessage;
CMovieInfo cMovieInfo;
@@ -453,7 +453,7 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
else
movieInfo.epgChannel = tmpstring;
- tmpstring = "not available";
+ tmpstring = (epgTitle.empty()) ? "not available" :
Latin1_to_UTF8(epgTitle);
if (epgid != 0)
{
//#define SHORT_EPG
@@ -468,7 +468,10 @@ std::string
CVCRControl::CFileAndServerDevice::getMovieInfoString(const t_channe
}
#else
CEPGData epgdata;
- if (g_Sectionsd->getEPGid(epgid, epg_time, &epgdata))
+ bool has_epgdata = g_Sectionsd->getEPGid(epgid, epg_time,
&epgdata);
+ if (!has_epgdata && epgTitle.empty())
+ has_epgdata =
g_Sectionsd->getActualEPGServiceKey(channel_id, &epgdata);
+ if (has_epgdata)
{
#warning fixme sectionsd should deliver data in UTF-8 format
tmpstring = Latin1_to_UTF8(epgdata.title);
@@ -587,7 +590,7 @@ std::string
CVCRControl::CFileAndServerDevice::getCommandString(const CVCRComman
extMessage += "</channelname>\n\t\t<epgtitle>";
// CSectionsdClient::responseGetCurrentNextInfoChannelID
current_next;
- tmpstring = "not available";
+ tmpstring = (epgTitle.empty()) ? "not available" :
Latin1_to_UTF8(epgTitle);
if (epgid != 0)
{
CShortEPGData epgdata;
@@ -598,14 +601,6 @@ std::string
CVCRControl::CFileAndServerDevice::getCommandString(const CVCRComman
info1 = Latin1_to_UTF8(epgdata.info1);
info2 = Latin1_to_UTF8(epgdata.info2);
}
- else if (!epgTitle.empty())
- {
- tmpstring = epgTitle;
- }
- }
- else if (!epgTitle.empty())
- {
- tmpstring = epgTitle;
}
extMessage += ZapitTools::UTF8_to_UTF8XML(tmpstring.c_str());
@@ -900,7 +895,7 @@ bool CVCRControl::CFileDevice::Record(const t_channel_id
channel_id, int mode, c
} else
{
error_msg = ::start_recording(filename,
- getMovieInfoString(channel_id,
epgid, epg_time, apids, save_vtxt_pid, save_sub_pids).c_str(),
+ getMovieInfoString(channel_id,
epgid, epg_time, epgTitle, apids, save_vtxt_pid, save_sub_pids).c_str(),
mode,
Use_O_Sync,
Use_Fdatasync,
diff --git a/tuxbox/neutrino/src/driver/vcrcontrol.h
b/tuxbox/neutrino/src/driver/vcrcontrol.h
index 33da351..3e50c01 100644
--- a/tuxbox/neutrino/src/driver/vcrcontrol.h
+++ b/tuxbox/neutrino/src/driver/vcrcontrol.h
@@ -110,7 +110,7 @@ class CVCRControl
void RestoreNeutrino(void);
void CutBackNeutrino(const t_channel_id channel_id,
const int mode);
std::string getCommandString(const CVCRCommand command,
const t_channel_id channel_id, const event_id_t epgid, const std::string&
epgTitle, unsigned char apids);
- std::string getMovieInfoString(const t_channel_id
channel_id, const event_id_t epgid, const time_t epg_time, unsigned char apids,
const bool save_vtxt_pid, const bool save_sub_pids);
+ std::string getMovieInfoString(const t_channel_id
channel_id, const event_id_t epgid, const time_t epg_time, const std::string&
epgTitle, unsigned char apids, const bool save_vtxt_pid, const bool
save_sub_pids);
public:
bool StopPlayBack;
commit f054482507a28ab8bdb40118364403629abbe8e5
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Fri Jan 17 18:27:12 2014 +0100
timerd: also init recording and zapto safety if config file doesn't exist
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/timerd/timermanager.cpp
b/tuxbox/neutrino/daemons/timerd/timermanager.cpp
index 22e2568..14a8b69 100644
--- a/tuxbox/neutrino/daemons/timerd/timermanager.cpp
+++ b/tuxbox/neutrino/daemons/timerd/timermanager.cpp
@@ -648,11 +648,9 @@ void CTimerManager::loadRecordingSafety()
/* set defaults if no configuration file exists */
dprintf("%s not found\n", config_file_name);
}
- else
- {
- m_extraTimeStart = config.getInt32 ("EXTRA_TIME_START",0);
- m_extraTimeEnd = config.getInt32 ("EXTRA_TIME_END",0);
- }
+
+ m_extraTimeStart = config.getInt32("EXTRA_TIME_START", 0);
+ m_extraTimeEnd = config.getInt32("EXTRA_TIME_END", 0);
}
//
-------------------------------------------------------------------------------------
void CTimerManager::loadZaptoSafety()
@@ -664,10 +662,8 @@ void CTimerManager::loadZaptoSafety()
/* set defaults if no configuration file exists */
dprintf("%s not found\n", config_file_name);
}
- else
- {
- m_zaptoExtraTimeStart = config.getInt32
("ZAPTO_EXTRA_TIME_START",0);
- }
+
+ m_zaptoExtraTimeStart = config.getInt32("ZAPTO_EXTRA_TIME_START", 0);
}
//
-------------------------------------------------------------------------------------
void CTimerManager::saveEventsToConfig()
commit 616b1b309489fef1848f1b976b1837ecd5ab2a99
Author: Stefan Seyfried <se...@tuxbox-git.slipkontur.de>
Date: Thu Jan 16 19:41:28 2014 +0100
XMLTreeNode::AddNode: fix logic error (in unused branch)
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/misc/libs/libxmltree/xmltree.cpp b/misc/libs/libxmltree/xmltree.cpp
index 3fdc97b..89e0084 100644
--- a/misc/libs/libxmltree/xmltree.cpp
+++ b/misc/libs/libxmltree/xmltree.cpp
@@ -204,7 +204,7 @@ void XMLTreeNode::AddNode(XMLTreeNode *node, addmode mode)
{
case ADD_NEIGHBOUR:
n=this;
-
+ break;
case ADD_CHILD:
n=child;
}
commit 244ac84bed746f4da84f7761a2ca4633d7d8851e
Author: Stefan Seyfried <se...@tuxbox-git.slipkontur.de>
Date: Thu Jan 16 19:36:07 2014 +0100
XML_Parser::storeAtts: don't leak in case of realloc failure
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/misc/libs/libxmltree/xmlparse.cpp
b/misc/libs/libxmltree/xmlparse.cpp
index d98990e..8e62d6c 100644
--- a/misc/libs/libxmltree/xmlparse.cpp
+++ b/misc/libs/libxmltree/xmlparse.cpp
@@ -114,7 +114,8 @@ XML_Parser::XML_Parser(const XML_Char *encodingName)
tagStack=0;
freeTagList=0;
attsSize=INIT_ATTS_SIZE;
- atts=new ATTRIBUTE[attsSize];
+ /* must not realloc stuff allocated with new[] */
+ atts=(ATTRIBUTE *)malloc(attsSize * sizeof(ATTRIBUTE));
dataBuf=new XML_Char[INIT_DATA_BUF_SIZE];
groupSize=0;
groupConnector=0;
@@ -134,7 +135,7 @@ XML_Parser::XML_Parser(const XML_Char *encodingName)
poolDestroy(&tempPool);
poolDestroy(&temp2Pool);
- if (atts) delete[] atts;
+ if (atts) free(atts);
if (dataBuf) delete[] dataBuf;
return;
@@ -186,7 +187,7 @@ XML_Parser::~XML_Parser()
poolDestroy(&temp2Pool);
dtdDestroy(&dtd);
- delete[] atts;
+ free(atts);
free(groupConnector);
free(buffer);
delete[] dataBuf;
@@ -1082,9 +1083,11 @@ enum XML_Error XML_Parser::storeAtts(const ENCODING
*enc, const XML_Char *tagNam
attsSize=n+nDefaultAtts+INIT_ATTS_SIZE;
- atts=(ATTRIBUTE *) realloc((void *) atts, attsSize*sizeof(ATTRIBUTE));
+ ATTRIBUTE *newatts = (ATTRIBUTE *) realloc((void *) atts,
attsSize*sizeof(ATTRIBUTE));
- if (!atts) return XML_ERROR_NO_MEMORY;
+ if (!newatts) return XML_ERROR_NO_MEMORY;
+
+ atts = newatts;
if (n>oldAttsSize) XmlGetAttributes(enc, s, n, atts);
};
commit 92dbcbfe0db2303c31c600d6de3a11fdb4cf2f34
Author: Stefan Seyfried <se...@tuxbox-git.slipkontur.de>
Date: Thu Jan 16 19:32:52 2014 +0100
XML_Parser: initialize variable
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/misc/libs/libxmltree/xmlparse.cpp
b/misc/libs/libxmltree/xmlparse.cpp
index 348cc36..d98990e 100644
--- a/misc/libs/libxmltree/xmlparse.cpp
+++ b/misc/libs/libxmltree/xmlparse.cpp
@@ -89,6 +89,7 @@ XML_Parser::XML_Parser(const XML_Char *encodingName)
bufferLim=0;
declElementType=0;
declAttributeId=0;
+ declAttributeIsCdata=0;
declEntity=0;
declNotationName=0;
declNotationPublicId=0;
commit b3386eae7c5eea9cda4567f9cd3895bade97c56b
Author: Christian Schuett <gaucho...@hotmail.com>
Date: Sat Jan 11 19:20:58 2014 +0100
Neutrino: add possibility to set initial volume
Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
Signed-off-by: Thilo Graf <d...@novatux.de>
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
b/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
index 2e6064c..9ce554c 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
@@ -73,6 +73,7 @@ start-block~video_audio_save_settings
{=ini-set:/var/tuxbox/config/neutrino.conf;audio_avs_Control;{=h_audio_avs_Control=}~cache=}
{=ini-set:/var/tuxbox/config/neutrino.conf;audio_DolbyDigital;{=audio_DolbyDigital=}~cache=}
{=ini-set:/var/tuxbox/config/neutrino.conf;audio_PCMOffset;{=audio_PCMOffset=}~cache=}
+{=ini-set:/var/tuxbox/config/neutrino.conf;audio_initial_volume;{=audio_initial_volume=}~cache=}
{=ini-set:/var/tuxbox/config/neutrino.conf;audio_step;{=audio_step=}~save=}
{=ini-set:/var/tuxbox/config/controld.conf;vcroutput;{=h_vcroutput=}~open=}
{=ini-set:/var/tuxbox/config/controld.conf;videooutput;{=h_videooutput=}~save=}
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_video_audio.yhtm
b/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_video_audio.yhtm
index 55b5f5c..070f5e8 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_video_audio.yhtm
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_video_audio.yhtm
@@ -35,6 +35,8 @@ function do_init()
document.f.audio_avs_Control.selectedIndex = val;
val =
"{=ini-get:/var/tuxbox/config/neutrino.conf;audio_PCMOffset;0~cache=}"
document.f.audio_PCMOffset.value = val;
+ val =
"{=ini-get:/var/tuxbox/config/neutrino.conf;audio_initial_volume;0~cache=}"
+ document.f.audio_initial_volume.value = val;
val = "{=ini-get:/var/tuxbox/config/neutrino.conf;audio_step;5~cache=}"
document.f.audio_step.value = val;
}
@@ -52,6 +54,10 @@ function do_submit()
else{
set_hidden_values();
show_waitbox(true);
+ if(document.f.audio_initial_volume.value < 0)
+ document.f.audio_initial_volume.value = 0;
+ else if(document.f.audio_initial_volume.value > 100)
+ document.f.audio_initial_volume.value = 100;
document.f.submit();
}
}
@@ -175,6 +181,11 @@ function do_submit()
<input type="text" name="audio_step"
size="2" maxlength="2" title="audio step"/>
</td>
</tr>
+ <tr><td>Anfangslautstärke</td>
+ <td>
+ <input type="text"
name="audio_initial_volume" size="3" maxlength="3" title="initial volume"/>
+ </td>
+ </tr>
</table>
<br/>
<input type="hidden" name="execute"
value="include-block:Y_Blocks.txt;video_audio_save_settings;nix"/>
diff --git a/tuxbox/neutrino/data/locale/deutsch.locale
b/tuxbox/neutrino/data/locale/deutsch.locale
index d986b2b..e959463 100644
--- a/tuxbox/neutrino/data/locale/deutsch.locale
+++ b/tuxbox/neutrino/data/locale/deutsch.locale
@@ -138,6 +138,8 @@ audiomenu.avs avs
audiomenu.avs_control Volume Steuerung
audiomenu.dolbydigital Dolby Digital Default
audiomenu.head Audio-Einstellungen
+audiomenu.initial_volume Anfangslautstärke
+audiomenu.initial_volume_restore Letzte Lautstärke
audiomenu.lirc lirc
audiomenu.monoleft mono links
audiomenu.monoright mono rechts
diff --git a/tuxbox/neutrino/data/locale/english.locale
b/tuxbox/neutrino/data/locale/english.locale
index 8419074..d03aa0f 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -138,6 +138,8 @@ audiomenu.avs avs
audiomenu.avs_control Volume Control
audiomenu.dolbydigital Dolby Digital as Default
audiomenu.head Audio Settings
+audiomenu.initial_volume Initial volume
+audiomenu.initial_volume_restore Restore last volume
audiomenu.lirc lirc
audiomenu.monoleft mono left
audiomenu.monoright mono right
diff --git a/tuxbox/neutrino/src/gui/audio_setup.cpp
b/tuxbox/neutrino/src/gui/audio_setup.cpp
index 2dd8cea..06ef19e 100644
--- a/tuxbox/neutrino/src/gui/audio_setup.cpp
+++ b/tuxbox/neutrino/src/gui/audio_setup.cpp
@@ -168,6 +168,11 @@ int CAudioSetup::showAudioSetup()
CMenuForwarder *as = new
CMenuForwarder(LOCALE_AUDIOMENU_VOLUMEBAR_AUDIOSTEPS, true,
g_settings.audio_step, &audio_step);
audioSettings->addItem(as);
+ // initial volume
+ CMenuOptionNumberChooser *iv = new
CMenuOptionNumberChooser(LOCALE_AUDIOMENU_INITIAL_VOLUME,
&g_settings.audio_initial_volume, true, 0, 100, 0, 0,
LOCALE_AUDIOMENU_INITIAL_VOLUME_RESTORE, NULL, NULL, CRCInput::RC_nokey, "",
true);
+ iv->setNumberFormat("%d%%");
+ audioSettings->addItem(iv);
+
int res = audioSettings->exec(NULL, "");
selected = audioSettings->getSelected();
delete audioSettings;
diff --git a/tuxbox/neutrino/src/neutrino.cpp b/tuxbox/neutrino/src/neutrino.cpp
index 30bbc81..ed2684b 100644
--- a/tuxbox/neutrino/src/neutrino.cpp
+++ b/tuxbox/neutrino/src/neutrino.cpp
@@ -427,6 +427,7 @@ int CNeutrinoApp::loadSetup()
//audio
g_settings.audio_AnalogMode = configfile.getInt32(
"audio_AnalogMode" , 0 );
g_settings.audio_DolbyDigital =
configfile.getBool("audio_DolbyDigital" , false);
+ g_settings.audio_initial_volume = configfile.getInt32(
"audio_initial_volume" , 0 );
#ifdef HAVE_DBOX_HARDWARE
g_settings.audio_avs_Control = configfile.getInt32(
"audio_avs_Control", CControld::TYPE_AVS );
strcpy( g_settings.audio_step, configfile.getString(
"audio_step" , "5" ).c_str() );
@@ -1024,6 +1025,7 @@ void CNeutrinoApp::saveSetup()
//audio
configfile.setInt32( "audio_AnalogMode" , g_settings.audio_AnalogMode);
configfile.setBool("audio_DolbyDigital" ,
g_settings.audio_DolbyDigital);
+ configfile.setInt32( "audio_initial_volume" ,
g_settings.audio_initial_volume);
configfile.setInt32( "audio_avs_Control", g_settings.audio_avs_Control);
configfile.setString( "audio_PCMOffset" , g_settings.audio_PCMOffset);
configfile.setString( "audio_step" , g_settings.audio_step);
@@ -2145,7 +2147,11 @@ int CNeutrinoApp::run(int argc, char **argv)
g_Zapit->setStandby(false);
int loadSettingsErg = loadSetup();
-
+
+ // init volume
+ if (obeyStartMode && g_settings.audio_initial_volume > 0)
+ g_Controld->setVolume(g_settings.audio_initial_volume,
(CControld::volume_type)g_settings.audio_avs_Control);
+
/* load locales before setting up any fonts to determine whether we
need a true unicode font */
bool display_language_selection;
loadLocale_ret = g_Locale->loadLocale(g_settings.language);
diff --git a/tuxbox/neutrino/src/system/locals.h
b/tuxbox/neutrino/src/system/locals.h
index 3edafdc..48c2862 100644
--- a/tuxbox/neutrino/src/system/locals.h
+++ b/tuxbox/neutrino/src/system/locals.h
@@ -165,6 +165,8 @@ typedef enum
LOCALE_AUDIOMENU_AVS_CONTROL,
LOCALE_AUDIOMENU_DOLBYDIGITAL,
LOCALE_AUDIOMENU_HEAD,
+ LOCALE_AUDIOMENU_INITIAL_VOLUME,
+ LOCALE_AUDIOMENU_INITIAL_VOLUME_RESTORE,
LOCALE_AUDIOMENU_LIRC,
LOCALE_AUDIOMENU_MONOLEFT,
LOCALE_AUDIOMENU_MONORIGHT,
diff --git a/tuxbox/neutrino/src/system/locals_intern.h
b/tuxbox/neutrino/src/system/locals_intern.h
index da40beb..f179574 100644
--- a/tuxbox/neutrino/src/system/locals_intern.h
+++ b/tuxbox/neutrino/src/system/locals_intern.h
@@ -165,6 +165,8 @@ const char * locale_real_names[] =
"audiomenu.avs_control",
"audiomenu.dolbydigital",
"audiomenu.head",
+ "audiomenu.initial_volume",
+ "audiomenu.initial_volume_restore",
"audiomenu.lirc",
"audiomenu.monoleft",
"audiomenu.monoright",
diff --git a/tuxbox/neutrino/src/system/settings.h
b/tuxbox/neutrino/src/system/settings.h
index 411ede6..5ba4f12 100644
--- a/tuxbox/neutrino/src/system/settings.h
+++ b/tuxbox/neutrino/src/system/settings.h
@@ -98,6 +98,7 @@ struct SNeutrinoSettings
int audio_AnalogMode;
int audio_DolbyDigital;
int audio_avs_Control;
+ int audio_initial_volume;
char audio_step[3];
char audio_PCMOffset[3];
-----------------------------------------------------------------------
Summary of changes:
misc/libs/libxmltree/xmlparse.cpp | 14 ++-
misc/libs/libxmltree/xmltree.cpp | 2 +-
.../daemons/nhttpd/tuxboxapi/controlapi.cpp | 12 +-
.../daemons/nhttpd/tuxboxapi/neutrinoapi.cpp | 2 +-
.../daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp | 10 +-
tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt | 1 +
.../daemons/nhttpd/web/Y_Settings_video_audio.yhtm | 11 ++
tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt | 4 +-
tuxbox/neutrino/daemons/timerd/timermanager.cpp | 26 +++--
tuxbox/neutrino/data/locale/deutsch.locale | 4 +-
tuxbox/neutrino/data/locale/english.locale | 6 +-
tuxbox/neutrino/src/driver/shutdown_count.cpp | 1 +
tuxbox/neutrino/src/driver/shutdown_count.h | 2 -
tuxbox/neutrino/src/driver/vcrcontrol.cpp | 38 ++++---
tuxbox/neutrino/src/driver/vcrcontrol.h | 2 +-
tuxbox/neutrino/src/gui/audio_setup.cpp | 5 +
tuxbox/neutrino/src/gui/bookmarkmanager.cpp | 1 +
tuxbox/neutrino/src/gui/channellist.cpp | 2 +-
tuxbox/neutrino/src/gui/channellist.h | 2 +-
tuxbox/neutrino/src/gui/eventlist.cpp | 2 +-
tuxbox/neutrino/src/gui/timerlist.cpp | 113 ++++++++++++++++++--
tuxbox/neutrino/src/gui/timerlist.h | 1 +
tuxbox/neutrino/src/neutrino.cpp | 16 ++-
tuxbox/neutrino/src/system/locals.h | 4 +-
tuxbox/neutrino/src/system/locals_intern.h | 4 +-
tuxbox/neutrino/src/system/settings.h | 1 +
26 files changed, 210 insertions(+), 76 deletions(-)
--
Tuxbox-GIT: apps
------------------------------------------------------------------------------
Android™ apps run on BlackBerry®10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience. Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Tuxbox-cvs-commits mailing list
Tuxbox-cvs-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tuxbox-cvs-commits