VST 3 SDK: HostProcessData Class Reference
Author: Steinberg

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

Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
HostProcessData Class Reference
Common Hosting SDK Implementation Helper Classes

Extension of ProcessData. More...

`#include <processdata.h>`

Inheritance diagram for HostProcessData:

## Public Member Functions
| HostProcessData ()=default
virtual | ~HostProcessData () noexcept
bool | prepare (IComponent &component, int32 bufferSamples, int32 _symbolicSampleSize)
| Prepare buffer containers for all busses. More...
void | unprepare ()
| Remove bus buffers. More...
bool | setChannelBuffers (BusDirection dir, int32 busIndex, Sample32 *sampleBuffer)
| Sets one sample buffer for all channels inside a bus. More...
bool | setChannelBuffers64 (BusDirection dir, int32 busIndex, Sample64 *sampleBuffer)
bool | setChannelBuffers (BusDirection dir, int32 busIndex, Sample32 *sampleBuffers[], int32 bufferCount)
| Sets individual sample buffers per channel inside a bus. More...
bool | setChannelBuffers64 (BusDirection dir, int32 busIndex, Sample64 *sampleBuffers[], int32 bufferCount)
bool | setChannelBuffer (BusDirection dir, int32 busIndex, int32 channelIndex, Sample32 *sampleBuffer)
| Sets one sample buffer for a given channel inside a bus. More...
bool | setChannelBuffer64 (BusDirection dir, int32 busIndex, int32 channelIndex, Sample64 *sampleBuffer)
Public Member Functions inherited from ProcessData
| ProcessData ()

## Static Public Attributes
static constexpr uint64 | kAllChannelsSilent

## Protected Member Functions
int32 | createBuffers (IComponent &component, AudioBusBuffers *&buffers, BusDirection dir, int32 bufferSamples)
void | destroyBuffers (AudioBusBuffers *&buffers, int32 &busCount)
bool | checkIfReallocationNeeded (IComponent &component, int32 bufferSamples, int32 _symbolicSampleSize) const
bool | isValidBus (BusDirection dir, int32 busIndex) const

## Protected Attributes
bool | channelBufferOwner {false}

## Additional Inherited Members
Public Attributes inherited from ProcessData
int32 | processMode
int32 | symbolicSampleSize
int32 | numSamples
int32 | numInputs
int32 | numOutputs
AudioBusBuffers * | inputs
AudioBusBuffers * | outputs
IParameterChanges * | inputParameterChanges
IParameterChanges * | outputParameterChanges
IEventList * | inputEvents
IEventList * | outputEvents
ProcessContext * | processContext

## Detailed Description

Extension of ProcessData.

Helps setting up the buffers for the process data structure for a component. When the prepare method is called with bufferSamples != 0 the buffer management is handled by this class. Otherwise the buffers need to be setup explicitly.

## Constructor & Destructor Documentation

## ◆ HostProcessData()

HostProcessData | ( |  | ) |
| default

## ◆ ~HostProcessData()

~HostProcessData | ( |  | ) |
| virtualnoexcept

## Member Function Documentation

## ◆ prepare()

bool prepare | ( | IComponent & | component,
|  | int32 | bufferSamples,
|  | int32 | _symbolicSampleSize
| ) |  |

Prepare buffer containers for all busses.

If bufferSamples is not null buffers will be created.

## ◆ unprepare()

void unprepare | ( |  | ) |

Remove bus buffers.

## ◆ setChannelBuffers() [1/2]

bool setChannelBuffers | ( | BusDirection | dir,
|  | int32 | busIndex,
|  | Sample32 * | sampleBuffer
| ) |  |
| inline

Sets one sample buffer for all channels inside a bus.

## ◆ setChannelBuffers64() [1/2]

bool setChannelBuffers64 | ( | BusDirection | dir,
|  | int32 | busIndex,
|  | Sample64 * | sampleBuffer
| ) |  |
| inline

## ◆ setChannelBuffers() [2/2]

bool setChannelBuffers | ( | BusDirection | dir,
|  | int32 | busIndex,
|  | Sample32 * | sampleBuffers[],
|  | int32 | bufferCount
| ) |  |
| inline

Sets individual sample buffers per channel inside a bus.

## ◆ setChannelBuffers64() [2/2]

bool setChannelBuffers64 | ( | BusDirection | dir,
|  | int32 | busIndex,
|  | Sample64 * | sampleBuffers[],
|  | int32 | bufferCount
| ) |  |
| inline

## ◆ setChannelBuffer()

bool setChannelBuffer | ( | BusDirection | dir,
|  | int32 | busIndex,
|  | int32 | channelIndex,
|  | Sample32 * | sampleBuffer
| ) |  |
| inline

Sets one sample buffer for a given channel inside a bus.

## ◆ setChannelBuffer64()

bool setChannelBuffer64 | ( | BusDirection | dir,
|  | int32 | busIndex,
|  | int32 | channelIndex,
|  | Sample64 * | sampleBuffer
| ) |  |
| inline

## ◆ createBuffers()

int32 createBuffers | ( | IComponent & | component,
|  | AudioBusBuffers *& | buffers,
|  | BusDirection | dir,
|  | int32 | bufferSamples
| ) |  |
| protected

## ◆ destroyBuffers()

void destroyBuffers | ( | AudioBusBuffers *& | buffers,
|  | int32 & | busCount
| ) |  |
| protected

## ◆ checkIfReallocationNeeded()

bool checkIfReallocationNeeded | ( | IComponent & | component,
|  | int32 | bufferSamples,
|  | int32 | _symbolicSampleSize
| ) |  | const
| protected

## ◆ isValidBus()

bool isValidBus | ( | BusDirection | dir,
|  | int32 | busIndex
| ) |  | const
| inlineprotected

## Member Data Documentation

## ◆ kAllChannelsSilent

constexpr uint64 kAllChannelsSilent
| staticconstexpr

Initial value:
=
0xffffffffffffffffUL

## ◆ channelBufferOwner

bool channelBufferOwner {false}
| protected

Empty

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