gri_wavfile.h File Reference

#include <cstdio>

Include dependency graph for gri_wavfile.h:

Go to the source code of this file.

Functions

bool gri_wavheader_parse (FILE *fp, unsigned int &sample_rate, int &nchans, int &bytes_per_sample, int &first_sample_pos, unsigned int &samples_per_chan)
 Read signal information from a given WAV file.
short int gri_wav_read_sample (FILE *fp, int bytes_per_sample)
 Read one sample from an open WAV file at the current position.
bool gri_wavheader_write (FILE *fp, unsigned int sample_rate, int nchans, int bytes_per_sample)
 Write a valid RIFF file header.
void gri_wav_write_sample (FILE *fp, short int sample, int bytes_per_sample)
 Write one sample to an open WAV file at the current position.
bool gri_wavheader_complete (FILE *fp, unsigned int byte_count)
 Complete a WAV header.


Function Documentation

short int gri_wav_read_sample ( FILE *  fp,
int  bytes_per_sample 
)

Read one sample from an open WAV file at the current position.

Takes care of endianness.

void gri_wav_write_sample ( FILE *  fp,
short int  sample,
int  bytes_per_sample 
)

Write one sample to an open WAV file at the current position.

Takes care of endianness.

bool gri_wavheader_complete ( FILE *  fp,
unsigned int  byte_count 
)

Complete a WAV header.

Note: The stream position is changed during this function. If anything needs to be written to the WAV file after calling this function (which shouldn't happen), you need to fseek() to the end of the file (or whereever).

fp File pointer to an open WAV file with a blank header byte_count Length of all samples written to the file in bytes.

bool gri_wavheader_parse ( FILE *  fp,
unsigned int &  sample_rate,
int &  nchans,
int &  bytes_per_sample,
int &  first_sample_pos,
unsigned int &  samples_per_chan 
)

Read signal information from a given WAV file.

fp File pointer to an opened, empty file. sample_rate Stores the sample rate [S/s] nchans Number of channels bytes_per_sample Bytes per sample, can either be 1 or 2 (corresponding to 8 or 16 bit samples, respectively) first_sample_pos Number of the first byte containing a sample. Use this with fseek() to jump from the end of the file to the first sample when in repeat mode. samples_per_chan Number of samples per channel normalize_fac The normalization factor with which you need to divide the integer values of the samples to get them within [-1;1] normalize_shift The value by which the sample values need to be shifted after normalization (reason being, 8-bit WAV files store samples as unsigned char and 16-bit as signed short int)

Returns:
True on a successful read, false if the file could not be read or is not a valid WAV file.

bool gri_wavheader_write ( FILE *  fp,
unsigned int  sample_rate,
int  nchans,
int  bytes_per_sample 
)

Write a valid RIFF file header.

Note: Some header values are kept blank because they're usually not known a-priori (file and chunk lengths). Use gri_wavheader_complete() to fill these in.


Generated on Thu Mar 5 09:02:08 2009 for GNU Radio 3.1.3 by  doxygen 1.5.8