VST 3 Interfaces VST 3.7
SDK for developing VST plug-in
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. More...
 
virtual tresult update (ID id, ParamValue normValue)=0
 Update the progress value (normValue between [0, 1]) associated to the given id. More...
 
virtual tresult finish (ID id)=0
 Finish the progress associated to the given id. More...
 
- 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.

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);
See also
IComponentHandler

Member Typedef Documentation

◆ ID

using ID = uint64

Member Enumeration Documentation

◆ ProgressType

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)

◆ update()

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

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

◆ finish()

virtual tresult finish ( ID  id)
pure virtual

Finish the progress associated to the given id.

Member Data Documentation

◆ iid

const FUID iid
static
Empty

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