diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2009-01-02 17:15:20 +0100 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-01-02 17:15:20 +0100 |
| commit | 0992c994772460cf53e0a30450dc467dddb87d4c (patch) | |
| tree | 4346df7e232ad9b6490d79be03b51a74fd7974af /lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp | |
| parent | 0abc1f0d2cb05ee24dc6928ca6ddf573c03f5fd2 (diff) | |
| download | enigma2-0992c994772460cf53e0a30450dc467dddb87d4c.tar.gz enigma2-0992c994772460cf53e0a30450dc467dddb87d4c.zip | |
add support for multi angle dvds
this needs a current libdreamdvd (SRCDATE >= 20090102)
Diffstat (limited to 'lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp')
| -rw-r--r-- | lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index d726be20..c2590af5 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -179,7 +179,7 @@ void eServiceDVD::gotMessage(int /*what*/) if (m_subtitle_widget) { int x1,x2,y1,y2; ddvd_get_last_blit_area(m_ddvdconfig, &x1, &x2, &y1, &y2); - m_subtitle_widget->setPixmap(m_pixmap, eRect(x1, y1, x2-x1, y2-y1)); + m_subtitle_widget->setPixmap(m_pixmap, eRect(x1, y1, (x2-x1)+1, (y2-y1)+1)); } break; case DDVD_SHOWOSD_STATE_PLAY: @@ -234,6 +234,14 @@ void eServiceDVD::gotMessage(int /*what*/) eDebug("DVD_SOF_REACHED!"); m_event(this, evSOF); break; + case DDVD_SHOWOSD_ANGLE: + { + int current, num; + ddvd_get_angle_info(m_ddvdconfig, ¤t, &num); + eDebug("DVD_ANGLE_INFO: %d / %d", current, num); + m_event(this, evUser+13); + break; + } case DDVD_SHOWOSD_TIME: { static struct ddvd_time last_info; @@ -458,6 +466,7 @@ int eServiceDVD::getInfo(int w) } case sUser+6: case sUser+7: + case sUser+8: return resIsPyObject; default: return resNA; @@ -527,6 +536,16 @@ PyObject *eServiceDVD::getInfoObject(int w) } return tuple; } + case sUser+8: + { + ePyObject tuple = PyTuple_New(2); + int current, num; + ddvd_get_angle_info(m_ddvdconfig, ¤t, &num); + PyTuple_SetItem(tuple, 0, PyInt_FromLong(current)); + PyTuple_SetItem(tuple, 1, PyInt_FromLong(num)); + + return tuple; + } default: eDebug("unhandled getInfoObject(%d)", w); } @@ -686,6 +705,9 @@ RESULT eServiceDVD::keyPressed(int key) case iServiceKeys::keyUser+7: ddvd_send_key(m_ddvdconfig, DDVD_KEY_MENU); break; + case iServiceKeys::keyUser+8: + ddvd_send_key(m_ddvdconfig, DDVD_KEY_ANGLE); + break; default: return -1; } |
