diff options
author | phelin <phelin> | 2007-09-17 20:01:52 +0000 |
---|---|---|
committer | phelin <phelin> | 2007-09-17 20:01:52 +0000 |
commit | e0b76acfcda4d3074415c9ed9c13674bc45d77b3 (patch) | |
tree | 17dc8343a61d36afc71cdd0ee807700b9d6cfbd4 | |
parent | d9306e51b4b8cb472ff3b21747d3803911713118 (diff) | |
download | xineliboutput-e0b76acfcda4d3074415c9ed9c13674bc45d77b3.tar.gz xineliboutput-e0b76acfcda4d3074415c9ed9c13674bc45d77b3.tar.bz2 |
Fix DVD menu domain detection
-rw-r--r-- | frontend.c | 5 | ||||
-rw-r--r-- | media_player.c | 16 | ||||
-rw-r--r-- | xine_input_vdr.c | 6 |
3 files changed, 10 insertions, 17 deletions
@@ -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); |