_q_u_e_r_y_t_y_p_e is an integer value token representing the type of query
being made.
_a_r_g_1,..._a_r_g_4 are integer value tokens representing the query selectors
and/or subtypes. The number of meaningful arguments to
the aaaaffffQQQQuuuueeeerrrryyyy routines varies with the _q_u_e_r_y_t_y_p_e.
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEE
Each of the four aaaaffffQQQQuuuueeeerrrryyyy(((()))) variants returns the requested information via
the return value, which may be of type AUpvlist, long, double, or void *,
depending on the variant. aaaaffffQQQQuuuueeeerrrryyyyPPPPooooiiiinnnntttteeeerrrr(((())))'s return value will usually
be cast by the application to the appropriate pointer type (i.e., char*
for strings, int* for id arrays). If the query represents a character
string (AF_QUERY_LABEL, AF_QUERY_NAME, AF_QUERY_DESC), the pointer should
not and must not be free()'d by the application; in all other cases it
must be free()'d to avoid memory leakage.
If the return value represents a quantity such as the number of loops
supported by a file format's inst chunks, the special return value
AAAAFFFF____NNNNUUUUMMMM____UUUUNNNNLLLLIIIIMMMMIIIITTTTEEEEDDDD indicates that there is no hard limit on the quantity.
If an error occurs, aaaaffffQQQQuuuueeeerrrryyyyLLLLoooonnnngggg(((()))) and aaaaffffQQQQuuuueeeerrrryyyyDDDDoooouuuubbbblllleeee(((()))) will return -1, and
aaaaffffQQQQuuuueeeerrrryyyyPPPPooooiiiinnnntttteeeerrrr(((()))) will return NULL.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
aaaaffffQQQQuuuueeeerrrryyyy(((()))) and its associated routines are designed to allow an
application to query the audio file library for information about its
supported features. These features include such things as the names,
descriptions, labels, default values, ID counts, and implementation
status of the instrument parameters, file formats, compression algorithms
and parameters, and miscellaneous chunks read from and stored into
headers. Which routine should be used depends on the data type of the
Parameters associated with the various file formats supported by the
library. _a_r_g_1 may be one of the following:
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____LLLLAAAABBBBEEEELLLL Request a 4-character label for the format,
e.g., "aiff"
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____NNNNAAAAMMMMEEEE Request a short name for the format, e.g.,
"MS RIFF WAVE"
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____DDDDEEEESSSSCCCC Request a longer, more descriptive name for
the format, e.g., "Audio Interchange File
Format"
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTEEEEDDDD Request a boolean value; 1 if format is
implemented for read/write in the Audio File
Library, otherwise 0.
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____IIIIDDDD____CCCCOOOOUUUUNNNNTTTT Request the total number of formats
currently implemented
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____IIIIDDDDSSSS Request an integer array of the implemented
format id token values
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____CCCCOOOOMMMMPPPPRRRREEEESSSSSSSSIIIIOOOONNNN____TTTTYYYYPPPPEEEESSSS Used with selector AAAAFFFF____QQQQUUUUEEEERRRRYYYY____VVVVAAAALLLLUUUUEEEE____CCCCOOOOUUUUNNNNTTTT in
_a_r_g_2, it returns a long integer containing
the number of compression schemes supported
by the format in _a_r_g_3. Used with selector
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____VVVVAAAALLLLUUUUEEEESSSS, it returns a pointer to an
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____SSSSAAAAMMMMPPPPLLLLEEEE____FFFFOOOORRRRMMMMAAAATTTTSSSS Used with selector in AAAAFFFF____QQQQUUUUEEEERRRRYYYY____DDDDEEEEFFFFAAAAUUUULLLLTTTT in
_a_r_g_2, it returns the default sample format
for the format specified in _a_r_g_3.
AAAAFFFF____QQQQUUUUEEEERRRRYYYY____SSSSAAAAMMMMPPPPLLLLEEEE____SSSSIIIIZZZZEEEESSSS Used with selector AAAAFFFF____QQQQUUUUEEEERRRRYYYY____DDDDEEEEFFFFAAAAUUUULLLLTTTT in _a_r_g_2,