replace some sUser with more readable code
[enigma2.git] / lib / python / Plugins / Extensions / DVDPlayer / src / servicedvd.cpp
index 91b940a262de4167fce36ba32518a082ba0049b1..30ebaecd154b6fff9d242ac54df2069d1126bccc 100644 (file)
@@ -3,6 +3,7 @@
 #include <lib/base/eerror.h>
 #include <lib/base/object.h>
 #include <lib/base/ebase.h>
+#include <lib/base/nconfig.h>
 #include <string>
 #include <lib/service/service.h>
 #include <lib/base/init_num.h>
@@ -54,7 +55,7 @@ RESULT eServiceFactoryDVD::play(const eServiceReference &ref, ePtr<iPlayableServ
        return 0;
 }
 
-RESULT eServiceFactoryDVD::record(const eServiceReference &ref, ePtr<iRecordableService> &ptr)
+RESULT eServiceFactoryDVD::record(const eServiceReference &/*ref*/, ePtr<iRecordableService> &ptr)
 {
        ptr=0;
        return -1;
@@ -67,7 +68,7 @@ RESULT eServiceFactoryDVD::list(const eServiceReference &, ePtr<iListableService
 }
 
 
-RESULT eServiceFactoryDVD::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr)
+RESULT eServiceFactoryDVD::info(const eServiceReference &/*ref*/, ePtr<iStaticServiceInformation> &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<iServiceKeys> &ptr)
 }
 
        // iPausableService
-RESULT eServiceDVD::setSlowMotion(int ratio)
+RESULT eServiceDVD::setSlowMotion(int /*ratio*/)
 {
        return -1;
 }
@@ -408,35 +419,32 @@ int eServiceDVD::getInfo(int w)
                case sAlbum:
                        return resIsPyObject;  // then getInfoObject should be called
                case sComment:
-               case sTracknumber:
                case sGenre:
                        return resIsString;  // then getInfoString should be called
-               case evUser+8:
+               case sCurrentChapter:
                {
                        struct ddvd_time info;
                        ddvd_get_last_time(m_ddvdconfig, &info);
                        return info.pos_chapter;
                }
-               case evUser+80:
+               case sTotalChapters:
                {
                        struct ddvd_time info;
                        ddvd_get_last_time(m_ddvdconfig, &info);
                        return info.end_chapter;
                }
-
-               case evUser+9:
+               case sCurrentTitle:
                {
                        struct ddvd_time info;
                        ddvd_get_last_time(m_ddvdconfig, &info);
                        return info.pos_title;
                }
-               case evUser+90:
+               case sTotalTitles:
                {
                        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 +461,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 +474,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 +518,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 +530,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;
@@ -603,7 +611,7 @@ RESULT eServiceDVD::seekChapter(int chapter)
        return 0;
 }
 
-RESULT eServiceDVD::setTrickmode(int trick)
+RESULT eServiceDVD::setTrickmode(int /*trick*/)
 {
        return -1;
 }
@@ -683,11 +691,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*/)
 {
 }