version 1.12, 2009/04/10 18:19:41 |
version 1.13, 2013/11/12 17:57:34 |
|
|
#include <string.h> |
#include <string.h> |
#include <unistd.h> |
#include <unistd.h> |
|
|
|
#include "extern.h" |
|
|
extern int fd; |
extern int fd; |
extern int msf; |
extern int msf; |
extern struct cd_toc_entry *toc_buffer; |
extern struct cd_toc_entry *toc_buffer; |
|
|
|
|
int read_data_sector(u_int32_t, u_char *, u_int32_t); |
int read_data_sector(u_int32_t, u_char *, u_int32_t); |
|
|
struct track_info { |
struct track { |
int fd; /* descriptor of output file */ |
int fd; /* descriptor of output file */ |
struct sio_hdl *hdl; /* sndio handle */ |
struct sio_hdl *hdl; /* sndio handle */ |
struct sio_par par; /* sndio parameters */ |
struct sio_par par; /* sndio parameters */ |
|
|
u_int32_t end_lba; /* starting address of the next track */ |
u_int32_t end_lba; /* starting address of the next track */ |
}; |
}; |
|
|
int read_track(struct track_info *); |
int read_track(struct track *); |
|
|
int rip_next_track(struct track_info *); |
int rip_next_track(struct track *); |
int play_next_track(struct track_info *); |
int play_next_track(struct track *); |
|
|
static int rip_tracks_loop(struct track_pair *tp, u_int n_tracks, |
static int rip_tracks_loop(struct track_pair *tp, u_int n_tracks, |
int (*next_track)(struct track_info *)); |
int (*next_track)(struct track *)); |
|
|
int rip_tracks(char *arg, int (*next_track)(struct track_info *), |
int rip_tracks(char *arg, int (*next_track)(struct track *), |
int issorted); |
int issorted); |
|
|
/* Next-Track function exit codes */ |
/* Next-Track function exit codes */ |
|
|
} |
} |
|
|
int |
int |
read_track(struct track_info *ti) |
read_track(struct track *ti) |
{ |
{ |
struct timeval tv, otv, atv; |
struct timeval tv, otv, atv; |
u_int32_t i, blksize, n_sec; |
u_int32_t i, blksize, n_sec; |
|
|
} |
} |
|
|
int |
int |
rip_next_track(struct track_info *info) |
rip_next_track(struct track *info) |
{ |
{ |
int error; |
int error; |
u_int32_t size; |
u_int32_t size; |
|
|
} |
} |
|
|
int |
int |
play_next_track(struct track_info *info) |
play_next_track(struct track *info) |
{ |
{ |
if (!info->isaudio) |
if (!info->isaudio) |
return (NXTRACK_SKIP); |
return (NXTRACK_SKIP); |
|
|
|
|
static int |
static int |
rip_tracks_loop(struct track_pair *tp, u_int n_tracks, |
rip_tracks_loop(struct track_pair *tp, u_int n_tracks, |
int (*next_track)(struct track_info *)) |
int (*next_track)(struct track *)) |
{ |
{ |
struct track_info info; |
struct track info; |
u_char trk; |
u_char trk; |
u_int i; |
u_int i; |
char order; |
char order; |
|
|
} |
} |
|
|
int |
int |
rip_tracks(char *arg, int (*next_track)(struct track_info *), int issorted) |
rip_tracks(char *arg, int (*next_track)(struct track *), int issorted) |
{ |
{ |
struct track_pair_head list; |
struct track_pair_head list; |
struct track_pair *tp; |
struct track_pair *tp; |