Initial release

This commit is contained in:
civ
2026-08-16 18:24:52 +07:00
commit 876886a39a
13244 changed files with 2353959 additions and 0 deletions
@@ -0,0 +1,550 @@
<!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>Interface Technology Basics: IAttributes Class Reference</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">Interface Technology Basics<span id="projectnumber">&#160;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&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;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&amp;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&amp;dn=expat.txt MIT */
$(function(){initNavTree('classSteinberg_1_1IAttributes.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 class="header">
<div class="summary">
<a href="classSteinberg_1_1IAttributes-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">IAttributes Class Reference<span class="mlabels"><span class="mlabel abstract">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Object Data Archive Interface.
<a href="#details">More...</a></p>
<p><code>#include &lt;ipersistent.h&gt;</code></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for IAttributes:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classSteinberg_1_1IAttributes__inherit__graph.png" border="0" usemap="#aIAttributes_inherit__map" alt="Inheritance graph"/></div>
<map name="aIAttributes_inherit__map" id="aIAttributes_inherit__map">
<area shape="rect" title="Object Data Archive Interface." alt="" coords="5,155,146,470"/>
<area shape="rect" href="classSteinberg_1_1IAttributes2.html" title="Extended access to Attributes; supports Attribute retrieval via iteration." alt="" coords="20,518,132,601"/>
<area shape="poly" title=" " alt="" coords="78,485,78,518,73,518,73,485"/>
<area shape="rect" href="classSteinberg_1_1FUnknown.html" title="The basic interface of all interfaces." alt="" coords="21,5,130,107"/>
<area shape="poly" title=" " alt="" coords="78,122,78,156,73,156,73,122"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods to write attributes</div></td></tr>
<tr class="memitem:a1ed9fd6a18bc87466a1b51476c7408e8" id="r_a1ed9fd6a18bc87466a1b51476c7408e8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1ed9fd6a18bc87466a1b51476c7408e8">set</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrID, const <a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;data)=0</td></tr>
<tr class="memdesc:a1ed9fd6a18bc87466a1b51476c7408e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store any data in the archive. <br /></td></tr>
<tr class="separator:a1ed9fd6a18bc87466a1b51476c7408e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c72961487139a9f07d9f78f694ad406" id="r_a1c72961487139a9f07d9f78f694ad406"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1c72961487139a9f07d9f78f694ad406">queue</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> listID, const <a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;data)=0</td></tr>
<tr class="memdesc:a1c72961487139a9f07d9f78f694ad406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a list of data in the archive. <br /></td></tr>
<tr class="separator:a1c72961487139a9f07d9f78f694ad406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840cf9568441164595e1468258f4fa3f" id="r_a840cf9568441164595e1468258f4fa3f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a840cf9568441164595e1468258f4fa3f">setBinaryData</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrID, void *data, <a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a> bytes, bool copyBytes)=0</td></tr>
<tr class="memdesc:a840cf9568441164595e1468258f4fa3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Store binary data in the archive. <br /></td></tr>
<tr class="separator:a840cf9568441164595e1468258f4fa3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classSteinberg_1_1FUnknown"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classSteinberg_1_1FUnknown')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSteinberg_1_1FUnknown.html">FUnknown</a></td></tr>
<tr class="memitem:a4199134d0669bfa92b7419dac14c01a7 inherit pub_methods_classSteinberg_1_1FUnknown" id="r_a4199134d0669bfa92b7419dac14c01a7"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSteinberg_1_1FUnknown.html#a4199134d0669bfa92b7419dac14c01a7">queryInterface</a> (const <a class="el" href="group__pluginBase.html#ga6935af93744bfe4ecc455f274ef1ec36">TUID</a> _iid, void **obj)=0</td></tr>
<tr class="memdesc:a4199134d0669bfa92b7419dac14c01a7 inherit pub_methods_classSteinberg_1_1FUnknown"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query for a pointer to the specified interface. <br /></td></tr>
<tr class="separator:a4199134d0669bfa92b7419dac14c01a7 inherit pub_methods_classSteinberg_1_1FUnknown"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa3c5a2a5410d41153d7f5e3f4e0a635 inherit pub_methods_classSteinberg_1_1FUnknown" id="r_aaa3c5a2a5410d41153d7f5e3f4e0a635"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSteinberg_1_1FUnknown.html#aaa3c5a2a5410d41153d7f5e3f4e0a635">addRef</a> ()=0</td></tr>
<tr class="memdesc:aaa3c5a2a5410d41153d7f5e3f4e0a635 inherit pub_methods_classSteinberg_1_1FUnknown"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a reference and returns the new reference count. <br /></td></tr>
<tr class="separator:aaa3c5a2a5410d41153d7f5e3f4e0a635 inherit pub_methods_classSteinberg_1_1FUnknown"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58847c78bf6142f01ce214c2802cb146 inherit pub_methods_classSteinberg_1_1FUnknown" id="r_a58847c78bf6142f01ce214c2802cb146"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSteinberg_1_1FUnknown.html#a58847c78bf6142f01ce214c2802cb146">release</a> ()=0</td></tr>
<tr class="memdesc:a58847c78bf6142f01ce214c2802cb146 inherit pub_methods_classSteinberg_1_1FUnknown"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases a reference and returns the new reference count. <br /></td></tr>
<tr class="separator:a58847c78bf6142f01ce214c2802cb146 inherit pub_methods_classSteinberg_1_1FUnknown"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader">Methods to read attributes</h2></td></tr>
<tr class="memitem:ae78a44399218c930be44d3aa46521d0e" id="r_ae78a44399218c930be44d3aa46521d0e"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classSteinberg_1_1FUID.html">FUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae78a44399218c930be44d3aa46521d0e">iid</a></td></tr>
<tr class="memdesc:ae78a44399218c930be44d3aa46521d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get data previously stored to the archive. <br /></td></tr>
<tr class="separator:ae78a44399218c930be44d3aa46521d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0acec6253406938017badc88407f7286" id="r_a0acec6253406938017badc88407f7286"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0acec6253406938017badc88407f7286">get</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrID, <a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;data)=0</td></tr>
<tr class="memdesc:a0acec6253406938017badc88407f7286"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get data previously stored to the archive. <br /></td></tr>
<tr class="separator:a0acec6253406938017badc88407f7286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa69fa3df16e665aea80acd34d1b9d568" id="r_aa69fa3df16e665aea80acd34d1b9d568"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa69fa3df16e665aea80acd34d1b9d568">unqueue</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> listID, <a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;data)=0</td></tr>
<tr class="memdesc:aa69fa3df16e665aea80acd34d1b9d568"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get list of data previously stored to the archive. <br /></td></tr>
<tr class="separator:aa69fa3df16e665aea80acd34d1b9d568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ba9fecabcbf74309a19ea33bb11dec8" id="r_a0ba9fecabcbf74309a19ea33bb11dec8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#gab7903878916593daecbeb95b98115ab0">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0ba9fecabcbf74309a19ea33bb11dec8">getQueueItemCount</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrId)=0</td></tr>
<tr class="memdesc:a0ba9fecabcbf74309a19ea33bb11dec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the amount of items in a queue. <br /></td></tr>
<tr class="separator:a0ba9fecabcbf74309a19ea33bb11dec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67a60bd7651f28dd4de2adf8c8d29d7a" id="r_a67a60bd7651f28dd4de2adf8c8d29d7a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a67a60bd7651f28dd4de2adf8c8d29d7a">resetQueue</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrID)=0</td></tr>
<tr class="memdesc:a67a60bd7651f28dd4de2adf8c8d29d7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset a queue. <br /></td></tr>
<tr class="separator:a67a60bd7651f28dd4de2adf8c8d29d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb44c7c95112fe29e5ce46f097fd22b" id="r_a2eb44c7c95112fe29e5ce46f097fd22b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2eb44c7c95112fe29e5ce46f097fd22b">resetAllQueues</a> ()=0</td></tr>
<tr class="memdesc:a2eb44c7c95112fe29e5ce46f097fd22b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset all queues in the archive. <br /></td></tr>
<tr class="separator:a2eb44c7c95112fe29e5ce46f097fd22b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7a9881a0b5640523e30e22ddc54fee6" id="r_ab7a9881a0b5640523e30e22ddc54fee6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab7a9881a0b5640523e30e22ddc54fee6">getBinaryData</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrID, void *data, <a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a> bytes)=0</td></tr>
<tr class="memdesc:ab7a9881a0b5640523e30e22ddc54fee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read binary data from the archive. <br /></td></tr>
<tr class="separator:ab7a9881a0b5640523e30e22ddc54fee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9078f42ca5569497b403014d65e9d7bd" id="r_a9078f42ca5569497b403014d65e9d7bd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9078f42ca5569497b403014d65e9d7bd">getBinaryDataSize</a> (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a> attrID)=0</td></tr>
<tr class="memdesc:a9078f42ca5569497b403014d65e9d7bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size in bytes of binary data in the archive. <br /></td></tr>
<tr class="separator:a9078f42ca5569497b403014d65e9d7bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_attribs_classSteinberg_1_1FUnknown"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_static_attribs_classSteinberg_1_1FUnknown')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classSteinberg_1_1FUnknown.html">FUnknown</a></td></tr>
<tr class="memitem:a07978c93295b03d09c4bc97aa12e9c60 inherit pub_static_attribs_classSteinberg_1_1FUnknown" id="r_a07978c93295b03d09c4bc97aa12e9c60"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classSteinberg_1_1FUID.html">FUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSteinberg_1_1FUnknown.html#a07978c93295b03d09c4bc97aa12e9c60">iid</a></td></tr>
<tr class="separator:a07978c93295b03d09c4bc97aa12e9c60 inherit pub_static_attribs_classSteinberg_1_1FUnknown"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Object Data Archive Interface. </p>
<ul>
<li>[host imp]</li>
<li>store data/objects/binary/subattributes in the archive</li>
<li>read stored data from the archive</li>
</ul>
<p>All data stored to the archive are identified by a string (<a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a>), which must be unique on each IAttribute level.</p>
<p>The basic set/get methods make use of the <a class="el" href="classSteinberg_1_1FVariant.html" title="A Value of variable type.">FVariant</a> class defined in '<a class="el" href="funknown_8h.html">funknown.h</a>'. For a more convenient usage of this interface, you should use the functions defined in namespace PAttributes (public.sdk/source/common/pattributes.h+cpp) !! </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1ed9fd6a18bc87466a1b51476c7408e8" name="a1ed9fd6a18bc87466a1b51476c7408e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ed9fd6a18bc87466a1b51476c7408e8">&#9670;&#160;</a></span>set()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;</td> <td class="paramname"><span class="paramname"><em>data</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store any data in the archive. </p>
<p>It is even possible to store sub-attributes by creating a new <a class="el" href="classSteinberg_1_1IAttributes.html" title="Object Data Archive Interface.">IAttributes</a> instance via the IHostClasses interface and pass it to the parent in the <a class="el" href="classSteinberg_1_1FVariant.html" title="A Value of variable type.">FVariant</a>. In this case the archive must take the ownership of the newly created object, which is true for all objects that have been created only for storing. You tell the archive to take ownership by adding the <a class="el" href="classSteinberg_1_1FVariant.html#a9025e2a9dd7b8f31248782743ad1b4e0a8748a0de195760963cc4a77e6b4c29d0">FVariant::kOwner</a> flag to the <a class="el" href="classSteinberg_1_1FVariant.html#af9b2e23a8f32ca09cfeb7d828436fb01">FVariant::type</a> member (data.type |= <a class="el" href="classSteinberg_1_1FVariant.html#a9025e2a9dd7b8f31248782743ad1b4e0a8748a0de195760963cc4a77e6b4c29d0">FVariant::kOwner</a>). When using the PAttributes functions, this is done through a function parameter. </p>
</div>
</div>
<a id="a1c72961487139a9f07d9f78f694ad406" name="a1c72961487139a9f07d9f78f694ad406"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c72961487139a9f07d9f78f694ad406">&#9670;&#160;</a></span>queue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> queue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>listID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;</td> <td class="paramname"><span class="paramname"><em>data</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store a list of data in the archive. </p>
<p>Please note that the type of data is not mixable! So you can only store a list of integers or a list of doubles/strings/etc. You can also store a list of subattributes or other objects that implement the <a class="el" href="classSteinberg_1_1IPersistent.html" title="Persistent Object Interface.">IPersistent</a> interface. </p>
</div>
</div>
<a id="a840cf9568441164595e1468258f4fa3f" name="a840cf9568441164595e1468258f4fa3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a840cf9568441164595e1468258f4fa3f">&#9670;&#160;</a></span>setBinaryData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> setBinaryData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *</td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a></td> <td class="paramname"><span class="paramname"><em>bytes</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>copyBytes</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Store binary data in the archive. </p>
<p>Parameter 'copyBytes' specifies if the passed data should be copied. The archive cannot take the ownership of binary data. Either it just references a buffer in order to write it to a file (copyBytes = false) or it copies the data to its own buffers (copyBytes = true). When binary data should be stored in the default pool for example, you must always copy it! </p>
</div>
</div>
<a id="a0acec6253406938017badc88407f7286" name="a0acec6253406938017badc88407f7286"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0acec6253406938017badc88407f7286">&#9670;&#160;</a></span>get()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> get </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;</td> <td class="paramname"><span class="paramname"><em>data</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get data previously stored to the archive. </p>
</div>
</div>
<a id="aa69fa3df16e665aea80acd34d1b9d568" name="aa69fa3df16e665aea80acd34d1b9d568"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa69fa3df16e665aea80acd34d1b9d568">&#9670;&#160;</a></span>unqueue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> unqueue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>listID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classSteinberg_1_1FVariant.html">FVariant</a> &amp;</td> <td class="paramname"><span class="paramname"><em>data</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get list of data previously stored to the archive. </p>
<p>As long as there are queue members the method will return kResultTrue. When the queue is empty, the methods returns kResultFalse. All lists except from object lists can be reset which means that the items can be read once again. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="#a67a60bd7651f28dd4de2adf8c8d29d7a" title="Reset a queue.">IAttributes::resetQueue</a> </dd></dl>
</div>
</div>
<a id="a0ba9fecabcbf74309a19ea33bb11dec8" name="a0ba9fecabcbf74309a19ea33bb11dec8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ba9fecabcbf74309a19ea33bb11dec8">&#9670;&#160;</a></span>getQueueItemCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#gab7903878916593daecbeb95b98115ab0">int32</a> getQueueItemCount </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrId</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the amount of items in a queue. </p>
</div>
</div>
<a id="a67a60bd7651f28dd4de2adf8c8d29d7a" name="a67a60bd7651f28dd4de2adf8c8d29d7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67a60bd7651f28dd4de2adf8c8d29d7a">&#9670;&#160;</a></span>resetQueue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> resetQueue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrID</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset a queue. </p>
<p>If you need to restart reading a queue, you have to reset it. You can reset a queue at any time. </p>
</div>
</div>
<a id="a2eb44c7c95112fe29e5ce46f097fd22b" name="a2eb44c7c95112fe29e5ce46f097fd22b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2eb44c7c95112fe29e5ce46f097fd22b">&#9670;&#160;</a></span>resetAllQueues()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> resetAllQueues </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset all queues in the archive. </p>
</div>
</div>
<a id="ab7a9881a0b5640523e30e22ddc54fee6" name="ab7a9881a0b5640523e30e22ddc54fee6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7a9881a0b5640523e30e22ddc54fee6">&#9670;&#160;</a></span>getBinaryData()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#ga902761e005a6252e538c766de48fc957">tresult</a> getBinaryData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *</td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a></td> <td class="paramname"><span class="paramname"><em>bytes</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read binary data from the archive. </p>
<p>The data is copied into the passed buffer. The size of that buffer must fit the size of data stored in the archive which can be queried via <a class="el" href="#a9078f42ca5569497b403014d65e9d7bd" title="Get the size in bytes of binary data in the archive.">IAttributes::getBinaryDataSize</a> </p>
</div>
</div>
<a id="a9078f42ca5569497b403014d65e9d7bd" name="a9078f42ca5569497b403014d65e9d7bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9078f42ca5569497b403014d65e9d7bd">&#9670;&#160;</a></span>getBinaryDataSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="group__smtgtypedef.html#gacbd4acd0d29e2d6c43104827f77d9cd2">uint32</a> getBinaryDataSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__smtgtypedef.html#gae6eacc17e4382538d4af0d9993bc869a">IAttrID</a></td> <td class="paramname"><span class="paramname"><em>attrID</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the size in bytes of binary data in the archive. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ae78a44399218c930be44d3aa46521d0e" name="ae78a44399218c930be44d3aa46521d0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae78a44399218c930be44d3aa46521d0e">&#9670;&#160;</a></span>iid</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classSteinberg_1_1FUID.html">FUID</a> iid</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel static">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get data previously stored to the archive. </p>
</div>
</div>
</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 &copy;<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>