aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-29 22:44:53 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-10-29 22:44:53 +0000
commit0c59a4279f93f08fe95fca5f2e55f3e025f0cceb (patch)
tree71e8c11f2a5487afe84d637d388d3cb060bc9ad5 /lib/service
parent4edb65fafb64b52007598e05a1e5b16b75ea752c (diff)
downloadenigma2-0c59a4279f93f08fe95fca5f2e55f3e025f0cceb.tar.gz
enigma2-0c59a4279f93f08fe95fca5f2e55f3e025f0cceb.zip
also use refcounting for eTimers
its now no more possible directly to call new eTimer .. or to embedded eTimer. to create a eTimer now eTimer::create must be used... to delete you must call ->AddRef() after timer creation and ->Release when the timer is no more needed. Or use ePtr<eTimer> to store the timer reference.. then its enough to set the ePtr<eTimer> object to 0 when the timer is no more needed
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/servicedvb.cpp6
-rw-r--r--lib/service/servicedvb.h2
-rw-r--r--lib/service/servicemp3.cpp13
-rw-r--r--lib/service/servicemp3.h2
4 files changed, 12 insertions, 11 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index e0e6dbca..954a3964 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1065,7 +1065,9 @@ eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *serv
m_tune_state = -1;
- CONNECT(m_subtitle_sync_timer.timeout, eDVBServicePlay::checkSubtitleTiming);
+ m_subtitle_sync_timer = eTimer::create(eApp);
+
+ CONNECT(m_subtitle_sync_timer->timeout, eDVBServicePlay::checkSubtitleTiming);
}
eDVBServicePlay::~eDVBServicePlay()
@@ -2926,7 +2928,7 @@ void eDVBServicePlay::checkSubtitleTiming()
} else
{
eDebug("start subtitle delay %d", diff / 90);
- m_subtitle_sync_timer.start(diff / 90, 1);
+ m_subtitle_sync_timer->start(diff / 90, 1);
break;
}
}
diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h
index bae0c6e5..85e97ea1 100644
--- a/lib/service/servicedvb.h
+++ b/lib/service/servicedvb.h
@@ -272,7 +272,7 @@ private:
ePtr<eConnection> m_new_dvb_subtitle_page_connection;
std::list<eDVBSubtitlePage> m_dvb_subtitle_pages;
- eTimer m_subtitle_sync_timer;
+ ePtr<eTimer> m_subtitle_sync_timer;
void checkSubtitleTiming();
/* radiotext */
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
index 1778e5bb..a453f54f 100644
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -174,14 +174,13 @@ int eStaticServiceMP3Info::getLength(const eServiceReference &ref)
eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eApp, 1)
{
+ m_seekTimeout = eTimer::create(eApp);
m_stream_tags = 0;
- m_audioStreams.clear();
- m_subtitleStreams.clear();
m_currentAudioStream = 0;
m_currentSubtitleStream = 0;
m_subtitle_widget = 0;
m_currentTrickRatio = 0;
- CONNECT(m_seekTimeout.timeout, eServiceMP3::seekTimeoutCB);
+ CONNECT(m_seekTimeout->timeout, eServiceMP3::seekTimeoutCB);
CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll);
GstElement *source = 0;
@@ -527,9 +526,9 @@ RESULT eServiceMP3::setFastForward(int ratio)
{
m_currentTrickRatio = ratio;
if (ratio)
- m_seekTimeout.start(1000, 0);
+ m_seekTimeout->start(1000, 0);
else
- m_seekTimeout.stop();
+ m_seekTimeout->stop();
return 0;
}
@@ -543,13 +542,13 @@ void eServiceMP3::seekTimeoutCB()
if (ppos < 0)
{
ppos = 0;
- m_seekTimeout.stop();
+ m_seekTimeout->stop();
}
if (ppos > len)
{
ppos = 0;
stop();
- m_seekTimeout.stop();
+ m_seekTimeout->stop();
return;
}
seekTo(ppos);
diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h
index ae12c33a..a43c8ad9 100644
--- a/lib/service/servicemp3.h
+++ b/lib/service/servicemp3.h
@@ -153,7 +153,7 @@ private:
std::vector<subtitleStream> m_subtitleStreams;
eSubtitleWidget *m_subtitle_widget;
int m_currentTrickRatio;
- eTimer m_seekTimeout;
+ ePtr<eTimer> m_seekTimeout;
void seekTimeoutCB();
friend class eServiceFactoryMP3;
std::string m_filename;