X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/63ad55839aa3ab4902c4e62063259a49a17e7f49..9672c9e353abdc56784d21567fdb32c03a9aa0b7:/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index 91b940a2..26a3ba39 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -54,7 +55,7 @@ RESULT eServiceFactoryDVD::play(const eServiceReference &ref, ePtr &ptr) +RESULT eServiceFactoryDVD::record(const eServiceReference &/*ref*/, ePtr &ptr) { ptr=0; return -1; @@ -67,7 +68,7 @@ RESULT eServiceFactoryDVD::list(const eServiceReference &, ePtr &ptr) +RESULT eServiceFactoryDVD::info(const eServiceReference &/*ref*/, ePtr &ptr) { ptr=0; return -1; @@ -93,12 +94,22 @@ eServiceDVD::eServiceDVD(const char *filename): m_sn(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup), m_pump(eApp, 1) { + std::string aspect; eDebug("SERVICEDVD construct!"); // create handle ddvd_set_dvd_path(m_ddvdconfig, filename); ddvd_set_ac3thru(m_ddvdconfig, 0); ddvd_set_language(m_ddvdconfig, "de"); - ddvd_set_video(m_ddvdconfig, DDVD_16_9, DDVD_PAL); + + if (ePythonConfigQuery::getConfigValue("config.av.aspect", aspect) != 0) + aspect = "16_9"; + if (aspect == "4_3_letterbox") + ddvd_set_video(m_ddvdconfig, DDVD_4_3_LETTERBOX, DDVD_PAL); + else if (aspect == "4_3_panscan") + ddvd_set_video(m_ddvdconfig, DDVD_4_3_PAN_SCAN, DDVD_PAL); + else + ddvd_set_video(m_ddvdconfig, DDVD_16_9, DDVD_PAL); + ddvd_set_lfb(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, 720, 576, 4, 720*4); CONNECT(m_sn.activated, eServiceDVD::gotMessage); CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage); @@ -117,7 +128,7 @@ void eServiceDVD::gotThreadMessage(const int &msg) } } -void eServiceDVD::gotMessage(int what) +void eServiceDVD::gotMessage(int /*what*/) { switch(ddvd_get_next_message(m_ddvdconfig,1)) { @@ -288,7 +299,7 @@ RESULT eServiceDVD::stop() return 0; } -RESULT eServiceDVD::setTarget(int target) +RESULT eServiceDVD::setTarget(int /*target*/) { return -1; } @@ -318,7 +329,7 @@ RESULT eServiceDVD::keys(ePtr &ptr) } // iPausableService -RESULT eServiceDVD::setSlowMotion(int ratio) +RESULT eServiceDVD::setSlowMotion(int /*ratio*/) { return -1; } @@ -411,32 +422,30 @@ int eServiceDVD::getInfo(int w) case sTracknumber: case sGenre: return resIsString; // then getInfoString should be called - case evUser+8: + case sUser+8: { struct ddvd_time info; ddvd_get_last_time(m_ddvdconfig, &info); return info.pos_chapter; } - case evUser+80: + case sUser+80: { struct ddvd_time info; ddvd_get_last_time(m_ddvdconfig, &info); return info.end_chapter; } - - case evUser+9: + case sUser+9: { struct ddvd_time info; ddvd_get_last_time(m_ddvdconfig, &info); return info.pos_title; } - case evUser+90: + case sUser+90: { struct ddvd_time info; ddvd_get_last_time(m_ddvdconfig, &info); return info.end_title; } - case sTXTPID: // we abuse HAS_TELEXT icon in InfoBar to signalize subtitles status { int spu_id; @@ -453,7 +462,7 @@ std::string eServiceDVD::getInfoString(int w) { switch(w) { - case evUser+7: { + case sUser+7: { int spu_id; uint16_t spu_lang; ddvd_get_last_spu(m_ddvdconfig, &spu_id, &spu_lang); @@ -466,7 +475,7 @@ std::string eServiceDVD::getInfoString(int w) // lbo_changed=1; return osd; } - case evUser+6: + case sUser+6: { int audio_id,audio_type; uint16_t audio_lang; @@ -510,7 +519,7 @@ PyObject *eServiceDVD::getInfoObject(int w) Py_RETURN_NONE; } -RESULT eServiceDVD::enableSubtitles(eWidget *parent, SWIG_PYOBJECT(ePyObject) entry) +RESULT eServiceDVD::enableSubtitles(eWidget *parent, SWIG_PYOBJECT(ePyObject) /*entry*/) { if (m_subtitle_widget) delete m_subtitle_widget; @@ -522,7 +531,7 @@ RESULT eServiceDVD::enableSubtitles(eWidget *parent, SWIG_PYOBJECT(ePyObject) en return 0; } -RESULT eServiceDVD::disableSubtitles(eWidget *parent) +RESULT eServiceDVD::disableSubtitles(eWidget */*parent*/) { delete m_subtitle_widget; m_subtitle_widget = 0; @@ -584,7 +593,10 @@ RESULT eServiceDVD::getPlayPosition(pts_t &pos) pos += info.pos_minutes * 60; pos += info.pos_seconds; // eDebug("getPlayPosition %lld", pos); - pos *= 90000; + if ( pos > 0 && pos < 32768 ) + pos *= 90000; + else + pos = 0; return 0; } @@ -603,7 +615,7 @@ RESULT eServiceDVD::seekChapter(int chapter) return 0; } -RESULT eServiceDVD::setTrickmode(int trick) +RESULT eServiceDVD::setTrickmode(int /*trick*/) { return -1; } @@ -683,11 +695,11 @@ PyObject *eServiceDVD::getCutList() return list; } -void eServiceDVD::setCutList(ePyObject list) +void eServiceDVD::setCutList(ePyObject /*list*/) { } -void eServiceDVD::setCutListEnable(int enable) +void eServiceDVD::setCutListEnable(int /*enable*/) { }