HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Application_base.hpp
1// Copyright 2019 Pokitec
2// All rights reserved.
3
4#pragma once
5
6#include "TTauri/Foundation/config.hpp"
7#include "TTauri/Application/ApplicationDelegate.hpp"
8#if defined(BUILD_TTAURI_AUDIO)
9#include "TTauri/Audio/globals.hpp"
10#include "TTauri/Audio/AudioSystemDelegate.hpp"
11#endif
12#if defined(BUILD_TTAURI_GUI)
13#include "TTauri/Text/globals.hpp"
14#include "TTauri/Widgets/globals.hpp"
15#include "TTauri/GUI/globals.hpp"
16#include "TTauri/GUI/GUISystemDelegate.hpp"
17#endif
18#include "TTauri/Foundation/globals.hpp"
19#include "TTauri/Foundation/required.hpp"
20#include "TTauri/Foundation/URL.hpp"
21#include <nonstd/span>
22#include <memory>
23#include <string>
24#include <any>
25#include <map>
26#include <thread>
27
28namespace tt {
29
31
40#if defined(BUILD_TTAURI_GUI)
42#endif
43#if defined(BUILD_TTAURI_AUDIO)
45#endif
46{
47public:
51
55
56 Application_base(std::shared_ptr<ApplicationDelegate> applicationDelegate, std::vector<std::string> const &arguments, void *hInstance = nullptr, int nCmdShow = 0);
57 virtual ~Application_base();
58 Application_base(const Application_base &) = delete;
59 Application_base &operator=(const Application_base &) = delete;
61 Application_base &operator=(Application_base &&) = delete;
62
65 virtual void runOnMainThread(std::function<void()> function) = 0;
66
70 virtual int loop() = 0;
71
72#if defined(BUILD_TTAURI_AUDIO)
76 void audioDeviceListChanged() override;
77#endif
78
79protected:
82 virtual bool startingLoop();
83};
84
85inline Application_base *_application = nullptr;
86
87}
Definition Application_base.hpp:30
Definition Application_base.hpp:46
virtual int loop()=0
std::vector< std::string > arguments
Definition Application_base.hpp:54
virtual void runOnMainThread(std::function< void()> function)=0
std::shared_ptr< ApplicationDelegate > delegate
Definition Application_base.hpp:50
Definition AudioSystemDelegate.hpp:10
Definition GUISystemDelegate.hpp:8