wavgest, wavpest - Read or write an arbitrarily lengthed segment table


#include "wiodef.h"
SEGETBL * wavgest (WVFILE *wfp)
short wavpest (WVFILE *wfp, SEGETBL *fm_etbl)


wavgest() copies the segment data from the waveform associated with wfp and returns a pointer to a newly allocated SEGETBL structure containing the data. On error a NULL is returned
wavpest() applies the segment data from fm_etbl to the waveform associated with wfp. The segment data in the waveform is overwritten with the data in the segment table.
In wavpest(), invalid segments (name duplication or invalid endpoints) will cause an error message, and will not be added to the waveform.
The segment data is stored in a SEGETBL structure containing an arbitrary number of SEGMENT structures. These structures are defined:

      typedef struct {
	  long     begin;
	  long     end;
	  char     name[8];
      } SEGMENT;

      typedef struct {
	  short    nseg;
	  SEGMENT  *segs;
      } SEGETBL;


wavgest() returns a pointer to the segment table on success or a NULL on error.
wavpest() returns 0 on success. If any segment cannot be added, the copy is terminated immediatly, and the reason is returned in an error value as follows:
unalterable name collision
invalid segment definition
system error


addseg(), addsega(), free_segetbl(), wavmrgest(), wavcpyest(), SEGMENT, SEGETBL,
Libcwav library


H.T.Bunnell, Shirley Peters