From 60da39712c4ef4cf01937796d6a8f9f3beeb40e6 Mon Sep 17 00:00:00 2001 From: Jonathan Li Date: Sun, 18 Sep 2016 23:20:07 +0100 Subject: [PATCH] cdvdgigaherz: Remove unused code/macros/variables/etc The SPTI code is unused, and it's simpler to just use the Windows ioctls/API if they work (only raw disk sector reading is an issue and the SPTI workaround is already in place). --- plugins/cdvdGigaherz/src/CDVD.cpp | 9 +- plugins/cdvdGigaherz/src/CDVD.h | 2 - plugins/cdvdGigaherz/src/Windows/IOCtlSrc.cpp | 250 ------------------ plugins/cdvdGigaherz/src/Windows/config.cpp | 5 - 4 files changed, 1 insertion(+), 265 deletions(-) diff --git a/plugins/cdvdGigaherz/src/CDVD.cpp b/plugins/cdvdGigaherz/src/CDVD.cpp index 88112df7f2..13e4ba206f 100644 --- a/plugins/cdvdGigaherz/src/CDVD.cpp +++ b/plugins/cdvdGigaherz/src/CDVD.cpp @@ -13,16 +13,10 @@ * If not, see . */ -#include - #include "CDVD.h" -#include "resource.h" -#include "Shlwapi.h" - +#include #include "svnrev.h" -#include - void (*newDiscCB)(); HANDLE hThread_keepAlive = nullptr; @@ -579,7 +573,6 @@ void CALLBACK CDVDnewDiskCB(void (*callback)()) newDiscCB=callback; } -void configure(); void CALLBACK CDVDconfigure() { configure(); diff --git a/plugins/cdvdGigaherz/src/CDVD.h b/plugins/cdvdGigaherz/src/CDVD.h index 7d4d724805..5e6a8bd5d8 100644 --- a/plugins/cdvdGigaherz/src/CDVD.h +++ b/plugins/cdvdGigaherz/src/CDVD.h @@ -139,8 +139,6 @@ public: extern Source *src; -int FindDiskType(); - void configure(); extern char source_drive; diff --git a/plugins/cdvdGigaherz/src/Windows/IOCtlSrc.cpp b/plugins/cdvdGigaherz/src/Windows/IOCtlSrc.cpp index 165b467c1f..69a98c4169 100644 --- a/plugins/cdvdGigaherz/src/Windows/IOCtlSrc.cpp +++ b/plugins/cdvdGigaherz/src/Windows/IOCtlSrc.cpp @@ -27,255 +27,6 @@ #include #include -template -bool ApiErrorCheck(T t,T okValue,bool cmpEq) -{ - bool cond=(t==okValue); - - if(!cmpEq) cond=!cond; - - if(!cond) - { - static char buff[1024]; - DWORD ec = GetLastError(); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,ec,0,buff,1023,NULL); - MessageBoxEx(0,buff,"ERROR?!",MB_OK,0); - } - return cond; -} - -#if FALSE -typedef struct { - SCSI_PASS_THROUGH_DIRECT spt; - ULONG Filler; - UCHAR ucSenseBuf[32]; -} SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER, *PSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER; - -SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER sptIOCTL; // global read bufs - -char szBuf[1024]; - -PSCSI_ADDRESS pSA; - -DWORD SendIoCtlScsiCommand(HANDLE hDevice, u8 direction, - u8 cdbLength, u8* cdb, - u32 dataLength, void* dataBuffer - ) -{ - DWORD dwRet; - - memset(szBuf,0,1024); - - pSA=(PSCSI_ADDRESS)szBuf; - pSA->Length=sizeof(SCSI_ADDRESS); - - if(!DeviceIoControl(hDevice,IOCTL_SCSI_GET_ADDRESS,NULL, - 0,pSA,sizeof(SCSI_ADDRESS), - &dwRet,NULL)) - { - return -1; - } - - memset(&sptIOCTL,0,sizeof(sptIOCTL)); - - sptIOCTL.spt.Length = sizeof(SCSI_PASS_THROUGH_DIRECT); - sptIOCTL.spt.TimeOutValue = 60; - sptIOCTL.spt.SenseInfoLength = 14; - sptIOCTL.spt.SenseInfoOffset = offsetof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER, ucSenseBuf); - - sptIOCTL.spt.PathId = pSA->PortNumber; - sptIOCTL.spt.TargetId = pSA->TargetId; - sptIOCTL.spt.Lun = pSA->Lun; - - sptIOCTL.spt.DataIn = (direction>0)?SCSI_IOCTL_DATA_IN:((direction<0)?SCSI_IOCTL_DATA_OUT:SCSI_IOCTL_DATA_UNSPECIFIED); - sptIOCTL.spt.DataTransferLength = dataLength; - sptIOCTL.spt.DataBuffer = dataBuffer; - - sptIOCTL.spt.CdbLength = cdbLength; - memcpy(sptIOCTL.spt.Cdb,cdb,cdbLength); - - DWORD code = DeviceIoControl(hDevice, - IOCTL_SCSI_PASS_THROUGH_DIRECT, - &sptIOCTL,sizeof(sptIOCTL), - &sptIOCTL,sizeof(sptIOCTL), - &dwRet,NULL); - ApiErrorCheck(code,0,false); - return code; -} - -//0x00 = PHYSICAL STRUCTURE -DWORD ScsiReadStructure(HANDLE hDevice, u32 layer, u32 format, u32 buffer_length, void* buffer) -{ - u8 cdb[12]={0}; - - - cdb[0] = 0xAD; - /* - cdb[2] = (unsigned char)((addr >> 24) & 0xFF); - cdb[3] = (unsigned char)((addr >> 16) & 0xFF); - cdb[4] = (unsigned char)((addr >> 8) & 0xFF); - cdb[5] = (unsigned char)(addr & 0xFF); - */ - cdb[6] = layer; - cdb[7] = format; - cdb[8] = (unsigned char)((buffer_length>>8) & 0xFF); - cdb[9] = (unsigned char)((buffer_length) & 0xFF); - - return SendIoCtlScsiCommand(hDevice, 1, 12, cdb, buffer_length, buffer); -} - - -DWORD ScsiReadBE_2(HANDLE hDevice, u32 addr, u32 count, u8* buffer) -{ - u8 cdb[12]={0}; - - cdb[0] = 0xBE; - cdb[2] = (unsigned char)((addr >> 24) & 0xFF); - cdb[3] = (unsigned char)((addr >> 16) & 0xFF); - cdb[4] = (unsigned char)((addr >> 8) & 0xFF); - cdb[5] = (unsigned char)(addr & 0xFF); - cdb[8] = count; - cdb[9] = 0xF8; - cdb[10] = 0x2; - - return SendIoCtlScsiCommand(hDevice, 1, 12, cdb, 2352, buffer); -} - -DWORD ScsiRead10(HANDLE hDevice, u32 addr, u32 count, u8* buffer) -{ - u8 cdb[10]={0}; - - cdb[0] = 0x28; - //cdb[1] = lun<<5; - cdb[2] = (unsigned char)((addr >> 24) & 0xFF); - cdb[3] = (unsigned char)((addr >> 16) & 0xFF); - cdb[4] = (unsigned char)((addr >> 8) & 0xFF); - cdb[5] = (unsigned char)(addr & 0xFF); - cdb[8] = count; - - return SendIoCtlScsiCommand(hDevice, 1, 10, cdb, 2352, buffer); -} - -DWORD ScsiReadTOC(HANDLE hDevice, u32 addr, u8* buffer, bool use_msf) -{ - u8 cdb[12]={0}; - - cdb[0] = 0x43; - cdb[7] = 0x03; - cdb[8] = 0x24; - - if(use_msf) cdb[1]=2; - - return SendIoCtlScsiCommand(hDevice, 1, 10, cdb, 2352, buffer); -} - -s32 IOCtlSrc::GetSectorCount() -{ - DWORD size; - - LARGE_INTEGER li; - int plain_sectors = 0; - - if(GetFileSizeEx(device,&li)) - { - return li.QuadPart / 2048; - } - - GET_LENGTH_INFORMATION info; - if(DeviceIoControl(device, IOCTL_DISK_GET_LENGTH_INFO, NULL, 0, &info, sizeof(info), &size, NULL)) - { - return info.Length.QuadPart / 2048; - } - - CDROM_READ_TOC_EX tocrq={0}; - - tocrq.Format = CDROM_READ_TOC_EX_FORMAT_FULL_TOC; - tocrq.Msf=1; - tocrq.SessionTrack=1; - - CDROM_TOC_FULL_TOC_DATA *ftd=(CDROM_TOC_FULL_TOC_DATA*)sectorbuffer; - - if(DeviceIoControl(device,IOCTL_CDROM_READ_TOC_EX,&tocrq,sizeof(tocrq),ftd, 2048, &size, NULL)) - { - for(int i=0;i<101;i++) - { - if(ftd->Descriptors[i].Point==0xa2) - { - if(ftd->Descriptors[i].SessionNumber==ftd->LastCompleteSession) - { - int min=ftd->Descriptors[i].Msf[0]; - int sec=ftd->Descriptors[i].Msf[1]; - int frm=ftd->Descriptors[i].Msf[2]; - - return MSF_TO_LBA(min,sec,frm); - } - } - } - } - - int sectors1=-1; - - if(ScsiReadStructure(device,0,DvdPhysicalDescriptor, sizeof(dld), &dld)!=0) - { - if(dld.ld.EndLayerZeroSector>0) // OTP? - { - sectors1 = dld.ld.EndLayerZeroSector - dld.ld.StartingDataSector; - } - else //PTP or single layer - { - sectors1 = dld.ld.EndDataSector - dld.ld.StartingDataSector; - } - - if(ScsiReadStructure(device,1,DvdPhysicalDescriptor, sizeof(dld), &dld)!=0) - { - // PTP second layer - //sectors1 += dld.ld.EndDataSector - dld.ld.StartingDataSector; - if(dld.ld.EndLayerZeroSector>0) // OTP? - { - sectors1 += dld.ld.EndLayerZeroSector - dld.ld.StartingDataSector; - } - else //PTP - { - sectors1 += dld.ld.EndDataSector - dld.ld.StartingDataSector; - } - } - - return sectors1; - } - - return -1; -} - -s32 IOCtlSrc::GetLayerBreakAddress() -{ - DWORD size; - if(ScsiReadStructure(device,0,DvdPhysicalDescriptor, sizeof(dld), &dld)!=0) - { - if(dld.ld.EndLayerZeroSector>0) // OTP? - { - return dld.ld.EndLayerZeroSector - dld.ld.StartingDataSector; - } - else //PTP or single layer - { - u32 s1 = dld.ld.EndDataSector - dld.ld.StartingDataSector; - - if(ScsiReadStructure(device,1,DvdPhysicalDescriptor, sizeof(dld), &dld)!=0) - { - //PTP - return s1; - } - - // single layer - return 0; - } - } - - return -1; -} -#endif - -#define RETURN(v) {OpenOK=v; return;} - s32 IOCtlSrc::Reopen() { if(device!=INVALID_HANDLE_VALUE) @@ -352,7 +103,6 @@ struct mycrap DVD_READ_STRUCTURE dvdrs; mycrap dld; -DISK_GEOMETRY dg; CDROM_READ_TOC_EX tocrq={0}; s32 IOCtlSrc::GetSectorCount() diff --git a/plugins/cdvdGigaherz/src/Windows/config.cpp b/plugins/cdvdGigaherz/src/Windows/config.cpp index 4d1a919fa2..e9a0d7e719 100644 --- a/plugins/cdvdGigaherz/src/Windows/config.cpp +++ b/plugins/cdvdGigaherz/src/Windows/config.cpp @@ -143,11 +143,6 @@ char* path[] = { int n,s; -#define SET_CHECK(idc,value) SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,((value)==0)?BST_UNCHECKED:BST_CHECKED,0) -#define HANDLE_CHECK(idc,hvar) case idc: hvar=hvar?0:1; SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,(hvar==1)?BST_CHECKED:BST_UNCHECKED,0); break -#define HANDLE_CHECKNB(idc,hvar)case idc: hvar=hvar?0:1; SendMessage(GetDlgItem(hWnd,idc),BM_SETCHECK,(hvar==1)?BST_CHECKED:BST_UNCHECKED,0) -#define ENABLE_CONTROL(idc,value) EnableWindow(GetDlgItem(hWnd,idc),value) - BOOL CALLBACK ConfigProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { int wmId,wmEvent;