DISTRHO Plugin Framework
Public Member Functions | Friends | List of all members
Application Class Reference

#include <Application.hpp>

Public Member Functions

 Application (bool isStandalone=true)
 
virtual ~Application ()
 
void idle ()
 
void exec (uint idleTimeInMs=30)
 
void quit ()
 
bool isQuitting () const noexcept
 
bool isStandalone () const noexcept
 
double getTime () const
 
void addIdleCallback (IdleCallback *callback)
 
void removeIdleCallback (IdleCallback *callback)
 
const char * getClassName () const noexcept
 
void setClassName (const char *name)
 

Friends

class Window
 
class DISTRHO_NAMESPACE::PluginApplication
 

Detailed Description

Base DGL Application class.

One application instance is required for creating a window. There's no single/global application instance in DGL, and multiple windows can share the same app instance.

In standalone mode an application will automatically quit its event-loop when all its windows are closed.

Unless stated otherwise, functions within this class are not thread-safe.

Constructor & Destructor Documentation

◆ Application()

Application::Application ( bool  isStandalone = true)

Constructor.

◆ ~Application()

virtual Application::~Application ( )
virtual

Destructor.

Member Function Documentation

◆ idle()

void Application::idle ( )

Idle function. This runs the application event-loop once.

◆ exec()

void Application::exec ( uint  idleTimeInMs = 30)

Run the application event-loop until all Windows are closed. idle() is called at regular intervals.

Note
This function is meant for standalones only, never call this from plugins.

◆ quit()

void Application::quit ( )

Quit the application. This stops the event-loop and closes all Windows. This function is thread-safe.

◆ isQuitting()

bool Application::isQuitting ( ) const
noexcept

Check if the application is about to quit. Returning true means there's no event-loop running at the moment (or it's just about to stop). This function is thread-safe.

◆ isStandalone()

bool Application::isStandalone ( ) const
noexcept

Check if the application is standalone, otherwise running as a module or plugin. This function is thread-safe.

◆ getTime()

double Application::getTime ( ) const

Return the time in seconds.

This is a monotonically increasing clock with high resolution.
The returned time is only useful to compare against other times returned by this function, its absolute value has no meaning.

◆ addIdleCallback()

void Application::addIdleCallback ( IdleCallback callback)

Add a callback function to be triggered on every idle cycle. You can add more than one, and remove them at anytime with removeIdleCallback(). Idle callbacks trigger right after OS event handling and Window idle events (within the same cycle). There are no guarantees in terms of timing, use Window::addIdleCallback for time-relative callbacks.

◆ removeIdleCallback()

void Application::removeIdleCallback ( IdleCallback callback)

Remove an idle callback previously added via addIdleCallback().

◆ getClassName()

const char* Application::getClassName ( ) const
noexcept

Get the class name of the application.

This is a stable identifier for the application, used as the window class/instance name on X11 and Windows. It is not displayed to the user, but can be used in scripts and by window managers, so it should be the same for every instance of the application, but different from other applications.

Plugins created with DPF have their class name automatically set based on DGL_NAMESPACE and plugin name.

◆ setClassName()

void Application::setClassName ( const char *  name)

Set the class name of the application.

See also
getClassName

The documentation for this class was generated from the following file: