Ardour  8.12
osc_gui.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2017 Len Ovens <len@ovenwerks.net>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 #ifndef osc_gui_h
19 #define osc_gui_h
20 
21 
22 #include "osc.h"
23 
24 #include "pbd/i18n.h"
25 
26 // preset stuff
27 static const char* const preset_dir_name = "osc";
28 static const char* const preset_suffix = ".preset";
29 static const char * const preset_env_variable_name = "ARDOUR_OSC_PATH";
30 
31 namespace ArdourSurface {
32 
33 class OSC_GUI : public Gtk::Notebook
34 {
35 public:
38 
39 
40 private:
41  // settings page
50  std::vector<std::string> preset_options;
51  std::map<std::string,std::string> preset_files;
53  void get_session ();
55  uint32_t sesn_portmode;
56  std::string sesn_port;
57  uint32_t sesn_bank;
58  uint32_t sesn_send;
59  uint32_t sesn_plugin;
60  uint32_t sesn_strips;
61  uint32_t sesn_feedback;
62  uint32_t sesn_gainmode;
63  void save_user ();
65  void load_preset (std::string preset);
66 
67  void debug_changed ();
70  void clear_device ();
71  void factory_reset ();
72  void reshow_values ();
73  void port_changed ();
75  void bank_changed ();
78  void strips_changed ();
80  void preset_changed ();
81  // Strip types calculator
82  uint32_t def_strip;
96  int stvalue;
97  // feedback calculator
98  uint32_t def_feedback;
118  int fbvalue;
119  void set_bitsets ();
120 
121 
122 
123  OSC& cp;
124 };
125 
126 
127 void*
128 OSC::get_gui () const
129 {
130  if (!gui) {
131  const_cast<OSC*>(this)->build_gui ();
132  }
133  static_cast<Gtk::Notebook*>(gui)->show_all();
134  return gui;
135 }
136 
137 void
139 {
140  if (gui) {
141  Gtk::Widget *w = static_cast<Gtk::Notebook*>(gui)->get_parent();
142  if (w) {
143  w->hide();
144  delete w;
145  }
146  }
147  delete (OSC_GUI*) gui;
148  gui = 0;
149 }
150 
151 void
153 {
154  gui = (void*) new OSC_GUI (*this);
155 }
156 
157 } // end namespace
158 
159 #endif // osc_gui_h
Gtk::CheckButton signal_present
Definition: osc_gui.h:110
uint32_t sesn_plugin
Definition: osc_gui.h:59
Gtk::CheckButton selected_tracks
Definition: osc_gui.h:93
Gtk::CheckButton select_fb
Definition: osc_gui.h:114
Gtk::ComboBoxText debug_combo
Definition: osc_gui.h:42
Gtk::CheckButton hp_min_sec
Definition: osc_gui.h:112
Gtk::CheckButton master_type
Definition: osc_gui.h:91
Gtk::CheckButton usegroups
Definition: osc_gui.h:95
Gtk::CheckButton heart_beat
Definition: osc_gui.h:104
Gtk::CheckButton scene_status
Definition: osc_gui.h:117
Gtk::CheckButton meter_float
Definition: osc_gui.h:108
uint32_t def_feedback
Definition: osc_gui.h:98
Gtk::CheckButton smpte
Definition: osc_gui.h:107
Gtk::SpinButton plugin_page_entry
Definition: osc_gui.h:47
Gtk::CheckButton foldback_busses
Definition: osc_gui.h:88
Gtk::CheckButton monitor_type
Definition: osc_gui.h:92
uint32_t sesn_bank
Definition: osc_gui.h:57
Gtk::CheckButton hidden_tracks
Definition: osc_gui.h:94
Gtk::Label current_strip_types
Definition: osc_gui.h:84
Gtk::CheckButton midi_tracks
Definition: osc_gui.h:86
Gtk::ComboBoxText gainmode_combo
Definition: osc_gui.h:48
std::vector< std::string > preset_options
Definition: osc_gui.h:50
Gtk::CheckButton hp_gui
Definition: osc_gui.h:113
uint32_t sesn_send
Definition: osc_gui.h:58
Gtk::CheckButton strip_buttons_button
Definition: osc_gui.h:101
Gtk::SpinButton send_page_entry
Definition: osc_gui.h:46
Gtk::CheckButton audio_tracks
Definition: osc_gui.h:85
uint32_t sesn_portmode
Definition: osc_gui.h:55
Gtk::CheckButton bar_and_beat
Definition: osc_gui.h:106
std::map< std::string, std::string > preset_files
Definition: osc_gui.h:51
Gtk::CheckButton ssid_as_path
Definition: osc_gui.h:103
uint32_t sesn_feedback
Definition: osc_gui.h:61
Gtk::CheckButton use_osc10
Definition: osc_gui.h:115
Gtk::CheckButton master_fb
Definition: osc_gui.h:105
Gtk::SpinButton bank_entry
Definition: osc_gui.h:45
Gtk::CheckButton strip_control_button
Definition: osc_gui.h:102
Gtk::CheckButton midi_buses
Definition: osc_gui.h:89
Gtk::Label current_feedback
Definition: osc_gui.h:100
uint32_t def_strip
Definition: osc_gui.h:82
uint32_t sesn_gainmode
Definition: osc_gui.h:62
Gtk::ComboBoxText portmode_combo
Definition: osc_gui.h:43
Gtk::ComboBoxText preset_combo
Definition: osc_gui.h:49
uint32_t sesn_strips
Definition: osc_gui.h:60
Gtk::CheckButton meter_led
Definition: osc_gui.h:109
void load_preset(std::string preset)
Gtk::CheckButton control_masters
Definition: osc_gui.h:90
Gtk::CheckButton hp_samples
Definition: osc_gui.h:111
Gtk::SpinButton port_entry
Definition: osc_gui.h:44
Gtk::CheckButton audio_buses
Definition: osc_gui.h:87
bool port_focus_out(GdkEventFocus *)
Gtk::CheckButton trigger_status
Definition: osc_gui.h:116
std::string sesn_port
Definition: osc_gui.h:56
void build_gui()
Definition: osc_gui.h:152
void tear_down_gui()
Definition: osc_gui.h:138
void * get_gui() const
Definition: osc_gui.h:128
void * gui
Definition: osc.h:772
static const char *const preset_env_variable_name
Definition: osc_gui.h:29
static const char *const preset_dir_name
Definition: osc_gui.h:27
static const char *const preset_suffix
Definition: osc_gui.h:28