VST 3 Interfaces: IStreamAttributes Class Reference
Author: Steinberg

VST 3 Interfaces VST 3.7 SDK for developing VST plug-in

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Public Member Functions | Static Public Attributes | List of all members
IStreamAttributes Class Referenceabstract

Meta attributes of a stream: Vst::IStreamAttributes. More...

`#include <ivstattributes.h>`

Inheritance diagram for IStreamAttributes:

## Public Member Functions
virtual tresult | getFileName (String128 name)=0
| Gets filename (without file extension) of the stream.
virtual IAttributeList * | getAttributes ()=0
| Gets meta information list.
Public Member Functions inherited from FUnknown
virtual tresult | queryInterface (const TUID _iid, void **obj)=0
virtual uint32 | addRef ()=0
virtual uint32 | release ()=0

## Static Public Attributes
static const FUID | iid
Static Public Attributes inherited from FUnknown
static const FUID | iid

## Detailed Description

Meta attributes of a stream: Vst::IStreamAttributes.

- [host imp]
- [extends IBStream]
- [released: 3.6.0]
- [optional]

Interface to access preset meta information from stream, used, for example, in setState in order to inform the plug-in about the current context in which the preset loading occurs (Project context or Preset load (see StateType)) or used to get the full file path of the loaded preset (if available).

//------------------------------------------------------------------------
#include "pluginterfaces/base/ustring.h"
#include "pluginterfaces/vst/vstpresetkeys.h"
...
tresult PLUGIN_API MyPlugin::setState (IBStream* state)
{
FUnknownPtr<IStreamAttributes> stream (state);
if (stream)
{
IAttributeList* list = stream->getAttributes ();
if (list)
{
// get the current type (project/Default..) of this state
String128 string;
if (list->getString (PresetAttributes::kStateType, string, 128 * sizeof (TChar)) == kResultTrue)
{
UString128 tmp (string);
char ascii[128];
tmp.toAscii (ascii, 128);
if (!strncmp (ascii, StateType::kProject, strlen (StateType::kProject)))
{
// we are in project loading context...
}
}
// get the full file path of this state
TChar fullPath[1024];
if (list->getString (PresetAttributes::kFilePathStringType, fullPath, 1024 * sizeof (TChar)) == kResultTrue)
{
// here we have the full path ...
}
}
}
//...read the state here.....
return kResultTrue;
}

## Member Function Documentation

virtual tresult getFileName | ( | String128 | name | ) |
| pure virtual

Gets filename (without file extension) of the stream.

virtual IAttributeList* getAttributes | ( |  | ) |
| pure virtual

Gets meta information list.

## Member Data Documentation

const FUID iid
| static

Empty

Copyright ©2022 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.