diff options
| author | Pixel <Pixel> | 2002-05-04 17:53:08 +0000 | 
|---|---|---|
| committer | Pixel <Pixel> | 2002-05-04 17:53:08 +0000 | 
| commit | 24fb33726eca4e8c5a88797adc9c17f4d541f543 (patch) | |
| tree | 72b385bd9e880e699e43c7db3ba12817f0e8e45e /cdutils.h | |
Initial revision
Diffstat (limited to 'cdutils.h')
| -rw-r--r-- | cdutils.h | 83 | 
1 files changed, 83 insertions, 0 deletions
diff --git a/cdutils.h b/cdutils.h new file mode 100644 index 0000000..b3aace5 --- /dev/null +++ b/cdutils.h @@ -0,0 +1,83 @@ +/*  + *  PSX-Tools Bundle Pack  + *  Copyright (C) 2002 Nicolas "Pixel" Noble  + *   + *  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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  + */ + +#ifndef __CDUTILS_H__ +#define __CDUTILS_H__ + +#include <yazedc.h> + +#define GUESS 5 + +struct DirEntry { +    unsigned char R; +    unsigned char NExt; +    unsigned long Sector; +    unsigned long BESector; +    unsigned long Size; +    unsigned long BESize; +    unsigned char Year; +    unsigned char Month; +    unsigned char Day; +    unsigned char Hour; +    unsigned char Minute; +    unsigned char Second; +    unsigned char Offset; +    unsigned char Flags; +    unsigned char FileUnit; +    unsigned char FileGap; +    unsigned short VolSeq; +    unsigned short BEVolSeq; +    unsigned char N; +    char id; +} __attribute__((packed)); + +extern struct DirEntry rootDir; + +extern long sec_sizes[]; +extern long sec_offsts[]; +extern char * sec_modes[]; + +FILE * open_ppf(char * ppf, FILE * iso, char * comment); +unsigned short int swap_word(unsigned short int i); +unsigned long int swap_dword(unsigned long int i); +int guess_type(FILE * f_iso, int number); +void sector_seek(FILE * f_iso, long sector); +long read_sector(FILE * f_iso, unsigned char * buffer, char type, int number = -1); +void read_datas(FILE * f_iso, unsigned char * buffer, int type, int number, long size); +void read_file(FILE * f_iso, FILE * file, char type, int number, long size); +void write_sector(FILE * f_iso_r, FILE * f_iso_w, unsigned char * buffer, char type, int number = -1); +void write_datas(FILE * f_iso_r, FILE * f_iso_w, unsigned char * buffer, char type, int number, long size); +void write_file(FILE * f_iso_r, FILE * f_iso_w, FILE * file, char type, int number = -1); +int get_iso_infos(FILE * h); +int show_iso_infos(FILE * h); +int get_pt_infos(FILE * h); +int show_pt_infos(FILE * h); +struct DirEntry find_path(FILE * h, char * path); +struct DirEntry find_parent(FILE * h, char * path); +void show_head_entry(void); +int show_entry(struct DirEntry * dir); +int show_dir(FILE * h, struct DirEntry * dir); +struct DirEntry find_dir_entry(FILE * h, struct DirEntry * dir, char * name); +struct DirEntry * find_dir_entry(FILE * h, unsigned char ** buffer, struct DirEntry * dir, char * name); +unsigned char from_BCD(unsigned char x); +unsigned char to_BCD(unsigned char x); +int is_valid_BCD(unsigned char x); +unsigned long from_MSF(unsigned long msf, unsigned long start = 150); + +#endif  | 
