25 #ifndef SRC_HEADERS_GX_SYSTEM_H_ 26 #define SRC_HEADERS_GX_SYSTEM_H_ 32 #define FE_DENORM __FE_DENORM 35 unsigned int fpu_status __attribute__ ((__mode__ (__HI__)));
36 __asm__(
"fnstsw %0" :
"=m" (*&fpu_status));
43 int ret = fegetexceptflag(&flagp, FE_ALL_EXCEPT);
54 #ifndef _PMMINTRIN_H_INCLUDED 55 #include <pmmintrin.h> 58 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
59 _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
62 #ifndef _XMMINTRIN_H_INCLUDED 63 #include <xmmintrin.h> 65 inline void AVOIDDENORMALS() { _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); }
69 #ifndef _XMMINTRIN_H_INCLUDED 79 #define ASCII_START (48) 80 #define GDK_NO_MOD_MASK (GdkModifierType)0 91 g_atomic_int_set(p, v);
94 inline void atomic_set(
volatile unsigned int* p,
unsigned int v) {
95 g_atomic_int_set(reinterpret_cast<volatile int*>(p), v);
99 return g_atomic_int_get(&p);
103 return g_atomic_int_get(reinterpret_cast<volatile int*>(&p));
111 g_atomic_int_inc(reinterpret_cast<volatile int*>(p));
115 #if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 68 && GLIB_MICRO_VERSION < 1) 116 return g_atomic_int_compare_and_exchange(p, oldv, newv);
118 return g_atomic_int_compare_and_exchange(const_cast<int*>(p), oldv, newv);
124 g_atomic_pointer_set(p, v);
129 g_atomic_pointer_set(p, 0);
134 return static_cast<T*
>(g_atomic_pointer_get(&p));
139 return g_atomic_pointer_compare_and_exchange(reinterpret_cast<void**>(p), static_cast<void*>(oldv), newv);
167 float mean()
const {
return sx /
n; }
168 float stddev()
const {
return std::sqrt((n * sx2 - sx * sx) / (n * (n-1))); }
176 sx2 +=
static_cast<float>(diff) * diff;
191 inline float ns2ms(
int n)
const {
return n * 1e-6; }
194 void print_accum(
const Accum& accum,
const char* prefix,
bool verbose,
int total = 0)
const;
195 void print(
bool verbose)
const;
209 inline int ts_diff(
const timespec& ts1,
const timespec& ts2);
215 clock_gettime(CLOCK_MONOTONIC, &t1s);
218 clock_gettime(CLOCK_MONOTONIC, &t1e);
225 clock_gettime(CLOCK_MONOTONIC, &t2s);
228 void print(
bool verbose =
false);
233 time_t df = ts1.tv_sec - ts2.tv_sec;
234 if (std::abs(df) > 2) {
237 return df * 1000000000 + (ts1.tv_nsec - ts2.tv_nsec);
244 clock_gettime(CLOCK_MONOTONIC, &n);
249 if (!(t1old.tv_sec == 0 && t1old.tv_nsec == 0)) {
283 : name(), skin_list() { set_styledir(styledir); }
284 void set_styledir(
const std::string& styledir);
285 bool is_in_list(
const std::string& skin_name);
286 const Glib::ustring& operator[](
unsigned int idx);
287 unsigned int index(
const Glib::ustring& skin_name);
288 string get_cssfile()
const;
289 void set_default_skin_name();
296 typedef std::list< Glib::RefPtr<Gio::File> >
pathlist;
297 typedef std::list< Glib::RefPtr<Gio::File> >::const_iterator
iterator;
302 void add(
const std::string& d) { dirs.push_back(Gio::File::create_for_path(d)); }
303 bool contains(
const std::string& d)
const;
304 bool find_dir(std::string *d,
const std::string& filename)
const;
305 size_t size() {
return dirs.size(); }
306 iterator
begin() {
return dirs.begin(); }
307 iterator
end() {
return dirs.end(); }
321 std::string replace_symbol(
const std::string& dir)
const;
322 std::string replace_path(
const std::string& dir)
const;
323 void add(
char s,
const std::string& d);
335 FileName(
const std::string& filename_,
const Glib::ustring& displayname_)
336 : filename(filename_), displayname(displayname_) {}
355 #define RPCPORT_DEFAULT (-2) 356 #define RPCPORT_NONE (-1) 372 static void make_ending_slash(std::string& dirpath);
376 std::string
get_user_filepath(
const std::string& basename)
const {
return user_dir + basename; }
440 std::string get_opskin();
449 void write_ui_vars();
473 void process(
int argc,
char** argv);
481 std::string
get_temp_filepath(
const std::string& basename)
const {
return temp_dir + basename; }
483 return (factory ? factory_dir : pluginpreset_dir) + id; }
485 return (lv2_preset_dir) + id; }
506 const Glib::ustring&
get_rcset()
const {
return rcset; }
515 cmdline_bank = bank; cmdline_preset = preset; }
539 Glib::ustring get_jack_output(
unsigned int n)
const;
557 int gx_system_call(
const std::string&,
bool devnull =
false,
bool escape =
false);
558 void strip(Glib::ustring& s);
562 std::stringstream ss;
572 #endif // SRC_HEADERS_GX_SYSTEM_H_
void set_jack_noconnect(bool set)
std::vector< FileName > listing
Glib::ustring cmdline_bank
void set_plugin_dir(std::string dir)
void clear_fpu_status_bits()
Glib::OptionGroup main_group
const std::string & get_preset_dir() const
unsigned int get_fpu_status_bits()
PrefixConverter IR_prefixmap
std::list< Glib::RefPtr< Gio::File > >::const_iterator iterator
std::string get_pluginpreset_filepath(const std::string &id, bool factory) const
unsigned int _MM_GET_EXCEPTION_STATE(void)
std::string get_factory_filepath(const std::string &basename) const
BasicOptions & get_options()
Glib::ustring cmdline_preset
std::string get_online_presets_filename() const
std::string get_builder_filepath(const std::string &basename) const
const std::string & get_sys_IR_dir() const
bool get_hideonquit() const
const Glib::ustring & get_jack_instancename() const
const Glib::ustring & get_cmdline_bank()
MeasureThreadsafe measure
std::string get_user_ir_filepath(const std::string &basename) const
void _MM_SET_EXCEPTION_STATE(unsigned int __mask)
Glib::OptionGroup optgroup_debug
FileName(const std::string &filename_, const Glib::ustring &displayname_)
void list_subdirs(PathList pl, std::vector< FileName > &dirs)
int gx_system_call(const std::string &, bool devnull=false, bool escape=false)
std::string get_lv2_preset_filepath(const std::string &id) const
void set_rpcaddress(const Glib::ustring &address)
bool system_show_tooltips
const std::string & get_path_to_program() const
void set_user_dir(std::string dir)
Glib::OptionGroup optgroup_overload
bool get_opt_autosave() const
const std::string & get_loop_dir() const
Glib::ustring displayname
std::list< Glib::RefPtr< Gio::File > > pathlist
Glib::OptionGroup optgroup_jack
const Glib::ustring & get_jack_servername() const
Glib::ustring jack_servername
int atomic_get(volatile int &p)
std::string decode_filename(const std::string &s)
std::string get_style_filepath(const std::string &basename) const
void set_lv2_preset_dir(std::string dir)
void add(const std::string &d)
const Glib::ustring & get_rcset() const
int get_idle_thread_timeout() const
const Glib::ustring & get_rpcaddress()
static BasicOptions * instance
void set_opt_autosave(bool set)
bool get_jack_single() const
const Glib::ustring & get_cmdline_preset()
void set_jack_instancename(std::string name)
void set_hideonquit(bool set)
void set_pluginpreset_dir(std::string dir)
const Glib::ustring & get_jack_input() const
std::string get_plugin_filepath(const std::string &basename) const
bool get_convolver_watchdog() const
std::string get_current_style_cssfile() const
const std::string & get_pluginpreset_dir() const
bool system_tuner_midiout
std::string get_pixmap_filepath(const std::string &basename) const
bool get_watchdog_warning() const
string get_cssfile() const
std::string path_to_program
bool get_jack_noconnect() const
const Glib::ustring & get_tuner_ref()
std::string to_string(const T &t)
const PathList & get_IR_pathlist() const
std::string get_ladspa_config_filename() const
std::string get_online_config_filename() const
const Glib::ustring & get_jack_uuid2() const
bool get_opt_save_on_exit() const
const Glib::ustring & get_jack_midi() const
const std::string & get_factory_dir() const
std::vector< FileName > & get_listing()
std::vector< Glib::ustring > jack_outputs
void set_rpcport(int port)
void atomic_inc(volatile int *p)
const Glib::ustring & get_tuner_tet()
SkinHandling(const std::string &styledir)
const std::string & get_temp_dir() const
bool get_xrun_watchdog() const
const std::string & get_old_user_dir() const
void set_user_IR_dir(std::string dir)
void strip(Glib::ustring &s)
std::map< char, std::string > symbol_path_map
std::string lv2_preset_dir
std::string get_temp_filepath(const std::string &basename) const
std::string get_user_filepath(const std::string &basename) const
void atomic_set(volatile int *p, int v)
bool get_liveplaygui() const
const Glib::ustring & get_setbank()
const Glib::ustring & get_jack_uuid() const
const std::string & get_style_dir() const
bool atomic_compare_and_exchange(volatile int *p, int oldv, int newv)
Glib::OptionGroup optgroup_file
const std::string & get_lv2_preset_dir() const
Glib::ustring jack_instance
void set_temp_dir(std::string dir)
bool get_clear_rc() const
const std::string & get_loadfile() const
int get_sporadic_overload() const
std::string get_preset_filepath(const std::string &basename) const
int ts_diff(const timespec &ts1, const timespec &ts2)
std::string pluginpreset_dir
void set_jack_single(bool set)
const std::string & get_user_dir() const
void add_time_measurement()
void set_loop_dir(std::string dir)
const PrefixConverter & get_IR_prefixmap() const
Glib::OptionGroup optgroup_style
const std::string & get_plugin_dir() const
void set_bank_preset(const Glib::ustring &bank, const Glib::ustring &preset)
void set_preset_dir(std::string dir)
std::vector< Glib::ustring > skin_list
const std::string & get_user_IR_dir() const
std::string encode_filename(const std::string &s)