JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
ipersistent.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2// Project : SDK Core
3//
4// Category : SDK Core Interfaces
5// Filename : pluginterfaces/base/ipersistent.h
6// Created by : Steinberg, 09/2004
7// Description : Plug-In Storage Interfaces
8//
9//-----------------------------------------------------------------------------
10// This file is part of a Steinberg SDK. It is subject to the license terms
11// in the LICENSE file found in the top-level directory of this distribution
12// and at www.steinberg.net/sdklicenses.
13// No part of the SDK, including this file, may be copied, modified, propagated,
14// or distributed except according to the terms contained in the LICENSE file.
15//-----------------------------------------------------------------------------
16
17#pragma once
18
20
21namespace Steinberg {
22
23class FVariant;
24class IAttributes;
25//------------------------------------------------------------------------
44class IPersistent: public FUnknown
45{
46public:
47//------------------------------------------------------------------------
50 virtual tresult PLUGIN_API getClassID (char8* uid) = 0;
52 virtual tresult PLUGIN_API saveAttributes (IAttributes* ) = 0;
54 virtual tresult PLUGIN_API loadAttributes (IAttributes* ) = 0;
55//------------------------------------------------------------------------
56 static const FUID iid;
57};
58
59DECLARE_CLASS_IID (IPersistent, 0xBA1A4637, 0x3C9F46D0, 0xA65DBA0E, 0xB85DA829)
60
61
62typedef FIDString IAttrID;
63//------------------------------------------------------------------------
79class IAttributes: public FUnknown
80{
81public:
82//------------------------------------------------------------------------
92 virtual tresult PLUGIN_API set (IAttrID attrID, const FVariant& data) = 0;
93
97 virtual tresult PLUGIN_API queue (IAttrID listID, const FVariant& data) = 0;
98
103 virtual tresult PLUGIN_API setBinaryData (IAttrID attrID, void* data, uint32 bytes, bool copyBytes) = 0;
105
110 virtual tresult PLUGIN_API get (IAttrID attrID, FVariant& data) = 0;
111
115 virtual tresult PLUGIN_API unqueue (IAttrID listID, FVariant& data) = 0;
116
118 virtual int32 PLUGIN_API getQueueItemCount (IAttrID) = 0;
119
121 virtual tresult PLUGIN_API resetQueue (IAttrID attrID) = 0;
122
124 virtual tresult PLUGIN_API resetAllQueues () = 0;
125
128 virtual tresult PLUGIN_API getBinaryData (IAttrID attrID, void* data, uint32 bytes) = 0;
130 virtual uint32 PLUGIN_API getBinaryDataSize (IAttrID attrID) = 0;
132
133//------------------------------------------------------------------------
134 static const FUID iid;
135};
136
137DECLARE_CLASS_IID (IAttributes, 0xFA1E32F9, 0xCA6D46F5, 0xA982F956, 0xB1191B58)
138
139//------------------------------------------------------------------------
147{
148public:
150 virtual int32 PLUGIN_API countAttributes () const = 0;
152 virtual IAttrID PLUGIN_API getAttributeID (int32 index) const = 0;
153//------------------------------------------------------------------------
154 static const FUID iid;
155};
156
157DECLARE_CLASS_IID (IAttributes2, 0x1382126A, 0xFECA4871, 0x97D52A45, 0xB042AE99)
158
159//------------------------------------------------------------------------
160} // namespace Steinberg
Handling 16 Byte Globally Unique Identifiers.
Definition funknown.h:241
The basic interface of all interfaces.
Definition funknown.h:375
A Value of variable type.
Definition fvariant.h:34
Extended access to Attributes; supports Attribute retrieval via iteration.
virtual IAttrID PLUGIN_API getAttributeID(int32 index) const =0
Returns the attribute's ID for the given index.
virtual int32 PLUGIN_API countAttributes() const =0
Returns the number of existing attributes.
Object Data Archive Interface.
Definition ipersistent.h:80
virtual tresult PLUGIN_API set(IAttrID attrID, const FVariant &data)=0
Store any data in the archive.
virtual int32 PLUGIN_API getQueueItemCount(IAttrID)=0
Get the amount of items in a queue.
virtual tresult PLUGIN_API unqueue(IAttrID listID, FVariant &data)=0
Get list of data previously stored to the archive.
virtual tresult PLUGIN_API getBinaryData(IAttrID attrID, void *data, uint32 bytes)=0
Read binary data from the archive.
virtual tresult PLUGIN_API queue(IAttrID listID, const FVariant &data)=0
Store a list of data in the archive.
virtual tresult PLUGIN_API resetAllQueues()=0
Reset all queues in the archive.
virtual tresult PLUGIN_API resetQueue(IAttrID attrID)=0
Reset a queue.
virtual tresult PLUGIN_API get(IAttrID attrID, FVariant &data)=0
Get data previously stored to the archive.
virtual uint32 PLUGIN_API getBinaryDataSize(IAttrID attrID)=0
Get the size in bytes of binary data in the archive.
virtual tresult PLUGIN_API setBinaryData(IAttrID attrID, void *data, uint32 bytes, bool copyBytes)=0
Store binary data in the archive.
Persistent Object Interface.
Definition ipersistent.h:45
virtual tresult PLUGIN_API getClassID(char8 *uid)=0
The class ID must be a 16 bytes unique id that is used to create the object.
virtual tresult PLUGIN_API saveAttributes(IAttributes *)=0
Store all members/data in the passed IAttributes.
virtual tresult PLUGIN_API loadAttributes(IAttributes *)=0
Restore all members/data from the passed IAttributes.