204 lines
9.8 KiB
HTML
204 lines
9.8 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Base Module: Base Module</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>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="smtg_extra.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 id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">Base Module<span id="projectnumber"> VST 3.8</span>
|
|
</div>
|
|
<div id="projectbrief">SDK for developing VST plug-in</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('index.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div><div class="header">
|
|
<div class="headertitle"><div class="title">Base Module </div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="toc"><h3>Table of Contents</h3>
|
|
<ul>
|
|
<li class="level1">
|
|
<a href="#baseIntro">Introduction</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#baseString">Strings</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#baseIPtr">IPtr Smart Pointer</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#baseFObject">Steinberg::FObject</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#baseDependencies">Dependencies</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#basefdebug_h">Debugging</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#baseOtherUsefulClasses">Also useful</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="textblock"><h1><a class="anchor" id="baseIntro"></a>
|
|
Introduction</h1>
|
|
<p>Base contains many useful classes, such as templates and containers that are also used internally by <a href="http://www.steinberg.net" target="_blank">Steinberg</a>, but may also well fit for the quick deployment of your own plug-ins. <br />
|
|
However, this is just an option, you can of course also write your own classes or employ other frameworks. <br />
|
|
Most prominent and useful are the <a class="el" href="classSteinberg_1_1String.html" title="String.">Steinberg::String</a> and <a class="el" href="classSteinberg_1_1ConstString.html" title="Invariant String.">Steinberg::ConstString</a> classes, since they provide Unicode support and can be universally used on both Mac and Win, so you're encouraged to utilize them throughout your plug-in development.</p>
|
|
<h1><a class="anchor" id="baseString"></a>
|
|
Strings</h1>
|
|
<ul>
|
|
<li><a class="el" href="classSteinberg_1_1ConstString.html" title="Invariant String.">Steinberg::ConstString</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1String.html" title="String.">Steinberg::String</a></li>
|
|
</ul>
|
|
<h1><a class="anchor" id="baseIPtr"></a>
|
|
IPtr Smart Pointer</h1>
|
|
<ul>
|
|
<li>Steinberg::IPtr is a new smart pointer intended to be used with any class derived from Steinberg::FUnknown.</li>
|
|
<li>It can be used in template containers and is the base class for Steinberg::FUnknownPtr. <br />
|
|
</li>
|
|
<li>Steinberg::IPtr does not do a queryInterface like Steinberg::FUnknownPtr does.</li>
|
|
<li>Steinberg::OPtr is the 'owning' variant of Steinberg::IPtr and does not increment the reference counter on assignment, only on destruction</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="baseFObject"></a>
|
|
Steinberg::FObject</h1>
|
|
<ul>
|
|
<li>Defines and implements all basic Steinberg::FUnknown methods and some more stuff that works inside of the base module.</li>
|
|
<li>Pointer casting is done via the template methods <a class="el" href="namespaceSteinberg.html#aaa99ecbd430edfff1c6f13067b6445c1" title="FCast overload 1 - FObject to FObject.">Steinberg::FCast()</a>. There are overloads - one casting <a class="el" href="classSteinberg_1_1FObject.html" title="Implements FUnknown and IDependent.">Steinberg::FObject</a>'s and one casting Steinberg::FUnknown's.</li>
|
|
<li><a class="el" href="namespaceSteinberg_1_1Singleton.html" title="Automatic creation and destruction of singleton instances.">Steinberg::Singleton</a> <a class="el" href="classSteinberg_1_1FObject.html" title="Implements FUnknown and IDependent.">Steinberg::FObject</a> supports a new conception for <a class="el" href="namespaceSteinberg_1_1Singleton.html">Singleton</a> singletons. These objects are automatically deleted on program termination. <br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="baseDependencies"></a>
|
|
Dependencies</h1>
|
|
<p>The dependency concept can be considered as a observer pattern implementation. </p><dl class="section see"><dt>See also</dt><dd><ul>
|
|
<li><a class="el" href="classSteinberg_1_1FObject.html" title="Implements FUnknown and IDependent.">Steinberg::FObject</a></li>
|
|
<li>Steinberg::IDependent</li>
|
|
<li><a class="el" href="classSteinberg_1_1UpdateHandler.html" title="UpdateHandler implements IUpdateManager and IUpdateHandler to handle dependencies between objects to ...">Steinberg::UpdateHandler</a></li>
|
|
</ul>
|
|
</dd></dl>
|
|
<h1><a class="anchor" id="basefdebug_h"></a>
|
|
Debugging</h1>
|
|
<ul>
|
|
<li>See <a class="el" href="fdebug_8h.html" title="Debugging tools.">base/source/fdebug.h</a> for <a class="el" href="fdebug_8h.html#afe9433f0fc5b657a2f73863c413d8690" title="if DEVELOPMENT is not set, these macros will do nothing.">SMTG_ASSERT()</a> macros and other debugging tools.</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="baseOtherUsefulClasses"></a>
|
|
Also useful</h1>
|
|
<ul>
|
|
<li><a class="el" href="classSteinberg_1_1FStreamer.html" title="Byteorder-aware base class for typed stream i/o.">Steinberg::FStreamer</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Buffer.html" title="Buffer.">Steinberg::Buffer</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1FDynLibrary.html" title="Platform independent dynamic library loader.">Steinberg::FDynLibrary</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Timer.html" title="Timer is a class that allows you to receive triggers at regular intervals.">Steinberg::Timer</a></li>
|
|
<li><a class="el" href="namespaceSteinberg_1_1CommandLine.html" title="Very simple command-line parser.">Steinberg::CommandLine</a></li>
|
|
<li>Platform defines (fplatform.h)</li>
|
|
<li>Basic Types (ftypes.h)</li>
|
|
<li>Standard Methods Macros (<a class="el" href="fstdmethods_8h.html" title="Convenient macros to create setter and getter methods.">fstdmethods.h</a>) </li>
|
|
</ul>
|
|
</div></div><!-- PageDoc -->
|
|
<a href="doxygen_crawl.html"></a>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<html>
|
|
<head>
|
|
<title>Empty</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="Author" content="Steinberg">
|
|
</head>
|
|
<body>
|
|
<br/>
|
|
<hr width="100%" size="2" align="left" />
|
|
<div align=right>
|
|
Copyright ©<span id="year"></span> <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies GmbH</u></a>.
|
|
All Rights Reserved. This documentation is under this <a href="http://www.steinberg.net/sdklicenses" target="_blank"><u>license</u></a>.
|
|
</div>
|
|
<script>
|
|
document.querySelector("#year").textContent = new Date().getFullYear();
|
|
</script>
|
|
</body>
|
|
</html>
|