afQuery(3) ========== NAME ---- afQuery, afQueryLong, afQueryDouble, afQueryPointer - query the capabilities of the Audio File Library SYNOPSIS -------- #include AUpvlist afQuery (int querytype, int arg1, int arg2, int arg3, int arg4); long afQueryLong (int querytype, int arg1, int arg2, int arg3, int arg4); double afQueryDouble (int querytype, int arg1, int arg2, int arg3, int arg4); void *afQueryPointer (int querytype, int arg1, int arg2, int arg3, int arg4); PARAMETERS ---------- 'querytype' can be one of the following: * `AF_QUERYTYPE_FILEFMT` * `AF_QUERYTYPE_INST` * `AF_QUERYTYPE_INSTPARAM` * `AF_QUERYTYPE_COMPRESSION` * `AF_QUERYTYPE_COMPRESSIONPARAM` * `AF_QUERYTYPE_MISC` * `AF_QUERYTYPE_MARK` * `AF_QUERYTYPE_LOOP` 'arg1', 'arg2', 'arg3', and 'arg4' are integer selectors whose meaning depends upon 'querytype'. RETURN VALUE ------------ Upon success, `afQuery` will return a non-null `AUpvlist` value. Upon failure, `afQuery` will return null while `afQueryLong` and `afQueryDouble` will return -1 and `afQueryPointer` will return null. Pointers representing character strings are owned by the Audio File Library and must not be freed; all other pointer values must be freed by the caller. DESCRIPTION ----------- For `AF_QUERYTYPE_FILEFMT`, the following selectors are valid values for 'arg1': `AF_QUERY_LABEL`:: Request a short label string for the format (e.g., "aiff"). `AF_QUERY_NAME`:: Request a short name for the format (e.g., "MS RIFF WAVE"). `AF_QUERY_DESC`:: Request a descriptive name for the format (e.g., "Audio Interchange File Format"). `AF_QUERY_IMPLEMENTED`:: Request a boolean value indicating whether the format is implemented for reading and writing in the Audio File Library. `AF_QUERY_ID_COUNT`:: Request the total number of formats implemented. `AF_QUERY_IDS`:: Request an integer array of the id token values of all implemented file formats. `AF_QUERY_COMPRESSION_TYPES`:: Used with the selector AF_QUERY_VALUE_COUNT in 'arg2', this will return a long integer containing the number of compression schemes available for use within the format specified in 'arg3'. Used with selector `AF_QUERY_VALUES`, it returns a pointer to an integer array containing the compression id values of the compression schemes supported by the format specified in 'arg3'. `AF_QUERY_SAMPLE_FORMATS`:: Used with the selector AF_QUERY_DEFAULT in 'arg2', this will return the default sample format for the file format specified in 'arg3'. `AF_QUERY_SAMPLE_SIZES`:: Used with selector AF_QUERY_DEFAULT in 'arg2', this will return the default sample width for the file format specified in 'arg3'. For `AF_QUERYTYPE_INST`, the following selectors are valid for 'arg1': `AF_QUERY_SUPPORTED`:: Request a boolean value indicating whether the file format in 'arg2' supports instruments. `AF_QUERY_MAX_NUMBER`:: Request an integer value indicating the maximum number of instruments supported by the file format in 'arg2'. For `AF_QUERYTYPE_INSTPARAM`, the following selectors are valid for 'arg1': `AF_QUERY_SUPPORTED`:: Request a boolean value indicating whether the file format in 'arg2' supports instrument parameters. `AF_QUERY_ID_COUNT`:: Request an integer value indicating the number of instrument parameters supported by the file format in 'arg2'. `AF_QUERY_IDS`:: Request an integer array containing the instrument parameter values for the file format in 'arg2'. `AF_QUERY_TYPE`:: For the file format in 'arg2', request the type of the instrument parameter in 'arg3'. `AF_QUERY_NAME`:: For the file format in 'arg2', request the name of the instrument parameter in 'arg3'. `AF_QUERY_DEFAULT`:: For the file format in 'arg2', request the default value of the instrument parameter in 'arg3'. ERRORS ------ afQuery can produce the following errors: `AF_BAD_QUERYTYPE`:: The query type is unsupported. `AF_BAD_QUERY`:: The arguments to the query are bad. AUTHOR ------ Michael Pruett