blob: 948142b9af55d0ae8b1c74187de23c2cb5e945b7 [file] [log] [blame]
Josh Coalson26560dd2001-02-08 00:38:41 +00001/* libFLAC - Free Lossless Audio Codec library
Josh Coalson305ae2e2002-01-26 17:36:39 +00002 * Copyright (C) 2000,2001,2002 Josh Coalson
Josh Coalsonbb7f6b92000-12-10 04:09:52 +00003 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20#ifndef FLAC__ALL_H
21#define FLAC__ALL_H
22
Josh Coalson1b689822001-05-31 20:11:02 +000023#include "assert.h"
Josh Coalsonbb7f6b92000-12-10 04:09:52 +000024#include "file_decoder.h"
Josh Coalsondc86ea92001-04-13 18:53:59 +000025#include "format.h"
Josh Coalson36432f42002-05-04 17:33:51 +000026#include "metadata.h"
Josh Coalsonbb7f6b92000-12-10 04:09:52 +000027#include "ordinals.h"
Josh Coalsondbd84c42001-11-08 23:59:22 +000028#include "seekable_stream_decoder.h"
Josh Coalsonbb7f6b92000-12-10 04:09:52 +000029#include "stream_decoder.h"
Josh Coalson0a15c142001-06-13 17:59:57 +000030#include "stream_encoder.h"
Josh Coalsonbb7f6b92000-12-10 04:09:52 +000031
Josh Coalson0e252ba2002-07-12 05:42:04 +000032/** \mainpage
33 *
Josh Coalson5cc58df2002-07-24 06:15:56 +000034 * \section intro Introduction
Josh Coalson0e252ba2002-07-12 05:42:04 +000035 *
36 * This is the documentation for the FLAC C and C++ APIs. It is
37 * highly interconnected; this introduction should give you a top
38 * level idea of the structure and how to find the information you
39 * need. As a prerequisite you should have at least a basic
Josh Coalson0b9ebc32002-07-16 16:14:17 +000040 * knowledge of the FLAC format, documented
41 * <A HREF="../format.html">here</A>.
Josh Coalson0e252ba2002-07-12 05:42:04 +000042 *
Josh Coalson5cc58df2002-07-24 06:15:56 +000043 * \section c_api FLAC C API
44 *
Josh Coalson0e252ba2002-07-12 05:42:04 +000045 * The FLAC C API is the interface to libFLAC, a set of structures
46 * describing the components of FLAC streams, and functions for
47 * encoding and decoding streams, as well as manipulating FLAC
48 * metadata in files. The public include files will be installed
Josh Coalsonf31f5542002-07-15 05:26:50 +000049 * in your include area as <include>/FLAC/...
Josh Coalson0e252ba2002-07-12 05:42:04 +000050 *
Josh Coalson5cc58df2002-07-24 06:15:56 +000051 * By writing a little code and linking against libFLAC, it is
52 * relatively easy to add FLAC support to another program. The
53 * library is licensed under the
54 * <A HREF="http://www.gnu.org/copyleft/lesser.html">LGPL</A>.
55 * Complete source code of libFLAC as well as the command-line
56 * encoder and plugins is available and is a useful source of
57 * examples.
58 *
59 * libFLAC usually only requires the standard C library and C math
60 * library. In particular, threading is not used so there is no
61 * dependency on a thread library. However, libFLAC does not use
62 * global variables and should be thread-safe.
63 *
64 * \section cpp_api FLAC C API
65 *
Josh Coalson0e252ba2002-07-12 05:42:04 +000066 * The FLAC C++ API is a set of classes that encapsulate the
67 * structures and functions in libFLAC. They provide slightly more
68 * functionality with respect to metadata but are otherwise
69 * equivalent. For the most part, they share the same usage as
70 * their counterparts in libFLAC, and the FLAC C API documentation
71 * can be used as a supplement. The public include files
72 * for the C++ API will be installed in your include area as
Josh Coalsonf31f5542002-07-15 05:26:50 +000073 * <include>/FLAC++/...
Josh Coalson0e252ba2002-07-12 05:42:04 +000074 *
Josh Coalson5cc58df2002-07-24 06:15:56 +000075 * libFLAC++ is also licensed under the
76 * <A HREF="http://www.gnu.org/copyleft/lesser.html">LGPL</A>.
77 *
78 * \section getting_started Getting Started
79 *
Josh Coalson0e252ba2002-07-12 05:42:04 +000080 * A good starting point for learning the API is to browse through
Josh Coalson0b9ebc32002-07-16 16:14:17 +000081 * the <A HREF="modules.html">modules</A>. Modules are logical
82 * groupings of related functions or classes, which correspond roughly
83 * to header files or sections of header files. Each module includes a
84 * detailed description of the general usage of its functions or
85 * classes.
Josh Coalson0e252ba2002-07-12 05:42:04 +000086 *
87 * From there you can go on to look at the documentation of
88 * individual functions. You can see different views of the individual
89 * functions through the links in top bar across this page.
90 */
91
Josh Coalson889598d2002-07-10 07:14:49 +000092/** \defgroup flac FLAC C API
Josh Coalson0e252ba2002-07-12 05:42:04 +000093 *
94 * The FLAC C API is the interface to libFLAC, a set of structures
95 * describing the components of FLAC streams, and functions for
96 * encoding and decoding streams, as well as manipulating FLAC
97 * metadata in files.
98 *
Josh Coalson0b9ebc32002-07-16 16:14:17 +000099 * You should start with the format components as all other modules
Josh Coalson0e252ba2002-07-12 05:42:04 +0000100 * are dependent on it.
Josh Coalson889598d2002-07-10 07:14:49 +0000101 */
102
Josh Coalsonbb7f6b92000-12-10 04:09:52 +0000103#endif