Guitarix
gx_system.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2009, 2010 Hermann Meyer, James Warden, Andreas Degert
3  * Copyright (C) 2011 Pete Shorthose
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  * --------------------------------------------------------------------------
19  */
20 
21 /* ------- This is the System namespace ------- */
22 
23 #pragma once
24 
25 #ifndef SRC_HEADERS_GX_SYSTEM_H_
26 #define SRC_HEADERS_GX_SYSTEM_H_
27 
28 #ifndef NDEBUG
29 #include <fenv.h>
30 
31 #ifdef __i386__
32 #define FE_DENORM __FE_DENORM
33 inline void clear_fpu_status_bits() { __asm__ ("fnclex"); }
34 inline unsigned int get_fpu_status_bits() {
35  unsigned int fpu_status __attribute__ ((__mode__ (__HI__)));
36  __asm__("fnstsw %0" : "=m" (*&fpu_status));
37  return fpu_status;
38 }
39 #else
40 inline void clear_fpu_status_bits() { feclearexcept(FE_ALL_EXCEPT); }
41 inline unsigned int get_fpu_status_bits() {
42  fexcept_t flagp;
43  int ret = fegetexceptflag(&flagp, FE_ALL_EXCEPT);
44  assert(ret == 0);
45  return flagp;
46 }
47 #endif //__i386__
48 #endif // !NDEBUG
49 #ifdef __SSE__
50 
51 /* On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero)
52  flags to avoid costly denormals */
53 #ifdef __SSE3__
54 #ifndef _PMMINTRIN_H_INCLUDED
55 #include <pmmintrin.h>
56 #endif //ndef
57 inline void AVOIDDENORMALS() {
58  _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
59  _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
60 }
61 #else
62 #ifndef _XMMINTRIN_H_INCLUDED
63 #include <xmmintrin.h>
64 #endif //ndef
65 inline void AVOIDDENORMALS() { _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); }
66 #endif //__SSE3__
67 
68 #else
69 #ifndef _XMMINTRIN_H_INCLUDED
70 inline void _MM_SET_EXCEPTION_STATE(unsigned int __mask) {}
71 inline unsigned int _MM_GET_EXCEPTION_STATE(void) { return 0; }
72 #endif //ndef
73 inline void AVOIDDENORMALS() {}
74 
75 #endif //__SSE__
76 
77 
78 /* constant defines */
79 #define ASCII_START (48)
80 #define GDK_NO_MOD_MASK (GdkModifierType)0
81 #define SYSTEM_OK (0)
82 
83 
84 namespace gx_system {
85 
86 /****************************************************************
87  ** "atomic" value access
88  */
89 
90 inline void atomic_set(volatile int* p, int v) {
91  g_atomic_int_set(p, v);
92 }
93 
94 inline void atomic_set(volatile unsigned int* p, unsigned int v) {
95  g_atomic_int_set(reinterpret_cast<volatile int*>(p), v);
96 }
97 
98 inline int atomic_get(volatile int& p) {
99  return g_atomic_int_get(&p);
100 }
101 
102 inline unsigned int atomic_get(volatile unsigned int& p) {
103  return g_atomic_int_get(reinterpret_cast<volatile int*>(&p));
104 }
105 
106 inline void atomic_inc(volatile int* p) {
107  g_atomic_int_inc(p);
108 }
109 
110 inline void atomic_inc(volatile unsigned int* p) {
111  g_atomic_int_inc(reinterpret_cast<volatile int*>(p));
112 }
113 
114 inline bool atomic_compare_and_exchange(volatile int *p, int oldv, int newv) {
115  return g_atomic_int_compare_and_exchange(p, oldv, newv);
116 }
117 
118 template <class T>
119 inline void atomic_set(T **p, T *v) {
120  g_atomic_pointer_set(p, v);
121 }
122 
123 template <class T>
124 inline void atomic_set_0(T **p) {
125  g_atomic_pointer_set(p, 0);
126 }
127 
128 template <class T>
129 inline T *atomic_get(T*& p) {
130  return static_cast<T*>(g_atomic_pointer_get(&p));
131 }
132 
133 template <class T>
134 inline bool atomic_compare_and_exchange(T **p, T *oldv, T *newv) {
135  return g_atomic_pointer_compare_and_exchange(reinterpret_cast<void* volatile*>(p), oldv, newv);
136 }
137 
138 
139 /****************************************************************
140  ** Measuring times
141  */
142 
143 #ifndef NDEBUG
144 
145 class Accum {
146  private:
147  int n;
148  int mn;
149  int mx;
150  float sx;
151  float sx2;
152  public:
153  Accum() { reset(); }
154  inline void reset() {
155  n = 0;
156  mn = 1e9;
157  mx = 0;
158  sx = 0;
159  sx2 = 0;
160  }
161  void add(int diff);
162  int count() const { return n; }
163  float mean() const { return sx / n; }
164  float stddev() const { return std::sqrt((n * sx2 - sx * sx) / (n * (n-1))); }
165  float minimum() const { return mn; }
166  float maximum() const { return mx; }
167 };
168 
169 inline void Accum::add(int diff) {
170  n += 1;
171  sx += diff;
172  sx2 += static_cast<float>(diff) * diff;
173  mn = std::min(mn, diff);
174  mx = std::max(mx, diff);
175 }
176 
177 
178 struct Measure {
183  unsigned int FPUStatus1;
184  unsigned int MXStatus1;
185  unsigned int FPUStatus2;
186  unsigned int MXStatus2;
187  inline float ns2ms(int n) const { return n * 1e-6; }
188  void reset();
189  Measure() { reset(); }
190  void print_accum(const Accum& accum, const char* prefix, bool verbose, int total = 0) const;
191  void print(bool verbose) const;
192 };
193 
194 class MeasureThreadsafe {
195  private:
196  Measure m[2];
197  Measure *pmeasure;
198  timespec t1s;
199  timespec t1e;
200  timespec t2s;
201  timespec t1old;
202  unsigned int FPUStatus;
203  unsigned int MXStatus;
204  inline Measure *access() { return atomic_get(pmeasure); }
205  inline int ts_diff(const timespec& ts1, const timespec& ts2);
206  public:
208  inline void start() {
211  clock_gettime(CLOCK_MONOTONIC, &t1s);
212  }
213  inline void pause() {
214  clock_gettime(CLOCK_MONOTONIC, &t1e);
215  FPUStatus = get_fpu_status_bits();
217  }
218  inline void cont() {
221  clock_gettime(CLOCK_MONOTONIC, &t2s);
222  }
223  inline void stop();
224  void print(bool verbose = false);
225 };
226 
227 /* return time difference in ns, fail if > sec (doesn't fit int 32 bit int) */
228 inline int MeasureThreadsafe::ts_diff(const timespec& ts1, const timespec& ts2) {
229  time_t df = ts1.tv_sec - ts2.tv_sec;
230  if (std::abs(df) > 2) {
231  return -1; // failed
232  }
233  return df * 1000000000 + (ts1.tv_nsec - ts2.tv_nsec);
234 }
235 
236 
237 inline void MeasureThreadsafe::stop() {
238  Measure& m = *access();
239  timespec n;
240  clock_gettime(CLOCK_MONOTONIC, &n);
243  m.FPUStatus1 |= FPUStatus;
244  m.MXStatus1 |= MXStatus;
245  if (!(t1old.tv_sec == 0 && t1old.tv_nsec == 0)) {
246  m.period.add(ts_diff(t1s, t1old));
247  }
248  t1old = t1s;
249  m.duration1.add(ts_diff(t1e, t1s));
250  m.duration2.add(ts_diff(n, t2s));
251  m.duration.add(ts_diff(n, t1s));
252 }
253 
255 
257 
258 inline void measure_start() { measure.start(); }
259 inline void measure_pause() { measure.pause(); }
260 inline void measure_cont() { measure.cont(); }
261 inline void measure_stop() { measure.stop(); }
262 
263 #else
264 
265 inline void measure_start() {}
266 inline void measure_pause() {}
267 inline void measure_cont() {}
268 inline void measure_stop() {}
269 
270 #endif
271 
272 /****************************************************************/
273 
274 class SkinHandling {
275 private:
276  Glib::ustring empty;
277 public:
278  std::vector<Glib::ustring> skin_list;
279  SkinHandling(const std::string& styledir)
280  : skin_list() { set_styledir(styledir); }
281  void set_styledir(const std::string& styledir);
282  bool is_in_list(const std::string& name);
283  const Glib::ustring& operator[](unsigned int idx);
284  unsigned int index(const Glib::ustring& name);
285 };
286 
287 /****************************************************************/
288 
289 class PathList {
290 public:
291  typedef std::list< Glib::RefPtr<Gio::File> > pathlist;
292  typedef std::list< Glib::RefPtr<Gio::File> >::const_iterator iterator;
293 private:
294  pathlist dirs;
295 public:
296  PathList(const char *env_name = 0);
297  void add(const std::string& d) { dirs.push_back(Gio::File::create_for_path(d)); }
298  bool contains(const std::string& d) const;
299  bool find_dir(std::string *d, const std::string& filename) const;
300  size_t size() { return dirs.size(); }
301  iterator begin() { return dirs.begin(); }
302  iterator end() { return dirs.end(); }
303 };
304 
305 
306 /****************************************************************/
307 
309 public:
310  typedef std::map<char,std::string> symbol_path_map;
311 private:
313 public:
314  PrefixConverter(): dirs() {}
315  ~PrefixConverter() {}
316  std::string replace_symbol(const std::string& dir) const;
317  std::string replace_path(const std::string& dir) const;
318  void add(char s, const std::string& d);
319 };
320 
321 
322 /*****************************************************************
323  ** class DirectoryListing
324  */
325 
326 class FileName {
327 public:
328  std::string filename;
329  Glib::ustring displayname;
330  FileName(const std::string& filename_, const Glib::ustring& displayname_)
331  : filename(filename_), displayname(displayname_) {}
332 };
333 
334 class IRFileListing {
335 public:
336 private:
337  std::vector<FileName> listing;
338 public:
339  IRFileListing(const std::string& path);
340  ~IRFileListing() {}
341  std::vector<FileName>& get_listing() { return listing; }
342 };
343 
344 void list_subdirs(PathList pl, std::vector<FileName>& dirs);
345 
346 /****************************************************************
347  ** class CmdlineOptions
348  */
349 
350 #define RPCPORT_DEFAULT (-2)
351 #define RPCPORT_NONE (-1)
352 
353 class BasicOptions: boost::noncopyable {
354 private:
355  std::string user_dir;
356  std::string user_IR_dir;
357  std::string sys_IR_dir;
358  PathList IR_pathlist;
359  PrefixConverter IR_prefixmap;
360  static BasicOptions *instance;
361 protected:
362  std::string builder_dir;
363 
364 private:
365  friend BasicOptions& get_options();
366 protected:
367  static void make_ending_slash(std::string& dirpath);
368 public:
371  std::string get_user_filepath(const std::string& basename) const { return user_dir + basename; }
372  std::string get_user_ir_filepath(const std::string& basename) const { return user_IR_dir + basename; }
373  std::string get_builder_filepath(const std::string& basename) const { return builder_dir + basename; }
374  const std::string& get_user_dir() const { return user_dir; }
375  const std::string& get_user_IR_dir() const { return user_IR_dir; }
376  const std::string& get_sys_IR_dir() const { return sys_IR_dir; }
377  const PathList& get_IR_pathlist() const { return IR_pathlist; }
378  const PrefixConverter& get_IR_prefixmap() const { return IR_prefixmap; }
379 };
380 
381 class CmdlineOptions: public BasicOptions, public Glib::OptionContext {
382 private:
383  Glib::OptionGroup main_group;
384  Glib::OptionGroup optgroup_style;
385  Glib::OptionGroup optgroup_jack;
386  Glib::OptionGroup optgroup_overload;
387  Glib::OptionGroup optgroup_file;
388  Glib::OptionGroup optgroup_debug;
389  std::string path_to_program;
390  bool version;
391  bool clear;
392  Glib::ustring jack_input;
393  Glib::ustring jack_midi;
394  Glib::ustring jack_instance;
395  std::vector<Glib::ustring> jack_outputs;
396  Glib::ustring jack_uuid;
397  Glib::ustring jack_uuid2;
398  bool jack_noconnect;
399  bool jack_single;
400  Glib::ustring jack_servername;
401  std::string load_file;
402  std::string style_dir;
403  std::string factory_dir;
404  std::string pixmap_dir;
405  std::string old_user_dir;
406  std::string preset_dir;
407  std::string pluginpreset_dir;
408  std::string lv2_preset_dir;
409  std::string temp_dir;
410  std::string plugin_dir;
411  std::string loop_dir;
412  Glib::ustring rcset;
413  bool nogui;
414  int rpcport;
415  Glib::ustring rpcaddress;
416  bool onlygui;
417  bool liveplaygui;
418  bool hideonquit;
419  bool mute;
420  Glib::ustring setbank;
421  Glib::ustring tuner_tet;
422  Glib::ustring tuner_ref;
423  int sporadic_overload;
424  int idle_thread_timeout;
425  bool convolver_watchdog;
426  bool xrun_watchdog;
427  bool lterminal;
428  bool a_save;
429  bool auto_save;
430  std::string get_opskin();
431  void read_ui_vars();
432  void write_ui_vars();
433 
434 public:
435 #ifndef NDEBUG
436  bool dump_parameter;
437 #endif
439 
440  // saved in ui_rc:
447  Glib::ustring skin_name;
453  bool system_show_presets;
454  bool system_show_toolbar;
455  bool system_show_rack;
456  bool reload_lv2_presets;
457 
458 public:
461  void process(int argc, char** argv);
462  const std::string& get_path_to_program() const { return path_to_program; }
463  std::string get_style_filepath(const std::string& basename) const { return style_dir + basename; }
464  std::string get_pixmap_filepath(const std::string& basename) const { return pixmap_dir + basename; }
465  std::string get_preset_filepath(const std::string& basename) const { return preset_dir + basename; }
466  std::string get_plugin_filepath(const std::string& basename) const { return plugin_dir + basename; }
467  std::string get_factory_filepath(const std::string& basename) const { return factory_dir + basename; }
468  std::string get_temp_filepath(const std::string& basename) const { return temp_dir + basename; }
469  std::string get_pluginpreset_filepath(const std::string& id, bool factory) const {
470  return (factory ? factory_dir : pluginpreset_dir) + id; }
471  std::string get_lv2_preset_filepath(const std::string& id) const {
472  return (lv2_preset_dir) + id; }
473  const std::string& get_old_user_dir() const { return old_user_dir; }
474  const std::string& get_plugin_dir() const { return plugin_dir; }
475  const std::string& get_preset_dir() const { return preset_dir; }
476  const std::string& get_pluginpreset_dir() const { return pluginpreset_dir; }
477  const std::string& get_lv2_preset_dir() const { return lv2_preset_dir; }
478  const std::string& get_loop_dir() const { return loop_dir; }
479  const std::string& get_temp_dir() const { return temp_dir; }
480  const std::string& get_factory_dir() const { return factory_dir; }
481  std::string get_ladspa_config_filename() const { return get_user_filepath("ladspa_defs.js"); }
482  std::string get_online_config_filename() const { return get_user_filepath("musical-artifacts.js"); }
483  std::string get_online_presets_filename() const { return get_user_filepath("artifacts.js"); }
484  const Glib::ustring& get_rcset() const { return rcset; }
485  bool get_clear_rc() const { return clear; }
486  bool get_nogui() const { return nogui; }
487  bool get_liveplaygui() const { return liveplaygui; }
488  bool get_hideonquit() const { return hideonquit; }
489  bool get_mute() const { return mute; }
490  const Glib::ustring& get_setbank() { return setbank; }
491  const Glib::ustring& get_tuner_tet() { return tuner_tet; }
492  const Glib::ustring& get_tuner_ref() { return tuner_ref; }
493  int get_rpcport() const { return rpcport; }
494  void set_rpcport(int port) { rpcport = port; }
495  const Glib::ustring& get_rpcaddress() { return rpcaddress; }
496  void set_rpcaddress(const Glib::ustring& address) { rpcaddress = address; }
497  const std::string& get_loadfile() const { return load_file; }
498  const Glib::ustring& get_jack_instancename() const { return jack_instance; }
499  const Glib::ustring& get_jack_uuid() const { return jack_uuid; }
500  const Glib::ustring& get_jack_uuid2() const { return jack_uuid2; }
501  const Glib::ustring& get_jack_midi() const { return jack_midi; }
502  const Glib::ustring& get_jack_input() const { return jack_input; }
503  const Glib::ustring& get_jack_servername() const { return jack_servername; }
504  bool get_jack_noconnect() const { return jack_noconnect; }
505  bool get_jack_single() const { return jack_single; }
506  bool get_opt_save_on_exit() const { return a_save; }
507  bool get_opt_autosave() const { return auto_save; }
508  Glib::ustring get_jack_output(unsigned int n) const;
509  int get_idle_thread_timeout() const { return idle_thread_timeout; }
510  int get_sporadic_overload() const { return sporadic_overload; }
511  bool get_xrun_watchdog() const { return xrun_watchdog; }
512  bool get_convolver_watchdog() const { return convolver_watchdog; }
513 };
514 
515 inline BasicOptions& get_options() {
516  assert(BasicOptions::instance);
517  return *BasicOptions::instance;
518 }
519 
520 
521 /****************************************************************
522  ** misc function declarations
523  */
524 
525 int gx_system_call(const std::string&, bool devnull = false, bool escape = false);
526 void strip(Glib::ustring& s);
527 
528 template <class T>
529 inline std::string to_string(const T& t) {
530  std::stringstream ss;
531  ss << t;
532  return ss.str();
533 }
534 
535 std::string encode_filename(const std::string& s);
536 std::string decode_filename(const std::string& s);
537 
538 } /* end of gx_system namespace */
539 
540 #endif // SRC_HEADERS_GX_SYSTEM_H_
gx_system::Measure::FPUStatus2
unsigned int FPUStatus2
Definition: gx_system.h:183
gx_system::Accum::maximum
float maximum() const
Definition: gx_system.h:165
gx_system::Measure::Measure
Measure()
Definition: gx_system.h:187
gx_system::CmdlineOptions::get_setbank
const Glib::ustring & get_setbank()
Definition: gx_system.h:486
gx_system::Measure::MXStatus2
unsigned int MXStatus2
Definition: gx_system.h:184
gx_system::BasicOptions::BasicOptions
BasicOptions()
Definition: gx_system.cpp:376
gx_system::BasicOptions::get_IR_pathlist
const PathList & get_IR_pathlist() const
Definition: gx_system.h:373
gx_system::BasicOptions::get_user_filepath
std::string get_user_filepath(const std::string &basename) const
Definition: gx_system.h:367
gx_system::CmdlineOptions::get_hideonquit
bool get_hideonquit() const
Definition: gx_system.h:484
gx_system::IRFileListing::IRFileListing
IRFileListing(const std::string &path)
Definition: gx_system.cpp:319
gx_system::SkinHandling::operator[]
const Glib::ustring & operator[](unsigned int idx)
Definition: gx_system.cpp:212
gx_system::encode_filename
std::string encode_filename(const std::string &s)
Definition: gx_system.cpp:1005
gx_system::Measure
Definition: gx_system.h:176
gx_system::CmdlineOptions::get_pluginpreset_dir
const std::string & get_pluginpreset_dir() const
Definition: gx_system.h:472
gx_system::atomic_set
void atomic_set(volatile int *p, int v)
Definition: gx_system.h:89
gx_system::CmdlineOptions::dump_parameter
bool dump_parameter
Definition: gx_system.h:432
gx_system::PathList::size
size_t size()
Definition: gx_system.h:298
gx_system::BasicOptions
Definition: gx_system.h:349
gx_system::CmdlineOptions::get_idle_thread_timeout
int get_idle_thread_timeout() const
Definition: gx_system.h:505
gx_system::Accum::stddev
float stddev() const
Definition: gx_system.h:163
gx_system::CmdlineOptions::get_convolver_watchdog
bool get_convolver_watchdog() const
Definition: gx_system.h:508
gx_system::Measure::print
void print(bool verbose) const
Definition: gx_system.cpp:113
gx_system::Measure::period
Accum period
Definition: gx_system.h:177
gx_system::MeasureThreadsafe
Definition: gx_system.h:192
gx_system::CmdlineOptions::system_show_toolbar
bool system_show_toolbar
Definition: gx_system.h:450
gx_system::CmdlineOptions::CmdlineOptions
CmdlineOptions()
Definition: gx_system.cpp:427
gx_system::CmdlineOptions::get_sporadic_overload
int get_sporadic_overload() const
Definition: gx_system.h:506
gx_system::measure
MeasureThreadsafe measure
Definition: gx_system.cpp:143
gx_system::PathList::pathlist
std::list< Glib::RefPtr< Gio::File > > pathlist
Definition: gx_system.h:289
AVOIDDENORMALS
void AVOIDDENORMALS()
Definition: gx_system.h:73
gx_system::CmdlineOptions::get_plugin_filepath
std::string get_plugin_filepath(const std::string &basename) const
Definition: gx_system.h:462
_MM_GET_EXCEPTION_STATE
unsigned int _MM_GET_EXCEPTION_STATE(void)
Definition: gx_system.h:71
gx_system::SkinHandling::set_styledir
void set_styledir(const std::string &styledir)
Definition: gx_system.cpp:169
gx_system::CmdlineOptions::system_show_rack
bool system_show_rack
Definition: gx_system.h:451
gx_system::FileName::FileName
FileName(const std::string &filename_, const Glib::ustring &displayname_)
Definition: gx_system.h:328
gx_system::CmdlineOptions::get_lv2_preset_filepath
std::string get_lv2_preset_filepath(const std::string &id) const
Definition: gx_system.h:467
gx_system::CmdlineOptions::get_jack_uuid2
const Glib::ustring & get_jack_uuid2() const
Definition: gx_system.h:496
gx_system::PathList::find_dir
bool find_dir(std::string *d, const std::string &filename) const
Definition: gx_system.cpp:261
_MM_SET_EXCEPTION_STATE
void _MM_SET_EXCEPTION_STATE(unsigned int __mask)
Definition: gx_system.h:70
gx_system::CmdlineOptions::get_factory_filepath
std::string get_factory_filepath(const std::string &basename) const
Definition: gx_system.h:463
gx_system::PrefixConverter::PrefixConverter
PrefixConverter()
Definition: gx_system.h:312
gx_system::BasicOptions::make_ending_slash
static void make_ending_slash(std::string &dirpath)
Definition: gx_system.cpp:406
gx_system::atomic_inc
void atomic_inc(volatile int *p)
Definition: gx_system.h:105
gx_system::CmdlineOptions::get_rpcport
int get_rpcport() const
Definition: gx_system.h:489
gx_system::Accum::Accum
Accum()
Definition: gx_system.h:152
gx_system::CmdlineOptions::get_plugin_dir
const std::string & get_plugin_dir() const
Definition: gx_system.h:470
gx_system::CmdlineOptions::get_pixmap_filepath
std::string get_pixmap_filepath(const std::string &basename) const
Definition: gx_system.h:460
gx_system::BasicOptions::get_user_IR_dir
const std::string & get_user_IR_dir() const
Definition: gx_system.h:371
gx_system::PrefixConverter::replace_path
std::string replace_path(const std::string &dir) const
Definition: gx_system.cpp:297
gx_system::get_options
BasicOptions & get_options()
Definition: gx_system.h:511
min
#define min(x, y)
Definition: gx_faust_support.h:6
gx_system::CmdlineOptions::mainwin_x
int mainwin_x
Definition: gx_system.h:437
max
#define max(x, y)
Definition: gx_faust_support.h:5
gx_system::MeasureThreadsafe::cont
void cont()
Definition: gx_system.h:216
gx_system::CmdlineOptions::get_path_to_program
const std::string & get_path_to_program() const
Definition: gx_system.h:458
gx_system::to_string
std::string to_string(const T &t)
Definition: gx_system.h:524
gx_system::PrefixConverter::~PrefixConverter
~PrefixConverter()
Definition: gx_system.h:313
gx_system::CmdlineOptions::system_order_rack_h
bool system_order_rack_h
Definition: gx_system.h:445
gx_system::SkinHandling::is_in_list
bool is_in_list(const std::string &name)
Definition: gx_system.cpp:198
gx_system::BasicOptions::builder_dir
std::string builder_dir
Definition: gx_system.h:358
gx_system::decode_filename
std::string decode_filename(const std::string &s)
Definition: gx_system.cpp:1040
gx_system::CmdlineOptions::get_jack_midi
const Glib::ustring & get_jack_midi() const
Definition: gx_system.h:497
gx_system::BasicOptions::get_options
friend BasicOptions & get_options()
Definition: gx_system.h:511
gx_system::MeasureThreadsafe::pause
void pause()
Definition: gx_system.h:211
gx_system::BasicOptions::get_sys_IR_dir
const std::string & get_sys_IR_dir() const
Definition: gx_system.h:372
gx_system::CmdlineOptions::mainwin_y
int mainwin_y
Definition: gx_system.h:438
gx_system::IRFileListing::~IRFileListing
~IRFileListing()
Definition: gx_system.h:337
gx_system::CmdlineOptions::get_jack_noconnect
bool get_jack_noconnect() const
Definition: gx_system.h:500
gx_system::CmdlineOptions::get_temp_filepath
std::string get_temp_filepath(const std::string &basename) const
Definition: gx_system.h:464
gx_system::PathList::iterator
std::list< Glib::RefPtr< Gio::File > >::const_iterator iterator
Definition: gx_system.h:290
gx_system::Accum::count
int count() const
Definition: gx_system.h:161
gx_system::CmdlineOptions::no_warn_latency
bool no_warn_latency
Definition: gx_system.h:444
gx_system::MeasureThreadsafe::MeasureThreadsafe
MeasureThreadsafe()
Definition: gx_system.cpp:126
gx_system::CmdlineOptions::get_style_filepath
std::string get_style_filepath(const std::string &basename) const
Definition: gx_system.h:459
gx_system::MeasureThreadsafe::print
void print(bool verbose=false)
Definition: gx_system.cpp:130
gx_system::Measure::FPUStatus1
unsigned int FPUStatus1
Definition: gx_system.h:181
gx_system::CmdlineOptions::get_jack_single
bool get_jack_single() const
Definition: gx_system.h:501
gx_system::Accum
Definition: gx_system.h:143
gx_system::CmdlineOptions::get_rpcaddress
const Glib::ustring & get_rpcaddress()
Definition: gx_system.h:491
gx_system::CmdlineOptions::get_preset_dir
const std::string & get_preset_dir() const
Definition: gx_system.h:471
gx_system::CmdlineOptions::get_online_config_filename
std::string get_online_config_filename() const
Definition: gx_system.h:478
gx_system::Accum::reset
void reset()
Definition: gx_system.h:153
gx_system::CmdlineOptions::skin
SkinHandling skin
Definition: gx_system.h:434
gx_system::PathList
Definition: gx_system.h:287
gx_system::BasicOptions::get_user_ir_filepath
std::string get_user_ir_filepath(const std::string &basename) const
Definition: gx_system.h:368
gx_system::CmdlineOptions::get_xrun_watchdog
bool get_xrun_watchdog() const
Definition: gx_system.h:507
gx_system::Measure::print_accum
void print_accum(const Accum &accum, const char *prefix, bool verbose, int total=0) const
Definition: gx_system.cpp:49
gx_system::MeasureThreadsafe::stop
void stop()
Definition: gx_system.h:235
gx_system::BasicOptions::get_user_dir
const std::string & get_user_dir() const
Definition: gx_system.h:370
gx_system::CmdlineOptions::get_temp_dir
const std::string & get_temp_dir() const
Definition: gx_system.h:475
gx_system::atomic_compare_and_exchange
bool atomic_compare_and_exchange(volatile int *p, int oldv, int newv)
Definition: gx_system.h:113
gx_system::FileName::displayname
Glib::ustring displayname
Definition: gx_system.h:327
gx_system::CmdlineOptions::get_tuner_tet
const Glib::ustring & get_tuner_tet()
Definition: gx_system.h:487
gx_system::Accum::minimum
float minimum() const
Definition: gx_system.h:164
gx_system::CmdlineOptions::reload_lv2_presets
bool reload_lv2_presets
Definition: gx_system.h:452
gx_system::CmdlineOptions::get_jack_input
const Glib::ustring & get_jack_input() const
Definition: gx_system.h:498
gx_system::FileName::filename
std::string filename
Definition: gx_system.h:326
gx_system::BasicOptions::get_builder_filepath
std::string get_builder_filepath(const std::string &basename) const
Definition: gx_system.h:369
gx_system::measure_stop
void measure_stop()
Definition: gx_system.h:259
gx_system::Measure::duration1
Accum duration1
Definition: gx_system.h:179
gx_system::CmdlineOptions::get_opt_autosave
bool get_opt_autosave() const
Definition: gx_system.h:503
gx_system::measure_pause
void measure_pause()
Definition: gx_system.h:257
gx_system::Accum::mean
float mean() const
Definition: gx_system.h:162
gx_system::CmdlineOptions::get_factory_dir
const std::string & get_factory_dir() const
Definition: gx_system.h:476
gx_system::CmdlineOptions::skin_name
Glib::ustring skin_name
Definition: gx_system.h:443
gx_system::BasicOptions::get_IR_prefixmap
const PrefixConverter & get_IR_prefixmap() const
Definition: gx_system.h:374
gx_system::BasicOptions::~BasicOptions
~BasicOptions()
Definition: gx_system.cpp:402
gx_system::CmdlineOptions::system_show_tooltips
bool system_show_tooltips
Definition: gx_system.h:447
gx_system::CmdlineOptions::set_rpcport
void set_rpcport(int port)
Definition: gx_system.h:490
gx_system::PrefixConverter::add
void add(char s, const std::string &d)
Definition: gx_system.cpp:278
gx_system::CmdlineOptions::get_jack_instancename
const Glib::ustring & get_jack_instancename() const
Definition: gx_system.h:494
gx_system::CmdlineOptions::get_jack_servername
const Glib::ustring & get_jack_servername() const
Definition: gx_system.h:499
gx_system::CmdlineOptions::set_rpcaddress
void set_rpcaddress(const Glib::ustring &address)
Definition: gx_system.h:492
gx_system::PrefixConverter
Definition: gx_system.h:306
gx_system::IRFileListing::get_listing
std::vector< FileName > & get_listing()
Definition: gx_system.h:338
gx_system
Definition: gx_json.h:33
gx_system::atomic_get
int atomic_get(volatile int &p)
Definition: gx_system.h:97
gx_system::CmdlineOptions::mul_buffer
int mul_buffer
Definition: gx_system.h:442
gx_system::CmdlineOptions::get_tuner_ref
const Glib::ustring & get_tuner_ref()
Definition: gx_system.h:488
gx_system::Measure::duration
Accum duration
Definition: gx_system.h:178
gx_system::PathList::PathList
PathList(const char *env_name=0)
Definition: gx_system.cpp:224
gx_system::Measure::MXStatus1
unsigned int MXStatus1
Definition: gx_system.h:182
gx_system::CmdlineOptions::get_preset_filepath
std::string get_preset_filepath(const std::string &basename) const
Definition: gx_system.h:461
gx_system::CmdlineOptions::mainwin_height
int mainwin_height
Definition: gx_system.h:439
gx_system::atomic_set_0
void atomic_set_0(T **p)
Definition: gx_system.h:123
gx_system::CmdlineOptions::window_height
int window_height
Definition: gx_system.h:440
gx_system::Measure::duration2
Accum duration2
Definition: gx_system.h:180
gx_system::CmdlineOptions::~CmdlineOptions
~CmdlineOptions()
Definition: gx_system.cpp:739
gx_system::CmdlineOptions::system_show_value
bool system_show_value
Definition: gx_system.h:446
gx_system::Measure::reset
void reset()
Definition: gx_system.cpp:38
gx_system::PathList::end
iterator end()
Definition: gx_system.h:300
gx_system::SkinHandling
Definition: gx_system.h:272
get_fpu_status_bits
unsigned int get_fpu_status_bits()
Definition: gx_system.h:41
gx_system::CmdlineOptions::get_online_presets_filename
std::string get_online_presets_filename() const
Definition: gx_system.h:479
gx_system::CmdlineOptions::get_liveplaygui
bool get_liveplaygui() const
Definition: gx_system.h:483
gx_system::CmdlineOptions::get_old_user_dir
const std::string & get_old_user_dir() const
Definition: gx_system.h:469
gx_system::CmdlineOptions::system_show_presets
bool system_show_presets
Definition: gx_system.h:449
gx_system::add_time_measurement
void add_time_measurement()
Definition: gx_system.cpp:145
gx_system::list_subdirs
void list_subdirs(PathList pl, std::vector< FileName > &dirs)
Definition: gx_system.cpp:362
gx_system::CmdlineOptions::get_jack_output
Glib::ustring get_jack_output(unsigned int n) const
Definition: gx_system.cpp:839
gx_system::MeasureThreadsafe::start
void start()
Definition: gx_system.h:206
gx_system::SkinHandling::skin_list
std::vector< Glib::ustring > skin_list
Definition: gx_system.h:276
gx_system::measure_start
void measure_start()
Definition: gx_system.h:256
gx_system::CmdlineOptions::get_lv2_preset_dir
const std::string & get_lv2_preset_dir() const
Definition: gx_system.h:473
gx_system::Measure::ns2ms
float ns2ms(int n) const
Definition: gx_system.h:185
gx_system::Accum::add
void add(int diff)
Definition: gx_system.h:167
gx_system::CmdlineOptions::get_jack_uuid
const Glib::ustring & get_jack_uuid() const
Definition: gx_system.h:495
gx_system::FileName
Definition: gx_system.h:323
gx_system::PathList::add
void add(const std::string &d)
Definition: gx_system.h:295
gx_system::PathList::begin
iterator begin()
Definition: gx_system.h:299
gx_system::CmdlineOptions::preset_window_height
int preset_window_height
Definition: gx_system.h:441
gx_system::CmdlineOptions::get_mute
bool get_mute() const
Definition: gx_system.h:485
gx_system::CmdlineOptions::get_rcset
const Glib::ustring & get_rcset() const
Definition: gx_system.h:480
gx_system::strip
void strip(Glib::ustring &s)
Definition: gx_system.cpp:976
gx_system::PrefixConverter::symbol_path_map
std::map< char, std::string > symbol_path_map
Definition: gx_system.h:308
gx_system::PathList::contains
bool contains(const std::string &d) const
Definition: gx_system.cpp:249
gx_system::PrefixConverter::replace_symbol
std::string replace_symbol(const std::string &dir) const
Definition: gx_system.cpp:283
gx_system::SkinHandling::index
unsigned int index(const Glib::ustring &name)
Definition: gx_system.cpp:202
gx_system::CmdlineOptions::process
void process(int argc, char **argv)
Definition: gx_system.cpp:877
gx_system::SkinHandling::SkinHandling
SkinHandling(const std::string &styledir)
Definition: gx_system.h:277
gx_system::CmdlineOptions::get_clear_rc
bool get_clear_rc() const
Definition: gx_system.h:481
gx_system::measure_cont
void measure_cont()
Definition: gx_system.h:258
gx_system::CmdlineOptions::get_loop_dir
const std::string & get_loop_dir() const
Definition: gx_system.h:474
gx_system::CmdlineOptions::get_nogui
bool get_nogui() const
Definition: gx_system.h:482
gx_system::CmdlineOptions::get_ladspa_config_filename
std::string get_ladspa_config_filename() const
Definition: gx_system.h:477
gx_system::CmdlineOptions::system_animations
bool system_animations
Definition: gx_system.h:448
gx_system::CmdlineOptions::get_pluginpreset_filepath
std::string get_pluginpreset_filepath(const std::string &id, bool factory) const
Definition: gx_system.h:465
clear_fpu_status_bits
void clear_fpu_status_bits()
Definition: gx_system.h:40
gx_system::CmdlineOptions::get_loadfile
const std::string & get_loadfile() const
Definition: gx_system.h:493
gx_system::CmdlineOptions::get_opt_save_on_exit
bool get_opt_save_on_exit() const
Definition: gx_system.h:502
gx_system::gx_system_call
int gx_system_call(const std::string &, bool devnull=false, bool escape=false)
Definition: gx_system.cpp:954