mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-25 16:48:44 +02:00
92 lines
5.6 KiB
HTML
92 lines
5.6 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.8"/>
|
|
<title>FLAC: Porting Guide for New Versions</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td style="padding-left: 0.5em;">
|
|
<div id="projectname">FLAC
|
|
 <span id="projectnumber">1.3.1</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.8 -->
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#groups">Modules</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">Porting Guide for New Versions</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
|
|
Modules</h2></td></tr>
|
|
<tr class="memitem:group__porting__1__1__2__to__1__1__3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__porting__1__1__2__to__1__1__3.html">Porting from FLAC 1.1.2 to 1.1.3</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:group__porting__1__1__3__to__1__1__4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__porting__1__1__3__to__1__1__4.html">Porting from FLAC 1.1.3 to 1.1.4</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:group__porting__1__1__4__to__1__2__0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__porting__1__1__4__to__1__2__0.html">Porting from FLAC 1.1.4 to 1.2.0</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<p>This module describes differences in the library interfaces from version to version. It assists in the porting of code that uses the libraries to newer versions of FLAC.</p>
|
|
<p>One simple facility for making porting easier that has been added in FLAC 1.1.3 is a set of <code>#defines</code> in <code>export.h</code> of each library's includes (e.g. <code><a class="el" href="export_8h.html" title="This module contains #defines and symbols for exporting function calls, and providing version informa...">include/FLAC/export.h</a></code>). The <code>#defines</code> mirror the libraries' <a href="http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning">libtool version numbers</a>, e.g. in libFLAC there are <code>FLAC_API_VERSION_CURRENT</code>, <code>FLAC_API_VERSION_REVISION</code>, and <code>FLAC_API_VERSION_AGE</code>. These can be used to support multiple versions of an API during the transition phase, e.g.</p>
|
|
<div class="fragment"><div class="line"><span class="preprocessor">#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7</span></div>
|
|
<div class="line"> legacy code</div>
|
|
<div class="line"><span class="preprocessor">#else</span></div>
|
|
<div class="line"> <span class="keyword">new</span> code</div>
|
|
<div class="line"><span class="preprocessor">#endif</span></div>
|
|
</div><!-- fragment --><p>The the source will work for multiple versions and the legacy code can easily be removed when the transition is complete.</p>
|
|
<p>Another available symbol is FLAC_API_SUPPORTS_OGG_FLAC (defined in <a class="el" href="export_8h.html" title="This module contains #defines and symbols for exporting function calls, and providing version informa...">include/FLAC/export.h</a>), which can be used to determine whether or not the library has been compiled with support for Ogg FLAC. This is simpler than trying to call an Ogg init function and catching the error. </p>
|
|
</div><!-- contents -->
|
|
|
|
<hr size="1">
|
|
<div class="copyright">
|
|
<!-- @@@ oh so hacky -->
|
|
<table>
|
|
<tr>
|
|
<td align="left">
|
|
Copyright (c) 2000-2009 Josh Coalson
|
|
Copyright (c) 2011-2014 Xiph.Org Foundation
|
|
</td>
|
|
<td width="1%" align="right">
|
|
<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=13478&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<!-- Copyright (c) 2000-2009 Josh Coalson -->
|
|
<!-- Copyright (c) 2011-2014 Xiph.Org Foundation -->
|
|
<!-- Permission is granted to copy, distribute and/or modify this document -->
|
|
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
|
|
<!-- or any later version published by the Free Software Foundation; -->
|
|
<!-- with no invariant sections. -->
|
|
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
|
|
</body>
|
|
</html>
|