I think I have the XA encapsulation down so that it will work in vcdimager
(and others).
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: iso9660.h,v 1.9 2003/08/31 07:39:45 rocky Exp $
|
||||
$Id: iso9660.h,v 1.10 2003/08/31 08:32:40 rocky Exp $
|
||||
|
||||
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -23,7 +23,6 @@
|
||||
#define __CDIO_ISO9660_H__
|
||||
|
||||
/* Will eventually need/use glib.h */
|
||||
#include <cdio/types.h>
|
||||
|
||||
#include <cdio/cdio.h>
|
||||
#include <cdio/xa.h>
|
||||
@@ -256,6 +255,11 @@ iso9660_pathtable_m_add_entry (void *pt, const char name[], uint32_t extent,
|
||||
const char *
|
||||
iso9660_get_xa_attr_str (uint16_t xa_attr);
|
||||
|
||||
iso9660_xa_t *
|
||||
iso9660_xa_init (iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr,
|
||||
uint8_t filenum);
|
||||
|
||||
|
||||
#endif /* __CDIO_ISO9660_H__ */
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: xa.h,v 1.1 2003/08/31 07:39:45 rocky Exp $
|
||||
$Id: xa.h,v 1.2 2003/08/31 08:32:40 rocky Exp $
|
||||
|
||||
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -43,6 +43,10 @@
|
||||
#define XA_PERM_ALL_EXEC (XA_ATTR_U_EXEC | XA_ATTR_G_EXEC | XA_ATTR_O_EXEC)
|
||||
#define XA_PERM_ALL_ALL (XA_PERM_ALL_READ | XA_PERM_ALL_EXEC)
|
||||
|
||||
#define XA_FORM1_DIR (XA_ATTR_DIRECTORY | XA_ATTR_MODE2FORM1 | XA_PERM_ALL_ALL)
|
||||
#define XA_FORM1_FILE (XA_ATTR_MODE2FORM1 | XA_PERM_ALL_ALL)
|
||||
#define XA_FORM2_FILE (XA_ATTR_MODE2FORM2 | XA_PERM_ALL_ALL)
|
||||
|
||||
typedef struct iso9660_xa iso9660_xa_t;
|
||||
|
||||
struct iso9660_xa /* big endian!! */
|
||||
@@ -55,3 +59,8 @@ struct iso9660_xa /* big endian!! */
|
||||
uint8_t reserved[5]; /* zero */
|
||||
} GNUC_PACKED;
|
||||
|
||||
|
||||
iso9660_xa_t *
|
||||
iso9660_xa_init (iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr,
|
||||
uint8_t filenum);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am,v 1.10 2003/08/31 06:59:23 rocky Exp $
|
||||
# $Id: Makefile.am,v 1.11 2003/08/31 08:32:40 rocky Exp $
|
||||
#
|
||||
# Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
#
|
||||
@@ -52,7 +52,6 @@ libiso9660_la_SOURCES = \
|
||||
iso9660.c \
|
||||
iso9660_private.h \
|
||||
iso9660_fs.c \
|
||||
iso9660_fs.h \
|
||||
xa.h
|
||||
xa.c
|
||||
|
||||
INCLUDES = -I$(LIBCDIO_CFLAGS)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: iso9660_fs.c,v 1.1 2003/08/31 06:59:23 rocky Exp $
|
||||
$Id: iso9660_fs.c,v 1.2 2003/08/31 08:32:40 rocky Exp $
|
||||
|
||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
@@ -27,11 +27,14 @@
|
||||
|
||||
#include <cdio/cdio.h>
|
||||
#include <cdio/iso9660.h>
|
||||
#include <cdio/util.h>
|
||||
|
||||
/* Private headers */
|
||||
#include "iso9660_fs.h"
|
||||
#include "cdio_assert.h"
|
||||
#include "bytesex.h"
|
||||
#include "ds.h"
|
||||
|
||||
static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.1 2003/08/31 06:59:23 rocky Exp $";
|
||||
static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.2 2003/08/31 08:32:40 rocky Exp $";
|
||||
|
||||
#define BUF_COUNT 16
|
||||
#define BUF_SIZE 80
|
||||
|
||||
59
lib/xa.c
Normal file
59
lib/xa.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
$Id: xa.c,v 1.1 2003/08/31 08:32:40 rocky Exp $
|
||||
|
||||
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
/* Public headers */
|
||||
#include <cdio/iso9660.h>
|
||||
#include <cdio/util.h>
|
||||
|
||||
/* Private headers */
|
||||
#include "cdio_assert.h"
|
||||
#include "bytesex.h"
|
||||
|
||||
#define iso9660_xa_t_SIZEOF 14
|
||||
|
||||
iso9660_xa_t *
|
||||
iso9660_xa_init (iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr,
|
||||
uint8_t filenum)
|
||||
{
|
||||
cdio_assert (_xa != NULL);
|
||||
|
||||
_xa->user_id = uint16_to_be (uid);
|
||||
_xa->group_id = uint16_to_be (gid);
|
||||
_xa->attributes = uint16_to_be (attr);
|
||||
|
||||
_xa->signature[0] = 'X';
|
||||
_xa->signature[1] = 'A';
|
||||
|
||||
_xa->filenum = filenum;
|
||||
|
||||
_xa->reserved[0]
|
||||
= _xa->reserved[1]
|
||||
= _xa->reserved[2]
|
||||
= _xa->reserved[3]
|
||||
= _xa->reserved[4] = 0x00;
|
||||
|
||||
return _xa;
|
||||
}
|
||||
114
lib/xa.h
114
lib/xa.h
@@ -1,114 +0,0 @@
|
||||
/*
|
||||
$Id: xa.h,v 1.1 2003/08/31 06:59:23 rocky Exp $
|
||||
|
||||
Copyright (C) 2000 Herbert Valerio Riedel <hvr@gnu.org>
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
|
||||
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 __CDIO_XA_H__
|
||||
#define __CDIO_XA_H__
|
||||
|
||||
/* Public headers */
|
||||
#include <cdio/types.h>
|
||||
#include <cdio/util.h>
|
||||
#include <cdio/iso9660.h>
|
||||
|
||||
/* Private headers */
|
||||
#include "cdio_assert.h"
|
||||
#include "bytesex.h"
|
||||
|
||||
/* XA attribute definitions */
|
||||
#define XA_ATTR_U_READ (1 << 0)
|
||||
/* reserved */
|
||||
#define XA_ATTR_U_EXEC (1 << 2)
|
||||
/* reserved */
|
||||
#define XA_ATTR_G_READ (1 << 4)
|
||||
/* reserved */
|
||||
#define XA_ATTR_G_EXEC (1 << 6)
|
||||
/* reserved */
|
||||
#define XA_ATTR_O_READ (1 << 8)
|
||||
/* reserved */
|
||||
#define XA_ATTR_O_EXEC (1 << 10)
|
||||
|
||||
#define XA_ATTR_MODE2FORM1 (1 << 11)
|
||||
#define XA_ATTR_MODE2FORM2 (1 << 12)
|
||||
#define XA_ATTR_INTERLEAVED (1 << 13)
|
||||
#define XA_ATTR_CDDA (1 << 14)
|
||||
#define XA_ATTR_DIRECTORY (1 << 15)
|
||||
|
||||
/* some aggregations */
|
||||
#define XA_PERM_ALL_READ (XA_ATTR_U_READ | XA_ATTR_G_READ | XA_ATTR_O_READ)
|
||||
#define XA_PERM_ALL_EXEC (XA_ATTR_U_EXEC | XA_ATTR_G_EXEC | XA_ATTR_O_EXEC)
|
||||
#define XA_PERM_ALL_ALL (XA_PERM_ALL_READ | XA_PERM_ALL_EXEC)
|
||||
|
||||
/* the struct */
|
||||
|
||||
PRAGMA_BEGIN_PACKED
|
||||
typedef struct /* big endian!! */
|
||||
{
|
||||
uint16_t user_id; /* 0 */
|
||||
uint16_t group_id; /* 0 */
|
||||
uint16_t attributes; /* XA_ATTR_ */
|
||||
uint8_t signature[2]; /* { 'X', 'A' } */
|
||||
uint8_t filenum; /* file number, see also XA subheader */
|
||||
uint8_t reserved[5]; /* zero */
|
||||
} GNUC_PACKED iso9660_xa_t;
|
||||
|
||||
PRAGMA_END_PACKED
|
||||
|
||||
struct iso9660_stat {
|
||||
enum { _STAT_FILE = 1, _STAT_DIR = 2 } type;
|
||||
lsn_t lsn; /* start logical sector number */
|
||||
uint32_t size; /* total size in bytes */
|
||||
uint32_t secsize; /* number of sectors allocated */
|
||||
iso9660_xa_t xa; /* XA attributes */
|
||||
};
|
||||
|
||||
#define iso9660_xa_t_SIZEOF 14
|
||||
|
||||
static inline iso9660_xa_t *
|
||||
iso9660_xa_new (void)
|
||||
{
|
||||
return _cdio_malloc (sizeof (iso9660_xa_t));
|
||||
}
|
||||
|
||||
static inline iso9660_xa_t *
|
||||
iso9660_xa_init (iso9660_xa_t *_xa, uint16_t uid, uint16_t gid, uint16_t attr,
|
||||
uint8_t filenum)
|
||||
{
|
||||
cdio_assert (_xa != NULL);
|
||||
|
||||
|
||||
_xa->user_id = uint16_to_be (uid);
|
||||
_xa->group_id = uint16_to_be (gid);
|
||||
_xa->attributes = uint16_to_be (attr);
|
||||
|
||||
_xa->signature[0] = 'X';
|
||||
_xa->signature[1] = 'A';
|
||||
|
||||
_xa->filenum = filenum;
|
||||
|
||||
_xa->reserved[0]
|
||||
= _xa->reserved[1]
|
||||
= _xa->reserved[2]
|
||||
= _xa->reserved[3]
|
||||
= _xa->reserved[4] = 0x00;
|
||||
|
||||
return _xa;
|
||||
}
|
||||
|
||||
#endif /* __VCD_XA_H__ */
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
$Id: cd-info.c,v 1.25 2003/08/31 06:59:23 rocky Exp $
|
||||
$Id: cd-info.c,v 1.26 2003/08/31 08:32:40 rocky Exp $
|
||||
|
||||
Copyright (C) 2003 Rocky Bernstein <rocky@panix.com>
|
||||
Copyright (C) 1996,1997,1998 Gerd Knorr <kraxel@bytesex.org>
|
||||
@@ -55,8 +55,9 @@
|
||||
#include <cdio/cd_types.h>
|
||||
#include <cdio/iso9660.h>
|
||||
|
||||
#include "cdio_assert.h"
|
||||
#include "bytesex.h"
|
||||
#include "ds.h"
|
||||
#include "xa.h"
|
||||
#include "iso9660_private.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
@@ -9,3 +9,20 @@ CD-ROM Track List (1 - 1)
|
||||
__________________________________
|
||||
CD Analysis Report
|
||||
Audio CD, CDDB disc ID is 02000401
|
||||
lt-cd-info: Found 1 matches in CDDB
|
||||
Disc ID: 02000401
|
||||
CDDB category: blues (6)
|
||||
Music genre: 'Rock'
|
||||
Year: 0
|
||||
Artist: 'White Zombie'
|
||||
Title: 'Living Dead Girl'
|
||||
Extended data: ' ID3G: 17'
|
||||
Length: 6 seconds
|
||||
Number of tracks: 1
|
||||
Track 1
|
||||
number: 1
|
||||
frame offset: 150
|
||||
length: 4 seconds
|
||||
artist: 'White Zombie'
|
||||
title: 'hit mania dance champions 2001'
|
||||
extended data: ''
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/bin/sh
|
||||
#$Id: check_cue.sh.in,v 1.5 2003/08/31 06:59:23 rocky Exp $
|
||||
if test -n "@CDDB_LIB@" ; then
|
||||
#$Id: check_cue.sh.in,v 1.6 2003/08/31 08:32:40 rocky Exp $
|
||||
if test -z "@CDDB_LIB@" ; then
|
||||
cddb_opt='--no-cddb'
|
||||
fi
|
||||
|
||||
if test -n "@VCDINFO_LIBS@" ; then
|
||||
if test -z "@VCDINFO_LIBS@" ; then
|
||||
vcd_opt='--no-vcd'
|
||||
else
|
||||
vcd_opt='--iso9660'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#$Id: check_nrg.sh.in,v 1.4 2003/08/31 06:59:23 rocky Exp $
|
||||
#$Id: check_nrg.sh.in,v 1.5 2003/08/31 08:32:40 rocky Exp $
|
||||
|
||||
if test -n "@VCDINFO_LIBS@" ; then
|
||||
if test -z "@VCDINFO_LIBS@" ; then
|
||||
vcd_opt='--no-vcd'
|
||||
else
|
||||
vcd_opt='--iso9660'
|
||||
|
||||
@@ -56,5 +56,16 @@ ISO9660 filesystem
|
||||
- ----1xrxrxr 0 0 [fn 00] [LSN 184] 24 PSD.VCD;1
|
||||
|
||||
XA sectors Video CD
|
||||
format: VCD 2.0
|
||||
album id: `'
|
||||
volume count: 1
|
||||
volume number: 1
|
||||
system id: `CD-RTOS CD-BRIDGE'
|
||||
volume id: `MONVOISIN'
|
||||
volumeset id: `'
|
||||
publisher id: `'
|
||||
preparer id: `'
|
||||
application id: `CDI/CDI_VCD.APP;1'
|
||||
|
||||
session #2 starts at track 2, LSN: 1251, ISO 9660 blocks: 1101
|
||||
ISO 9660: 1101 blocks, label `MONVOISIN '
|
||||
|
||||
@@ -81,5 +81,16 @@ ISO9660 filesystem
|
||||
- ----1xrxrxr 0 0 [fn 00] [LSN 184] 72 PSD.VCD;1
|
||||
|
||||
XA sectors Video CD
|
||||
format: VCD 2.0
|
||||
album id: `LOEKI'
|
||||
volume count: 1
|
||||
volume number: 1
|
||||
system id: `CD-RTOS CD-BRIDGE'
|
||||
volume id: `V0469'
|
||||
volumeset id: `'
|
||||
publisher id: `LAURENS KOEHOORN'
|
||||
preparer id: `LKVCDIMAGER 5.0.7.10(WIN32)'
|
||||
application id: `'
|
||||
|
||||
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
|
||||
ISO 9660: 1032 blocks, label `V0469 '
|
||||
|
||||
Reference in New Issue
Block a user