git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a274f72
)
fix 'start'/'stop'/'select other' subtitles
author
Andreas Monzner
<andreas.monzner@multimedia-labs.de>
Wed, 25 Oct 2006 21:58:42 +0000
(21:58 +0000)
committer
Andreas Monzner
<andreas.monzner@multimedia-labs.de>
Wed, 25 Oct 2006 21:58:42 +0000
(21:58 +0000)
configure.ac
patch
|
blob
|
history
lib/dvb/subtitle.cpp
patch
|
blob
|
history
lib/dvb/subtitle.h
patch
|
blob
|
history
lib/dvb/teletext.cpp
patch
|
blob
|
history
lib/python/Plugins/Extensions/Makefile.am
patch
|
blob
|
history
lib/python/Screens/InfoBarGenerics.py
patch
|
blob
|
history
lib/service/servicedvb.cpp
patch
|
blob
|
history
diff --git
a/configure.ac
b/configure.ac
index 5dc22f63b88ecd2d9ef737a041975649f4aa5a95..67fa850963d246e7dd46c81b14d5b8d0b0a6d352 100644
(file)
--- 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/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/FileManager/Makefile
-lib/python/Plugins/Extensions/FritzCall/Makefile
lib/python/Plugins/Extensions/CutListEditor/Makefile
lib/python/Plugins/Extensions/ZappingAlternatives/Makefile
lib/python/Tools/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 23ea6dce11edaa6d50cbedddd8735b546db25241..0058a51c09869ef52249b10146278cbc750547e2 100644
(file)
--- a/
lib/dvb/subtitle.cpp
+++ b/
lib/dvb/subtitle.cpp
@@
-1113,15
+1113,24
@@
eDVBSubtitleParser::~eDVBSubtitleParser()
subtitle_reset();
}
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)
{
int eDVBSubtitleParser::start(int pid)
{
-#if 1
- eDebug("eDVBSubtitleParser::start(%04x)", pid);
if (m_pes_reader)
if (m_pes_reader)
+ {
+ eDebug("start dvb subtitles on pid 0x%04x", pid);
return m_pes_reader->start(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)
}
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 330147adb67860757bc6646457f13c1712383461..44cdd4cb7d8a507ca359a8d637bfad25dea8ff88 100644
(file)
--- a/
lib/dvb/subtitle.h
+++ b/
lib/dvb/subtitle.h
@@
-117,6
+117,7
@@
public:
eDVBSubtitleParser(iDVBDemux *demux);
virtual ~eDVBSubtitleParser();
int start(int pid);
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);
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 0515913a1066aa81dc0ebdb1b4a19b7f9ce13002..c96fbed9f4015aa03e59f2f2f5531befb9e43edc 100644
(file)
--- 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)
{
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 */
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 576ca7019694fec562d7c57c3544a3feded46275..4b59325e775631b5e95a18d9884f241e761f74b6 100644
(file)
--- 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 b61436c44c3df3a826d7ebbdeb85f9576aeeec34..f2f33473fef089288cb5b2f7cc9def0306f6c6f5 100644
(file)
--- 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):
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
def subtitlesEnabled(self):
return self.subtitles_enabled
diff --git
a/lib/service/servicedvb.cpp
b/lib/service/servicedvb.cpp
index 89301de471f25fbaddbdeadc1ecc5d7536f4e9a2..2ea7acf1844ba23b3b2ae61385893bdaba061906 100644
(file)
--- 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;
else
{
int pid = -page;
- eDebug("start dvb subtitles on pid %04x", pid);
m_subtitle_parser->start(pid);
}
m_subtitle_parser->start(pid);
}
@@
-2033,6
+2032,16
@@
RESULT eDVBServicePlay::disableSubtitles(eWidget *parent)
{
delete m_subtitle_widget;
m_subtitle_widget = 0;
{
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;
}
return 0;
}
@@
-2091,6
+2100,8
@@
void eDVBServicePlay::newSubtitlePage(const eDVBTeletextSubtitlePage &page)
void eDVBServicePlay::checkSubtitleTiming()
{
// eDebug("checkSubtitleTiming");
void eDVBServicePlay::checkSubtitleTiming()
{
// eDebug("checkSubtitleTiming");
+ if (!m_subtitle_widget)
+ return;
while (1)
{
enum { TELETEXT, DVB } type;
while (1)
{
enum { TELETEXT, DVB } type;