/* * file.h * Codec * * Defines a fileinfo type common to audio files (audiofile.h) and coded files * (codedfile.h). Also defines a file type which contains a fileinfo struct as * well as a handle to either a coded file or an audio file. * * Scott Wilson * rswilson@ccrma.stanford.edu * last updated: June 15, 2003 * */ #ifndef _FILE_H #define _FILE_H //#include "quantize.h" #include "codec.h" #define AUDIOFILE_READ 0x10 // from SFM_READ and SFM_WRITE in sndfile.h #define AUDIOFILE_WRITE 0x20 // file descriptor for coded file typedef int codedfile_t; typedef codedfile_t *codedfile_p; typedef struct { const char* filename; // soundfile parameters uint32_t srate; uint8_t channels; uint8_t bits_per_sample; uint32_t frames; uint8_t f_signed; uint8_t f_float; int32_t sfformat; // SF_INFO in libsndfile // coding related parameters //qstyle_t quantization_type; // quatization style - see quantization.h (long) uint8_t uniform_bits; uint8_t scale_bits; uint8_t mantissa_bits; uint16_t blocksize; } codec_fileinfo_t; typedef codec_fileinfo_t *codec_fileinfo_p; typedef struct codec_file { union { SNDFILE *sf_p; codedfile_t dfp; } ptr; codec_fileinfo_t info; } codec_file_t; typedef codec_file_t *codec_file_p; codec_err_t file_copy_fileinfo(codec_file_p source, codec_file_p dest); #endif