Base Module  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Timer Class Referenceabstract

Timer is a class that allows you to receive triggers at regular intervals. More...

#include <timer.h>

+ Inheritance diagram for Timer:

Public Member Functions

virtual void stop ()=0
 Stop the timer.
 
- Public Member Functions inherited from FObject
 FObject ()=default
 default constructor...
 
 FObject (const FObject &)
 
FObjectoperator= (const FObject &)
 overloads operator "=" as the reference assignment
 
virtual ~FObject ()
 destructor...
 
virtual FClassID isA () const
 a local alternative to getFClassID ()
 
virtual bool isA (FClassID s) const
 evaluates if the passed ID is of the FObject type
 
virtual bool isTypeOf (FClassID s, bool=true) const
 evaluates if the passed ID is of the FObject type
 
int32 getRefCount ()
 returns the current interface reference count
 
FUnknown * unknownCast ()
 get FUnknown interface from object
 
tresult queryInterface (const TUID _iid, void **obj) SMTG_OVERRIDE
 please refer to FUnknown::queryInterface ()
 
uint32 addRef () SMTG_OVERRIDE
 please refer to FUnknown::addref ()
 
uint32 release () SMTG_OVERRIDE
 please refer to FUnknown::release ()
 
void update (FUnknown *, int32) SMTG_OVERRIDE
 empty virtual method that should be overridden by derived classes for data updates upon changes
 
virtual void addDependent (IDependent *dep)
 adds dependency to the object
 
virtual void removeDependent (IDependent *dep)
 removes dependency from the object
 
virtual void changed (int32 msg=kChanged)
 Inform all dependents, that the object has changed.
 
virtual void deferUpdate (int32 msg=kChanged)
 Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates).
 
virtual void updateDone (int32)
 empty virtual method that should be overridden by derived classes
 
virtual bool isEqualInstance (FUnknown *d)
 

Static Public Member Functions

static Timercreate (ITimerCallback *callback, uint32 intervalMilliseconds)
 Create a timer with a given interval.
 
- Static Public Member Functions inherited from FObject
static FClassID getFClassID ()
 return Class ID as an ASCII string (statically)
 
static void setUpdateHandler (IUpdateHandler *handler)
 set method for the local attribute
 
static IUpdateHandler * getUpdateHandler ()
 get method for the local attribute
 
static bool classIDsEqual (FClassID ci1, FClassID ci2)
 compares (evaluates) 2 class IDs
 
static FObjectunknownToObject (FUnknown *unknown)
 pointer conversion from FUnknown to FObject
 
template<class Class >
static IPtr< Class > fromUnknown (FUnknown *unknown)
 convert from FUnknown to FObject
 

Additional Inherited Members

- Static Public Attributes inherited from FObject
static const FUID iid
 Special UID that is used to cast an FUnknown pointer to a FObject.
 
- Protected Attributes inherited from FObject
int32 refCount = 1
 COM-model local reference count.
 
- Static Protected Attributes inherited from FObject
static IUpdateHandler * gUpdateHandler = nullptr
 

Detailed Description

Timer is a class that allows you to receive triggers at regular intervals.

Note: The timer class is an abstract base class with (hidden) platform specific subclasses.

Usage:

class TimerReceiver : public FObject, public ITimerCallback
{
...
virtual void onTimer (Timer* timer)
{
// do stuff
}
...
};
TimerReceiver* receiver = new TimerReceiver ();
Timer* myTimer = Timer::create (receiver, 100); // interval: every 100ms
...
...
if (myTimer)
myTimer->release ();
if (receiver)
receiver->release ();
See Also
ITimerCallback

Member Function Documentation

Timer * create ( ITimerCallback callback,
uint32  intervalMilliseconds 
)
static

Create a timer with a given interval.

Parameters
callbackThe receiver of the timer calls.
intervalMillisecondsThe timer interval in milliseconds.
Returns
The created timer if any, callers owns the timer. The timer starts immediately.
virtual void stop ( )
pure virtual

Stop the timer.

Empty

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