afGetLoopStartFrame(3dm) afGetLoopStartFrame(3dm) NAME afGetLoopStartFrame, afGetLoopEndFrame, afGetLoopCount - get the start/end frame and loop count from an AFfilehandle structure for a specified loop. SYNOPSIS #include <dmedia/audiofile.h> AFframecount afGetLoopStartFrame(AFfilehandle file, int instid, int loopid) AFframecount afGetLoopEndFrame(AFfilehandle file, int instid, int loopid) int afGetLoopCount(AFfilehandle file, int instid, int loopid) PARAMETER file is an AFfilehandle structure, previously created by a call to afOpenFile(3dm). instid is a positive integer value which identifies an instrument configuration in file. instid should be an element from an array of IDs retrieved via a call to afGetInstIDs(3dm). loopid is a positive integer value which identifies a loop structure in an instrument parameter chunk. You obtain loopid's by calling afGetLoopIDs(3dm). RETURN VALUE afGetLoopStartFrame() returns a non-negative AFframecount type representing the frame number for the loop start point, or -1 if there is an error. afGetLoopEndFrame() returns a non-negative AFframecount type representing the frame number for the loop end point, or -1 if there is an error. afGetLoopCount() returns a non-negative integer indicating the number of times a loop should be repeated. This information is only available and/or storable in certain file formats (see WAVE(4)). For all formats which do not store this information, afGetLoopEndFrame() will return 0. DESCRIPTION Each takes a loopid argument which provides a handle to a set of loop parameters. You can obtain a list of loop ID's for an audio track by calling afGetLoopIDs(3dm). Logically, an audio file contains chunks of instrument parameters (specified by instid handles), and each chunk of instrument parameters may contain several loops. AIFF(4) (and AIFF-C) files contain at most one instrument configuration, but other file formats may contain multiple configurations, so it is now recommended that afGetInstIDs(3dm) be used to retrieve an array of IDs. afQuery(3dm) may be used to determine in advance whether a particular format supports multiple inst chunks. These routines allow you to obtain direct information about loops in an audio file without the added overhead of looking up associated markers (see afGetLoopStart(3dm)). This is necessary because several file formats now supported by the Audio File Library contain loop information (i.e., start and end points) which is completely independent of marker information. In other words, the markers (if any) stored in the file header may and usually will refer to locations in the file other than the loop start and end points. EXAMPLE afGetLoopStartFrame() returns the value 125000. This is the frame number in the audio track for the beginning of the specified loop. CAVEATS These functions may return any configurations of loops within an inst, not just the value 2 found in AIFF/AIFF-C files. Other file formats have different loop configurations than AIFF/AIFF-C. As mentioned above, afQuery(3dm) can be used to determine the possible loop configurations for a given file format. Programs should be written to expect and ignore loop configurations it does not understand. SEE ALSO afOpenFile(3dm), afGetInstIDs(3dm), afGetInstParamLong(3dm), afGetLoopIDs(3dm), afGetLoopStart(3dm), aiff(4), avr(4), wave(4), sd2(4) Page 2