diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-06-02 17:26:57 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-06-02 17:26:57 +0000 |
| commit | dc5b3144665e827fccf38fcab1c167e6dacdac7a (patch) | |
| tree | 6fb1085d99b5e838fc582c0c22e55ed8e7a72c91 /lib/service/servicedvb.cpp | |
| parent | 57355de351da0b7cc200eb9eedbbc115adb6df3b (diff) | |
| download | enigma2-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.cpp | 46 |
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"); |
