From 9e2f309e3041cf4cecf55d1f3f1e07d423aa9afa Mon Sep 17 00:00:00 2001 From: Jonathan Li Date: Tue, 15 Mar 2016 18:04:30 +0000 Subject: [PATCH] cdvdgigaherz: Fix incorrect dual-layer DVD track info Single-session DVDs only have 1 track, regardless of whether the DVD is single or dual layered. --- plugins/cdvdGigaherz/src/TocStuff.cpp | 48 +++++++++------------------ 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/plugins/cdvdGigaherz/src/TocStuff.cpp b/plugins/cdvdGigaherz/src/TocStuff.cpp index bd77d00810..cd8244da4c 100644 --- a/plugins/cdvdGigaherz/src/TocStuff.cpp +++ b/plugins/cdvdGigaherz/src/TocStuff.cpp @@ -19,49 +19,33 @@ toc_data cdtoc; s32 cdvdParseTOC() { - memset(&cdtoc,0,sizeof(cdtoc)); + memset(&cdtoc, 0, sizeof(cdtoc)); s32 len = src->GetSectorCount(); tracks[0].length = len; - tracks[0].start_lba=0; - tracks[0].type=0; - tracks[1].start_lba=0; + tracks[0].start_lba = 0; + tracks[0].type = 0; + tracks[1].start_lba = 0; - if(len<=0) + if (len <= 0) { - curDiskType=CDVD_TYPE_NODISC; - tracks[0].length=0; - strack=1; - etrack=0; + curDiskType = CDVD_TYPE_NODISC; + tracks[0].length = 0; + strack = 1; + etrack = 0; return 0; } - s32 lastaddr = src->GetLayerBreakAddress(); + s32 mt = src->GetMediaType(); - - if(lastaddr>=0) + if (mt >= 0) { - if((lastaddr > 0)&&(tracks[0].length>lastaddr)) - { - tracks[1].length=lastaddr+1; - tracks[1].type=0; + tracks[1].length = tracks[0].length; + tracks[1].type = 0; - tracks[2].start_lba = tracks[1].length; - tracks[2].length = tracks[0].length-tracks[1].length; - tracks[2].type=0; - - strack=1; - etrack=2; - } - else - { - tracks[1].length=tracks[0].length; - tracks[1].type=0; - - strack=1; - etrack=1; - } + strack = 1; + etrack = 1; } else { @@ -82,8 +66,6 @@ s32 cdvdParseTOC() //return 0; } -#define btoi(b) ((b>>4)*10+(b&0xF)) - int length = (cdtoc.Length[0]<<8) | cdtoc.Length[1]; int descriptors = length/sizeof(cdtoc.Descriptors[0]); for(int i=0;i