summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphelin <phelin>2007-09-17 20:01:52 +0000
committerphelin <phelin>2007-09-17 20:01:52 +0000
commite0b76acfcda4d3074415c9ed9c13674bc45d77b3 (patch)
tree17dc8343a61d36afc71cdd0ee807700b9d6cfbd4
parentd9306e51b4b8cb472ff3b21747d3803911713118 (diff)
downloadxineliboutput-e0b76acfcda4d3074415c9ed9c13674bc45d77b3.tar.gz
xineliboutput-e0b76acfcda4d3074415c9ed9c13674bc45d77b3.tar.bz2
Fix DVD menu domain detection
-rw-r--r--frontend.c5
-rw-r--r--media_player.c16
-rw-r--r--xine_input_vdr.c6
3 files changed, 10 insertions, 17 deletions
diff --git a/frontend.c b/frontend.c
index 6968a04e..556f5848 100644
--- a/frontend.c
+++ b/frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: frontend.c,v 1.37 2007-06-21 09:49:57 phintuka Exp $
+ * $Id: frontend.c,v 1.38 2007-09-17 20:01:51 phelin Exp $
*
*/
@@ -169,9 +169,12 @@ void cXinelibThread::InfoHandler(const char *info)
}
else if(!strncmp(info, "DVDTITLE ", 9)) {
+ LOGMSG("DVDTITLE %s", info);
map += 9;
while(*map == ' ') map++;
cXinelibDevice::Instance().SetMetaInfo(miDvdTitleNo, map);
+ if (*map == '0') // DVD Menu, set spu track to 0
+ cXinelibDevice::Instance().SetCurrentDvdSpuTrack(0);
}
free(pmap);
diff --git a/media_player.c b/media_player.c
index 80de6747..3a0e0bdc 100644
--- a/media_player.c
+++ b/media_player.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: media_player.c,v 1.33 2007-09-17 18:12:28 phelin Exp $
+ * $Id: media_player.c,v 1.34 2007-09-17 20:01:52 phelin Exp $
*
*/
@@ -904,19 +904,9 @@ eOSState cXinelibDvdPlayerControl::ProcessKey(eKeys Key)
bool MenuDomain = false;
if(Key != kNone) {
- const char *l0 = cXinelibDevice::Instance().GetDvdSpuLang(0);
- const char *l1 = cXinelibDevice::Instance().GetDvdSpuLang(1);
- //const char *t = cXinelibDevice::Instance().GetMetaInfo(miTitle);
- //const char *dt = cXinelibDevice::Instance().GetMetaInfo(miDvdTitleNo);
-
- if(/*(dt && !strcmp("0", dt)) ||*/
- (l0 && !strcmp("menu", l0)) ||
- (l1 && !strcmp("menu", l1))) {
+ const char *dt = cXinelibDevice::Instance().GetMetaInfo(miDvdTitleNo);
+ if(dt && !strcmp("0", dt))
MenuDomain = true;
- //LOGMSG(" *** menu domain %s %s %s %s", l0, l1, t, dt);
- } else {
- //LOGMSG(" *** replay domain %s %s %s %s", l0, l1, t, dt);
- }
}
if(MenuDomain) {
diff --git a/xine_input_vdr.c b/xine_input_vdr.c
index 8ce72daf..8927a805 100644
--- a/xine_input_vdr.c
+++ b/xine_input_vdr.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_input_vdr.c,v 1.94 2007-09-14 22:56:10 phintuka Exp $
+ * $Id: xine_input_vdr.c,v 1.95 2007-09-17 20:01:52 phelin Exp $
*
*/
@@ -3811,7 +3811,7 @@ static void slave_track_maps_changed(vdr_input_plugin_t *this)
}
#ifdef XINE_STREAM_INFO_DVD_TITLE_NUMBER
- i = _x_stream_info_get(this->stream,XINE_STREAM_INFO_DVD_TITLE_NUMBER);
+ i = _x_stream_info_get(this->slave_stream,XINE_STREAM_INFO_DVD_TITLE_NUMBER);
if(i >= 0) {
sprintf(tracks, "INFO DVDTITLE %d\r\n", i);
if(this->funcs.xine_input_event)
@@ -3935,7 +3935,7 @@ static void vdr_event_cb (void *user_data, const xine_event_t *event)
LOGMSG("XINE_EVENT_UI_SET_TITLE: %s", data->str);
#ifdef XINE_STREAM_INFO_DVD_TITLE_NUMBER
- int tt = _x_stream_info_get(this->stream,XINE_STREAM_INFO_DVD_TITLE_NUMBER);
+ int tt = _x_stream_info_get(this->slave_stream,XINE_STREAM_INFO_DVD_TITLE_NUMBER);
snprintf(titlen, sizeof(titlen), "INFO DVDTITLE %d\r\n", tt);
#endif
snprintf(msg, sizeof(msg), "INFO TITLE %s\r\n%s", data->str, titlen);