VST 3 Interfaces: IProgress Class Reference
Author: Steinberg

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

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
IProgress Class Referenceabstract

Extended host callback interface for an edit controller: Vst::IProgress. More...

`#include <ivsteditcontroller.h>`

Inheritance diagram for IProgress:

## Public Types
enum | ProgressType : uint32 { AsyncStateRestoration = 0 , UIBackgroundTask }
using | ID = uint64

## Public Member Functions
virtual tresult | start (ProgressType type, const char *optionalDescription, ID &outID)=0
| Start a new progress of a given type and optional Description.
virtual tresult | update (ID id, ParamValue normValue)=0
| Update the progress value (normValue between [0, 1]) associated to the given id.
virtual tresult | finish (ID id)=0
| Finish the progress associated to the given id.
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

Extended host callback interface for an edit controller: Vst::IProgress.

- [host imp]
- [extends IComponentHandler]
- [released: 3.7.0]
- [optional]

Allows the plug-in to request the host to create a progress for some specific tasks which take some time. The host can visualize the progress as read-only UI elements. For example, after loading a project where a plug-in needs to load extra data (e.g. samples) in a background thread, this enables the host to get and visualize the current status of the loading progress and to inform the user when the loading is finished. Note: During the progress, the host can unload the plug-in at any time. Make sure that the plug-in supports this use case.

# Example

//--------------------------------------
// we are in the editcontroller:
// as member: IProgress::ID mProgressID;
FUnknownPtr<IProgress> progress (componentHandler);
if (progress)
progress->start (IProgress::ProgressType::UIBackgroundTask, STR ("Load Samples..."),
mProgressID);
// ...
myProgressValue += incProgressStep;
FUnknownPtr<IProgress> progress (componentHandler);
if (progress)
progress->update (mProgressID, myProgressValue);
// ...
FUnknownPtr<IProgress> progress (componentHandler);
if (progress)
progress->finish (mProgressID);
Steinberg::FUnknownPtr
Steinberg::Vst::IProgress::UIBackgroundTask
@ UIBackgroundTask
a plug-in task triggered by a UI action
Definition ivsteditcontroller.h:432
STR
#define STR(x)

See also
  IComponentHandler

## Member Typedef Documentation

## ◆ ID

using ID = uint64

## Member Enumeration Documentation

## ◆ ProgressType

enum ProgressType : uint32

Enumerator
AsyncStateRestoration | plug-in state is restored async (in a background Thread)
UIBackgroundTask | a plug-in task triggered by a UI action

## Member Function Documentation

## ◆ start()

virtual tresult start | ( | ProgressType | type,
|  | const char * | optionalDescription,
|  | ID & | outID )
| pure virtual

Start a new progress of a given type and optional Description.

outID is as ID created by the host to identify this newly created progress (for update and finish method).

Note
  [UI-thread & Connected]

## ◆ update()

virtual tresult update | ( | ID | id,
|  | ParamValue | normValue )
| pure virtual

Update the progress value (normValue between [0, 1]) associated to the given id.

Note
  [UI-thread & Connected]

## ◆ finish()

virtual tresult finish | ( | ID | id | ) |
| pure virtual

Finish the progress associated to the given id.

Note
  [UI-thread & Connected]

## Member Data Documentation

## ◆ iid

const FUID iid
| static

Empty

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