mirror of https://github.com/PCSX2/pcsx2.git
plugins: Remove CDVDiso
Superseded by PCSX2 internal ISO reader.
This commit is contained in:
parent
6aef44271e
commit
cb64cb6abe
|
@ -292,7 +292,6 @@ endif()
|
|||
set(CDVDisoEFP FALSE)
|
||||
set(CDVDpeops FALSE)
|
||||
set(CDVDlinuz FALSE) # used to be compiled on linux
|
||||
set(CDVDiso FALSE) # used to be compiled on linux
|
||||
|
||||
# [TODO] Write CMakeLists.txt for these plugins. (or not ;) )
|
||||
set(PeopsSPU2 FALSE)
|
||||
|
|
|
@ -32,8 +32,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wx", "wx", "{62BF822E-6A12-
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroGS", "plugins\zerogs\dx\Windows\zerogs.vcxproj", "{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CDVDiso", "plugins\CDVDiso\src\Windows\CDVDiso.vcxproj", "{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "3rdparty\soundtouch\SoundTouch.vcxproj", "{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "3rdparty\zlib\zlib.vcxproj", "{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}"
|
||||
|
@ -79,15 +77,6 @@ Global
|
|||
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release|Win32.Build.0 = Release|Win32
|
||||
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release|x64.ActiveCfg = Release|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Devel|Win32.ActiveCfg = Devel|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Devel|Win32.Build.0 = Devel|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Devel|x64.ActiveCfg = Devel|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release|Win32.Build.0 = Release|Win32
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release|x64.ActiveCfg = Release|Win32
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
@ -228,7 +217,6 @@ Global
|
|||
{0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C} = {88F517F9-CE1C-4005-9BDF-4481FEB55053}
|
||||
{62BF822E-6A12-49A8-BE8C-C55A9BCA24DA} = {0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C}
|
||||
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||
{F4EB4AB2-C595-4B05-8BC0-059024BC796C} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||
|
|
|
@ -1,78 +0,0 @@
|
|||
CDVDiso v0.5
|
||||
------------
|
||||
|
||||
This is an extension to use with play station2 emulators
|
||||
as PCSX2 (only one right now).
|
||||
The plugin is free open source code.
|
||||
|
||||
Linux requeriments:
|
||||
------------------
|
||||
You need the GTK library, compiled with GTK v1.2.5,
|
||||
the Zlib library (v1.1.3) and the bz2 library (v1.0.0).
|
||||
|
||||
Usage:
|
||||
-----
|
||||
Place the file "libCDVDiso.so" (linux) or "CDVDiso.dll" (win32) at the Plugin
|
||||
directory of the Emulator to use it.
|
||||
|
||||
Linux only: Also place the cfgCDVDiso file at your $HOME directory or at the
|
||||
Emulator directory.
|
||||
|
||||
Configuration:
|
||||
-------------
|
||||
You can either write the iso you want to use in the config dialog, or everytime
|
||||
you run the emu open it, if you're doing this don't write anything in the dialog.
|
||||
|
||||
Creating an iso (linux only):
|
||||
---------------
|
||||
To create an iso you can use the buttons 'Create Iso' or 'Create Compressed Iso',
|
||||
the file will be the one in the Iso Edit, and the Cdrom Device is the cdrom that
|
||||
will be used as source.
|
||||
The compression method is specified by the Compression Method Combo.
|
||||
|
||||
Note: This will fail if the file in the Iso Edit already exists (if it's
|
||||
compressed the .Z or .bz suffix will be added).
|
||||
|
||||
Compressed isos:
|
||||
---------------
|
||||
You must create them by the Compress Iso button, this will create a .Z or .bz
|
||||
file (the compressed image) and a .Z.table or .bz.index file (this is a table,
|
||||
for speed reasons), both will be created in the same dir the selected iso
|
||||
image, the original image will not be deleted and/or changed, and also you can
|
||||
decompress the compressed iso with Decompress Iso button.
|
||||
The compression method is specified by the Compression Method Combo.
|
||||
|
||||
Note: you only can decompress the images with the Decompress button, not with
|
||||
compress or bzip2.
|
||||
|
||||
Compression Method:
|
||||
------------------
|
||||
.Z - compress faster: this will compress faster, but not as good as the .bz.
|
||||
.bz - compress better: will compress better, but slower.
|
||||
|
||||
Changes:
|
||||
-------
|
||||
v0.5:
|
||||
* Added block dumping code
|
||||
* Added BZ2/Z2 format ;)
|
||||
* Added optimaze asm code of zlib with vsnet2003 only. Compression / Uncompression should be faster now (shadow)
|
||||
* Added Vsnet2005 beta1 project files + amd64 asm optimaze code for zlib (shadow)
|
||||
|
||||
v0.4:
|
||||
* Rewrote mostly ;)
|
||||
* .bz is still unsupported
|
||||
|
||||
v0.3:
|
||||
* Better Iso detection, thx florin :)
|
||||
* Updated to PS2Edefs v0.4.5
|
||||
|
||||
v0.2:
|
||||
* Added support for isos using 2048 blocksize
|
||||
* Nero images are supported
|
||||
* Better extension filtering
|
||||
|
||||
v0.1:
|
||||
* First Release
|
||||
* Tested with Pcsx2
|
||||
|
||||
Email: <linuzappz@hotmail.com>
|
|
@ -1,159 +0,0 @@
|
|||
/* CDVDiso
|
||||
* Copyright (C) 2002-2004 CDVDiso Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __CDVDISO_H__
|
||||
#define __CDVDISO_H__
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable : 4018)
|
||||
#endif
|
||||
|
||||
#include "PS2Edefs.h"
|
||||
#include "libiso.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK
|
||||
#else
|
||||
#define EXPORT_C_(type) extern "C" __attribute__((stdcall, externally_visible, visibility("default"))) type
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define EXPORT_C_(type) __declspec(dllexport) type __stdcall
|
||||
#else
|
||||
#define EXPORT_C_(type) __attribute__((stdcall, externally_visible, visibility("default"))) type
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
EXPORT_C_(u32)
|
||||
PS2EgetLibType();
|
||||
EXPORT_C_(u32)
|
||||
PS2EgetLibVersion2(u32 type);
|
||||
EXPORT_C_(char *)
|
||||
PS2EgetLibName();
|
||||
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDinit();
|
||||
EXPORT_C_(s32)
|
||||
CDVDopen(const char *pTitleFilename);
|
||||
EXPORT_C_(void)
|
||||
CDVDclose();
|
||||
EXPORT_C_(void)
|
||||
CDVDshutdown();
|
||||
EXPORT_C_(s32)
|
||||
CDVDreadTrack(u32 lsn, int mode);
|
||||
|
||||
// return can be NULL (for async modes)
|
||||
EXPORT_C_(u8 *)
|
||||
CDVDgetBuffer();
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDreadSubQ(u32 lsn, cdvdSubQ *subq); //read subq from disc (only cds have subq data)
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTN(cdvdTN *Buffer); //disk information
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTD(u8 Track, cdvdTD *Buffer); //track info: min,sec,frame,type
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTOC(void *toc); //gets ps2 style toc from disc
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetDiskType(); //CDVD_TYPE_xxxx
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTrayStatus(); //CDVD_TRAY_xxxx
|
||||
EXPORT_C_(s32)
|
||||
CDVDctrlTrayOpen(); //open disc tray
|
||||
EXPORT_C_(s32)
|
||||
CDVDctrlTrayClose(); //close disc tray
|
||||
|
||||
// extended funcs
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDconfigure();
|
||||
EXPORT_C_(void)
|
||||
CDVDabout();
|
||||
EXPORT_C_(s32)
|
||||
CDVDtest();
|
||||
EXPORT_C_(void)
|
||||
CDVDnewDiskCB(void (*callback)());
|
||||
|
||||
#define CDVD_LOG __Log
|
||||
extern FILE *cdvdLog;
|
||||
|
||||
void __Log(char *fmt, ...);
|
||||
|
||||
#define VERBOSE 1
|
||||
|
||||
#define DEV_DEF ""
|
||||
#define CDDEV_DEF "/dev/cdrom"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int slsn;
|
||||
int elsn;
|
||||
#ifdef _WINDOWS_
|
||||
HANDLE handle;
|
||||
#else
|
||||
FILE *handle;
|
||||
#endif
|
||||
} _cdIso;
|
||||
|
||||
extern _cdIso cdIso[8];
|
||||
|
||||
#define CD_FRAMESIZE_RAW 2352
|
||||
#define DATA_SIZE (CD_FRAMESIZE_RAW - 12)
|
||||
|
||||
#define itob(i) ((i) / 10 * 16 + (i) % 10) /* u_char to BCD */
|
||||
#define btoi(b) ((b) / 16 * 10 + (b) % 16) /* BCD to u_char */
|
||||
|
||||
#define MSF2SECT(m, s, f) (((m)*60 + (s)-2) * 75 + (f))
|
||||
|
||||
extern const u8 version;
|
||||
extern const u8 revision;
|
||||
extern const u8 build;
|
||||
|
||||
extern char IsoFile[256];
|
||||
extern char IsoCWD[256];
|
||||
extern char CdDev[256];
|
||||
|
||||
extern int BlockDump;
|
||||
extern isoFile *fdump;
|
||||
extern isoFile *iso;
|
||||
|
||||
extern u8 cdbuffer[];
|
||||
extern u8 *pbuffer;
|
||||
extern int cdblocksize;
|
||||
extern int cdblockofs;
|
||||
extern int cdoffset;
|
||||
extern int cdtype;
|
||||
extern int cdblocks;
|
||||
|
||||
extern int Zmode; // 1 Z - 2 bz2
|
||||
extern int fmode; // 0 - file / 1 - Zfile
|
||||
extern char *Ztable;
|
||||
|
||||
extern char *methods[];
|
||||
|
||||
void UpdateZmode();
|
||||
void CfgOpenFile();
|
||||
void SysMessage(char *fmt, ...);
|
||||
|
||||
#endif
|
|
@ -1,557 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "CDVDiso.h"
|
||||
#include "Config.h"
|
||||
|
||||
#ifndef MAX_PATH
|
||||
#define MAX_PATH 255
|
||||
#endif
|
||||
|
||||
char IsoFile[256];
|
||||
char IsoCWD[256];
|
||||
char CdDev[256];
|
||||
|
||||
_cdIso cdIso[8];
|
||||
u8 *pbuffer;
|
||||
int cdblocksize;
|
||||
int cdblockofs;
|
||||
int cdoffset;
|
||||
int cdtype;
|
||||
int cdblocks;
|
||||
|
||||
int Zmode; // 1 Z - 2 bz2
|
||||
int fmode; // 0 - file / 1 - Zfile
|
||||
char *Ztable;
|
||||
|
||||
int BlockDump;
|
||||
isoFile *fdump;
|
||||
isoFile *iso;
|
||||
|
||||
FILE *cdvdLog = NULL;
|
||||
|
||||
// This var is used to detect resume-style behavior of the Pcsx2 emulator,
|
||||
// and skip prompting the user for a new CD when it's likely they want to run the existing one.
|
||||
static char cdvdCurrentIso[MAX_PATH];
|
||||
|
||||
char *methods[] =
|
||||
{
|
||||
".Z - compress faster",
|
||||
".BZ - compress better",
|
||||
NULL};
|
||||
|
||||
#ifdef PCSX2_DEBUG
|
||||
char *LibName = "Linuz Iso CDVD (Debug) ";
|
||||
#else
|
||||
char *LibName = "Linuz Iso CDVD ";
|
||||
#endif
|
||||
|
||||
const u8 version = PS2E_CDVD_VERSION;
|
||||
const u8 revision = 0;
|
||||
const u8 build = 9;
|
||||
|
||||
u8 cdbuffer[CD_FRAMESIZE_RAW * 10] = {0};
|
||||
|
||||
s32 msf_to_lba(u8 m, u8 s, u8 f)
|
||||
{
|
||||
u32 lsn;
|
||||
lsn = f;
|
||||
lsn += (s - 2) * 75;
|
||||
lsn += m * 75 * 60;
|
||||
return lsn;
|
||||
}
|
||||
|
||||
void lba_to_msf(s32 lba, u8 *m, u8 *s, u8 *f)
|
||||
{
|
||||
lba += 150;
|
||||
*m = lba / (60 * 75);
|
||||
*s = (lba / 75) % 60;
|
||||
*f = lba % 75;
|
||||
}
|
||||
|
||||
#define btoi(b) ((b) / 16 * 10 + (b) % 16) /* BCD to u_char */
|
||||
#define itob(i) ((i) / 10 * 16 + (i) % 10) /* u_char to BCD */
|
||||
|
||||
|
||||
EXPORT_C_(char *)
|
||||
PS2EgetLibName()
|
||||
{
|
||||
return LibName;
|
||||
}
|
||||
|
||||
EXPORT_C_(u32)
|
||||
PS2EgetLibType()
|
||||
{
|
||||
return PS2E_LT_CDVD;
|
||||
}
|
||||
|
||||
EXPORT_C_(u32)
|
||||
PS2EgetLibVersion2(u32 type)
|
||||
{
|
||||
return (version << 16) | (revision << 8) | build;
|
||||
}
|
||||
|
||||
#ifdef PCSX2_DEBUG
|
||||
void __Log(char *fmt, ...)
|
||||
{
|
||||
va_list list;
|
||||
|
||||
if (cdvdLog == NULL)
|
||||
return;
|
||||
|
||||
va_start(list, fmt);
|
||||
vfprintf(cdvdLog, fmt, list);
|
||||
va_end(list);
|
||||
}
|
||||
#else
|
||||
#define __Log 0 &&
|
||||
#endif
|
||||
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDinit()
|
||||
{
|
||||
#ifdef PCSX2_DEBUG
|
||||
cdvdLog = fopen("logs/cdvdLog.txt", "w");
|
||||
if (cdvdLog == NULL) {
|
||||
cdvdLog = fopen("cdvdLog.txt", "w");
|
||||
if (cdvdLog == NULL) {
|
||||
SysMessage("Can't create cdvdLog.txt");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
setvbuf(cdvdLog, NULL, _IONBF, 0);
|
||||
CDVD_LOG("CDVDinit\n");
|
||||
#endif
|
||||
|
||||
cdvdCurrentIso[0] = 0;
|
||||
memset(cdIso, 0, sizeof(cdIso));
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDshutdown()
|
||||
{
|
||||
cdvdCurrentIso[0] = 0;
|
||||
#ifdef CDVD_LOG
|
||||
if (cdvdLog != NULL)
|
||||
fclose(cdvdLog);
|
||||
#endif
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDopen(const char *pTitle)
|
||||
{
|
||||
LoadConf();
|
||||
|
||||
if (pTitle != NULL)
|
||||
strcpy(IsoFile, pTitle);
|
||||
|
||||
if (*IsoFile == 0)
|
||||
strcpy(IsoFile, cdvdCurrentIso);
|
||||
|
||||
if (*IsoFile == 0) {
|
||||
char temp[256];
|
||||
|
||||
CfgOpenFile();
|
||||
|
||||
if (IsoFile[0] == 0) {
|
||||
// user pressed CANCEL
|
||||
return 1;
|
||||
}
|
||||
|
||||
strcpy(temp, IsoFile);
|
||||
*IsoFile = 0;
|
||||
SaveConf();
|
||||
strcpy(IsoFile, temp);
|
||||
}
|
||||
|
||||
iso = isoOpen(IsoFile);
|
||||
if (iso == NULL) {
|
||||
SysMessage("Error loading %s\nMake sure the iso file is not mounted in any disk emulation software!", IsoFile);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (iso->type == ISOTYPE_DVD)
|
||||
cdtype = CDVD_TYPE_PS2DVD;
|
||||
else if (iso->type == ISOTYPE_AUDIO)
|
||||
cdtype = CDVD_TYPE_CDDA;
|
||||
else
|
||||
cdtype = CDVD_TYPE_PS2CD;
|
||||
|
||||
if (BlockDump) {
|
||||
char fname_only[MAX_PATH];
|
||||
|
||||
#ifdef _WIN32
|
||||
char fname[MAX_PATH], ext[MAX_PATH];
|
||||
_splitpath(IsoFile, NULL, NULL, fname, ext);
|
||||
_makepath(fname_only, NULL, NULL, fname, NULL);
|
||||
#else
|
||||
char *p, *plast;
|
||||
|
||||
plast = p = strchr(IsoFile, '/');
|
||||
while (p != NULL) {
|
||||
plast = p;
|
||||
p = strchr(p + 1, '/');
|
||||
}
|
||||
|
||||
// Lets not create dumps in the plugin directory.
|
||||
strcpy(fname_only, "../");
|
||||
if (plast != NULL)
|
||||
strcat(fname_only, plast + 1);
|
||||
else
|
||||
strcat(fname_only, IsoFile);
|
||||
|
||||
plast = p = strchr(fname_only, '.');
|
||||
|
||||
while (p != NULL) {
|
||||
plast = p;
|
||||
p = strchr(p + 1, '.');
|
||||
}
|
||||
|
||||
if (plast != NULL)
|
||||
*plast = 0;
|
||||
|
||||
#endif
|
||||
strcat(fname_only, ".dump");
|
||||
fdump = isoCreate(fname_only, ISOFLAGS_BLOCKDUMP);
|
||||
if (fdump)
|
||||
isoSetFormat(fdump, iso->blockofs, iso->blocksize, iso->blocks);
|
||||
} else {
|
||||
fdump = NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDclose()
|
||||
{
|
||||
if (!iso)
|
||||
return;
|
||||
|
||||
strcpy(cdvdCurrentIso, IsoFile);
|
||||
|
||||
isoClose(iso);
|
||||
if (fdump != NULL)
|
||||
isoClose(fdump);
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDreadSubQ(u32 lsn, cdvdSubQ *subq)
|
||||
{
|
||||
if (!iso)
|
||||
return -1;
|
||||
|
||||
// fake it
|
||||
u8 min, sec, frm;
|
||||
subq->ctrl = 4;
|
||||
subq->mode = 1;
|
||||
subq->trackNum = itob(1);
|
||||
subq->trackIndex = itob(1);
|
||||
|
||||
lba_to_msf(lsn, &min, &sec, &frm);
|
||||
subq->trackM = itob(min);
|
||||
subq->trackS = itob(sec);
|
||||
subq->trackF = itob(frm);
|
||||
|
||||
subq->pad = 0;
|
||||
|
||||
lba_to_msf(lsn + (2 * 75), &min, &sec, &frm);
|
||||
subq->discM = itob(min);
|
||||
subq->discS = itob(sec);
|
||||
subq->discF = itob(frm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTN(cdvdTN *Buffer)
|
||||
{
|
||||
Buffer->strack = 1;
|
||||
Buffer->etrack = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTD(u8 Track, cdvdTD *Buffer)
|
||||
{
|
||||
if (!iso)
|
||||
return -1;
|
||||
|
||||
if (Track == 0) {
|
||||
Buffer->lsn = iso->blocks;
|
||||
} else {
|
||||
Buffer->type = CDVD_MODE1_TRACK;
|
||||
Buffer->lsn = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static s32 layer1start = -1;
|
||||
|
||||
static bool testForPartitionInfo(const u8 (&tempbuffer)[CD_FRAMESIZE_RAW])
|
||||
{
|
||||
const int off = iso->blockofs;
|
||||
|
||||
// test for: CD001
|
||||
return (
|
||||
(tempbuffer[off + 1] == 0x43) &&
|
||||
(tempbuffer[off + 2] == 0x44) &&
|
||||
(tempbuffer[off + 3] == 0x30) &&
|
||||
(tempbuffer[off + 4] == 0x30) &&
|
||||
(tempbuffer[off + 5] == 0x31));
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTOC(void *toc)
|
||||
{
|
||||
if (!iso)
|
||||
return -1;
|
||||
|
||||
u8 type = CDVDgetDiskType();
|
||||
u8 *tocBuff = (u8 *)toc;
|
||||
|
||||
//__Log("CDVDgetTOC\n");
|
||||
|
||||
if (type == CDVD_TYPE_DVDV || type == CDVD_TYPE_PS2DVD) {
|
||||
// get dvd structure format
|
||||
// scsi command 0x43
|
||||
memset(tocBuff, 0, 2048);
|
||||
|
||||
if (layer1start != -2 && iso->blocks >= 0x300000) {
|
||||
//int off = iso->blockofs;
|
||||
|
||||
// dual sided
|
||||
tocBuff[0] = 0x24;
|
||||
tocBuff[1] = 0x02;
|
||||
tocBuff[2] = 0xF2;
|
||||
tocBuff[3] = 0x00;
|
||||
tocBuff[4] = 0x41;
|
||||
tocBuff[5] = 0x95;
|
||||
|
||||
tocBuff[14] = 0x60; // dual sided, ptp
|
||||
|
||||
tocBuff[16] = 0x00;
|
||||
tocBuff[17] = 0x03;
|
||||
tocBuff[18] = 0x00;
|
||||
tocBuff[19] = 0x00;
|
||||
|
||||
// search for it
|
||||
if (layer1start == -1) {
|
||||
printf("CDVD: searching for layer1...");
|
||||
|
||||
/*tempbuffer = (u8*)malloc(CD_FRAMESIZE_RAW * 10);
|
||||
for (layer1start = (iso->blocks / 2 - 0x10) & ~0xf; layer1start < 0x200010; layer1start += 16)
|
||||
{
|
||||
isoReadBlock(iso, tempbuffer, layer1start);
|
||||
// CD001
|
||||
if (tempbuffer[off+1] == 0x43 &&
|
||||
tempbuffer[off+2] == 0x44 &&
|
||||
tempbuffer[off+3] == 0x30 &&
|
||||
tempbuffer[off+4] == 0x30 &&
|
||||
tempbuffer[off+5] == 0x31)
|
||||
break;
|
||||
}
|
||||
free(tempbuffer);*/
|
||||
|
||||
uint midsector = (iso->blocks / 2) & ~0xf;
|
||||
uint deviation = 0;
|
||||
|
||||
while ((layer1start == -1) && (deviation < midsector - 16)) {
|
||||
u8 tempbuffer[CD_FRAMESIZE_RAW];
|
||||
isoReadBlock(iso, tempbuffer, midsector - deviation);
|
||||
|
||||
if (testForPartitionInfo(tempbuffer))
|
||||
layer1start = midsector - deviation;
|
||||
else {
|
||||
isoReadBlock(iso, tempbuffer, midsector + deviation);
|
||||
if (testForPartitionInfo(tempbuffer))
|
||||
layer1start = midsector + deviation;
|
||||
}
|
||||
|
||||
if (layer1start != -1) {
|
||||
if (tempbuffer[iso->blockofs] != 0x01) {
|
||||
fprintf(stderr, "(LinuzCDVDiso): Invalid partition type on layer 1!? (type=0x%x)", tempbuffer[iso->blockofs]);
|
||||
}
|
||||
}
|
||||
deviation += 16;
|
||||
}
|
||||
|
||||
|
||||
if (layer1start == -1) {
|
||||
printf("(LinuzCDVDiso): Couldn't find second layer on dual layer... ignoring\n");
|
||||
// fake it
|
||||
tocBuff[0] = 0x04;
|
||||
tocBuff[1] = 0x02;
|
||||
tocBuff[2] = 0xF2;
|
||||
tocBuff[3] = 0x00;
|
||||
tocBuff[4] = 0x86;
|
||||
tocBuff[5] = 0x72;
|
||||
|
||||
tocBuff[16] = 0x00;
|
||||
tocBuff[17] = 0x03;
|
||||
tocBuff[18] = 0x00;
|
||||
tocBuff[19] = 0x00;
|
||||
layer1start = -2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("(LinuzCDVDiso): found at 0x%8.8x\n", layer1start);
|
||||
layer1start = layer1start + 0x30000 - 1;
|
||||
}
|
||||
|
||||
tocBuff[20] = layer1start >> 24;
|
||||
tocBuff[21] = (layer1start >> 16) & 0xff;
|
||||
tocBuff[22] = (layer1start >> 8) & 0xff;
|
||||
tocBuff[23] = (layer1start >> 0) & 0xff;
|
||||
} else {
|
||||
// fake it
|
||||
tocBuff[0] = 0x04;
|
||||
tocBuff[1] = 0x02;
|
||||
tocBuff[2] = 0xF2;
|
||||
tocBuff[3] = 0x00;
|
||||
tocBuff[4] = 0x86;
|
||||
tocBuff[5] = 0x72;
|
||||
|
||||
tocBuff[16] = 0x00;
|
||||
tocBuff[17] = 0x03;
|
||||
tocBuff[18] = 0x00;
|
||||
tocBuff[19] = 0x00;
|
||||
}
|
||||
} else if ((type == CDVD_TYPE_CDDA) || (type == CDVD_TYPE_PS2CDDA) ||
|
||||
(type == CDVD_TYPE_PS2CD) || (type == CDVD_TYPE_PSCDDA) || (type == CDVD_TYPE_PSCD)) {
|
||||
// cd toc
|
||||
// (could be replaced by 1 command that reads the full toc)
|
||||
u8 min, sec, frm;
|
||||
s32 i, err;
|
||||
cdvdTN diskInfo;
|
||||
cdvdTD trackInfo;
|
||||
memset(tocBuff, 0, 1024);
|
||||
if (CDVDgetTN(&diskInfo) == -1) {
|
||||
diskInfo.etrack = 0;
|
||||
diskInfo.strack = 1;
|
||||
}
|
||||
if (CDVDgetTD(0, &trackInfo) == -1)
|
||||
trackInfo.lsn = 0;
|
||||
|
||||
tocBuff[0] = 0x41;
|
||||
tocBuff[1] = 0x00;
|
||||
|
||||
//Number of FirstTrack
|
||||
tocBuff[2] = 0xA0;
|
||||
tocBuff[7] = itob(diskInfo.strack);
|
||||
|
||||
//Number of LastTrack
|
||||
tocBuff[12] = 0xA1;
|
||||
tocBuff[17] = itob(diskInfo.etrack);
|
||||
|
||||
//DiskLength
|
||||
lba_to_msf(trackInfo.lsn, &min, &sec, &frm);
|
||||
tocBuff[22] = 0xA2;
|
||||
tocBuff[27] = itob(min);
|
||||
tocBuff[28] = itob(sec);
|
||||
|
||||
for (i = diskInfo.strack; i <= diskInfo.etrack; i++) {
|
||||
err = CDVDgetTD(i, &trackInfo);
|
||||
lba_to_msf(trackInfo.lsn, &min, &sec, &frm);
|
||||
tocBuff[i * 10 + 30] = trackInfo.type;
|
||||
tocBuff[i * 10 + 32] = err == -1 ? 0 : itob(i); //number
|
||||
tocBuff[i * 10 + 37] = itob(min);
|
||||
tocBuff[i * 10 + 38] = itob(sec);
|
||||
tocBuff[i * 10 + 39] = itob(frm);
|
||||
}
|
||||
} else
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDreadTrack(u32 lsn, int mode)
|
||||
{
|
||||
if (!iso)
|
||||
return -1;
|
||||
|
||||
int _lsn = lsn;
|
||||
|
||||
//__Log("CDVDreadTrack: %x %x\n", lsn, mode);
|
||||
if (_lsn < 0) {
|
||||
// lsn = 2097152 + (-_lsn);
|
||||
lsn = iso->blocks - (-_lsn);
|
||||
}
|
||||
// printf ("CDRreadTrack %d\n", lsn);
|
||||
|
||||
isoReadBlock(iso, cdbuffer, lsn);
|
||||
if (fdump != NULL) {
|
||||
isoWriteBlock(fdump, cdbuffer, lsn);
|
||||
}
|
||||
|
||||
pbuffer = cdbuffer;
|
||||
switch (mode) {
|
||||
case CDVD_MODE_2352:
|
||||
break;
|
||||
case CDVD_MODE_2340:
|
||||
pbuffer += 12;
|
||||
break;
|
||||
case CDVD_MODE_2328:
|
||||
pbuffer += 24;
|
||||
break;
|
||||
case CDVD_MODE_2048:
|
||||
pbuffer += 24;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
EXPORT_C_(u8 *)
|
||||
CDVDgetBuffer()
|
||||
{
|
||||
return pbuffer;
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetDiskType()
|
||||
{
|
||||
return cdtype;
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDgetTrayStatus()
|
||||
{
|
||||
return CDVD_TRAY_CLOSE;
|
||||
}
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDctrlTrayOpen()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
EXPORT_C_(s32)
|
||||
CDVDctrlTrayClose()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
EXPORT_C_(s32)
|
||||
CDVDtest()
|
||||
{
|
||||
if (*IsoFile == 0)
|
||||
return 0;
|
||||
|
||||
iso = isoOpen(IsoFile);
|
||||
if (iso == NULL)
|
||||
return -1;
|
||||
isoClose(iso);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
# Check that people use the good file
|
||||
if(NOT TOP_CMAKE_WAS_SOURCED)
|
||||
message(FATAL_ERROR "
|
||||
You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir.
|
||||
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
|
||||
endif()
|
||||
|
||||
|
||||
# plugin name
|
||||
set(Output CDVDiso)
|
||||
set(CDVDisoFinalFlags "")
|
||||
|
||||
# CDVDiso sources
|
||||
set(CDVDisoSources
|
||||
CDVDisop.cpp
|
||||
libiso.cpp)
|
||||
|
||||
# CDVDiso headers
|
||||
set(CDVDisoHeaders
|
||||
CDVDiso.h
|
||||
libiso.h)
|
||||
|
||||
# CDVDiso Linux sources
|
||||
set(CDVDisoLinuxSources
|
||||
Linux/Config.cpp
|
||||
Linux/interface.c
|
||||
Linux/Linux.cpp
|
||||
Linux/support.c)
|
||||
|
||||
# CDVDiso Linux headers
|
||||
set(CDVDisoLinuxHeaders
|
||||
Linux/callbacks.h
|
||||
Linux/Config.h
|
||||
Linux/interface.h
|
||||
Linux/support.h)
|
||||
|
||||
set(CDVDisoFinalSources
|
||||
${CDVDisoSources}
|
||||
${CDVDisoHeaders}
|
||||
${CDVDisoLinuxSources}
|
||||
${CDVDisoLinuxHeaders}
|
||||
)
|
||||
|
||||
set(CDVDisoFinalLibs
|
||||
${BZIP2_LIBRARIES}
|
||||
)
|
||||
|
||||
# add additional include directories
|
||||
include_directories(Linux)
|
||||
|
||||
add_pcsx2_plugin(${Output} "${CDVDisoFinalSources}" "${CDVDisoFinalLibs}" "${CDVDisoFinalFlags}")
|
|
@ -1,422 +0,0 @@
|
|||
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||
|
||||
<glade-interface>
|
||||
|
||||
<widget class="GtkWindow" id="Config">
|
||||
<property name="border_width">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">CDVD Config Dialog</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||
<property name="modal">False</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="decorated">True</property>
|
||||
<property name="skip_taskbar_hint">False</property>
|
||||
<property name="skip_pager_hint">False</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox1">
|
||||
<property name="border_width">5</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">5</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">10</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="GtkEntry_Iso">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Select Iso</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnFileSel"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">10</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkProgressBar" id="GtkProgressBar_Progress">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
|
||||
<property name="fraction">0</property>
|
||||
<property name="pulse_step">0.10000000149</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Stop</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnStop"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox4">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">5</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Compression Method:</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCombo" id="GtkCombo_Method">
|
||||
<property name="visible">True</property>
|
||||
<property name="value_in_list">False</property>
|
||||
<property name="allow_empty">True</property>
|
||||
<property name="case_sensitive">False</property>
|
||||
<property name="enable_arrow_keys">True</property>
|
||||
<property name="enable_arrows_always">False</property>
|
||||
|
||||
<child internal-child="entry">
|
||||
<widget class="GtkEntry" id="combo-entry1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child internal-child="list">
|
||||
<widget class="GtkList" id="convertwidget1">
|
||||
<property name="visible">True</property>
|
||||
<property name="selection_mode">GTK_SELECTION_BROWSE</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkListItem" id="convertwidget2">
|
||||
<property name="visible">True</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="convertwidget3">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="GtkButton_Compress">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Compress Iso</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnCompress"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="GtkButton_Decompress">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Decompress Iso</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnDecompress"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox3">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">5</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Cdrom Device: </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="GtkEntry_CdDev">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox3">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="GtkButton_Create">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Create Iso</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnCreate"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="GtkButton_CreateZ">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Create Compressed Iso</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnCreateZ"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkBlockDump">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Create a dump of the running iso</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-ok</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnOk"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-cancel</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="OnCancel" last_modification_time="Fri, 26 Dec 2008 04:55:33 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
|
@ -1,328 +0,0 @@
|
|||
/* CDVDiso
|
||||
* Copyright (C) 2002-2004 CDVDiso Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
const char *s_strIniPath = "./inis/CDVDiso.ini";
|
||||
GtkWidget *AboutDlg, *ConfDlg, *MsgDlg, *FileSel;
|
||||
GtkWidget *Edit, *CdEdit;
|
||||
|
||||
void LoadConf()
|
||||
{
|
||||
FILE *f;
|
||||
char cfg[256];
|
||||
|
||||
//sprintf(cfg, "%s/.PS2E/CDVDiso.cfg", getenv("HOME"));
|
||||
strcpy(cfg, s_strIniPath);
|
||||
f = fopen(cfg, "r");
|
||||
|
||||
if (f == NULL) {
|
||||
printf("Unable to load %s\n", cfg);
|
||||
strcpy(IsoFile, DEV_DEF);
|
||||
strcpy(CdDev, CDDEV_DEF);
|
||||
BlockDump = 0;
|
||||
SaveConf();
|
||||
return;
|
||||
}
|
||||
|
||||
fscanf(f, "IsoFile = %[^\n]\n", IsoFile);
|
||||
fscanf(f, "CdDev = %[^\n]\n", CdDev);
|
||||
fscanf(f, "BlockDump = %d\n", &BlockDump);
|
||||
|
||||
if (!strncmp(IsoFile, "CdDev =", 9))
|
||||
*IsoFile = 0; // quick fix
|
||||
if (*CdDev == 0)
|
||||
strcpy(CdDev, CDDEV_DEF);
|
||||
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
void SaveConf()
|
||||
{
|
||||
FILE *f;
|
||||
char cfg[256];
|
||||
|
||||
//sprintf(cfg, "%s/.PS2E", getenv("HOME"));
|
||||
|
||||
//mkdir(cfg, 0755);
|
||||
//sprintf(cfg, "%s/.PS2E/CDVDiso.cfg", getenv("HOME"));
|
||||
strcpy(cfg, s_strIniPath);
|
||||
|
||||
f = fopen(cfg, "w");
|
||||
if (f == NULL) {
|
||||
printf("Unable to save %s\n", cfg);
|
||||
return;
|
||||
}
|
||||
|
||||
fprintf(f, "IsoFile = %s\n", IsoFile);
|
||||
fprintf(f, "CdDev = %s\n", CdDev);
|
||||
fprintf(f, "BlockDump = %d\n", BlockDump);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
void SysMessage(char *fmt, ...)
|
||||
{
|
||||
va_list list;
|
||||
char tmp[256];
|
||||
char cmd[256];
|
||||
|
||||
va_start(list, fmt);
|
||||
vsprintf(tmp, fmt, list);
|
||||
va_end(list);
|
||||
|
||||
sprintf(cmd, "message \"%s\"", tmp);
|
||||
SysMessageLoc(tmp);
|
||||
}
|
||||
|
||||
void OnFile_Ok()
|
||||
{
|
||||
const gchar *File;
|
||||
|
||||
gtk_widget_hide(FileSel);
|
||||
File = gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel));
|
||||
strcpy(IsoFile, File);
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
void OnFile_Cancel()
|
||||
{
|
||||
gtk_widget_hide(FileSel);
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
void CfgOpenFile()
|
||||
{
|
||||
GtkWidget *Ok, *Cancel;
|
||||
|
||||
FileSel = gtk_file_selection_new("Select Iso File");
|
||||
|
||||
Ok = GTK_FILE_SELECTION(FileSel)->ok_button;
|
||||
gtk_signal_connect(GTK_OBJECT(Ok), "clicked",
|
||||
GTK_SIGNAL_FUNC(OnFile_Ok), NULL);
|
||||
gtk_widget_show(Ok);
|
||||
|
||||
Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button;
|
||||
gtk_signal_connect(GTK_OBJECT(Cancel), "clicked",
|
||||
GTK_SIGNAL_FUNC(OnFile_Cancel), NULL);
|
||||
gtk_widget_show(Cancel);
|
||||
|
||||
gtk_widget_show(FileSel);
|
||||
gdk_window_raise(FileSel->window);
|
||||
|
||||
gtk_main();
|
||||
|
||||
SaveConf();
|
||||
}
|
||||
|
||||
void OnMsg_Ok()
|
||||
{
|
||||
gtk_widget_destroy(MsgDlg);
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
void SysMessageLoc(char *fmt, ...)
|
||||
{
|
||||
GtkWidget *Ok, *Txt;
|
||||
GtkWidget *Box, *Box1;
|
||||
va_list list;
|
||||
int w;
|
||||
char msg[512];
|
||||
|
||||
va_start(list, fmt);
|
||||
vsprintf(msg, fmt, list);
|
||||
va_end(list);
|
||||
|
||||
if (msg[strlen(msg) - 1] == '\n')
|
||||
msg[strlen(msg) - 1] = 0;
|
||||
|
||||
w = strlen(msg) * 6 + 20;
|
||||
|
||||
MsgDlg = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
gtk_widget_set_usize(MsgDlg, w, 70);
|
||||
gtk_window_set_position(GTK_WINDOW(MsgDlg), GTK_WIN_POS_CENTER);
|
||||
gtk_window_set_title(GTK_WINDOW(MsgDlg), "cdriso Msg");
|
||||
gtk_container_set_border_width(GTK_CONTAINER(MsgDlg), 0);
|
||||
|
||||
Box = gtk_vbox_new(0, 0);
|
||||
gtk_container_add(GTK_CONTAINER(MsgDlg), Box);
|
||||
gtk_widget_show(Box);
|
||||
|
||||
Txt = gtk_label_new(msg);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(Box), Txt, FALSE, FALSE, 5);
|
||||
gtk_widget_show(Txt);
|
||||
|
||||
Box1 = gtk_hbutton_box_new();
|
||||
gtk_box_pack_start(GTK_BOX(Box), Box1, FALSE, FALSE, 0);
|
||||
gtk_widget_show(Box1);
|
||||
|
||||
Ok = gtk_button_new_with_label("Ok");
|
||||
gtk_signal_connect(GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnMsg_Ok), NULL);
|
||||
gtk_container_add(GTK_CONTAINER(Box1), Ok);
|
||||
GTK_WIDGET_SET_FLAGS(Ok, GTK_CAN_DEFAULT);
|
||||
gtk_widget_show(Ok);
|
||||
|
||||
gtk_widget_show(MsgDlg);
|
||||
|
||||
gtk_main();
|
||||
}
|
||||
|
||||
void OnOk(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
const char *tmp;
|
||||
|
||||
stop = true;
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(Edit));
|
||||
strcpy(IsoFile, tmp);
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(CdEdit));
|
||||
strcpy(CdDev, tmp);
|
||||
|
||||
if
|
||||
is_checked(ConfDlg, "checkBlockDump")
|
||||
BlockDump = 1;
|
||||
else
|
||||
BlockDump = 0;
|
||||
|
||||
SaveConf();
|
||||
gtk_widget_destroy(ConfDlg);
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
void OnCancel(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
stop = true;
|
||||
gtk_widget_destroy(ConfDlg);
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
void OnFileSel_Ok()
|
||||
{
|
||||
const gchar *File;
|
||||
|
||||
File = gtk_file_selection_get_filename(GTK_FILE_SELECTION(FileSel));
|
||||
gtk_entry_set_text(GTK_ENTRY(Edit), File);
|
||||
gtk_widget_destroy(FileSel);
|
||||
}
|
||||
|
||||
void OnFileSel_Cancel()
|
||||
{
|
||||
gtk_widget_destroy(FileSel);
|
||||
}
|
||||
|
||||
void OnFileSel(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
GtkWidget *Ok, *Cancel;
|
||||
|
||||
FileSel = gtk_file_selection_new("Select Psx Iso File");
|
||||
gtk_file_selection_set_filename(GTK_FILE_SELECTION(FileSel), IsoFile);
|
||||
|
||||
Ok = GTK_FILE_SELECTION(FileSel)->ok_button;
|
||||
gtk_signal_connect(GTK_OBJECT(Ok), "clicked", GTK_SIGNAL_FUNC(OnFileSel_Ok), NULL);
|
||||
gtk_widget_show(Ok);
|
||||
|
||||
Cancel = GTK_FILE_SELECTION(FileSel)->cancel_button;
|
||||
gtk_signal_connect(GTK_OBJECT(Cancel), "clicked", GTK_SIGNAL_FUNC(OnFileSel_Cancel), NULL);
|
||||
gtk_widget_show(Cancel);
|
||||
|
||||
gtk_widget_show(FileSel);
|
||||
gdk_window_raise(FileSel->window);
|
||||
}
|
||||
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDconfigure()
|
||||
{
|
||||
int i;
|
||||
|
||||
LoadConf();
|
||||
|
||||
ConfDlg = create_Config();
|
||||
|
||||
Edit = lookup_widget(ConfDlg, "GtkEntry_Iso");
|
||||
gtk_entry_set_text(GTK_ENTRY(Edit), IsoFile);
|
||||
CdEdit = lookup_widget(ConfDlg, "GtkEntry_CdDev");
|
||||
gtk_entry_set_text(GTK_ENTRY(CdEdit), CdDev);
|
||||
|
||||
Progress = lookup_widget(ConfDlg, "GtkProgressBar_Progress");
|
||||
|
||||
BtnCompress = lookup_widget(ConfDlg, "GtkButton_Compress");
|
||||
BtnDecompress = lookup_widget(ConfDlg, "GtkButton_Decompress");
|
||||
BtnCreate = lookup_widget(ConfDlg, "GtkButton_Create");
|
||||
BtnCreateZ = lookup_widget(ConfDlg, "GtkButton_CreateZ");
|
||||
|
||||
methodlist = NULL;
|
||||
for (i = 0; i < 2; i++)
|
||||
methodlist = g_list_append(methodlist, methods[i]);
|
||||
|
||||
Method = lookup_widget(ConfDlg, "GtkCombo_Method");
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(Method), methodlist);
|
||||
if (strstr(IsoFile, ".Z") != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(Method)->entry), methods[0]);
|
||||
else
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(Method)->entry), methods[1]);
|
||||
|
||||
set_checked(ConfDlg, "checkBlockDump", (BlockDump == 1));
|
||||
|
||||
gtk_widget_show_all(ConfDlg);
|
||||
gtk_main();
|
||||
}
|
||||
|
||||
void OnAboutOk(GtkMenuItem *menuitem, gpointer userdata)
|
||||
{
|
||||
gtk_widget_hide(AboutDlg);
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDabout()
|
||||
{
|
||||
GtkWidget *Label;
|
||||
GtkWidget *Ok;
|
||||
GtkWidget *Box, *BBox;
|
||||
char AboutText[255];
|
||||
|
||||
sprintf(AboutText, "%s %d.%d\n", LibName, revision, build);
|
||||
|
||||
AboutDlg = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
gtk_widget_set_usize(AboutDlg, 260, 80);
|
||||
gtk_window_set_title(GTK_WINDOW(AboutDlg), "CDVD About Dialog");
|
||||
gtk_window_set_position(GTK_WINDOW(AboutDlg), GTK_WIN_POS_CENTER);
|
||||
gtk_container_set_border_width(GTK_CONTAINER(AboutDlg), 10);
|
||||
|
||||
Box = gtk_vbox_new(0, 0);
|
||||
gtk_container_add(GTK_CONTAINER(AboutDlg), Box);
|
||||
gtk_widget_show(Box);
|
||||
|
||||
Label = gtk_label_new(AboutText);
|
||||
gtk_box_pack_start(GTK_BOX(Box), Label, FALSE, FALSE, 0);
|
||||
gtk_widget_show(Label);
|
||||
|
||||
BBox = gtk_hbutton_box_new();
|
||||
gtk_box_pack_start(GTK_BOX(Box), BBox, FALSE, FALSE, 0);
|
||||
gtk_widget_show(BBox);
|
||||
|
||||
Ok = gtk_button_new_with_label("Ok");
|
||||
gtk_signal_connect(GTK_OBJECT(Ok), "clicked",
|
||||
GTK_SIGNAL_FUNC(OnAboutOk), NULL);
|
||||
gtk_container_add(GTK_CONTAINER(BBox), Ok);
|
||||
GTK_WIDGET_SET_FLAGS(Ok, GTK_CAN_DEFAULT);
|
||||
gtk_widget_show(Ok);
|
||||
|
||||
gtk_widget_show(AboutDlg);
|
||||
gtk_main();
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
/* CDVDiso
|
||||
* Copyright (C) 2002-2004 CDVDiso Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/cdrom.h>
|
||||
#include <zlib.h>
|
||||
#include <bzlib.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "support.h"
|
||||
#include "callbacks.h"
|
||||
#include "interface.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "CDVDiso.h"
|
||||
|
||||
void SaveConf();
|
||||
void LoadConf();
|
||||
extern void SysMessageLoc(char *fmt, ...);
|
||||
|
||||
extern char *LibName;
|
||||
|
||||
extern const u8 revision;
|
||||
extern const u8 build;
|
||||
|
||||
extern GtkWidget *AboutDlg, *ConfDlg, *MsgDlg, *FileSel;
|
||||
extern GtkWidget *Edit, *CdEdit;
|
||||
extern bool stop;
|
||||
|
||||
extern GtkWidget *Method, *Progress;
|
||||
extern GtkWidget *BtnCompress, *BtnDecompress;
|
||||
extern GtkWidget *BtnCreate, *BtnCreateZ;
|
||||
|
||||
extern GList *methodlist;
|
||||
|
||||
// Make it easier to check and set checkmarks in the gui
|
||||
#define is_checked(main_widget, widget_name) (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(main_widget, widget_name))))
|
||||
#define set_checked(main_widget, widget_name, state) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(lookup_widget(main_widget, widget_name)), state)
|
||||
|
||||
|
||||
extern void OnFileSel(GtkButton *button, gpointer user_data);
|
||||
extern void OnStop(GtkButton *button, gpointer user_data);
|
||||
extern void OnCompress(GtkButton *button, gpointer user_data);
|
||||
extern void OnDecompress(GtkButton *button, gpointer user_data);
|
||||
extern void OnCreate(GtkButton *button, gpointer user_data);
|
||||
extern void OnCreateZ(GtkButton *button, gpointer user_data);
|
||||
extern void OnOk(GtkButton *button, gpointer user_data);
|
||||
extern void OnCancel(GtkButton *button, gpointer user_data);
|
|
@ -1,674 +0,0 @@
|
|||
/* CDVDiso
|
||||
* Copyright (C) 2002-2004 CDVDiso Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
unsigned char Zbuf[CD_FRAMESIZE_RAW * 10 * 2];
|
||||
|
||||
GtkWidget *Method, *Progress;
|
||||
GtkWidget *BtnCompress, *BtnDecompress;
|
||||
GtkWidget *BtnCreate, *BtnCreateZ;
|
||||
|
||||
GList *methodlist;
|
||||
extern char *methods[];
|
||||
unsigned char param[4];
|
||||
int cddev = -1;
|
||||
bool stop;
|
||||
|
||||
#define CD_LEADOUT (0xaa)
|
||||
|
||||
union
|
||||
{
|
||||
struct cdrom_msf msf;
|
||||
unsigned char buf[CD_FRAMESIZE_RAW];
|
||||
} cr;
|
||||
|
||||
void OnStop(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
|
||||
void UpdZmode()
|
||||
{
|
||||
const char *tmp;
|
||||
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(Method)->entry));
|
||||
if (!strcmp(tmp, methods[0]))
|
||||
Zmode = 1;
|
||||
else
|
||||
Zmode = 2;
|
||||
}
|
||||
|
||||
char buffer[2352 * 10];
|
||||
|
||||
void OnCompress(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
struct stat buf;
|
||||
u32 lsn;
|
||||
u8 cdbuff[10 * 2352];
|
||||
char Zfile[256];
|
||||
const char *tmp;
|
||||
int ret = 0;
|
||||
isoFile *src;
|
||||
isoFile *dst;
|
||||
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(Edit));
|
||||
strcpy(IsoFile, tmp);
|
||||
UpdZmode();
|
||||
|
||||
if (Zmode == 1)
|
||||
sprintf(Zfile, "%s.Z2", IsoFile);
|
||||
if (Zmode == 2)
|
||||
sprintf(Zfile, "%s.BZ2", IsoFile);
|
||||
|
||||
if (stat(Zfile, &buf) != -1) {
|
||||
/*char str[256];*/
|
||||
return;
|
||||
/* sprintf(str, "'%s' already exists, overwrite?", Zfile);
|
||||
if (MessageBox(hDlg, str, "Question", MB_YESNO) != IDYES) {
|
||||
return;
|
||||
}*/
|
||||
}
|
||||
|
||||
src = isoOpen(IsoFile);
|
||||
if (src == NULL)
|
||||
return;
|
||||
dst = isoCreate(Zfile, Zmode == 1 ? ISOFLAGS_Z2 : ISOFLAGS_BZ2);
|
||||
if (dst == NULL)
|
||||
return;
|
||||
|
||||
gtk_widget_set_sensitive(BtnCompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreate, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, FALSE);
|
||||
stop = false;
|
||||
|
||||
for (lsn = 0; lsn < src->blocks; lsn++) {
|
||||
printf("block %d ", lsn);
|
||||
putchar(13);
|
||||
fflush(stdout);
|
||||
ret = isoReadBlock(src, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
ret = isoWriteBlock(dst, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
|
||||
gtk_progress_bar_update(GTK_PROGRESS_BAR(Progress), (lsn * 100) / src->blocks);
|
||||
while (gtk_events_pending())
|
||||
gtk_main_iteration();
|
||||
if (stop)
|
||||
break;
|
||||
}
|
||||
isoClose(src);
|
||||
isoClose(dst);
|
||||
|
||||
if (!stop)
|
||||
gtk_entry_set_text(GTK_ENTRY(Edit), IsoFile);
|
||||
|
||||
gtk_widget_set_sensitive(BtnCompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreate, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, TRUE);
|
||||
|
||||
if (!stop) {
|
||||
if (ret == -1) {
|
||||
SysMessageLoc("Error compressing iso image");
|
||||
} else {
|
||||
SysMessageLoc("Iso image compressed OK");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnDecompress(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
#if 0
|
||||
struct stat buf;
|
||||
FILE *f;
|
||||
unsigned long c = 0, p = 0, s;
|
||||
char table[256];
|
||||
char *tmp;
|
||||
int blocks;
|
||||
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(Edit));
|
||||
strcpy(IsoFile, tmp);
|
||||
|
||||
if (strstr(IsoFile, ".Z") != NULL) Zmode = 1;
|
||||
else Zmode = 2;
|
||||
|
||||
strcpy(table, IsoFile);
|
||||
if (Zmode == 1) strcat(table, ".table");
|
||||
else strcat(table, ".index");
|
||||
|
||||
if (stat(table, &buf) == -1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Zmode == 1)
|
||||
c = s = buf.st_size / 6;
|
||||
else
|
||||
c = s = (buf.st_size / 4) - 1;
|
||||
|
||||
f = fopen(table, "rb");
|
||||
Ztable = (char*)malloc(buf.st_size);
|
||||
fread(Ztable, 1, buf.st_size, f);
|
||||
fclose(f);
|
||||
|
||||
cdHandle[0] = fopen(IsoFile, "rb");
|
||||
if (cdHandle[0] == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Zmode == 1)
|
||||
IsoFile[strlen(IsoFile) - 2] = 0;
|
||||
else
|
||||
IsoFile[strlen(IsoFile) - 3] = 0;
|
||||
|
||||
f = fopen(IsoFile, "wb");
|
||||
if (f == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_widget_set_sensitive(BtnCompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreate, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, FALSE);
|
||||
stop = false;
|
||||
|
||||
if (Zmode == 1)
|
||||
{
|
||||
blocks = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
blocks = 10;
|
||||
}
|
||||
|
||||
while (c--)
|
||||
{
|
||||
unsigned long size, pos, ssize;
|
||||
float per;
|
||||
|
||||
if (Zmode == 1)
|
||||
{
|
||||
pos = *(unsigned long*) & Ztable[p * 6];
|
||||
fseek(cdHandle[0], pos, SEEK_SET);
|
||||
|
||||
ssize = *(unsigned short*) & Ztable[p * 6 + 4];
|
||||
fread(Zbuf, 1, ssize, cdHandle[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = *(unsigned long*) & Ztable[p * 4];
|
||||
fseek(cdHandle[0], pos, SEEK_SET);
|
||||
|
||||
ssize = *(unsigned long*) & Ztable[p * 4 + 4] - pos;
|
||||
fread(Zbuf, 1, ssize, cdHandle[0]);
|
||||
}
|
||||
|
||||
size = CD_FRAMESIZE_RAW * blocks;
|
||||
if (Zmode == 1)
|
||||
uncompress(cdbuffer, &size, Zbuf, ssize);
|
||||
else
|
||||
BZ2_bzBuffToBuffDecompress(cdbuffer, (unsigned int*)&size, Zbuf, ssize, 0, 0);
|
||||
|
||||
fwrite(cdbuffer, 1, size, f);
|
||||
|
||||
p++;
|
||||
|
||||
per = ((float)p / s);
|
||||
|
||||
gtk_progress_bar_update(GTK_PROGRESS_BAR(Progress), per);
|
||||
while (gtk_events_pending()) gtk_main_iteration();
|
||||
|
||||
if (stop) break;
|
||||
}
|
||||
if (!stop) gtk_entry_set_text(GTK_ENTRY(Edit), IsoFile);
|
||||
|
||||
fclose(f);
|
||||
fclose(cdHandle[0]);
|
||||
cdHandle[0] = NULL;
|
||||
free(Ztable);
|
||||
Ztable = NULL;
|
||||
|
||||
gtk_widget_set_sensitive(BtnCompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreate, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, TRUE);
|
||||
|
||||
if (!stop) SysMessageLoc("Iso Image Decompressed OK");
|
||||
#endif
|
||||
}
|
||||
|
||||
void incSector()
|
||||
{
|
||||
param[2]++;
|
||||
if (param[2] == 75) {
|
||||
param[2] = 0;
|
||||
param[1]++;
|
||||
}
|
||||
if (param[1] == 60) {
|
||||
param[1] = 0;
|
||||
param[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
long CDR_open(void)
|
||||
{
|
||||
if (cddev != -1)
|
||||
return 0;
|
||||
cddev = open(CdDev, O_RDONLY);
|
||||
if (cddev == -1) {
|
||||
printf("CDR: Could not open %s\n", CdDev);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
long CDR_close(void)
|
||||
{
|
||||
if (cddev == -1)
|
||||
return 0;
|
||||
close(cddev);
|
||||
cddev = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// return Starting and Ending Track
|
||||
// buffer:
|
||||
// byte 0 - start track
|
||||
// byte 1 - end track
|
||||
long CDR_getTN(unsigned char *buffer)
|
||||
{
|
||||
struct cdrom_tochdr toc;
|
||||
|
||||
if (ioctl(cddev, CDROMREADTOCHDR, &toc) == -1)
|
||||
return -1;
|
||||
|
||||
buffer[0] = toc.cdth_trk0; // start track
|
||||
buffer[1] = toc.cdth_trk1; // end track
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// return Track Time
|
||||
// buffer:
|
||||
// byte 0 - frame
|
||||
// byte 1 - second
|
||||
// byte 2 - minute
|
||||
long CDR_getTD(unsigned char track, unsigned char *buffer)
|
||||
{
|
||||
struct cdrom_tocentry entry;
|
||||
|
||||
if (track == 0)
|
||||
track = 0xaa; // total time
|
||||
entry.cdte_track = track;
|
||||
entry.cdte_format = CDROM_MSF;
|
||||
|
||||
if (ioctl(cddev, CDROMREADTOCENTRY, &entry) == -1)
|
||||
return -1;
|
||||
|
||||
buffer[0] = entry.cdte_addr.msf.minute; /* minute */
|
||||
buffer[1] = entry.cdte_addr.msf.second; /* second */
|
||||
buffer[2] = entry.cdte_addr.msf.frame; /* frame */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// read track
|
||||
// time:
|
||||
// byte 0 - minute
|
||||
// byte 1 - second
|
||||
// byte 2 - frame
|
||||
unsigned char *CDR_readTrack(unsigned char *time)
|
||||
{
|
||||
cr.msf.cdmsf_min0 = time[0];
|
||||
cr.msf.cdmsf_sec0 = time[1];
|
||||
cr.msf.cdmsf_frame0 = time[2];
|
||||
|
||||
if (ioctl(cddev, CDROMREADRAW, &cr) == -1)
|
||||
return NULL;
|
||||
return cr.buf;
|
||||
}
|
||||
|
||||
|
||||
void OnCreate(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
FILE *f;
|
||||
struct stat buf;
|
||||
struct tm *Tm;
|
||||
time_t Ttime;
|
||||
unsigned long ftrack, ltrack;
|
||||
unsigned long p = 0, s;
|
||||
unsigned char *buffer;
|
||||
unsigned char bufferz[2352];
|
||||
unsigned char start[4], end[4];
|
||||
const char *tmp;
|
||||
#ifdef VERBOSE
|
||||
unsigned long count = 0;
|
||||
int i = 0;
|
||||
#endif
|
||||
|
||||
memset(bufferz, 0, sizeof(bufferz));
|
||||
ftrack = 1;
|
||||
ltrack = CD_LEADOUT;
|
||||
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(Edit));
|
||||
strcpy(IsoFile, tmp);
|
||||
|
||||
if (stat(IsoFile, &buf) == 0) {
|
||||
printf("File %s Already exists\n", IsoFile);
|
||||
return;
|
||||
}
|
||||
|
||||
if (CDR_open() == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (CDR_getTD(ftrack, start) == -1) {
|
||||
printf("Error getting TD\n");
|
||||
|
||||
CDR_close();
|
||||
return;
|
||||
}
|
||||
if (CDR_getTD(ltrack, end) == -1) {
|
||||
printf("Error getting TD\n");
|
||||
|
||||
CDR_close();
|
||||
return;
|
||||
}
|
||||
|
||||
f = fopen(IsoFile, "wb");
|
||||
if (f == NULL) {
|
||||
CDR_close();
|
||||
printf("Error opening %s", IsoFile);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("Making Iso: from %2.2d:%2.2d:%2.2d to %2.2d:%2.2d:%2.2d\n",
|
||||
start[0], start[1], start[2], end[0], end[1], end[2]);
|
||||
|
||||
memcpy(param, start, 3);
|
||||
|
||||
time(&Ttime);
|
||||
|
||||
stop = false;
|
||||
s = MSF2SECT(end[0], end[1], end[2]);
|
||||
gtk_widget_set_sensitive(BtnCompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreate, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, FALSE);
|
||||
|
||||
for (;;) /* loop until end */
|
||||
{
|
||||
float per;
|
||||
|
||||
if ((param[0] == end[0]) & (param[1] == end[1]) & (param[2] == end[2]))
|
||||
break;
|
||||
buffer = CDR_readTrack(param);
|
||||
if (buffer == NULL) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
buffer = CDR_readTrack(param);
|
||||
if (buffer != NULL)
|
||||
break;
|
||||
}
|
||||
if (buffer == NULL) {
|
||||
printf("Error Reading %2d:%2d:%2d\n", param[0], param[1], param[2]);
|
||||
buffer = bufferz;
|
||||
buffer[12] = param[0];
|
||||
buffer[13] = param[1];
|
||||
buffer[14] = param[2];
|
||||
buffer[15] = 0x2;
|
||||
}
|
||||
}
|
||||
fwrite(buffer, 1, 2352, f);
|
||||
#ifdef VERBOSE
|
||||
count += CD_FRAMESIZE_RAW;
|
||||
|
||||
printf("reading %2d:%2d:%2d ", param[0], param[1], param[2]);
|
||||
if ((time(NULL) - Ttime) != 0) {
|
||||
i = (count / 1024) / (time(NULL) - Ttime);
|
||||
printf("( %5dKbytes/s, %dX)", i, i / 150);
|
||||
}
|
||||
putchar(13);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
|
||||
incSector();
|
||||
|
||||
p++;
|
||||
per = ((float)p / s);
|
||||
gtk_progress_bar_update(GTK_PROGRESS_BAR(Progress), per);
|
||||
while (gtk_events_pending())
|
||||
gtk_main_iteration();
|
||||
if (stop)
|
||||
break;
|
||||
}
|
||||
|
||||
Ttime = time(NULL) - Ttime;
|
||||
Tm = gmtime(&Ttime);
|
||||
printf("\nTotal Time used: %d:%d:%d\n", Tm->tm_hour, Tm->tm_min,
|
||||
Tm->tm_sec);
|
||||
|
||||
CDR_close();
|
||||
fclose(f);
|
||||
|
||||
gtk_widget_set_sensitive(BtnCompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreate, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, TRUE);
|
||||
|
||||
if (!stop)
|
||||
SysMessageLoc("Iso Image Created OK");
|
||||
}
|
||||
|
||||
void OnCreateZ(GtkButton *button, gpointer user_data)
|
||||
{
|
||||
FILE *f;
|
||||
FILE *t;
|
||||
struct stat buf;
|
||||
struct tm *Tm;
|
||||
time_t Ttime;
|
||||
unsigned long ftrack, ltrack;
|
||||
unsigned long p = 0, s, c = 0;
|
||||
unsigned char *buffer;
|
||||
unsigned char bufferz[2352];
|
||||
unsigned char start[4], end[4];
|
||||
char table[256];
|
||||
const char *tmp;
|
||||
int b, blocks;
|
||||
#ifdef VERBOSE
|
||||
unsigned long count = 0;
|
||||
int i = 0;
|
||||
#endif
|
||||
|
||||
memset(bufferz, 0, sizeof(bufferz));
|
||||
ftrack = 1;
|
||||
ltrack = CD_LEADOUT;
|
||||
|
||||
tmp = gtk_entry_get_text(GTK_ENTRY(Edit));
|
||||
strcpy(IsoFile, tmp);
|
||||
|
||||
UpdZmode();
|
||||
|
||||
if (Zmode == 1) {
|
||||
blocks = 1;
|
||||
if (strstr(IsoFile, ".Z") == NULL)
|
||||
strcat(IsoFile, ".Z");
|
||||
} else {
|
||||
blocks = 10;
|
||||
if (strstr(IsoFile, ".bz") == NULL)
|
||||
strcat(IsoFile, ".bz");
|
||||
}
|
||||
|
||||
if (stat(IsoFile, &buf) == 0) {
|
||||
printf("File %s Already exists\n", IsoFile);
|
||||
return;
|
||||
}
|
||||
|
||||
strcpy(table, IsoFile);
|
||||
if (Zmode == 1)
|
||||
strcat(table, ".table");
|
||||
else
|
||||
strcat(table, ".index");
|
||||
|
||||
t = fopen(table, "wb");
|
||||
|
||||
if (t == NULL)
|
||||
return;
|
||||
if (CDR_open() == -1) {
|
||||
fclose(t);
|
||||
return;
|
||||
}
|
||||
if (CDR_getTD(ftrack, start) == -1) {
|
||||
printf("Error getting TD\n");
|
||||
CDR_close();
|
||||
fclose(t);
|
||||
return;
|
||||
}
|
||||
|
||||
if (CDR_getTD(ltrack, end) == -1) {
|
||||
printf("Error getting TD\n");
|
||||
CDR_close();
|
||||
fclose(t);
|
||||
return;
|
||||
}
|
||||
|
||||
f = fopen(IsoFile, "wb");
|
||||
if (f == NULL) {
|
||||
CDR_close();
|
||||
fclose(t);
|
||||
printf("Error opening %s", IsoFile);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("Making Iso: from %2.2d:%2.2d:%2.2d to %2.2d:%2.2d:%2.2d\n",
|
||||
start[0], start[1], start[2], end[0], end[1], end[2]);
|
||||
|
||||
memcpy(param, start, 3);
|
||||
|
||||
time(&Ttime);
|
||||
|
||||
stop = false;
|
||||
s = MSF2SECT(end[0], end[1], end[2]) / blocks;
|
||||
gtk_widget_set_sensitive(BtnCompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreate, FALSE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, FALSE);
|
||||
|
||||
for (;;) /* loop until end */
|
||||
{
|
||||
unsigned long size;
|
||||
unsigned char Zbuf[CD_FRAMESIZE_RAW * 10 * 2];
|
||||
float per;
|
||||
|
||||
for (b = 0; b < blocks; b++) {
|
||||
if ((param[0] == end[0]) & (param[1] == end[1]) & (param[2] == end[2]))
|
||||
break;
|
||||
|
||||
buffer = CDR_readTrack(param);
|
||||
if (buffer == NULL) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
buffer = CDR_readTrack(param);
|
||||
if (buffer != NULL)
|
||||
break;
|
||||
}
|
||||
|
||||
if (buffer == NULL) {
|
||||
printf("Error Reading %2d:%2d:%2d\n", param[0], param[1], param[2]);
|
||||
buffer = bufferz;
|
||||
buffer[12] = param[0];
|
||||
buffer[13] = param[1];
|
||||
buffer[14] = param[2];
|
||||
buffer[15] = 0x2;
|
||||
}
|
||||
}
|
||||
memcpy(cdbuffer + b * CD_FRAMESIZE_RAW, buffer, CD_FRAMESIZE_RAW);
|
||||
|
||||
incSector();
|
||||
}
|
||||
if ((param[0] == end[0]) & (param[1] == end[1]) & (param[2] == end[2]))
|
||||
break;
|
||||
|
||||
size = CD_FRAMESIZE_RAW * blocks * 2;
|
||||
if (Zmode == 1)
|
||||
compress(Zbuf, &size, cdbuffer, CD_FRAMESIZE_RAW);
|
||||
else
|
||||
BZ2_bzBuffToBuffCompress((char *)Zbuf, (unsigned int *)&size, (char *)cdbuffer, CD_FRAMESIZE_RAW * 10, 1, 0, 30);
|
||||
|
||||
fwrite(&c, 1, 4, t);
|
||||
if (Zmode == 1)
|
||||
fwrite(&size, 1, 2, t);
|
||||
|
||||
fwrite(Zbuf, 1, size, f);
|
||||
|
||||
c += size;
|
||||
#ifdef VERBOSE
|
||||
count += CD_FRAMESIZE_RAW * blocks;
|
||||
|
||||
printf("reading %2d:%2d:%2d ", param[0], param[1], param[2]);
|
||||
if ((time(NULL) - Ttime) != 0) {
|
||||
i = (count / 1024) / (time(NULL) - Ttime);
|
||||
printf("( %5dKbytes/s, %dX)", i, i / 150);
|
||||
}
|
||||
putchar(13);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
|
||||
p++;
|
||||
per = ((float)p / s);
|
||||
|
||||
gtk_progress_bar_update(GTK_PROGRESS_BAR(Progress), per);
|
||||
while (gtk_events_pending())
|
||||
gtk_main_iteration();
|
||||
|
||||
if (stop)
|
||||
break;
|
||||
}
|
||||
if (Zmode == 2)
|
||||
fwrite(&c, 1, 4, f);
|
||||
|
||||
if (!stop)
|
||||
gtk_entry_set_text(GTK_ENTRY(Edit), IsoFile);
|
||||
|
||||
Ttime = time(NULL) - Ttime;
|
||||
Tm = gmtime(&Ttime);
|
||||
printf("\nTotal Time used: %d:%d:%d\n", Tm->tm_hour, Tm->tm_min,
|
||||
Tm->tm_sec);
|
||||
|
||||
CDR_close();
|
||||
fclose(f);
|
||||
fclose(t);
|
||||
|
||||
gtk_widget_set_sensitive(BtnCompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnDecompress, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreate, TRUE);
|
||||
gtk_widget_set_sensitive(BtnCreateZ, TRUE);
|
||||
|
||||
if (!stop)
|
||||
SysMessageLoc("Compressed Iso Image Created OK");
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
|
||||
CC = gcc
|
||||
|
||||
PLUGIN = libCDVDiso.so
|
||||
CFG = cfgCDVDiso
|
||||
MKISO = mkiso
|
||||
CFLAGS = -fPIC -Wall -g -I.. -I. -D_FILE_OFFSET_BITS=64 -Wextra
|
||||
OBJS = ../CDVDisop.o Config.o Linux.o ../libiso.o
|
||||
CFGOBJS = conf.o interface.o support.o ${OBJS}
|
||||
LIBS = -lz -lbz2 -lstdc++
|
||||
CFGLIBS = $(shell pkg-config --libs gtk+-2.0) ${LIBS}
|
||||
CFLAGS += $(shell pkg-config --cflags gtk+-2.0) -I../../../../common/include -I../../../../3rdparty
|
||||
DEPS:= $(OBJS:.o=.d) $(CFGOBJS:.o=.d)
|
||||
|
||||
all: plugin cfg
|
||||
install: all
|
||||
|
||||
plugin: ${OBJS}
|
||||
rm -f ${PLUGIN}
|
||||
${CC} -shared -Wl,-soname,${PLUGIN} ${CFLAGS} ${OBJS} -o ${PLUGIN} ${LIBS}
|
||||
|
||||
cfg: ${CFGOBJS}
|
||||
rm -f ${CFG}
|
||||
${CC} ${CFLAGS} ${CFGOBJS} -o ${CFG} ${CFGLIBS}
|
||||
strip ${CFG}
|
||||
|
||||
clean:
|
||||
rm -f ${OBJS} ${DEPS} ${PLUGIN} ${CFGOBJS} ${CFG}
|
||||
|
||||
%.o: %.c
|
||||
${CC} ${CFLAGS} -c -o $@ $< -MD -MF $(patsubst %.o,%.d,$@)
|
||||
|
||||
-include ${DEPS}
|
|
@ -1,74 +0,0 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "callbacks.h"
|
||||
#include "interface.h"
|
||||
#include "support.h"
|
||||
|
||||
|
||||
void
|
||||
OnFileSel (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnStop (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnCompress (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnDecompress (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnCreate (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnCreateZ (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnOk (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
OnCancel (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
#include <gtk/gtk.h>
|
||||
|
||||
|
||||
void OnFileSel(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnStop(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnCompress(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnDecompress(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnCreate(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnCreateZ(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnOk(GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void OnCancel(GtkButton *button,
|
||||
gpointer user_data);
|
|
@ -1,251 +0,0 @@
|
|||
/*
|
||||
* DO NOT EDIT THIS FILE - it is generated by Glade.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "callbacks.h"
|
||||
#include "interface.h"
|
||||
#include "support.h"
|
||||
|
||||
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
|
||||
g_object_set_data_full (G_OBJECT (component), name, \
|
||||
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
|
||||
|
||||
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
|
||||
g_object_set_data (G_OBJECT (component), name, widget)
|
||||
|
||||
GtkWidget*
|
||||
create_Config (void)
|
||||
{
|
||||
GtkWidget *Config;
|
||||
GtkWidget *vbox1;
|
||||
GtkWidget *hbox1;
|
||||
GtkWidget *GtkEntry_Iso;
|
||||
GtkWidget *button5;
|
||||
GtkWidget *hbox2;
|
||||
GtkWidget *GtkProgressBar_Progress;
|
||||
GtkWidget *button6;
|
||||
GtkWidget *hbox4;
|
||||
GtkWidget *label2;
|
||||
GtkWidget *GtkCombo_Method;
|
||||
GList *GtkCombo_Method_items = NULL;
|
||||
GtkWidget *combo_entry1;
|
||||
GtkWidget *hbuttonbox2;
|
||||
GtkWidget *GtkButton_Compress;
|
||||
GtkWidget *GtkButton_Decompress;
|
||||
GtkWidget *hbox3;
|
||||
GtkWidget *label1;
|
||||
GtkWidget *GtkEntry_CdDev;
|
||||
GtkWidget *hbuttonbox3;
|
||||
GtkWidget *GtkButton_Create;
|
||||
GtkWidget *GtkButton_CreateZ;
|
||||
GtkWidget *checkBlockDump;
|
||||
GtkWidget *hbuttonbox1;
|
||||
GtkWidget *button1;
|
||||
GtkWidget *button2;
|
||||
|
||||
Config = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_widget_set_name (Config, "Config");
|
||||
gtk_container_set_border_width (GTK_CONTAINER (Config), 5);
|
||||
gtk_window_set_title (GTK_WINDOW (Config), _("CDVD Config Dialog"));
|
||||
|
||||
vbox1 = gtk_vbox_new (FALSE, 5);
|
||||
gtk_widget_set_name (vbox1, "vbox1");
|
||||
gtk_widget_show (vbox1);
|
||||
gtk_container_add (GTK_CONTAINER (Config), vbox1);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox1), 5);
|
||||
|
||||
hbox1 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_widget_set_name (hbox1, "hbox1");
|
||||
gtk_widget_show (hbox1);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
|
||||
|
||||
GtkEntry_Iso = gtk_entry_new ();
|
||||
gtk_widget_set_name (GtkEntry_Iso, "GtkEntry_Iso");
|
||||
gtk_widget_show (GtkEntry_Iso);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), GtkEntry_Iso, TRUE, TRUE, 0);
|
||||
|
||||
button5 = gtk_button_new_with_mnemonic (_("Select Iso"));
|
||||
gtk_widget_set_name (button5, "button5");
|
||||
gtk_widget_show (button5);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), button5, FALSE, FALSE, 0);
|
||||
|
||||
hbox2 = gtk_hbox_new (FALSE, 10);
|
||||
gtk_widget_set_name (hbox2, "hbox2");
|
||||
gtk_widget_show (hbox2);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, 0);
|
||||
|
||||
GtkProgressBar_Progress = gtk_progress_bar_new ();
|
||||
gtk_widget_set_name (GtkProgressBar_Progress, "GtkProgressBar_Progress");
|
||||
gtk_widget_show (GtkProgressBar_Progress);
|
||||
gtk_box_pack_start (GTK_BOX (hbox2), GtkProgressBar_Progress, TRUE, FALSE, 0);
|
||||
|
||||
button6 = gtk_button_new_with_mnemonic (_("Stop"));
|
||||
gtk_widget_set_name (button6, "button6");
|
||||
gtk_widget_show (button6);
|
||||
gtk_box_pack_end (GTK_BOX (hbox2), button6, FALSE, FALSE, 0);
|
||||
|
||||
hbox4 = gtk_hbox_new (FALSE, 5);
|
||||
gtk_widget_set_name (hbox4, "hbox4");
|
||||
gtk_widget_show (hbox4);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbox4, TRUE, TRUE, 0);
|
||||
|
||||
label2 = gtk_label_new (_("Compression Method:"));
|
||||
gtk_widget_set_name (label2, "label2");
|
||||
gtk_widget_show (label2);
|
||||
gtk_box_pack_start (GTK_BOX (hbox4), label2, FALSE, FALSE, 0);
|
||||
gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_CENTER);
|
||||
|
||||
GtkCombo_Method = gtk_combo_new ();
|
||||
g_object_set_data (G_OBJECT (GTK_COMBO (GtkCombo_Method)->popwin),
|
||||
"GladeParentKey", GtkCombo_Method);
|
||||
gtk_widget_set_name (GtkCombo_Method, "GtkCombo_Method");
|
||||
gtk_widget_show (GtkCombo_Method);
|
||||
gtk_box_pack_start (GTK_BOX (hbox4), GtkCombo_Method, TRUE, FALSE, 0);
|
||||
GtkCombo_Method_items = g_list_append (GtkCombo_Method_items, (gpointer) "");
|
||||
gtk_combo_set_popdown_strings (GTK_COMBO (GtkCombo_Method), GtkCombo_Method_items);
|
||||
g_list_free (GtkCombo_Method_items);
|
||||
|
||||
combo_entry1 = GTK_COMBO (GtkCombo_Method)->entry;
|
||||
gtk_widget_set_name (combo_entry1, "combo_entry1");
|
||||
gtk_widget_show (combo_entry1);
|
||||
|
||||
hbuttonbox2 = gtk_hbutton_box_new ();
|
||||
gtk_widget_set_name (hbuttonbox2, "hbuttonbox2");
|
||||
gtk_widget_show (hbuttonbox2);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox2, TRUE, TRUE, 0);
|
||||
|
||||
GtkButton_Compress = gtk_button_new_with_mnemonic (_("Compress Iso"));
|
||||
gtk_widget_set_name (GtkButton_Compress, "GtkButton_Compress");
|
||||
gtk_widget_show (GtkButton_Compress);
|
||||
gtk_container_add (GTK_CONTAINER (hbuttonbox2), GtkButton_Compress);
|
||||
GTK_WIDGET_SET_FLAGS (GtkButton_Compress, GTK_CAN_DEFAULT);
|
||||
|
||||
GtkButton_Decompress = gtk_button_new_with_mnemonic (_("Decompress Iso"));
|
||||
gtk_widget_set_name (GtkButton_Decompress, "GtkButton_Decompress");
|
||||
gtk_widget_show (GtkButton_Decompress);
|
||||
gtk_container_add (GTK_CONTAINER (hbuttonbox2), GtkButton_Decompress);
|
||||
GTK_WIDGET_SET_FLAGS (GtkButton_Decompress, GTK_CAN_DEFAULT);
|
||||
|
||||
hbox3 = gtk_hbox_new (FALSE, 5);
|
||||
gtk_widget_set_name (hbox3, "hbox3");
|
||||
gtk_widget_show (hbox3);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbox3, FALSE, FALSE, 0);
|
||||
|
||||
label1 = gtk_label_new (_("Cdrom Device: "));
|
||||
gtk_widget_set_name (label1, "label1");
|
||||
gtk_widget_show (label1);
|
||||
gtk_box_pack_start (GTK_BOX (hbox3), label1, FALSE, FALSE, 0);
|
||||
gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_CENTER);
|
||||
|
||||
GtkEntry_CdDev = gtk_entry_new ();
|
||||
gtk_widget_set_name (GtkEntry_CdDev, "GtkEntry_CdDev");
|
||||
gtk_widget_show (GtkEntry_CdDev);
|
||||
gtk_box_pack_start (GTK_BOX (hbox3), GtkEntry_CdDev, TRUE, TRUE, 0);
|
||||
|
||||
hbuttonbox3 = gtk_hbutton_box_new ();
|
||||
gtk_widget_set_name (hbuttonbox3, "hbuttonbox3");
|
||||
gtk_widget_show (hbuttonbox3);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox3, TRUE, TRUE, 0);
|
||||
|
||||
GtkButton_Create = gtk_button_new_with_mnemonic (_("Create Iso"));
|
||||
gtk_widget_set_name (GtkButton_Create, "GtkButton_Create");
|
||||
gtk_widget_show (GtkButton_Create);
|
||||
gtk_container_add (GTK_CONTAINER (hbuttonbox3), GtkButton_Create);
|
||||
GTK_WIDGET_SET_FLAGS (GtkButton_Create, GTK_CAN_DEFAULT);
|
||||
|
||||
GtkButton_CreateZ = gtk_button_new_with_mnemonic (_("Create Compressed Iso"));
|
||||
gtk_widget_set_name (GtkButton_CreateZ, "GtkButton_CreateZ");
|
||||
gtk_widget_show (GtkButton_CreateZ);
|
||||
gtk_container_add (GTK_CONTAINER (hbuttonbox3), GtkButton_CreateZ);
|
||||
GTK_WIDGET_SET_FLAGS (GtkButton_CreateZ, GTK_CAN_DEFAULT);
|
||||
|
||||
checkBlockDump = gtk_check_button_new_with_mnemonic (_("Create a dump of the running iso"));
|
||||
gtk_widget_set_name (checkBlockDump, "checkBlockDump");
|
||||
gtk_widget_show (checkBlockDump);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), checkBlockDump, FALSE, FALSE, 0);
|
||||
|
||||
hbuttonbox1 = gtk_hbutton_box_new ();
|
||||
gtk_widget_set_name (hbuttonbox1, "hbuttonbox1");
|
||||
gtk_widget_show (hbuttonbox1);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox1, TRUE, TRUE, 0);
|
||||
|
||||
button1 = gtk_button_new_from_stock ("gtk-ok");
|
||||
gtk_widget_set_name (button1, "button1");
|
||||
gtk_widget_show (button1);
|
||||
gtk_container_add (GTK_CONTAINER (hbuttonbox1), button1);
|
||||
GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);
|
||||
|
||||
button2 = gtk_button_new_from_stock ("gtk-cancel");
|
||||
gtk_widget_set_name (button2, "button2");
|
||||
gtk_widget_show (button2);
|
||||
gtk_container_add (GTK_CONTAINER (hbuttonbox1), button2);
|
||||
GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);
|
||||
|
||||
g_signal_connect ((gpointer) button5, "clicked",
|
||||
G_CALLBACK (OnFileSel),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) button6, "clicked",
|
||||
G_CALLBACK (OnStop),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) GtkButton_Compress, "clicked",
|
||||
G_CALLBACK (OnCompress),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) GtkButton_Decompress, "clicked",
|
||||
G_CALLBACK (OnDecompress),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) GtkButton_Create, "clicked",
|
||||
G_CALLBACK (OnCreate),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) GtkButton_CreateZ, "clicked",
|
||||
G_CALLBACK (OnCreateZ),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) button1, "clicked",
|
||||
G_CALLBACK (OnOk),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) button2, "clicked",
|
||||
G_CALLBACK (OnCancel),
|
||||
NULL);
|
||||
|
||||
/* Store pointers to all widgets, for use by lookup_widget(). */
|
||||
GLADE_HOOKUP_OBJECT_NO_REF (Config, Config, "Config");
|
||||
GLADE_HOOKUP_OBJECT (Config, vbox1, "vbox1");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbox1, "hbox1");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkEntry_Iso, "GtkEntry_Iso");
|
||||
GLADE_HOOKUP_OBJECT (Config, button5, "button5");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbox2, "hbox2");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkProgressBar_Progress, "GtkProgressBar_Progress");
|
||||
GLADE_HOOKUP_OBJECT (Config, button6, "button6");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbox4, "hbox4");
|
||||
GLADE_HOOKUP_OBJECT (Config, label2, "label2");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkCombo_Method, "GtkCombo_Method");
|
||||
GLADE_HOOKUP_OBJECT (Config, combo_entry1, "combo_entry1");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbuttonbox2, "hbuttonbox2");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkButton_Compress, "GtkButton_Compress");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkButton_Decompress, "GtkButton_Decompress");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbox3, "hbox3");
|
||||
GLADE_HOOKUP_OBJECT (Config, label1, "label1");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkEntry_CdDev, "GtkEntry_CdDev");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbuttonbox3, "hbuttonbox3");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkButton_Create, "GtkButton_Create");
|
||||
GLADE_HOOKUP_OBJECT (Config, GtkButton_CreateZ, "GtkButton_CreateZ");
|
||||
GLADE_HOOKUP_OBJECT (Config, checkBlockDump, "checkBlockDump");
|
||||
GLADE_HOOKUP_OBJECT (Config, hbuttonbox1, "hbuttonbox1");
|
||||
GLADE_HOOKUP_OBJECT (Config, button1, "button1");
|
||||
GLADE_HOOKUP_OBJECT (Config, button2, "button2");
|
||||
|
||||
return Config;
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
/*
|
||||
* DO NOT EDIT THIS FILE - it is generated by Glade.
|
||||
*/
|
||||
|
||||
GtkWidget *create_Config(void);
|
|
@ -1,144 +0,0 @@
|
|||
/*
|
||||
* DO NOT EDIT THIS FILE - it is generated by Glade.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "support.h"
|
||||
|
||||
GtkWidget*
|
||||
lookup_widget (GtkWidget *widget,
|
||||
const gchar *widget_name)
|
||||
{
|
||||
GtkWidget *parent, *found_widget;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if (GTK_IS_MENU (widget))
|
||||
parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
|
||||
else
|
||||
parent = widget->parent;
|
||||
if (!parent)
|
||||
parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
|
||||
if (parent == NULL)
|
||||
break;
|
||||
widget = parent;
|
||||
}
|
||||
|
||||
found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
|
||||
widget_name);
|
||||
if (!found_widget)
|
||||
g_warning ("Widget not found: %s", widget_name);
|
||||
return found_widget;
|
||||
}
|
||||
|
||||
static GList *pixmaps_directories = NULL;
|
||||
|
||||
/* Use this function to set the directory containing installed pixmaps. */
|
||||
void
|
||||
add_pixmap_directory (const gchar *directory)
|
||||
{
|
||||
pixmaps_directories = g_list_prepend (pixmaps_directories,
|
||||
g_strdup (directory));
|
||||
}
|
||||
|
||||
/* This is an internally used function to find pixmap files. */
|
||||
static gchar*
|
||||
find_pixmap_file (const gchar *filename)
|
||||
{
|
||||
GList *elem;
|
||||
|
||||
/* We step through each of the pixmaps directory to find it. */
|
||||
elem = pixmaps_directories;
|
||||
while (elem)
|
||||
{
|
||||
gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data,
|
||||
G_DIR_SEPARATOR_S, filename);
|
||||
if (g_file_test (pathname, G_FILE_TEST_EXISTS))
|
||||
return pathname;
|
||||
g_free (pathname);
|
||||
elem = elem->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* This is an internally used function to create pixmaps. */
|
||||
GtkWidget*
|
||||
create_pixmap (GtkWidget *widget,
|
||||
const gchar *filename)
|
||||
{
|
||||
gchar *pathname = NULL;
|
||||
GtkWidget *pixmap;
|
||||
|
||||
if (!filename || !filename[0])
|
||||
return gtk_image_new ();
|
||||
|
||||
pathname = find_pixmap_file (filename);
|
||||
|
||||
if (!pathname)
|
||||
{
|
||||
g_warning (_("Couldn't find pixmap file: %s"), filename);
|
||||
return gtk_image_new ();
|
||||
}
|
||||
|
||||
pixmap = gtk_image_new_from_file (pathname);
|
||||
g_free (pathname);
|
||||
return pixmap;
|
||||
}
|
||||
|
||||
/* This is an internally used function to create pixmaps. */
|
||||
GdkPixbuf*
|
||||
create_pixbuf (const gchar *filename)
|
||||
{
|
||||
gchar *pathname = NULL;
|
||||
GdkPixbuf *pixbuf;
|
||||
GError *error = NULL;
|
||||
|
||||
if (!filename || !filename[0])
|
||||
return NULL;
|
||||
|
||||
pathname = find_pixmap_file (filename);
|
||||
|
||||
if (!pathname)
|
||||
{
|
||||
g_warning (_("Couldn't find pixmap file: %s"), filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
|
||||
if (!pixbuf)
|
||||
{
|
||||
fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
|
||||
pathname, error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
g_free (pathname);
|
||||
return pixbuf;
|
||||
}
|
||||
|
||||
/* This is used to set ATK action descriptions. */
|
||||
void
|
||||
glade_set_atk_action_description (AtkAction *action,
|
||||
const gchar *action_name,
|
||||
const gchar *description)
|
||||
{
|
||||
gint n_actions, i;
|
||||
|
||||
n_actions = atk_action_get_n_actions (action);
|
||||
for (i = 0; i < n_actions; i++)
|
||||
{
|
||||
if (!strcmp (atk_action_get_name (action, i), action_name))
|
||||
atk_action_set_description (action, i, description);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
/*
|
||||
* DO NOT EDIT THIS FILE - it is generated by Glade.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/*
|
||||
* Standard gettext macros.
|
||||
*/
|
||||
#ifdef ENABLE_NLS
|
||||
#include <libintl.h>
|
||||
#undef _
|
||||
#define _(String) dgettext(PACKAGE, String)
|
||||
#define Q_(String) g_strip_context((String), gettext(String))
|
||||
#ifdef gettext_noop
|
||||
#define N_(String) gettext_noop(String)
|
||||
#else
|
||||
#define N_(String) (String)
|
||||
#endif
|
||||
#else
|
||||
#define textdomain(String) (String)
|
||||
#define gettext(String) (String)
|
||||
#define dgettext(Domain, Message) (Message)
|
||||
#define dcgettext(Domain, Message, Type) (Message)
|
||||
#define bindtextdomain(Domain, Directory) (Domain)
|
||||
#define _(String) (String)
|
||||
#define Q_(String) g_strip_context((String), (String))
|
||||
#define N_(String) (String)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Public Functions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This function returns a widget in a component created by Glade.
|
||||
* Call it with the toplevel widget in the component (i.e. a window/dialog),
|
||||
* or alternatively any widget in the component, and the name of the widget
|
||||
* you want returned.
|
||||
*/
|
||||
GtkWidget *lookup_widget(GtkWidget *widget,
|
||||
const gchar *widget_name);
|
||||
|
||||
|
||||
/* Use this function to set the directory containing installed pixmaps. */
|
||||
void add_pixmap_directory(const gchar *directory);
|
||||
|
||||
|
||||
/*
|
||||
* Private Functions.
|
||||
*/
|
||||
|
||||
/* This is used to create the pixmaps used in the interface. */
|
||||
GtkWidget *create_pixmap(GtkWidget *widget,
|
||||
const gchar *filename);
|
||||
|
||||
/* This is used to create the pixbufs used in the interface. */
|
||||
GdkPixbuf *create_pixbuf(const gchar *filename);
|
||||
|
||||
/* This is used to set ATK action descriptions. */
|
||||
void glade_set_atk_action_description(AtkAction *action,
|
||||
const gchar *action_name,
|
||||
const gchar *description);
|
|
@ -1,26 +0,0 @@
|
|||
; CDVDiso.def : Declares the module parameters for the DLL.
|
||||
|
||||
EXPORTS
|
||||
; Explicit exports can go here
|
||||
PS2EgetLibType @2
|
||||
PS2EgetLibName @3
|
||||
PS2EgetLibVersion2 @4
|
||||
CDVDinit @5
|
||||
CDVDshutdown @6
|
||||
CDVDopen @7
|
||||
CDVDclose @8
|
||||
CDVDreadTrack @9
|
||||
CDVDgetBuffer @10
|
||||
CDVDreadSubQ @11
|
||||
CDVDgetTN @12
|
||||
CDVDgetTD @13
|
||||
CDVDgetTOC @14
|
||||
CDVDgetDiskType @15
|
||||
CDVDgetTrayStatus @16
|
||||
CDVDctrlTrayOpen @17
|
||||
CDVDctrlTrayClose @18
|
||||
|
||||
CDVDconfigure @19
|
||||
CDVDtest @20
|
||||
CDVDabout @21
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxresmw.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Spanish (Argentina) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESS)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_ARGENTINA
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxresmw.h""\r\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_CONFIG DIALOGEX 0, 0, 212, 161
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "CDVDconfigure"
|
||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,105,140,50,14
|
||||
EDITTEXT IDC_ISOFILE,10,10,145,14,ES_AUTOHSCROLL
|
||||
PUSHBUTTON "Cancel",IDCANCEL,160,140,50,14
|
||||
PUSHBUTTON "Select Iso",IDC_SELECTISO,160,10,45,14
|
||||
PUSHBUTTON "Compress Iso",IDC_COMPRESSISO,33,75,65,14
|
||||
PUSHBUTTON "Decompress Iso",IDC_DECOMPRESSISO,113,75,65,14
|
||||
COMBOBOX IDC_METHOD,120,55,85,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,10,35,145,14
|
||||
LTEXT "Compression Method:",IDC_STATIC,29,57,69,8
|
||||
PUSHBUTTON "Stop",IDC_STOP,160,35,45,14
|
||||
GROUPBOX "",IDC_STATIC,5,0,205,95
|
||||
GROUPBOX "Options",IDC_STATIC,5,100,205,30
|
||||
CONTROL "Enable Block Dump => ""ISO name.dump""",IDC_BLOCKDUMP,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,115,148,10
|
||||
END
|
||||
|
||||
IDD_ABOUT DIALOG 0, 0, 177, 106
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "CDVDabout"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,65,85,50,14
|
||||
LTEXT "CDVDiso Driver",IDC_NAME,70,10,50,8
|
||||
GROUPBOX "",IDC_STATIC,5,35,170,40
|
||||
LTEXT "Thanks to:\n mooby - coding hints and .bz support\n Brenden Conte - linux conf bugfix",IDC_STATIC,10,45,160,25
|
||||
LTEXT "Author: linuzappz <linuzappz@hotmail.com>",IDC_STATIC,20,20,141,10
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_CONFIG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 205
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 154
|
||||
END
|
||||
|
||||
IDD_ABOUT, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 170
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 99
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // Spanish (Argentina) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
|
@ -1,163 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Devel|Win32">
|
||||
<Configuration>Devel</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>CDVDiso</ProjectName>
|
||||
<ProjectGuid>{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}</ProjectGuid>
|
||||
<RootNamespace>CDVDiso</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\..\common\vsprops\plugin_svnroot.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\BaseProperties.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\3rdpartyDeps.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\CodeGen_Devel.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\..\common\vsprops\plugin_svnroot.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\BaseProperties.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\3rdpartyDeps.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\CodeGen_Release.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="..\..\..\..\common\vsprops\plugin_svnroot.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\BaseProperties.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\3rdpartyDeps.props" />
|
||||
<Import Project="..\..\..\..\common\vsprops\CodeGen_Debug.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">true</LinkIncremental>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">$(ProjectName)-dev</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<AdditionalIncludeDirectories>$(SvnRootDir)\3rdparty\bzip2;$(SvnRootDir)\3rdparty\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<ModuleDefinitionFile>.\CDVDiso.def</ModuleDefinitionFile>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<AdditionalIncludeDirectories>$(SvnRootDir)\3rdparty\bzip2;$(SvnRootDir)\3rdparty\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<ModuleDefinitionFile>.\CDVDiso.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<AdditionalIncludeDirectories>$(SvnRootDir)\3rdparty\bzip2;$(SvnRootDir)\3rdparty\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<ModuleDefinitionFile>.\CDVDiso.def</ModuleDefinitionFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\CDVDisop.cpp">
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">CompileAsCpp</CompileAs>
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Config.cpp">
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">CompileAsCpp</CompileAs>
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libiso.cpp">
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">CompileAsCpp</CompileAs>
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Win32.cpp">
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Devel|Win32'">CompileAsCpp</CompileAs>
|
||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\CDVDiso.h" />
|
||||
<ClInclude Include="Config.h" />
|
||||
<ClInclude Include="..\libiso.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="CDVDiso.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\..\3rdparty\bzip2\bzip2.vcxproj">
|
||||
<Project>{f4eb4ab2-c595-4b05-8bc0-059024bc796c}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\3rdparty\zlib\zlib.vcxproj">
|
||||
<Project>{2f6c0388-20cb-4242-9f6c-a6ebb6a83f47}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\CDVDisop.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Config.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\libiso.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Win32.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\CDVDiso.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Config.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\libiso.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="resource.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="CDVDiso.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,51 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "../CDVDiso.h"
|
||||
|
||||
#define GetKeyV(name, var, s, t) \
|
||||
size = s; \
|
||||
type = t; \
|
||||
RegQueryValueEx(myKey, name, 0, &type, (LPBYTE)var, &size);
|
||||
|
||||
#define GetKeyVdw(name, var) \
|
||||
GetKeyV(name, var, 4, REG_DWORD);
|
||||
|
||||
#define SetKeyV(name, var, s, t) \
|
||||
RegSetValueEx(myKey, name, 0, t, (LPBYTE)var, s);
|
||||
|
||||
#define SetKeyVdw(name, var) \
|
||||
SetKeyV(name, var, 4, REG_DWORD);
|
||||
|
||||
void SaveConf()
|
||||
{
|
||||
HKEY myKey;
|
||||
DWORD myDisp;
|
||||
|
||||
RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\PS2Eplugin\\CDVD\\CDVDiso", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &myKey, &myDisp);
|
||||
|
||||
SetKeyV("IsoFile", IsoFile, sizeof(IsoFile), REG_BINARY);
|
||||
SetKeyV("CurrentWorkingFolder", IsoCWD, sizeof(IsoCWD), REG_BINARY);
|
||||
SetKeyVdw("BlockDump", &BlockDump);
|
||||
|
||||
RegCloseKey(myKey);
|
||||
}
|
||||
|
||||
void LoadConf()
|
||||
{
|
||||
HKEY myKey;
|
||||
DWORD type, size;
|
||||
|
||||
memset(IsoFile, 0, sizeof(IsoFile));
|
||||
|
||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\PS2Eplugin\\CDVD\\CDVDiso", 0, KEY_ALL_ACCESS, &myKey) != ERROR_SUCCESS) {
|
||||
SaveConf();
|
||||
return;
|
||||
}
|
||||
|
||||
GetKeyV("IsoFile", IsoFile, sizeof(IsoFile), REG_BINARY);
|
||||
GetKeyV("CurrentWorkingFolder", IsoCWD, sizeof(IsoCWD), REG_BINARY);
|
||||
GetKeyVdw("BlockDump", &BlockDump);
|
||||
|
||||
RegCloseKey(myKey);
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
void SaveConf();
|
||||
void LoadConf();
|
|
@ -1,57 +0,0 @@
|
|||
#
|
||||
# Makefile for MINGW32
|
||||
#
|
||||
|
||||
|
||||
all: cdvdiso
|
||||
|
||||
PLUGIN = CDVDiso.dll
|
||||
|
||||
CC = gcc
|
||||
NASM = nasmw
|
||||
RM = rm -f
|
||||
AR = ar
|
||||
STRIP = strip
|
||||
RC = windres
|
||||
|
||||
OPTIMIZE = -O2 -fomit-frame-pointer -finline-functions -ffast-math -fno-strict-aliasing
|
||||
FLAGS = -D__WIN32__ -D__MINGW32__ # -DENABLE_NLS -DPACKAGE=\"pcsx2\"
|
||||
RC1FLAGS = -d__MINGW32__
|
||||
LIBS = -L./ -lcomctl32 -lwsock32 -lwinmm -lgdi32 -lcomdlg32 #-lintl
|
||||
RESOBJ = cdvdiso.o
|
||||
|
||||
OBJS = ../CDVDiso.o ../libiso.o
|
||||
OBJS+= Config.o Win32.o ${RESOBJ}
|
||||
OBJS+= ../zlib/adler32.o ../zlib/compress.o ../zlib/crc32.o ../zlib/gzio.o ../zlib/uncompr.o ../zlib/deflate.o ../zlib/trees.o \
|
||||
../zlib/zutil.o ../zlib/inflate.o ../zlib/infback.o ../zlib/inftrees.o ../zlib/inffast.o
|
||||
OBJS+= ../bzip2/blocksort.o ../bzip2/bzlib.o \
|
||||
../bzip2/compress.o ../bzip2/crctable.o \
|
||||
../bzip2/decompress.o ../bzip2/huffman.o \
|
||||
../bzip2/randtable.o
|
||||
|
||||
DEPS:= $(OBJS:.o=.d)
|
||||
|
||||
CFLAGS = -Wall ${OPTIMIZE} -I. -I.. -I/usr/local/include -I../zlib -I../bzip2 ${FLAGS}
|
||||
|
||||
cdvdiso: ${OBJS}
|
||||
dllwrap --def plugin.def -o ${PLUGIN} ${OBJS} ${LIBS}
|
||||
# ${CC} -shared -Wl,--kill-at,--output-def,plugin.def ${CFLAGS} ${OBJS} -o ${PLUGIN} ${LIBS}
|
||||
${STRIP} ${PLUGIN}
|
||||
|
||||
.PHONY: clean cdvdiso
|
||||
|
||||
clean:
|
||||
${RM} ${OBJS} ${DEPS} ${PCSX2}
|
||||
|
||||
%.o: %.asm
|
||||
${NASM} ${ASMFLAGS} -o $@ $<
|
||||
|
||||
%.o: %.c
|
||||
${CC} ${CFLAGS} -c -o $@ $< -MD -MF $(patsubst %.o,%.d,$@)
|
||||
|
||||
${RESOBJ}: CDVDiso.rc
|
||||
${RC} -D__MINGW32__ -I rc -O coff -o $@ -i $<
|
||||
|
||||
-include ${DEPS}
|
||||
|
||||
|
|
@ -1,374 +0,0 @@
|
|||
#include <windows.h>
|
||||
#include <windowsx.h>
|
||||
#include <commctrl.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <direct.h>
|
||||
#include <sys/stat.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <zlib/zlib.h>
|
||||
|
||||
|
||||
#include "Config.h"
|
||||
#include "../CDVDiso.h"
|
||||
#include "resource.h"
|
||||
|
||||
HINSTANCE hInst;
|
||||
#define MAXFILENAME 256
|
||||
|
||||
u8 Zbuf[2352 * 10 * 2];
|
||||
HWND hDlg;
|
||||
HWND hProgress;
|
||||
HWND hIsoFile;
|
||||
HWND hMethod;
|
||||
HWND hBlockDump;
|
||||
int stop;
|
||||
|
||||
void SysMessage(char *fmt, ...)
|
||||
{
|
||||
va_list list;
|
||||
char tmp[512];
|
||||
|
||||
va_start(list, fmt);
|
||||
vsprintf(tmp, fmt, list);
|
||||
va_end(list);
|
||||
MessageBox(GetActiveWindow(), tmp, "CDVDiso Msg", 0);
|
||||
}
|
||||
|
||||
int _GetFile(char *out)
|
||||
{
|
||||
OPENFILENAME ofn;
|
||||
char szFileName[MAXFILENAME];
|
||||
char szFileTitle[MAXFILENAME];
|
||||
|
||||
memset(&szFileName, 0, sizeof(szFileName));
|
||||
memset(&szFileTitle, 0, sizeof(szFileTitle));
|
||||
|
||||
ofn.lStructSize = sizeof(OPENFILENAME);
|
||||
ofn.hwndOwner = GetActiveWindow();
|
||||
ofn.lpstrFilter =
|
||||
"Supported Formats\0*.bin;*.iso;*.img;*.nrg;*.mdf;*.Z;*.Z2;*.BZ2;*.dump\0"
|
||||
"Cd Iso Format (*.bin;*.iso;*.img;*.nrg;*.mdf)\0"
|
||||
"*.bin;*.iso;*.img;*.nrg;*.mdf\0"
|
||||
"Compressed Z Iso Format (*.Z;*.Z2)\0"
|
||||
"*.Z;*.Z2\0Compressed BZ Iso Format (*.BZ2)\0"
|
||||
"*.BZ2\0Block Dumps (*.dump)\0*.dump\0All Files\0*.*\0";
|
||||
|
||||
ofn.lpstrCustomFilter = NULL;
|
||||
ofn.nMaxCustFilter = 0;
|
||||
ofn.nFilterIndex = 1;
|
||||
ofn.lpstrFile = szFileName;
|
||||
ofn.nMaxFile = MAXFILENAME;
|
||||
ofn.lpstrInitialDir = (IsoCWD[0] == 0) ? NULL : IsoCWD;
|
||||
ofn.lpstrFileTitle = szFileTitle;
|
||||
ofn.nMaxFileTitle = MAXFILENAME;
|
||||
ofn.lpstrTitle = NULL;
|
||||
ofn.lpstrDefExt = NULL;
|
||||
ofn.Flags = OFN_HIDEREADONLY;
|
||||
|
||||
if (GetOpenFileName((LPOPENFILENAME)&ofn)) {
|
||||
strcpy(out, szFileName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _OpenFile(int saveConf)
|
||||
{
|
||||
|
||||
int retval = 0;
|
||||
|
||||
// for saving the pcsx2 current working directory;
|
||||
char *cwd_pcsx2 = _getcwd(NULL, MAXFILENAME);
|
||||
|
||||
if (IsoCWD[0] != 0)
|
||||
_chdir(IsoCWD);
|
||||
|
||||
if (_GetFile(IsoFile) == 1) {
|
||||
// Save the user's new cwd:
|
||||
if (_getcwd(IsoCWD, MAXFILENAME) == NULL)
|
||||
IsoCWD[0] = 0;
|
||||
|
||||
if (saveConf)
|
||||
SaveConf();
|
||||
|
||||
retval = 1;
|
||||
}
|
||||
|
||||
// Restore Pcsx2's path.
|
||||
if (cwd_pcsx2 != NULL) {
|
||||
_chdir(cwd_pcsx2);
|
||||
free(cwd_pcsx2);
|
||||
cwd_pcsx2 = NULL;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
void CfgOpenFile()
|
||||
{
|
||||
_OpenFile(TRUE);
|
||||
}
|
||||
|
||||
void UpdZmode()
|
||||
{
|
||||
if (ComboBox_GetCurSel(hMethod) == 0) {
|
||||
Zmode = 1;
|
||||
} else {
|
||||
Zmode = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SysUpdate()
|
||||
{
|
||||
MSG msg;
|
||||
|
||||
while (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) {
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
void OnCompress()
|
||||
{
|
||||
u32 lsn;
|
||||
u8 cdbuff[10 * 2352];
|
||||
char Zfile[256];
|
||||
int ret;
|
||||
isoFile *src;
|
||||
isoFile *dst;
|
||||
|
||||
Edit_GetText(hIsoFile, IsoFile, 256);
|
||||
UpdZmode();
|
||||
|
||||
if (Zmode == 1) {
|
||||
sprintf(Zfile, "%s.Z2", IsoFile);
|
||||
} else {
|
||||
sprintf(Zfile, "%s.BZ2", IsoFile);
|
||||
}
|
||||
|
||||
src = isoOpen(IsoFile);
|
||||
if (src == NULL)
|
||||
return;
|
||||
if (Zmode == 1) {
|
||||
dst = isoCreate(Zfile, ISOFLAGS_Z2);
|
||||
} else {
|
||||
dst = isoCreate(Zfile, ISOFLAGS_BZ2);
|
||||
}
|
||||
if (dst == NULL)
|
||||
return;
|
||||
|
||||
isoSetFormat(dst, src->blockofs, src->blocksize, src->blocks);
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_COMPRESSISO), FALSE);
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_DECOMPRESSISO), FALSE);
|
||||
stop = 0;
|
||||
|
||||
for (lsn = 0; lsn < src->blocks; lsn++) {
|
||||
//printf("block %d ", lsn);
|
||||
//putchar(13);
|
||||
//fflush(stdout);
|
||||
ret = isoReadBlock(src, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
ret = isoWriteBlock(dst, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
|
||||
SendMessage(hProgress, PBM_SETPOS, (lsn * 100) / src->blocks, 0);
|
||||
SysUpdate();
|
||||
if (stop)
|
||||
break;
|
||||
}
|
||||
isoClose(src);
|
||||
isoClose(dst);
|
||||
|
||||
if (!stop)
|
||||
Edit_SetText(hIsoFile, Zfile);
|
||||
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_COMPRESSISO), TRUE);
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_DECOMPRESSISO), TRUE);
|
||||
|
||||
if (!stop) {
|
||||
if (ret == -1) {
|
||||
SysMessage("Error compressing iso image");
|
||||
} else {
|
||||
SysMessage("Iso image compressed OK");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnDecompress()
|
||||
{
|
||||
char file[256];
|
||||
u8 cdbuff[10 * 2352];
|
||||
u32 lsn;
|
||||
isoFile *src;
|
||||
isoFile *dst;
|
||||
int ret;
|
||||
|
||||
Edit_GetText(hIsoFile, IsoFile, 256);
|
||||
|
||||
src = isoOpen(IsoFile);
|
||||
if (src == NULL)
|
||||
return;
|
||||
|
||||
strcpy(file, IsoFile);
|
||||
if (src->flags & ISOFLAGS_Z) {
|
||||
file[strlen(file) - 2] = 0;
|
||||
} else if (src->flags & ISOFLAGS_Z2) {
|
||||
file[strlen(file) - 3] = 0;
|
||||
} else if (src->flags & ISOFLAGS_BZ2) {
|
||||
file[strlen(file) - 3] = 0;
|
||||
} else {
|
||||
SysMessage("%s is not a compressed image", IsoFile);
|
||||
return;
|
||||
}
|
||||
|
||||
dst = isoCreate(file, 0);
|
||||
if (dst == NULL)
|
||||
return;
|
||||
|
||||
isoSetFormat(dst, src->blockofs, src->blocksize, src->blocks);
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_COMPRESSISO), FALSE);
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_DECOMPRESSISO), FALSE);
|
||||
stop = 0;
|
||||
|
||||
for (lsn = 0; lsn < src->blocks; lsn++) {
|
||||
printf("block %d ", lsn);
|
||||
putchar(13);
|
||||
fflush(stdout);
|
||||
ret = isoReadBlock(src, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
ret = isoWriteBlock(dst, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
|
||||
SendMessage(hProgress, PBM_SETPOS, (lsn * 100) / src->blocks, 0);
|
||||
SysUpdate();
|
||||
if (stop)
|
||||
break;
|
||||
}
|
||||
if (!stop)
|
||||
Edit_SetText(hIsoFile, file);
|
||||
|
||||
isoClose(src);
|
||||
isoClose(dst);
|
||||
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_COMPRESSISO), TRUE);
|
||||
Button_Enable(GetDlgItem(hDlg, IDC_DECOMPRESSISO), TRUE);
|
||||
|
||||
if (!stop) {
|
||||
if (ret == -1) {
|
||||
SysMessage("Error decompressing iso image");
|
||||
} else {
|
||||
SysMessage("Iso image decompressed OK");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CALLBACK ConfigureDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int i;
|
||||
|
||||
switch (uMsg) {
|
||||
case WM_INITDIALOG:
|
||||
hDlg = hW;
|
||||
LoadConf();
|
||||
|
||||
hProgress = GetDlgItem(hW, IDC_PROGRESS);
|
||||
hIsoFile = GetDlgItem(hW, IDC_ISOFILE);
|
||||
hMethod = GetDlgItem(hW, IDC_METHOD);
|
||||
hBlockDump = GetDlgItem(hW, IDC_BLOCKDUMP);
|
||||
|
||||
for (i = 0; methods[i] != NULL; i++) {
|
||||
ComboBox_AddString(hMethod, methods[i]);
|
||||
}
|
||||
|
||||
Edit_SetText(hIsoFile, IsoFile);
|
||||
ComboBox_SetCurSel(hMethod, 0);
|
||||
/* if (strstr(IsoFile, ".Z") != NULL)
|
||||
ComboBox_SetCurSel(hMethod, 1);
|
||||
else ComboBox_SetCurSel(hMethod, 0);*/
|
||||
Button_SetCheck(hBlockDump, BlockDump);
|
||||
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDC_SELECTISO:
|
||||
if (_OpenFile(FALSE) == 1)
|
||||
Edit_SetText(hIsoFile, IsoFile);
|
||||
return TRUE;
|
||||
|
||||
case IDC_COMPRESSISO:
|
||||
OnCompress();
|
||||
return TRUE;
|
||||
|
||||
case IDC_DECOMPRESSISO:
|
||||
OnDecompress();
|
||||
return TRUE;
|
||||
|
||||
case IDC_STOP:
|
||||
stop = 1;
|
||||
return TRUE;
|
||||
|
||||
case IDCANCEL:
|
||||
EndDialog(hW, TRUE);
|
||||
return TRUE;
|
||||
|
||||
case IDOK:
|
||||
Edit_GetText(hIsoFile, IsoFile, 256);
|
||||
BlockDump = Button_GetCheck(hBlockDump);
|
||||
|
||||
SaveConf();
|
||||
EndDialog(hW, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDconfigure()
|
||||
{
|
||||
DialogBox(hInst,
|
||||
MAKEINTRESOURCE(IDD_CONFIG),
|
||||
GetActiveWindow(),
|
||||
(DLGPROC)ConfigureDlgProc);
|
||||
}
|
||||
|
||||
BOOL CALLBACK AboutDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (uMsg) {
|
||||
case WM_INITDIALOG:
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam)) {
|
||||
case IDOK:
|
||||
EndDialog(hW, TRUE);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
EXPORT_C_(void)
|
||||
CDVDabout()
|
||||
{
|
||||
DialogBox(hInst,
|
||||
MAKEINTRESOURCE(IDD_ABOUT),
|
||||
GetActiveWindow(),
|
||||
(DLGPROC)AboutDlgProc);
|
||||
}
|
||||
|
||||
BOOL APIENTRY DllMain(HANDLE hModule, // DLL INIT
|
||||
DWORD dwReason,
|
||||
LPVOID lpReserved)
|
||||
{
|
||||
hInst = (HINSTANCE)hModule;
|
||||
return TRUE; // very quick :)
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by CDVDiso.rc
|
||||
//
|
||||
#define IDD_CONFDLG 101
|
||||
#define IDD_CONFIG 101
|
||||
#define IDD_ABOUT 103
|
||||
#define IDC_NAME 1000
|
||||
#define IDC_ISOFILE 1000
|
||||
#define IDC_SELECTISO 1001
|
||||
#define IDC_COMPRESSISO 1002
|
||||
#define IDC_DECOMPRESSISO 1003
|
||||
#define IDC_METHOD 1004
|
||||
#define IDC_PROGRESS 1005
|
||||
#define IDC_STOP 1006
|
||||
#define IDC_BLOCKDUMP 1007
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1008
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,67 +0,0 @@
|
|||
#ifndef __LIBISO_H__
|
||||
#define __LIBISO_H__
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable : 4018)
|
||||
#endif
|
||||
|
||||
#define ISOTYPE_ILLEGAL 0
|
||||
#define ISOTYPE_CD 1
|
||||
#define ISOTYPE_DVD 2
|
||||
#define ISOTYPE_AUDIO 3
|
||||
|
||||
#define ISOFLAGS_Z 0x0001
|
||||
#define ISOFLAGS_Z2 0x0002
|
||||
#define ISOFLAGS_BLOCKDUMP 0x0004
|
||||
#define ISOFLAGS_MULTI 0x0008
|
||||
#define ISOFLAGS_BZ2 0x0010
|
||||
|
||||
#define CD_FRAMESIZE_RAW 2352
|
||||
#define DATA_SIZE (CD_FRAMESIZE_RAW - 12)
|
||||
|
||||
#define itob(i) ((i) / 10 * 16 + (i) % 10) /* u_char to BCD */
|
||||
#define btoi(b) ((b) / 16 * 10 + (b) % 16) /* BCD to u_char */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u32 slsn;
|
||||
u32 elsn;
|
||||
void *handle;
|
||||
} _multih;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char filename[256];
|
||||
u32 type;
|
||||
u32 flags;
|
||||
u32 offset;
|
||||
u32 blockofs;
|
||||
u32 blocksize;
|
||||
u32 blocks;
|
||||
void *handle;
|
||||
void *htable;
|
||||
char *Ztable;
|
||||
u32 *dtable;
|
||||
int dtablesize;
|
||||
_multih multih[8];
|
||||
int buflsn;
|
||||
u8 *buffer;
|
||||
} isoFile;
|
||||
|
||||
|
||||
isoFile *isoOpen(const char *filename);
|
||||
isoFile *isoCreate(const char *filename, int mode);
|
||||
int isoSetFormat(isoFile *iso, int blockofs, int blocksize, int blocks);
|
||||
int isoDetect(isoFile *iso);
|
||||
int isoReadBlock(isoFile *iso, u8 *dst, int lsn);
|
||||
int isoWriteBlock(isoFile *iso, u8 *src, int lsn);
|
||||
void isoClose(isoFile *iso);
|
||||
|
||||
void *_openfile(const char *filename, int flags);
|
||||
u64 _tellfile(void *handle);
|
||||
int _seekfile(void *handle, u64 offset, int whence);
|
||||
int _readfile(void *handle, void *dst, int size);
|
||||
int _writefile(void *handle, const void *src, int size);
|
||||
void _closefile(void *handle);
|
||||
|
||||
#endif /* __LIBISO_H__ */
|
|
@ -1,167 +0,0 @@
|
|||
/* CDVDiso
|
||||
* Copyright (C) 2002-2004 CDVDiso Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "string.h"
|
||||
|
||||
#include "CDVDiso.h"
|
||||
|
||||
|
||||
void Compress(char *filename, int mode)
|
||||
{
|
||||
struct stat buf;
|
||||
u32 lsn;
|
||||
u8 cdbuff[1024 * 16];
|
||||
char Zfile[256];
|
||||
int ret = 0;
|
||||
isoFile *src;
|
||||
isoFile *dst;
|
||||
|
||||
if (mode == 1) {
|
||||
sprintf(Zfile, "%s.Z2", filename);
|
||||
} else {
|
||||
sprintf(Zfile, "%s.BZ2", filename);
|
||||
}
|
||||
|
||||
if (stat(Zfile, &buf) != -1) {
|
||||
printf("'%s' already exists\n", Zfile);
|
||||
return;
|
||||
/* sprintf(str, "'%s' already exists, overwrite?", Zfile);
|
||||
if (MessageBox(hDlg, str, "Question", MB_YESNO) != IDYES) {
|
||||
return;
|
||||
}*/
|
||||
}
|
||||
|
||||
printf("src %s; dst %s\n", filename, Zfile);
|
||||
src = isoOpen(filename);
|
||||
if (src == NULL)
|
||||
return;
|
||||
|
||||
if (mode == 1) {
|
||||
dst = isoCreate(Zfile, ISOFLAGS_Z2);
|
||||
} else {
|
||||
dst = isoCreate(Zfile, ISOFLAGS_BZ2);
|
||||
}
|
||||
isoSetFormat(dst, src->blockofs, src->blocksize, src->blocks);
|
||||
if (dst == NULL)
|
||||
return;
|
||||
|
||||
for (lsn = 0; lsn < src->blocks; lsn++) {
|
||||
printf("block %d ", lsn);
|
||||
putchar(13);
|
||||
fflush(stdout);
|
||||
ret = isoReadBlock(src, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
ret = isoWriteBlock(dst, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
}
|
||||
isoClose(src);
|
||||
isoClose(dst);
|
||||
|
||||
if (ret == -1) {
|
||||
printf("Error compressing iso image\n");
|
||||
} else {
|
||||
printf("Iso image compressed OK\n");
|
||||
}
|
||||
}
|
||||
|
||||
void Decompress(char *filename)
|
||||
{
|
||||
struct stat buf;
|
||||
char file[256];
|
||||
u8 cdbuff[10 * 2352];
|
||||
u32 lsn;
|
||||
isoFile *src;
|
||||
isoFile *dst;
|
||||
int ret = 0;
|
||||
|
||||
src = isoOpen(filename);
|
||||
if (src == NULL)
|
||||
return;
|
||||
|
||||
strcpy(file, filename);
|
||||
if (src->flags & ISOFLAGS_Z)
|
||||
file[strlen(file) - 2] = 0;
|
||||
else if (src->flags & ISOFLAGS_Z2)
|
||||
file[strlen(file) - 3] = 0;
|
||||
else if (src->flags & ISOFLAGS_BZ2)
|
||||
file[strlen(file) - 3] = 0;
|
||||
else {
|
||||
printf("%s is not a compressed image\n", filename);
|
||||
return;
|
||||
}
|
||||
|
||||
if (stat(file, &buf) != -1) {
|
||||
char str[256];
|
||||
sprintf(str, "'%s' already exists", file);
|
||||
isoClose(src);
|
||||
return;
|
||||
}
|
||||
|
||||
dst = isoCreate(file, 0);
|
||||
if (dst == NULL)
|
||||
return;
|
||||
isoSetFormat(dst, src->blockofs, src->blocksize, src->blocks);
|
||||
|
||||
for (lsn = 0; lsn < src->blocks; lsn++) {
|
||||
printf("block %d ", lsn);
|
||||
putchar(13);
|
||||
fflush(stdout);
|
||||
ret = isoReadBlock(src, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
ret = isoWriteBlock(dst, cdbuff, lsn);
|
||||
if (ret == -1)
|
||||
break;
|
||||
}
|
||||
|
||||
isoClose(src);
|
||||
isoClose(dst);
|
||||
|
||||
if (ret == -1)
|
||||
printf("Error decompressing iso image\n");
|
||||
else
|
||||
printf("Iso image decompressed OK\n");
|
||||
}
|
||||
|
||||
|
||||
/*int main(int argc, char *argv[])
|
||||
{
|
||||
if (argc < 3) return 0;
|
||||
|
||||
switch (argv[1][0])
|
||||
{
|
||||
case 'c':
|
||||
Compress(argv[2], 1);
|
||||
break;
|
||||
case 'C':
|
||||
Compress(argv[2], 2);
|
||||
break;
|
||||
case 'd':
|
||||
Decompress(argv[2]);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}*/
|
|
@ -1,206 +0,0 @@
|
|||
# Microsoft Developer Studio Project File - Name="mkiso" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=mkiso - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mkiso.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mkiso.mak" CFG="mkiso - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mkiso - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "mkiso - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mkiso - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "../" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "__WIN32__" /D "__MSCW32__" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x2c0a /d "NDEBUG"
|
||||
# ADD RSC /l 0x2c0a /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
|
||||
!ELSEIF "$(CFG)" == "mkiso - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "./" /I "../" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "__WIN32__" /FD /GZ /c
|
||||
# SUBTRACT CPP /YX
|
||||
# ADD BASE RSC /l 0x2c0a /d "_DEBUG"
|
||||
# ADD RSC /l 0x2c0a /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib libbz2.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "mkiso - Win32 Release"
|
||||
# Name "mkiso - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\libiso.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mkiso.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# Begin Group "zlib"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\adler32.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\compress.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\crc32.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\crc32.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\deflate.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\deflate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\gvmat32c.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\gzio.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\infback.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inffas8664.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inffast.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inffast.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inffixed.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inflate.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inflate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inftrees.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\inftrees.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\trees.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\trees.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\uncompr.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\zconf.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\zlib.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\zutil.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\zlib\zutil.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
|
@ -1,29 +0,0 @@
|
|||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "mkiso"=.\mkiso.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
|
@ -10,10 +10,6 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/cdvdGigaherz" AND cdvdGigaherz)
|
|||
add_subdirectory(cdvdGigaherz/src)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/CDVDiso" AND CDVDiso)
|
||||
add_subdirectory(CDVDiso/src)
|
||||
endif()
|
||||
|
||||
# if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/CDVDisoEFP" AND CDVDisoEFP)
|
||||
# add_subdirectory(CDVDisoEFP)
|
||||
# endif()
|
||||
|
|
Loading…
Reference in New Issue