Josh Coalson | 26560dd | 2001-02-08 00:38:41 +0000 | [diff] [blame] | 1 | /* libFLAC - Free Lossless Audio Codec library |
Josh Coalson | 305ae2e | 2002-01-26 17:36:39 +0000 | [diff] [blame] | 2 | * Copyright (C) 2000,2001,2002 Josh Coalson |
Josh Coalson | bb7f6b9 | 2000-12-10 04:09:52 +0000 | [diff] [blame] | 3 | * |
| 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 Coalson | 1b68982 | 2001-05-31 20:11:02 +0000 | [diff] [blame] | 23 | #include "assert.h" |
Josh Coalson | bb7f6b9 | 2000-12-10 04:09:52 +0000 | [diff] [blame] | 24 | #include "file_decoder.h" |
Josh Coalson | dc86ea9 | 2001-04-13 18:53:59 +0000 | [diff] [blame] | 25 | #include "format.h" |
Josh Coalson | 36432f4 | 2002-05-04 17:33:51 +0000 | [diff] [blame] | 26 | #include "metadata.h" |
Josh Coalson | bb7f6b9 | 2000-12-10 04:09:52 +0000 | [diff] [blame] | 27 | #include "ordinals.h" |
Josh Coalson | dbd84c4 | 2001-11-08 23:59:22 +0000 | [diff] [blame] | 28 | #include "seekable_stream_decoder.h" |
Josh Coalson | bb7f6b9 | 2000-12-10 04:09:52 +0000 | [diff] [blame] | 29 | #include "stream_decoder.h" |
Josh Coalson | 0a15c14 | 2001-06-13 17:59:57 +0000 | [diff] [blame] | 30 | #include "stream_encoder.h" |
Josh Coalson | bb7f6b9 | 2000-12-10 04:09:52 +0000 | [diff] [blame] | 31 | |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 32 | /** \mainpage |
| 33 | * |
Josh Coalson | 5cc58df | 2002-07-24 06:15:56 +0000 | [diff] [blame^] | 34 | * \section intro Introduction |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 35 | * |
| 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 Coalson | 0b9ebc3 | 2002-07-16 16:14:17 +0000 | [diff] [blame] | 40 | * knowledge of the FLAC format, documented |
| 41 | * <A HREF="../format.html">here</A>. |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 42 | * |
Josh Coalson | 5cc58df | 2002-07-24 06:15:56 +0000 | [diff] [blame^] | 43 | * \section c_api FLAC C API |
| 44 | * |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 45 | * 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 Coalson | f31f554 | 2002-07-15 05:26:50 +0000 | [diff] [blame] | 49 | * in your include area as <include>/FLAC/... |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 50 | * |
Josh Coalson | 5cc58df | 2002-07-24 06:15:56 +0000 | [diff] [blame^] | 51 | * 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 Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 66 | * 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 Coalson | f31f554 | 2002-07-15 05:26:50 +0000 | [diff] [blame] | 73 | * <include>/FLAC++/... |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 74 | * |
Josh Coalson | 5cc58df | 2002-07-24 06:15:56 +0000 | [diff] [blame^] | 75 | * 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 Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 80 | * A good starting point for learning the API is to browse through |
Josh Coalson | 0b9ebc3 | 2002-07-16 16:14:17 +0000 | [diff] [blame] | 81 | * 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 Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 86 | * |
| 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 Coalson | 889598d | 2002-07-10 07:14:49 +0000 | [diff] [blame] | 92 | /** \defgroup flac FLAC C API |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 93 | * |
| 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 Coalson | 0b9ebc3 | 2002-07-16 16:14:17 +0000 | [diff] [blame] | 99 | * You should start with the format components as all other modules |
Josh Coalson | 0e252ba | 2002-07-12 05:42:04 +0000 | [diff] [blame] | 100 | * are dependent on it. |
Josh Coalson | 889598d | 2002-07-10 07:14:49 +0000 | [diff] [blame] | 101 | */ |
| 102 | |
Josh Coalson | bb7f6b9 | 2000-12-10 04:09:52 +0000 | [diff] [blame] | 103 | #endif |