/ VST Home / Technical Documentation

[3.6.0] Preset Meta-Information

On this page:


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 MyPluginProcessor::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;