Blame lib/driver/image.h

Packit dd8086
/*
Packit dd8086
  Copyright (C) 2004, 2005, 2008, 2011, 2012
Packit dd8086
  Rocky Bernstein <rocky@gnu.org>
Packit dd8086
Packit dd8086
  This program is free software: you can redistribute it and/or modify
Packit dd8086
  it under the terms of the GNU General Public License as published by
Packit dd8086
  the Free Software Foundation, either version 3 of the License, or
Packit dd8086
  (at your option) any later version.
Packit dd8086
Packit dd8086
  This program is distributed in the hope that it will be useful,
Packit dd8086
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit dd8086
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit dd8086
  GNU General Public License for more details.
Packit dd8086
Packit dd8086
  You should have received a copy of the GNU General Public License
Packit dd8086
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit dd8086
*/
Packit dd8086
Packit dd8086
/*! 
Packit dd8086
  Header for image drivers. In contrast to image_common.h which contains
Packit dd8086
  routines, this header like most C headers does not depend on anything
Packit dd8086
  defined before it is included.
Packit dd8086
*/
Packit dd8086
Packit dd8086
#ifndef CDIO_DRIVER_IMAGE_H_
Packit dd8086
#define CDIO_DRIVER_IMAGE_H_
Packit dd8086
Packit dd8086
#if defined(HAVE_CONFIG_H) && !defined(__CDIO_CONFIG_H__)
Packit dd8086
# include "config.h"
Packit dd8086
# define __CDIO_CONFIG_H__ 1
Packit dd8086
#endif
Packit dd8086
Packit dd8086
#ifdef HAVE_STDBOOL_H
Packit dd8086
# include <stdbool.h>
Packit dd8086
#endif 
Packit dd8086
Packit dd8086
#include <cdio/types.h>
Packit dd8086
#include <cdio/cdtext.h>
Packit dd8086
#include "cdio_private.h"
Packit dd8086
#include <cdio/sector.h>
Packit dd8086
Packit dd8086
/*! 
Packit dd8086
  The universal format for information about a track for CD image readers
Packit dd8086
  It may be that some fields can be derived from other fields.
Packit dd8086
  Over time this structure may get cleaned up. Possibly this can be
Packit dd8086
  expanded/reused for real CD formats.
Packit dd8086
*/
Packit dd8086
Packit dd8086
typedef struct {
Packit dd8086
  track_t        track_num;     /**< Probably is index+1 */
Packit dd8086
  msf_t          start_msf;
Packit dd8086
  lba_t          start_lba;
Packit dd8086
  int            start_index;
Packit dd8086
  lba_t          pregap;        /**< pre-gap */
Packit dd8086
  lba_t          silence;       /**< pre-gap with zero audio data */
Packit dd8086
  int            sec_count;     /**< Number of sectors in this track. Does not
Packit dd8086
                                     include pregap */
Packit dd8086
  int            num_indices;
Packit dd8086
  flag_t         flags;         /**< "[NO] COPY", "4CH", "[NO] PREMPAHSIS" */
Packit dd8086
  char          *isrc;          /**< IRSC Code (5.22.4) exactly 12 bytes */
Packit dd8086
  char          *filename;
Packit dd8086
  CdioDataSource_t *data_source;
Packit dd8086
  off_t          offset;        /**< byte offset into data_start of track
Packit dd8086
                                     beginning. In cdrdao for example, one
Packit dd8086
                                     filename may cover many tracks and
Packit dd8086
                                     each track would then have a different
Packit dd8086
                                     offset.
Packit dd8086
                                */
Packit dd8086
  track_format_t track_format;
Packit dd8086
  bool           track_green;
Packit dd8086
Packit dd8086
  trackmode_t    mode;
Packit dd8086
  uint16_t       datasize;      /**< How much is in the portion we return 
Packit dd8086
                                     back? */
Packit dd8086
  uint16_t       datastart;     /**<  Offset from begining of frame 
Packit dd8086
                                      that data starts */
Packit dd8086
  uint16_t       endsize;       /**< How much stuff at the end to skip over. 
Packit dd8086
                                     This stuff may have error correction 
Packit dd8086
                                     (EDC, or ECC).*/
Packit dd8086
  uint16_t       blocksize;     /**< total block size = start + size + end */
Packit dd8086
} track_info_t;
Packit dd8086
Packit dd8086
Packit dd8086
#endif /* CDIO_DRIVER_IMAGE_H_ */