'\" t
.\" Title: afQuery
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets v1.76.1
.\" Date: 03/06/2013
.\" Manual: \ \&
.\" Source: Audio File Library 0.3.6
.\" Language: English
.\"
.TH "AFQUERY" "3" "03/06/2013" "Audio File Library 0\&.3\&.6" "\ \&"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
afQuery, afQueryLong, afQueryDouble, afQueryPointer \- query the capabilities of the Audio File Library
.SH "SYNOPSIS"
.sp
.nf
#include
.fi
.sp
.nf
AUpvlist afQuery (int querytype, int arg1, int arg2, int arg3, int arg4);
.fi
.sp
.nf
long afQueryLong (int querytype, int arg1, int arg2, int arg3, int arg4);
.fi
.sp
.nf
double afQueryDouble (int querytype, int arg1, int arg2, int arg3,
int arg4);
.fi
.sp
.nf
void *afQueryPointer (int querytype, int arg1, int arg2, int arg3,
int arg4);
.fi
.SH "PARAMETERS"
.sp
\fIquerytype\fR can be one of the following:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_FILEFMT
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_INST
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_INSTPARAM
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_COMPRESSION
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_COMPRESSIONPARAM
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_MISC
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_MARK
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
AF_QUERYTYPE_LOOP
.RE
.sp
\fIarg1\fR, \fIarg2\fR, \fIarg3\fR, and \fIarg4\fR are integer selectors whose meaning depends upon \fIquerytype\fR\&.
.SH "RETURN VALUE"
.sp
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\&.
.sp
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\&.
.SH "DESCRIPTION"
.sp
For AF_QUERYTYPE_FILEFMT, the following selectors are valid values for \fIarg1\fR:
.PP
AF_QUERY_LABEL
.RS 4
Request a short label string for the format (e\&.g\&., "aiff")\&.
.RE
.PP
AF_QUERY_NAME
.RS 4
Request a short name for the format (e\&.g\&., "MS RIFF WAVE")\&.
.RE
.PP
AF_QUERY_DESC
.RS 4
Request a descriptive name for the format (e\&.g\&., "Audio Interchange File Format")\&.
.RE
.PP
AF_QUERY_IMPLEMENTED
.RS 4
Request a boolean value indicating whether the format is implemented for reading and writing in the Audio File Library\&.
.RE
.PP
AF_QUERY_ID_COUNT
.RS 4
Request the total number of formats implemented\&.
.RE
.PP
AF_QUERY_IDS
.RS 4
Request an integer array of the id token values of all implemented file formats\&.
.RE
.PP
AF_QUERY_COMPRESSION_TYPES
.RS 4
Used with the selector AF_QUERY_VALUE_COUNT in
\fIarg2\fR, this will return a long integer containing the number of compression schemes available for use within the format specified in
\fIarg3\fR\&. 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
\fIarg3\fR\&.
.RE
.PP
AF_QUERY_SAMPLE_FORMATS
.RS 4
Used with the selector AF_QUERY_DEFAULT in
\fIarg2\fR, this will return the default sample format for the file format specified in
\fIarg3\fR\&.
.RE
.PP
AF_QUERY_SAMPLE_SIZES
.RS 4
Used with selector AF_QUERY_DEFAULT in
\fIarg2\fR, this will return the default sample width for the file format specified in
\fIarg3\fR\&.
.RE
.sp
For AF_QUERYTYPE_INST, the following selectors are valid for \fIarg1\fR:
.PP
AF_QUERY_SUPPORTED
.RS 4
Request a boolean value indicating whether the file format in
\fIarg2\fR
supports instruments\&.
.RE
.PP
AF_QUERY_MAX_NUMBER
.RS 4
Request an integer value indicating the maximum number of instruments supported by the file format in
\fIarg2\fR\&.
.RE
.sp
For AF_QUERYTYPE_INSTPARAM, the following selectors are valid for \fIarg1\fR:
.PP
AF_QUERY_SUPPORTED
.RS 4
Request a boolean value indicating whether the file format in
\fIarg2\fR
supports instrument parameters\&.
.RE
.PP
AF_QUERY_ID_COUNT
.RS 4
Request an integer value indicating the number of instrument parameters supported by the file format in
\fIarg2\fR\&.
.RE
.PP
AF_QUERY_IDS
.RS 4
Request an integer array containing the instrument parameter values for the file format in
\fIarg2\fR\&.
.RE
.PP
AF_QUERY_TYPE
.RS 4
For the file format in
\fIarg2\fR, request the type of the instrument parameter in
\fIarg3\fR\&.
.RE
.PP
AF_QUERY_NAME
.RS 4
For the file format in
\fIarg2\fR, request the name of the instrument parameter in
\fIarg3\fR\&.
.RE
.PP
AF_QUERY_DEFAULT
.RS 4
For the file format in
\fIarg2\fR, request the default value of the instrument parameter in
\fIarg3\fR\&.
.RE
.SH "ERRORS"
.sp
afQuery can produce the following errors:
.PP
AF_BAD_QUERYTYPE
.RS 4
The query type is unsupported\&.
.RE
.PP
AF_BAD_QUERY
.RS 4
The arguments to the query are bad\&.
.RE
.SH "AUTHOR"
.sp
Michael Pruett