aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac4
-rw-r--r--lib/dvb/subtitle.cpp19
-rw-r--r--lib/dvb/subtitle.h1
-rw-r--r--lib/dvb/teletext.cpp4
-rw-r--r--lib/python/Plugins/Extensions/Makefile.am2
-rw-r--r--lib/python/Screens/InfoBarGenerics.py10
-rw-r--r--lib/service/servicedvb.cpp13
7 files changed, 38 insertions, 15 deletions
diff --git a/configure.ac b/configure.ac
index 5dc22f63..67fa8509 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,11 +75,7 @@ lib/python/Plugins/DemoPlugins/Makefile
lib/python/Plugins/DemoPlugins/TestPlugin/Makefile
lib/python/Plugins/Extensions/Makefile
lib/python/Plugins/Extensions/TuxboxPlugins/Makefile
-lib/python/Plugins/Extensions/WebInterface/Makefile
-lib/python/Plugins/Extensions/WebInterface/web/Makefile
-lib/python/Plugins/Extensions/WebInterface/web-data/Makefile
lib/python/Plugins/Extensions/FileManager/Makefile
-lib/python/Plugins/Extensions/FritzCall/Makefile
lib/python/Plugins/Extensions/CutListEditor/Makefile
lib/python/Plugins/Extensions/ZappingAlternatives/Makefile
lib/python/Tools/Makefile
diff --git a/lib/dvb/subtitle.cpp b/lib/dvb/subtitle.cpp
index 23ea6dce..0058a51c 100644
--- a/lib/dvb/subtitle.cpp
+++ b/lib/dvb/subtitle.cpp
@@ -1113,15 +1113,24 @@ eDVBSubtitleParser::~eDVBSubtitleParser()
subtitle_reset();
}
+int eDVBSubtitleParser::stop()
+{
+ if (m_pes_reader)
+ {
+ eDebug("disable dvb subtitles");
+ return m_pes_reader->stop();
+ }
+ return -1;
+}
+
int eDVBSubtitleParser::start(int pid)
{
-#if 1
- eDebug("eDVBSubtitleParser::start(%04x)", pid);
if (m_pes_reader)
+ {
+ eDebug("start dvb subtitles on pid 0x%04x", pid);
return m_pes_reader->start(pid);
- else
- return -1;
-#endif
+ }
+ return -1;
}
void eDVBSubtitleParser::connectNewPage(const Slot1<void, const eDVBSubtitlePage&> &slot, ePtr<eConnection> &connection)
diff --git a/lib/dvb/subtitle.h b/lib/dvb/subtitle.h
index 330147ad..44cdd4cb 100644
--- a/lib/dvb/subtitle.h
+++ b/lib/dvb/subtitle.h
@@ -117,6 +117,7 @@ public:
eDVBSubtitleParser(iDVBDemux *demux);
virtual ~eDVBSubtitleParser();
int start(int pid);
+ int stop();
void connectNewPage(const Slot1<void, const eDVBSubtitlePage&> &slot, ePtr<eConnection> &connection);
private:
void subtitle_process_line(subtitle_page *page, int object_id, int line, __u8 *data, int len);
diff --git a/lib/dvb/teletext.cpp b/lib/dvb/teletext.cpp
index 0515913a..c96fbed9 100644
--- a/lib/dvb/teletext.cpp
+++ b/lib/dvb/teletext.cpp
@@ -275,6 +275,10 @@ void eDVBTeletextParser::handlePageEnd(int have_pts, const pts_t &pts)
void eDVBTeletextParser::setPage(int page)
{
+ if (page > 0)
+ eDebug("enable teletext subtitle page %d", page);
+ else
+ eDebug("disable teletext subtitles");
m_page_number = page;
m_page_M = (page >> 8) & 7; /* magazine to look for */
m_page_X = page & 0xFF; /* page number */
diff --git a/lib/python/Plugins/Extensions/Makefile.am b/lib/python/Plugins/Extensions/Makefile.am
index 576ca701..4b59325e 100644
--- a/lib/python/Plugins/Extensions/Makefile.am
+++ b/lib/python/Plugins/Extensions/Makefile.am
@@ -1,3 +1,3 @@
-SUBDIRS = TuxboxPlugins WebInterface FileManager CutListEditor ZappingAlternatives FritzCall
+SUBDIRS = TuxboxPlugins FileManager CutListEditor ZappingAlternatives
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
index b61436c4..f2f33473 100644
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
@@ -1146,10 +1146,12 @@ class InfoBarSubtitles:
return "Enable Subtitles: " + name
def enableSubtitle(self, subtitles):
- print "enable subtitles", subtitles
- self.selected_subtitle = subtitles
- self.subtitles_enabled = True
-
+ if self.selected_subtitle != subtitles:
+ print "enable subtitles", subtitles
+ self.subtitles_enabled = False
+ self.selected_subtitle = subtitles
+ self.subtitles_enabled = True
+
def subtitlesEnabled(self):
return self.subtitles_enabled
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 89301de4..2ea7acf1 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -2022,7 +2022,6 @@ RESULT eDVBServicePlay::enableSubtitles(eWidget *parent, PyObject *entry)
else
{
int pid = -page;
- eDebug("start dvb subtitles on pid %04x", pid);
m_subtitle_parser->start(pid);
}
@@ -2033,6 +2032,16 @@ RESULT eDVBServicePlay::disableSubtitles(eWidget *parent)
{
delete m_subtitle_widget;
m_subtitle_widget = 0;
+ if (m_subtitle_parser)
+ {
+ m_subtitle_parser->stop();
+ m_dvb_subtitle_pages.clear();
+ }
+ if (m_teletext_parser)
+ {
+ m_teletext_parser->setPage(-1);
+ m_subtitle_pages.clear();
+ }
return 0;
}
@@ -2091,6 +2100,8 @@ void eDVBServicePlay::newSubtitlePage(const eDVBTeletextSubtitlePage &page)
void eDVBServicePlay::checkSubtitleTiming()
{
// eDebug("checkSubtitleTiming");
+ if (!m_subtitle_widget)
+ return;
while (1)
{
enum { TELETEXT, DVB } type;