libAlgAudio  v1.99-440-g08538e5-dirty
The development library for AlgAudio framework.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LaunchConfigWindow.hpp
Go to the documentation of this file.
1 #ifndef LAUNCHCONFIGWINDOW_HPP
2 #define LAUNCHCONFIGWINDOW_HPP
3 /*
4 This file is part of AlgAudio.
5 
6 AlgAudio, Copyright (C) 2015 CeTA - Audiovisual Technology Center
7 
8 AlgAudio is free software: you can redistribute it and/or modify
9 it under the terms of the GNU Lesser General Public License as
10 published by the Free Software Foundation, either version 3 of the
11 License, or (at your option) any later version.
12 
13 AlgAudio is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU Lesser General Public License for more details.
17 
18 You should have received a copy of the GNU Lesser General Public License
19 along with AlgAudio. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
22 #include "Window.hpp"
23 #include "Console.hpp"
24 #include "UI/UIButton.hpp"
25 #include "UI/UIMarginBox.hpp"
26 #include "UI/UITextArea.hpp"
27 #include "UI/UIBox.hpp"
28 #include "UI/UILabel.hpp"
29 #include "UI/UICheckbox.hpp"
30 #include "UI/UIProgressBar.hpp"
31 #include "UI/UITextEntry.hpp"
32 #include "UI/UILayered.hpp"
33 #include "UI/UISeparator.hpp"
34 #include "UI/UISpinEntry.hpp"
35 #include "UI/UIPathSelector.hpp"
36 
37 namespace AlgAudio{
38 
39 /* This class is an implementation of a Window which displays the welcome
40  * dialog and AlgAudio launcher config.
41  */
42 class LaunchConfigWindow : public Window{
43 public:
44  static std::shared_ptr<LaunchConfigWindow> Create();
48 private:
50  void init();
52  void ApplyToGlobalConfig();
54  void ToggleAbout();
55  bool about_displayed = false;
56 
57 std::shared_ptr<UIMarginBox> marginbox;
58  std::shared_ptr<UIVBox> mainvbox;
59  std::shared_ptr<UILabel> titlelabel;
60  std::shared_ptr<UILabel> version_label;
61  std::shared_ptr<UISeparator> config_separator;
62  std::shared_ptr<UILayered> layered;
63  std::shared_ptr<UIVBox> about_box;
64  std::shared_ptr<UILabel> about_text;
65  std::shared_ptr<UIVBox> configbox;
66  std::shared_ptr<UILabel> path_label;
67  std::shared_ptr<UIPathSelector> sclang_path_selector;
68  std::shared_ptr<UISeparator> config_sep;
69  std::shared_ptr<UIHBox> config_audio;
70  std::shared_ptr<UIVBox> config_audioA;
71  std::shared_ptr<UISpinEntry> config_inchannels;
72  std::shared_ptr<UISpinEntry> config_outchannels;
73  std::shared_ptr<UIVBox> config_audioB;
74  std::shared_ptr<UISpinEntry> config_samplerate;
75  std::shared_ptr<UISpinEntry> config_blocksize;
76  std::shared_ptr<UIVBox> config_adv;
77  std::shared_ptr<UIHBox> config_adv_driver_box;
78  std::shared_ptr<UILabel> config_adv_driver_label;
79  std::shared_ptr<UITextEntry> config_adv_driver_entry;
80  std::shared_ptr<UIHBox> config_adv_chbox;
81  std::shared_ptr<UIVBox> config_advA;
82  std::shared_ptr<UICheckbox> chk_debug;
83  std::shared_ptr<UICheckbox> chk_oscdebug;
84  std::shared_ptr<UIVBox> config_advB;
85  std::shared_ptr<UICheckbox> chk_nosclang;
86  std::shared_ptr<UICheckbox> chk_supernova;
87  std::shared_ptr<UISeparator> config_widesep;
88  std::shared_ptr<UICheckbox> chk_advconfig;
89  std::shared_ptr<UIHBox> buttonhbox;
90  std::shared_ptr<UIButton> quitbutton;
91  std::shared_ptr<UIButton> testbutton;
92  std::shared_ptr<UIButton> aboutbutton;
93  std::shared_ptr<UIButton> startbutton;
94  std::shared_ptr<UIProgressBar> progressbar;
95  std::shared_ptr<UILabel> statustext;
96 
97 
98  std::shared_ptr<Console> console;
99 
100  bool start_in_progress = false;
101 };
102 
103 } //namespace AlgAudio
104 #endif // LAUNCHCONFIGWINDOW_HPP
Definition: Window.hpp:37
Signal on_complete
Definition: LaunchConfigWindow.hpp:47
Definition: LaunchConfigWindow.hpp:42
Definition: Alertable.hpp:26
Definition: Signal.hpp:145
static std::shared_ptr< LaunchConfigWindow > Create()