aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-06-02 17:26:57 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-06-02 17:26:57 +0000
commitdc5b3144665e827fccf38fcab1c167e6dacdac7a (patch)
tree6fb1085d99b5e838fc582c0c22e55ed8e7a72c91 /lib/service/servicedvb.cpp
parent57355de351da0b7cc200eb9eedbbc115adb6df3b (diff)
downloadenigma2-dc5b3144665e827fccf38fcab1c167e6dacdac7a.tar.gz
enigma2-dc5b3144665e827fccf38fcab1c167e6dacdac7a.zip
(not yet enabled) teletext subtitle support
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 9cfe7073..de4f84ee 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -17,6 +17,9 @@
#include <lib/dvb/tstools.h>
#include <lib/python/python.h>
+ /* for subtitles */
+#include <lib/gui/esubtitle.h>
+
#include <sys/vfs.h>
#include <byteswap.h>
@@ -24,6 +27,8 @@
#include <dvbsi++/event_information_section.h>
+// #define INTERNAL_TELETEXT
+
#ifndef BYTE_ORDER
#error no byte order defined!
#endif
@@ -639,10 +644,13 @@ eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *serv
m_cuesheet_changed = 0;
m_cutlist_enabled = 1;
+
+ m_subtitle_widget = 0;
}
eDVBServicePlay::~eDVBServicePlay()
{
+ delete m_subtitle_widget;
}
void eDVBServicePlay::gotNewEvent()
@@ -1053,6 +1061,12 @@ RESULT eDVBServicePlay::cueSheet(ePtr<iCueSheet> &ptr)
return -1;
}
+RESULT eDVBServicePlay::subtitle(ePtr<iSubtitleOutput> &ptr)
+{
+ ptr = this;
+ return 0;
+}
+
RESULT eDVBServicePlay::getName(std::string &name)
{
if (m_is_pvr)
@@ -1277,6 +1291,7 @@ RESULT eDVBServicePlay::selectChannel(int i)
if (m_decoder)
m_decoder->setAudioChannel(i);
}
+ return 0;
}
int eDVBServiceBase::getFrontendInfo(int w)
@@ -1655,6 +1670,7 @@ void eDVBServicePlay::updateDecoder()
m_cue->setDecodingDemux(m_decode_demux, m_decoder);
#ifdef INTERNAL_TELETEXT
m_teletext_parser = new eDVBTeletextParser(m_decode_demux);
+ m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection);
#endif
}
@@ -1827,6 +1843,36 @@ void eDVBServicePlay::cutlistToCuesheet()
m_cue->commitSpans();
}
+RESULT eDVBServicePlay::enableSubtitles(eWidget *parent, int index)
+{
+ if (m_subtitle_widget)
+ disableSubtitles(parent);
+
+ m_subtitle_widget = new eSubtitleWidget(parent);
+ m_subtitle_widget->resize(parent->size()); /* full size */
+
+ return 0;
+}
+
+RESULT eDVBServicePlay::disableSubtitles(eWidget *parent)
+{
+ delete m_subtitle_widget;
+ m_subtitle_widget = 0;
+ return 0;
+}
+
+RESULT eDVBServicePlay::getSubtitleList(PyList *list)
+{
+ return -1;
+}
+
+void eDVBServicePlay::newSubtitlePage(const eDVBTeletextSubtitlePage &page)
+{
+ eDebug("new subtitle page received!");
+ if (m_subtitle_widget)
+ m_subtitle_widget->addPage(page);
+}
+
DEFINE_REF(eDVBServicePlay)
eAutoInitPtr<eServiceFactoryDVB> init_eServiceFactoryDVB(eAutoInitNumbers::service+1, "eServiceFactoryDVB");