📄 common.h
字号:
SFE_RDWR_POSITION, SFE_RDWR_BAD_HEADER, SFE_STR_NO_SUPPORT, SFE_STR_NOT_WRITE, SFE_STR_MAX_DATA, SFE_STR_MAX_COUNT, SFE_STR_BAD_TYPE, SFE_STR_NO_ADD_END, SFE_STR_BAD_STRING, SFE_STR_WEIRD, SFE_WAV_NO_RIFF, SFE_WAV_NO_WAVE, SFE_WAV_NO_FMT, SFE_WAV_FMT_SHORT, SFE_WAV_FMT_TOO_BIG, SFE_WAV_BAD_FACT, SFE_WAV_BAD_PEAK, SFE_WAV_PEAK_B4_FMT, SFE_WAV_BAD_FORMAT, SFE_WAV_BAD_BLOCKALIGN, SFE_WAV_NO_DATA, SFE_WAV_ADPCM_NOT4BIT, SFE_WAV_ADPCM_CHANNELS, SFE_WAV_GSM610_FORMAT, SFE_WAV_UNKNOWN_CHUNK, SFE_WAV_WVPK_DATA, SFE_AIFF_NO_FORM, SFE_AIFF_AIFF_NO_FORM, SFE_AIFF_COMM_NO_FORM, SFE_AIFF_SSND_NO_COMM, SFE_AIFF_UNKNOWN_CHUNK, SFE_AIFF_COMM_CHUNK_SIZE, SFE_AIFF_BAD_COMM_CHUNK, SFE_AIFF_PEAK_B4_COMM, SFE_AIFF_BAD_PEAK, SFE_AIFF_NO_SSND, SFE_AIFF_NO_DATA, SFE_AIFF_RW_SSND_NOT_LAST, SFE_AU_UNKNOWN_FORMAT, SFE_AU_NO_DOTSND, SFE_AU_EMBED_BAD_LEN, SFE_RAW_READ_BAD_SPEC, SFE_RAW_BAD_BITWIDTH, SFE_RAW_BAD_FORMAT, SFE_PAF_NO_MARKER, SFE_PAF_VERSION, SFE_PAF_UNKNOWN_FORMAT, SFE_PAF_SHORT_HEADER, SFE_SVX_NO_FORM, SFE_SVX_NO_BODY, SFE_SVX_NO_DATA, SFE_SVX_BAD_COMP, SFE_SVX_BAD_NAME_LENGTH, SFE_NIST_BAD_HEADER, SFE_NIST_CRLF_CONVERISON, SFE_NIST_BAD_ENCODING, SFE_VOC_NO_CREATIVE, SFE_VOC_BAD_FORMAT, SFE_VOC_BAD_VERSION, SFE_VOC_BAD_MARKER, SFE_VOC_BAD_SECTIONS, SFE_VOC_MULTI_SAMPLERATE, SFE_VOC_MULTI_SECTION, SFE_VOC_MULTI_PARAM, SFE_VOC_SECTION_COUNT, SFE_VOC_NO_PIPE, SFE_IRCAM_NO_MARKER, SFE_IRCAM_BAD_CHANNELS, SFE_IRCAM_UNKNOWN_FORMAT, SFE_W64_64_BIT, SFE_W64_NO_RIFF, SFE_W64_NO_WAVE, SFE_W64_NO_FMT, SFE_W64_NO_DATA, SFE_W64_FMT_SHORT, SFE_W64_FMT_TOO_BIG, SFE_W64_ADPCM_NOT4BIT, SFE_W64_ADPCM_CHANNELS, SFE_W64_GSM610_FORMAT, SFE_MAT4_BAD_NAME, SFE_MAT4_NO_SAMPLERATE, SFE_MAT4_ZERO_CHANNELS, SFE_MAT5_BAD_ENDIAN, SFE_MAT5_NO_BLOCK, SFE_MAT5_SAMPLE_RATE, SFE_MAT5_ZERO_CHANNELS, SFE_PVF_NO_PVF1, SFE_PVF_BAD_HEADER, SFE_PVF_BAD_BITWIDTH, SFE_DWVW_BAD_BITWIDTH, SFE_G72X_NOT_MONO, SFE_XI_BAD_HEADER, SFE_XI_EXCESS_SAMPLES, SFE_XI_NO_PIPE, SFE_HTK_NO_PIPE, SFE_SDS_NOT_SDS, SFE_SDS_BAD_BIT_WIDTH, SFE_SD2_FD_DISALLOWED, SFE_SD2_BAD_DATA_OFFSET, SFE_SD2_BAD_MAP_OFFSET, SFE_SD2_BAD_DATA_LENGTH, SFE_SD2_BAD_MAP_LENGTH, SFE_SD2_BAD_RSRC, SFE_SD2_BAD_SAMPLE_SIZE, SFE_MAX_ERROR /* This must be last in list. */} ;int subformat_to_bytewidth (int format) ;int s_bitwidth_to_subformat (int bits) ;int u_bitwidth_to_subformat (int bits) ;/* Functions for reading and writing floats and doubles on processors** with non-IEEE floats/doubles.*/float float32_be_read (unsigned char *cptr) ;float float32_le_read (unsigned char *cptr) ;void float32_be_write (float in, unsigned char *out) ;void float32_le_write (float in, unsigned char *out) ;double double64_be_read (unsigned char *cptr) ;double double64_le_read (unsigned char *cptr) ;void double64_be_write (double in, unsigned char *out) ;void double64_le_write (double in, unsigned char *out) ;/* Functions for writing to the internal logging buffer. */void psf_log_printf (SF_PRIVATE *psf, const char *format, ...) ;void psf_log_SF_INFO (SF_PRIVATE *psf) ;void psf_hexdump (void *ptr, int len) ;/* Functions used when writing file headers. */int psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...) ;void psf_asciiheader_printf (SF_PRIVATE *psf, const char *format, ...) ;/* Functions used when reading file headers. */int psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) ;/* Functions used in the write function for updating the peak chunk. */void peak_update_short (SF_PRIVATE *psf, short *ptr, size_t items) ;void peak_update_int (SF_PRIVATE *psf, int *ptr, size_t items) ;void peak_update_double (SF_PRIVATE *psf, double *ptr, size_t items) ;/* Functions defined in command.c. */int psf_get_format_simple_count (void) ;int psf_get_format_simple (SF_FORMAT_INFO *data) ;int psf_get_format_info (SF_FORMAT_INFO *data) ;int psf_get_format_major_count (void) ;int psf_get_format_major (SF_FORMAT_INFO *data) ;int psf_get_format_subtype_count (void) ;int psf_get_format_subtype (SF_FORMAT_INFO *data) ;void psf_generate_format_desc (SF_PRIVATE *psf) ;double psf_calc_signal_max (SF_PRIVATE *psf, int normalize) ;int psf_calc_max_all_channels (SF_PRIVATE *psf, double *peaks, int normalize) ;/* Functions in strings.c. */const char* psf_get_string (SF_PRIVATE *psf, int str_type) ;int psf_set_string (SF_PRIVATE *psf, int str_type, const char *str) ;int psf_store_string (SF_PRIVATE *psf, int str_type, const char *str) ;/* Default seek function. Use for PCM and float encoded data. */sf_count_t psf_default_seek (SF_PRIVATE *psf, int mode, sf_count_t samples_from_start) ;/* Generate the currebt date as a string. */void psf_get_date_str (char *str, int maxlen) ;int macos_guess_file_type (SF_PRIVATE *psf, const char *filename) ;/*------------------------------------------------------------------------------------** File I/O functions which will allow access to large files (> 2 Gig) on** some 32 bit OSes. Implementation in file_io.c.*/int psf_fopen (SF_PRIVATE *psf, const char *pathname, int flags) ;int psf_set_stdio (SF_PRIVATE *psf, int mode) ;int psf_filedes_valid (SF_PRIVATE *psf) ;void psf_set_file (SF_PRIVATE *psf, int fd) ;sf_count_t psf_fseek (SF_PRIVATE *psf, sf_count_t offset, int whence) ;sf_count_t psf_fread (void *ptr, sf_count_t bytes, sf_count_t count, SF_PRIVATE *psf) ;sf_count_t psf_fwrite (const void *ptr, sf_count_t bytes, sf_count_t count, SF_PRIVATE *psf) ;sf_count_t psf_fgets (char *buffer, sf_count_t bufsize, SF_PRIVATE *psf) ;sf_count_t psf_ftell (SF_PRIVATE *psf) ;sf_count_t psf_get_filelen (SF_PRIVATE *psf) ;int psf_is_pipe (SF_PRIVATE *psf) ;int psf_ftruncate (SF_PRIVATE *psf, sf_count_t len) ;int psf_fclose (SF_PRIVATE *psf) ;/* Open and close the resource fork of a file. */int psf_open_rsrc (SF_PRIVATE *psf, int mode) ;int psf_close_rsrc (SF_PRIVATE *psf) ;/*void psf_fclearerr (SF_PRIVATE *psf) ;int psf_ferror (SF_PRIVATE *psf) ;*//*------------------------------------------------------------------------------------** Functions for reading and writing different file formats.*/int aiff_open (SF_PRIVATE *psf) ;int au_open (SF_PRIVATE *psf) ;int au_nh_open (SF_PRIVATE *psf) ; /* Headerless version of AU. */int avr_open (SF_PRIVATE *psf) ;int htk_open (SF_PRIVATE *psf) ;int ircam_open (SF_PRIVATE *psf) ;int mat4_open (SF_PRIVATE *psf) ;int mat5_open (SF_PRIVATE *psf) ;int nist_open (SF_PRIVATE *psf) ;int paf_open (SF_PRIVATE *psf) ;int pvf_open (SF_PRIVATE *psf) ;int raw_open (SF_PRIVATE *psf) ;int sd2_open (SF_PRIVATE *psf) ;int sds_open (SF_PRIVATE *psf) ;int svx_open (SF_PRIVATE *psf) ;int voc_open (SF_PRIVATE *psf) ;int w64_open (SF_PRIVATE *psf) ;int wav_open (SF_PRIVATE *psf) ;int xi_open (SF_PRIVATE *psf) ;/* In progress. Do not currently work. */int ogg_open (SF_PRIVATE *psf) ;int rx2_open (SF_PRIVATE *psf) ;int txw_open (SF_PRIVATE *psf) ;int wve_open (SF_PRIVATE *psf) ;int dwd_open (SF_PRIVATE *psf) ;int macbinary3_open (SF_PRIVATE *psf) ;/*------------------------------------------------------------------------------------** Init functions for a number of common data encodings.*/int pcm_init (SF_PRIVATE *psf) ;int ulaw_init (SF_PRIVATE *psf) ;int alaw_init (SF_PRIVATE *psf) ;int float32_init (SF_PRIVATE *psf) ;int double64_init (SF_PRIVATE *psf) ;int dwvw_init (SF_PRIVATE *psf, int bitwidth) ;int gsm610_init (SF_PRIVATE *psf) ;int vox_adpcm_init (SF_PRIVATE *psf) ;int dither_init (SF_PRIVATE *psf, int mode) ;int wav_w64_ima_init (SF_PRIVATE *psf, int blockalign, int samplesperblock) ;int wav_w64_msadpcm_init (SF_PRIVATE *psf, int blockalign, int samplesperblock) ;int aiff_ima_init (SF_PRIVATE *psf, int blockalign, int samplesperblock) ;int interleave_init (SF_PRIVATE *psf) ;/*------------------------------------------------------------------------------------** Other helper functions.*/void *psf_memset (void *s, int c, sf_count_t n) ;/*------------------------------------------------------------------------------------** Here's how we fix systems which don't snprintf / vsnprintf.** Systems without these functions should use the*/#if (defined (WIN32) || defined (_WIN32))#define LSF_SNPRINTF _snprintf#elif (HAVE_SNPRINTF && ! FORCE_MISSING_SNPRINTF)#define LSF_SNPRINTF snprintf#elseint missing_snprintf (char *str, size_t n, char const *fmt, ...) ;#define LSF_SNPRINTF missing_snprintf#endif#if (defined (WIN32) || defined (_WIN32))#define LSF_VSNPRINTF _vsnprintf#elif (HAVE_VSNPRINTF && ! FORCE_MISSING_SNPRINTF)#define LSF_VSNPRINTF vsnprintf#elseint missing_vsnprintf (char *str, size_t n, const char *fmt, ...) ;#define LSF_VSNPRINTF missing_vsnprintf#endif#endif /* COMMON_H_INCLUDED *//*------------------------------------------------------------------------------------** Extra commands for sf_command(). Not for public use yet.*/enum{ SFC_TEST_AIFF_ADD_INST_CHUNK = 0x2000, SFC_TEST_WAV_ADD_INFO_CHUNK = 0x2010} ;/*** Maybe, one day, make these functions or something like them, public.**** Buffer to buffer dithering. Pointer in and out are allowed to point** to the same buffer for in-place dithering.*/#if 0int sf_dither_short (const SF_DITHER_INFO *dither, const short *in, short *out, int count) ;int sf_dither_int (const SF_DITHER_INFO *dither, const int *in, int *out, int count) ;int sf_dither_float (const SF_DITHER_INFO *dither, const float *in, float *out, int count) ;int sf_dither_double (const SF_DITHER_INFO *dither, const double *in, double *out, int count) ;#endif/*** Do not edit or modify anything in this comment block.** The arch-tag line is a file identity tag for the GNU Arch** revision control system.**** arch-tag: 7b45c0ee-5835-4a18-a4ef-994e4cd95b67*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -