123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /*
- libdm_misc.h - libdiscmage miscellaneous
- Copyright (c) 2002 - 2003 NoisyB
- Copyright (c) 2002 - 2004 dbjh
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This library 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
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
- #ifndef LIBDM_MISC_H
- #define LIBDM_MISC_H
- /*
- libdm messages
- usage example: fprintf (stdout, dm_msg[DEPRECATED], filename);
- */
- enum
- {
- DEPRECATED = 0,
- UNKNOWN_IMAGE,
- ALREADY_2048,
- ALPHA
- };
- extern const char *dm_msg[];
- typedef struct
- {
- int mode;
- int seek_header; // sync, head, sub
- int sector_size; // data
- int seek_ecc; // EDC, zero, ECC, spare
- int id;
- const char *suffix;
- } st_track_probe_t;
- extern const st_track_probe_t track_probe[];
- typedef struct
- {
- int id;
- const char *desc;
- } st_track_desc_t; // used in toc.c and cue.c
- enum {
- DM_AUDIO = 1,
- #if 0
- DM_SIZERAW,
- DM_SIZEISO_MODE1,
- DM_SIZEISO_MODE2_RAW,
- DM_SIZEISO_MODE2_FORM1,
- DM_SIZEISO_MODE2_FORM2,
- DM_MODE1,
- DM_MODE2,
- #endif
- DM_MODE1_2352,
- DM_MODE2_2352,
- DM_MODE1_2048,
- DM_MODE2_2336
- };
- enum {
- DM_UNKNOWN = -1,
- DM_CUE = 1,
- DM_TOC,
- DM_CDI,
- DM_NRG,
- // DM_CCD,
- DM_OTHER
- };
- /*
- dm_get_track_desc() returns a string like "MODE1/2352" depending on the
- mode and sector_size specified; if cue == FALSE
- it will return the string in TOC format
- */
- extern int dm_get_track_mode_id (int mode, int sector_size);
- extern void dm_get_track_mode_by_id (int id, int8_t *mode, uint16_t *sector_size);
- extern void dm_clean (dm_image_t *image);
- extern void dm_gauge (int, int);
- extern const char pvd_magic[];
- extern const char svd_magic[];
- extern const char vdt_magic[];
- /*
- dm_lba_to_msf() convert LBA to minutes, seconds, frames
- dm_msf_to_lba() convert minutes, seconds, frames to LBA
- LBA represents the logical block address for the CD-ROM absolute
- address field or for the offset from the beginning of the current track
- expressed as a number of logical blocks in a CD-ROM track relative
- address field.
- MSF represents the physical address written on CD-ROM discs,
- expressed as a sector count relative to either the beginning of the
- medium or the beginning of the current track.
- dm_bcd_to_int() convert BCD to integer
- dm_int_to_bcd() convert integer to BCD
- */
- extern int dm_lba_to_msf (int lba, int *m, int *s, int *f);
- extern int dm_msf_to_lba (int m, int s, int f, int force_positive);
- extern int dm_bcd_to_int (int b);
- extern int dm_int_to_bcd (int i);
- #endif // LIBDM_MISC_H
|