1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-01 20:32:13 +00:00

fixed dvd chapter and title switching

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22505 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
vayne 2007-03-10 14:33:28 +00:00
parent 217deee877
commit ccb97f1098
3 changed files with 28 additions and 14 deletions

View File

@ -143,6 +143,7 @@ int display_openfilewindow(gui_t *gui, int add)
{
if (GetFullPathName(filename, MAX_PATH, filename, &filepart))
{
mplSetFileName(NULL, filename, STREAMTYPE_FILE);
if(!parse_filename(filename, playtree, mconfig, 0))
gui->playlist->add_track(gui->playlist, filename, NULL, filepart, 0);
mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] Adding file: %s - path %s\n", filespec, filename);
@ -791,6 +792,7 @@ static LRESULT CALLBACK TitleChapterWndProc(HWND hwnd, UINT iMsg, WPARAM wParam,
int i=0, j=0;
char titles[MAX_PATH] = "";
char chapters[MAX_PATH] = "";
gui_t *gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
switch (iMsg)
{
case WM_CREATE:
@ -859,9 +861,7 @@ static LRESULT CALLBACK TitleChapterWndProc(HWND hwnd, UINT iMsg, WPARAM wParam,
if((guiIntfStruct.DVD.current_title != 0 || guiIntfStruct.DVD.current_chapter != 0))
{
mplGotoTheNext = 0;
guiGetEvent(guiCEvent, (void *) guiSetStop);
guiGetEvent(guiCEvent, (void *) guiSetPlay);
gui->startplay(gui);
DestroyWindow(hwnd);
}
}

View File

@ -451,6 +451,7 @@ static LRESULT CALLBACK SubProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l
for(i=0; i<filecount; i++)
{
DragQueryFile((HDROP) wParam, i, file, MAX_PATH);
mplSetFileName(NULL, file, STREAMTYPE_FILE);
if(!parse_filename(file, playtree, mconfig, 1))
gui->playlist->add_track(gui->playlist, file, NULL, NULL, 0);
}
@ -722,6 +723,7 @@ static LRESULT CALLBACK EventProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM
{
PCOPYDATASTRUCT cdData;
cdData = (PCOPYDATASTRUCT) lParam;
mplSetFileName(NULL, cdData->lpData, STREAMTYPE_FILE);
if(!parse_filename(cdData->lpData, playtree, mconfig, 1))
gui->playlist->add_track(gui->playlist, cdData->lpData, NULL, NULL, 0);
gui->startplay(gui);
@ -738,6 +740,7 @@ static LRESULT CALLBACK EventProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM
for(i=0; i<filecount; i++)
{
DragQueryFile((HDROP) wParam, i, file, MAX_PATH);
mplSetFileName(NULL, file, STREAMTYPE_FILE);
if(!parse_filename(file, playtree, mconfig, 1))
gui->playlist->add_track(gui->playlist, file, NULL, NULL, 0);
}

View File

@ -167,10 +167,6 @@ static void guiSetEvent(int event)
guiIntfStruct.DiskChanged = 1;
mplSetFileName(NULL, dvd_device, STREAMTYPE_DVD);
guiIntfStruct.Title = guiIntfStruct.DVD.current_title;
guiIntfStruct.Chapter = guiIntfStruct.DVD.current_chapter;
guiIntfStruct.Angle = guiIntfStruct.DVD.current_angle;
dvdname[0] = 0;
strcat(dvdname, "DVD Movie");
GetVolumeInformation(dvd_device, dvdname, MAX_PATH, NULL, NULL, NULL, NULL, 0);
@ -281,13 +277,28 @@ static void guiSetEvent(int event)
case evDropFile:
case evLoadPlay:
{
mplSetFileName(NULL, filename, STREAMTYPE_FILE);
guiIntfStruct.FilenameChanged = guiIntfStruct.NewPlay = 1;
update_playlistwindow();
mplGotoTheNext = guiIntfStruct.Playing? 0 : 1;
guiGetEvent(guiCEvent, (void *) guiSetStop);
guiGetEvent(guiCEvent, (void *) guiSetPlay);
break;
switch(guiIntfStruct.StreamType)
{
case STREAMTYPE_DVD:
{
guiIntfStruct.Title = guiIntfStruct.DVD.current_title;
guiIntfStruct.Chapter = guiIntfStruct.DVD.current_chapter;
guiIntfStruct.Angle = guiIntfStruct.DVD.current_angle;
guiIntfStruct.DiskChanged = 1;
guiGetEvent(guiCEvent, (void *) guiSetPlay);
break;
}
default:
{
guiIntfStruct.FilenameChanged = guiIntfStruct.NewPlay = 1;
update_playlistwindow();
mplGotoTheNext = guiIntfStruct.Playing? 0 : 1;
guiGetEvent(guiCEvent, (void *) guiSetStop);
guiGetEvent(guiCEvent, (void *) guiSetPlay);
break;
}
}
break;
}
case evNext:
mplNext();