Base Module: Base Module
Author: Steinberg

Base Module VST 3.8 SDK for developing VST plug-in

Loading...
Searching...
No Matches
Base Module

# Introduction

Base contains many useful classes, such as templates and containers that are also used internally by Steinberg, but may also well fit for the quick deployment of your own plug-ins.
However, this is just an option, you can of course also write your own classes or employ other frameworks.
Most prominent and useful are the Steinberg::String and Steinberg::ConstString classes, since they provide Unicode support and can be universally used on both Mac and Win, so you're encouraged to utilize them throughout your plug-in development.

# Strings

- Steinberg::ConstString
- Steinberg::String

# IPtr Smart Pointer

- Steinberg::IPtr is a new smart pointer intended to be used with any class derived from Steinberg::FUnknown.
- It can be used in template containers and is the base class for Steinberg::FUnknownPtr.
- Steinberg::IPtr does not do a queryInterface like Steinberg::FUnknownPtr does.
- Steinberg::OPtr is the 'owning' variant of Steinberg::IPtr and does not increment the reference counter on assignment, only on destruction

# Steinberg::FObject

- Defines and implements all basic Steinberg::FUnknown methods and some more stuff that works inside of the base module.
- Pointer casting is done via the template methods Steinberg::FCast(). There are overloads - one casting Steinberg::FObject's and one casting Steinberg::FUnknown's.
- Steinberg::Singleton Steinberg::FObject supports a new conception for Singleton singletons. These objects are automatically deleted on program termination.

# Dependencies

The dependency concept can be considered as a observer pattern implementation.

See also
  - Steinberg::FObject
  - Steinberg::IDependent
  - Steinberg::UpdateHandler

# Debugging

- See base/source/fdebug.h for SMTG_ASSERT() macros and other debugging tools.

# Also useful

- Steinberg::FStreamer
- Steinberg::Buffer
- Steinberg::FDynLibrary
- Steinberg::Timer
- Steinberg::CommandLine
- Platform defines (fplatform.h)
- Basic Types (ftypes.h)
- Standard Methods Macros (fstdmethods.h)

Empty

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