From 9ea36b8e8c046d9baf26366eb26532ba46b01fa1 Mon Sep 17 00:00:00 2001 From: terminatorX <> Date: Fri, 6 Feb 2004 18:28:21 +0000 Subject: [PATCH] Verbose plugin loading, code and minor gui cleanups - Alex --- .../C/terminatorX-manual.xml | 48 ++-- src/tX_audiodevice.cc | 2 +- src/tX_dialog.cc | 4 + src/tX_flash.c | 1 + src/tX_glade_interface.cc | 164 ++++++----- src/tX_global.c | 8 + src/tX_global.h | 4 + src/tX_ladspa.cc | 20 +- src/tX_mastergui.cc | 2 +- src/tX_vtt.cc | 258 ++++++------------ terminatorX.glade | 219 ++++++++++----- 11 files changed, 382 insertions(+), 348 deletions(-) diff --git a/doc/terminatorX-manual/C/terminatorX-manual.xml b/doc/terminatorX-manual/C/terminatorX-manual.xml index 1d68d72..a106384 100644 --- a/doc/terminatorX-manual/C/terminatorX-manual.xml +++ b/doc/terminatorX-manual/C/terminatorX-manual.xml @@ -7,28 +7,22 @@
terminatorX - Manual - Alexander - König 1999 - 2000 - 2001 - 2002 - 2003 Alexander König - Version 3.81 + Version 3.82 Permission is granted to copy, distribute and/or modify this @@ -893,7 +887,9 @@ With release 3.70 the effects are no longer hardcoded into the turntable. The effects are now arranged within an per-turntable - effect-queue. The effect sequence is configurable by the user. To move + effect-queue. Additionally Version 3.82 introduces a second effect-queue + that follows the first: the queue for stereo LADSPA plugin effects. + The effect sequence is configurable by the user. To move an effect to higher position within the queue, press the blue upward arrow button. This will cause the effect to be rendered before the following @@ -933,16 +929,27 @@ this setup you will not hear anything from the second LADSPA effect in the echo-signal. - For more information on a LADSPA plugin, press it's - panel's label and a small info box will pop up. + Release 3.82 introduces a menu for each LADSPA plugin. Simply + click on the Plugin's label to operate the menu. Aside of displaying + detailed information about a plugin, the menu also contains some new + functionality: Add Dry/Wet Control. When activated + the effect receives an extra Dry/Wet control that allows you to + modify to what extent the effect will actually effect the turntable's + signal. The extra control doesn't differ from the other controls: + you can record events for it, etc. The additional control can be + removed via the very same menu item that adds the control. + - FX Button + FX and + Stereo FX Buttons Press this button to load a LADSPA plugin into the effect queue of the turntable. A menu holding the available - (terminatorX-"compatible") LADSPA-plugins will pop up. The + (terminatorX-"compatible") LADSPA-plugins will pop up - mono + plugins are available from the FX menu, stereo + plugins from the Stereo FX menu. The plugins are grouped within submenus according to the modules the plugins are contained in. Simply select the plugin you want to load from this menu and a panel for it will pop up at the end of @@ -1305,21 +1312,26 @@ Not every plugin is supported by terminatorX though. As the plugins are inserted into the per-turntable effect-queue, they have to - be mono plugins (as is that queue) for now. This is why terminatorX will - load plugins with one audio-in port and - one audio-out port only. + be mono or (as of Version 3.82) stereo plugins. This is why terminatorX will + load plugins with one or two + audio-in ports and one or two + audio-out ports only. The decision on whether a plugin is terminatorX-suitable is made on terminatorX startup, so only plugins that fit into the effect queue - will be offered in the plugin-menu that pops up when the - FX button is clicked. Depending on whether the + will be offered in the mono plugin-menu that pops up when the + FX button is clicked or in the stereo plugin menu + when the Stereo FX button si clicked. Depending on + whether the terminatorX binary you're using was built with or without liblrdf () support the plugin menu will either contain sub-menus with plugin categories (with liblrdf) or just a single menu with the Unclassified category. On startup terminatorX will print some information on the - LADSPA-plugins analysis process to the standard output. Watch the + LADSPA-plugins analysis process to the standard output if you have + enabled "Verbose Plugin Loading" in the Preferences dialog. + Watch the terminal you run terminatorX from for that info if you have problems loading a plugin. diff --git a/src/tX_audiodevice.cc b/src/tX_audiodevice.cc index 34056f1..8dcad62 100644 --- a/src/tX_audiodevice.cc +++ b/src/tX_audiodevice.cc @@ -415,7 +415,7 @@ tX_jack_client::~tX_jack_client() void tX_jack_client::error(const char *desc) { - tX_error("tX_jack_client::error() jack error: %s.", desc); + tX_error("jack error: %s.", desc); } int tX_jack_client::srate(jack_nframes_t nframes, void *arg) diff --git a/src/tX_dialog.cc b/src/tX_dialog.cc index 31ab0d4..8b1c09c 100644 --- a/src/tX_dialog.cc +++ b/src/tX_dialog.cc @@ -147,6 +147,8 @@ void apply_options(GtkWidget *dialog) { globals.prelis=(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "prelisten_enabled")))==TRUE); globals.restore_midi_connections=(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "reconnect_enabled")))==TRUE); globals.quit_confirm=(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "quit_confirm")))==TRUE); + globals.verbose_plugin_loading=(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "verbose_plugin_loading")))==TRUE); + globals.force_nonrt_plugins=(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "force_nonrt_plugins")))==TRUE); /* update colors */ std::list::iterator vtt; @@ -477,6 +479,8 @@ void init_tx_options(GtkWidget *dialog) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "prelisten_enabled")), globals.prelis); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "reconnect_enabled")), globals.restore_midi_connections); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "quit_confirm")), globals.quit_confirm); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "force_nonrt_plugins")), globals.force_nonrt_plugins); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lookup_widget(dialog, "verbose_plugin_loading")), globals.verbose_plugin_loading); } void create_options() diff --git a/src/tX_flash.c b/src/tX_flash.c index 0f62fd1..9d8d522 100644 --- a/src/tX_flash.c +++ b/src/tX_flash.c @@ -347,6 +347,7 @@ void gtk_tx_flash_set_level(GtkWidget *widget, f_prec left_channel, f_prec right g_return_if_fail (GTK_IS_TX_FLASH (widget)); tx_flash = GTK_TX_FLASH (widget); + //printf("flash %08x: setting levels: %f, %f\n", tx_flash, left_channel, right_channel); gtk_tx_flash_set_channel_level(tx_flash, left_channel, &tx_flash->channel[0]); gtk_tx_flash_set_channel_level(tx_flash, right_channel, &tx_flash->channel[1]); diff --git a/src/tX_glade_interface.cc b/src/tX_glade_interface.cc index 0462b7a..66edc9c 100644 --- a/src/tX_glade_interface.cc +++ b/src/tX_glade_interface.cc @@ -62,7 +62,6 @@ create_tx_adjust (void) label34 = gtk_label_new ("In order to compute the optimum pitch value, please specify how many loops of this turntable should play as fast as how many loops of the masterturntable:"); gtk_widget_show (label34); gtk_box_pack_start (GTK_BOX (vbox1), label34, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label34), GTK_JUSTIFY_LEFT); gtk_label_set_line_wrap (GTK_LABEL (label34), TRUE); table7 = gtk_table_new (2, 2, FALSE); @@ -83,14 +82,12 @@ create_tx_adjust (void) gtk_table_attach (GTK_TABLE (table7), label36, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT); label35 = gtk_label_new ("Loops of this turntable turntable:"); gtk_widget_show (label35); gtk_table_attach (GTK_TABLE (table7), label35, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label35), GTK_JUSTIFY_LEFT); cycles_adj = gtk_adjustment_new (1, 1, 100, 1, 10, 10); cycles = gtk_spin_button_new (GTK_ADJUSTMENT (cycles_adj), 1, 0); @@ -252,6 +249,10 @@ create_tx_options (void) GtkWidget *reconnect_enabled; GtkWidget *label57; GtkWidget *quit_confirm; + GtkWidget *label58; + GtkWidget *label59; + GtkWidget *verbose_plugin_loading; + GtkWidget *force_nonrt_plugins; GtkWidget *label3; GtkWidget *dialog_action_area3; GtkWidget *pref_reset; @@ -279,12 +280,11 @@ create_tx_options (void) gtk_table_set_row_spacings (GTK_TABLE (table4), 2); gtk_table_set_col_spacings (GTK_TABLE (table4), 2); - label18 = gtk_label_new ("Use Driver:"); + label18 = gtk_label_new ("Driver:"); gtk_widget_show (label18); gtk_table_attach (GTK_TABLE (table4), label18, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label18), 0, 0.5); hbox2 = gtk_hbox_new (FALSE, 5); @@ -314,15 +314,14 @@ create_tx_options (void) gtk_radio_button_set_group (GTK_RADIO_BUTTON (jack_driver), oss_driver_group); oss_driver_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (jack_driver)); - use_realtime_label = gtk_label_new ("Use realtime scheduling\nwhere available:"); + use_realtime_label = gtk_label_new ("Scheduling:"); gtk_widget_show (use_realtime_label); gtk_table_attach (GTK_TABLE (table4), use_realtime_label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (use_realtime_label), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (use_realtime_label), 0, 0.5); - use_realtime = gtk_check_button_new_with_mnemonic ("Enabled"); + use_realtime = gtk_check_button_new_with_mnemonic ("Use realtime scheduling where available"); gtk_widget_show (use_realtime); gtk_table_attach (GTK_TABLE (table4), use_realtime, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -331,7 +330,6 @@ create_tx_options (void) label1 = gtk_label_new ("Audio"); gtk_widget_show (label1); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1); - gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_LEFT); table5 = gtk_table_new (4, 2, FALSE); gtk_widget_show (table5); @@ -340,20 +338,18 @@ create_tx_options (void) gtk_table_set_row_spacings (GTK_TABLE (table5), 2); gtk_table_set_col_spacings (GTK_TABLE (table5), 2); - label21 = gtk_label_new ("Audio Device:"); + label21 = gtk_label_new ("Audio device:"); gtk_widget_show (label21); gtk_table_attach (GTK_TABLE (table5), label21, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label21), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label21), 0, 0.5); - label22 = gtk_label_new ("No. of Buffers:"); + label22 = gtk_label_new ("No. of buffers:"); gtk_widget_show (label22); gtk_table_attach (GTK_TABLE (table5), label22, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label22), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label22), 0, 0.5); label23 = gtk_label_new ("Buffersize (2^x):"); @@ -361,7 +357,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table5), label23, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label23), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label23), 0, 0.5); label24 = gtk_label_new ("Samplerate (Hz):"); @@ -369,7 +364,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table5), label24, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label24), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); oss_audio_device = gtk_combo_new (); @@ -397,6 +391,7 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table5), oss_buffersize, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (oss_buffersize), GTK_POS_LEFT); gtk_scale_set_digits (GTK_SCALE (oss_buffersize), 0); oss_samplerate = gtk_combo_new (); @@ -414,7 +409,6 @@ create_tx_options (void) label15 = gtk_label_new ("Audio: OSS"); gtk_widget_show (label15); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label15); - gtk_label_set_justify (GTK_LABEL (label15), GTK_JUSTIFY_LEFT); table6 = gtk_table_new (5, 2, FALSE); gtk_widget_show (table6); @@ -428,7 +422,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table6), label27, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label27), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5); label29 = gtk_label_new ("Period Time (ms):"); @@ -436,7 +429,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table6), label29, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label29), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label29), 0, 0.5); label30 = gtk_label_new ("Samplerate (Hz):"); @@ -444,7 +436,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table6), label30, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label30), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label30), 0, 0.5); alsa_audio_device = gtk_combo_new (); @@ -474,6 +465,7 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table6), alsa_period_time, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (alsa_period_time), GTK_POS_LEFT); gtk_scale_set_digits (GTK_SCALE (alsa_period_time), 0); label32 = gtk_label_new ("Buffer Time (ms):"); @@ -481,14 +473,14 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table6), label32, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label32), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label32), 0, 0.5); - alsa_buffer_time = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (50, 10, 500, 1, 10, 10))); + alsa_buffer_time = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (69, 10, 500, 1, 10, 10))); gtk_widget_show (alsa_buffer_time); gtk_table_attach (GTK_TABLE (table6), alsa_buffer_time, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (alsa_buffer_time), GTK_POS_LEFT); gtk_scale_set_digits (GTK_SCALE (alsa_buffer_time), 0); label39 = gtk_label_new ("Free HWstats:"); @@ -496,7 +488,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table6), label39, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label39), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label39), 0, 0.5); alsa_free_hwstats = gtk_check_button_new_with_mnemonic ("Enabled"); @@ -509,7 +500,6 @@ create_tx_options (void) label16 = gtk_label_new ("Audio: ALSA"); gtk_widget_show (label16); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label16); - gtk_label_set_justify (GTK_LABEL (label16), GTK_JUSTIFY_LEFT); table1 = gtk_table_new (5, 2, FALSE); gtk_widget_show (table1); @@ -518,28 +508,25 @@ create_tx_options (void) gtk_table_set_row_spacings (GTK_TABLE (table1), 2); gtk_table_set_col_spacings (GTK_TABLE (table1), 2); - label5 = gtk_label_new ("XInput Device:"); + label5 = gtk_label_new ("XInput device:"); gtk_widget_show (label5); gtk_table_attach (GTK_TABLE (table1), label5, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label5), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label5), 0, 0.5); - label6 = gtk_label_new ("Mouse Speed:"); + label6 = gtk_label_new ("Mouse speed:"); gtk_widget_show (label6); gtk_table_attach (GTK_TABLE (table1), label6, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label6), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5); - label7 = gtk_label_new ("Stop-Sense-Cycles:"); + label7 = gtk_label_new ("Stop-sense-cycles:"); gtk_widget_show (label7); gtk_table_attach (GTK_TABLE (table1), label7, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label7), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5); xinput_device = gtk_combo_new (); @@ -559,47 +546,46 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table1), mouse_speed, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (mouse_speed), GTK_POS_LEFT); stop_sense_cycles = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (80, 30, 250, 5, 1, 1))); gtk_widget_show (stop_sense_cycles); gtk_table_attach (GTK_TABLE (table1), stop_sense_cycles, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_scale_set_digits (GTK_SCALE (stop_sense_cycles), 0); + gtk_scale_set_value_pos (GTK_SCALE (stop_sense_cycles), GTK_POS_LEFT); label25 = gtk_label_new ("XInput:"); gtk_widget_show (label25); gtk_table_attach (GTK_TABLE (table1), label25, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label25), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); - xinput_enable = gtk_check_button_new_with_mnemonic ("Enabled"); + xinput_enable = gtk_check_button_new_with_mnemonic ("Activate XInput support"); gtk_widget_show (xinput_enable); gtk_table_attach (GTK_TABLE (table1), xinput_enable, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, xinput_enable, "CAREFUL! Enable this *only* if you want to use an input device than your default X-Pointer (yes, your mouse ;). You have to select your desired device as well. Selecting the default mouse pointer will crash terminatorX so if you want to use that keep this option disabled.", NULL); - label37 = gtk_label_new ("Turntable Inertia:"); + label37 = gtk_label_new ("Turntable inertia:"); gtk_widget_show (label37); gtk_table_attach (GTK_TABLE (table1), label37, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label37), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label37), 0, 0.5); - vtt_inertia = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (10, 1, 310, 0.01, 1, 10))); + vtt_inertia = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (11, 1, 310, 0.01, 1, 10))); gtk_widget_show (vtt_inertia); gtk_table_attach (GTK_TABLE (table1), vtt_inertia, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (vtt_inertia), GTK_POS_LEFT); label4 = gtk_label_new ("Input"); gtk_widget_show (label4); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label4); - gtk_label_set_justify (GTK_LABEL (label4), GTK_JUSTIFY_LEFT); table2 = gtk_table_new (7, 2, FALSE); gtk_widget_show (table2); @@ -608,50 +594,47 @@ create_tx_options (void) gtk_table_set_row_spacings (GTK_TABLE (table2), 2); gtk_table_set_col_spacings (GTK_TABLE (table2), 2); - label8 = gtk_label_new ("Main Window Tooltips:"); + label8 = gtk_label_new ("Tooltips:"); gtk_widget_show (label8); gtk_table_attach (GTK_TABLE (table2), label8, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label8), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5); - label9 = gtk_label_new ("Update Idle (ms):"); + label9 = gtk_label_new ("Update idle (ms):"); gtk_widget_show (label9); gtk_table_attach (GTK_TABLE (table2), label9, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label9), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5); - label10 = gtk_label_new ("Update Delay (cycles):"); + label10 = gtk_label_new ("Update delay (cycles):"); gtk_widget_show (label10); gtk_table_attach (GTK_TABLE (table2), label10, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label10), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label10), 0, 0.5); - label11 = gtk_label_new ("VU Meter Decay:"); + label11 = gtk_label_new ("VU meter decay:"); gtk_widget_show (label11); gtk_table_attach (GTK_TABLE (table2), label11, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label11), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (label11), 0, 0.5); + gtk_misc_set_alignment (GTK_MISC (label11), 0, 0.49); - mainwin_tooltips = gtk_check_button_new_with_mnemonic ("Enabled"); + mainwin_tooltips = gtk_check_button_new_with_mnemonic ("Activate tooltips for the main wnidow"); gtk_widget_show (mainwin_tooltips); gtk_table_attach (GTK_TABLE (table2), mainwin_tooltips, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, mainwin_tooltips, "Enable tooltips for the terminatorX main window.", NULL); - update_idle = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (11, 2, 100, 1, 10, 10))); + update_idle = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (11, 6, 100, 1, 10, 10))); gtk_widget_show (update_idle); gtk_table_attach (GTK_TABLE (table2), update_idle, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (update_idle), GTK_POS_LEFT); gtk_scale_set_digits (GTK_SCALE (update_idle), 0); update_delay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 15, 1, 10, 10))); @@ -659,23 +642,24 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table2), update_delay, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); - gtk_scale_set_digits (GTK_SCALE (update_delay), 0); + gtk_scale_set_value_pos (GTK_SCALE (update_delay), GTK_POS_LEFT); vumeter_decay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0.8, 0.8, 0.99, 0.01, 0.01, 0.001))); gtk_widget_show (vumeter_decay); gtk_table_attach (GTK_TABLE (table2), vumeter_decay, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); + gtk_scale_set_value_pos (GTK_SCALE (vumeter_decay), GTK_POS_LEFT); + gtk_scale_set_digits (GTK_SCALE (vumeter_decay), 2); - label14 = gtk_label_new ("Startup-Nagbox:"); + label14 = gtk_label_new ("Nagbox:"); gtk_widget_show (label14); gtk_table_attach (GTK_TABLE (table2), label14, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label14), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label14), 0, 0.5); - startup_nagbox = gtk_check_button_new_with_mnemonic ("Enabled"); + startup_nagbox = gtk_check_button_new_with_mnemonic ("Display nagbox on startup"); gtk_widget_show (startup_nagbox); gtk_table_attach (GTK_TABLE (table2), startup_nagbox, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -687,7 +671,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table2), label12, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label12), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5); hbox1 = gtk_hbox_new (FALSE, 5); @@ -714,12 +697,11 @@ create_tx_options (void) gtk_radio_button_set_group (GTK_RADIO_BUTTON (buttons_text_only), buttons_text_and_icon_group); buttons_text_and_icon_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (buttons_text_only)); - label38 = gtk_label_new ("Filename Length:"); + label38 = gtk_label_new ("Filename length:"); gtk_widget_show (label38); gtk_table_attach (GTK_TABLE (table2), label38, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label38), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label38), 0, 0.5); filename_length_adj = gtk_adjustment_new (8, 3, 255, 1, 10, 10); @@ -732,7 +714,6 @@ create_tx_options (void) label2 = gtk_label_new ("User Interface"); gtk_widget_show (label2); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 4), label2); - gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT); table8 = gtk_table_new (6, 2, FALSE); gtk_widget_show (table8); @@ -745,7 +726,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table8), label42, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label42), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label42), 0, 0.5); label43 = gtk_label_new ("Background (no focus):"); @@ -753,7 +733,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table8), label43, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label43), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label43), 0, 0.5); label44 = gtk_label_new ("Signal (focus):"); @@ -761,7 +740,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table8), label44, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label44), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label44), 0, 0.5); label45 = gtk_label_new ("Signal (no focus):"); @@ -769,7 +747,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table8), label45, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label45), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label45), 0, 0.5); label46 = gtk_label_new ("Cursor:"); @@ -777,7 +754,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table8), label46, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label46), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label46), 0, 0.5); label47 = gtk_label_new ("Cursor (mute):"); @@ -785,7 +761,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table8), label47, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label47), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label47), 0, 0.5); wav_display_bg_focus = gtk_button_new_with_mnemonic ("button1"); @@ -827,7 +802,6 @@ create_tx_options (void) label41 = gtk_label_new ("Audio Colors"); gtk_widget_show (label41); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 5), label41); - gtk_label_set_justify (GTK_LABEL (label41), GTK_JUSTIFY_LEFT); table9 = gtk_table_new (4, 2, FALSE); gtk_widget_show (table9); @@ -841,7 +815,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table9), label53, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label53), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label53), 0, 0.5); label54 = gtk_label_new ("Regular Signal:"); @@ -849,7 +822,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table9), label54, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label54), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label54), 0, 0.5); label55 = gtk_label_new ("Loud Signal:"); @@ -857,7 +829,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table9), label55, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label55), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label55), 0, 0.5); label56 = gtk_label_new ("Scale Opacity:"); @@ -865,7 +836,6 @@ create_tx_options (void) gtk_table_attach (GTK_TABLE (table9), label56, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label56), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label56), 0, 0.5); vu_meter_border_intensity = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0.07, 0, 1, 0.01, 0, 0))); @@ -897,21 +867,19 @@ create_tx_options (void) label52 = gtk_label_new ("VU Colors"); gtk_widget_show (label52); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 6), label52); - gtk_label_set_justify (GTK_LABEL (label52), GTK_JUSTIFY_LEFT); - table3 = gtk_table_new (6, 2, FALSE); + table3 = gtk_table_new (8, 2, FALSE); gtk_widget_show (table3); gtk_container_add (GTK_CONTAINER (notebook1), table3); gtk_container_set_border_width (GTK_CONTAINER (table3), 4); gtk_table_set_row_spacings (GTK_TABLE (table3), 2); gtk_table_set_col_spacings (GTK_TABLE (table3), 2); - label13 = gtk_label_new ("Soundfile Editor:"); + label13 = gtk_label_new ("Soundfile editor:"); gtk_widget_show (label13); gtk_table_attach (GTK_TABLE (table3), label13, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label13), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5); soundfile_editor = gtk_entry_new (); @@ -921,27 +889,25 @@ create_tx_options (void) (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, soundfile_editor, "Enter the command to run your favourite soundfile editor. It will be started when you choose \"Edit File\" from the turntable's file menu.", NULL); - label26 = gtk_label_new ("\"Pre-Listen\" to soundfiles:"); + label26 = gtk_label_new ("Pre-listen:"); gtk_widget_show (label26); gtk_table_attach (GTK_TABLE (table3), label26, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label26), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5); - prelisten_enabled = gtk_check_button_new_with_mnemonic ("Enabled"); + prelisten_enabled = gtk_check_button_new_with_mnemonic ("Play audiofiles in file dialogs"); gtk_widget_show (prelisten_enabled); gtk_table_attach (GTK_TABLE (table3), prelisten_enabled, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, prelisten_enabled, "When enabled soundfiles will be playedback when selected in a file dialog (before loading them).", NULL); - label31 = gtk_label_new ("LADSPA RDF Path:"); + label31 = gtk_label_new ("LADSPA RDF path:"); gtk_widget_show (label31); gtk_table_attach (GTK_TABLE (table3), label31, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label31), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label31), 0, 0.5); ladspa_rdf_path = gtk_entry_new (); @@ -950,53 +916,75 @@ create_tx_options (void) (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); - label33 = gtk_label_new ("Compress set files:"); + label33 = gtk_label_new ("Compression:"); gtk_widget_show (label33); gtk_table_attach (GTK_TABLE (table3), label33, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label33), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label33), 0, 0.5); - compress_set_files = gtk_check_button_new_with_mnemonic ("Enabled"); + compress_set_files = gtk_check_button_new_with_mnemonic ("Compress terminatorX set files"); gtk_widget_show (compress_set_files); gtk_table_attach (GTK_TABLE (table3), compress_set_files, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - label40 = gtk_label_new ("Restore MIDI connections:"); + label40 = gtk_label_new ("MIDI:"); gtk_widget_show (label40); gtk_table_attach (GTK_TABLE (table3), label40, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label40), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label40), 0, 0.5); - reconnect_enabled = gtk_check_button_new_with_mnemonic ("Enabled"); + reconnect_enabled = gtk_check_button_new_with_mnemonic ("Restore MIDI connections on startup"); gtk_widget_show (reconnect_enabled); gtk_table_attach (GTK_TABLE (table3), reconnect_enabled, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, reconnect_enabled, "When enabled soundfiles will be playedback when selected in a file dialog (before loading them).", NULL); - label57 = gtk_label_new ("Ask for \"Quit\" confirmation:"); + label57 = gtk_label_new ("Quit:"); gtk_widget_show (label57); gtk_table_attach (GTK_TABLE (table3), label57, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_label_set_justify (GTK_LABEL (label57), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label57), 0, 0.5); - quit_confirm = gtk_check_button_new_with_mnemonic ("Enabled"); + quit_confirm = gtk_check_button_new_with_mnemonic ("Ask for \"Quit\" confirmation"); gtk_widget_show (quit_confirm); gtk_table_attach (GTK_TABLE (table3), quit_confirm, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); + label58 = gtk_label_new ("Plugins:"); + gtk_widget_show (label58); + gtk_table_attach (GTK_TABLE (table3), label58, 0, 1, 6, 7, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label58), 0, 0.5); + + label59 = gtk_label_new (""); + gtk_widget_show (label59); + gtk_table_attach (GTK_TABLE (table3), label59, 0, 1, 7, 8, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + gtk_misc_set_alignment (GTK_MISC (label59), 0, 0.5); + + verbose_plugin_loading = gtk_check_button_new_with_mnemonic ("Verbose plugin loading"); + gtk_widget_show (verbose_plugin_loading); + gtk_table_attach (GTK_TABLE (table3), verbose_plugin_loading, 1, 2, 6, 7, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + + force_nonrt_plugins = gtk_check_button_new_with_mnemonic ("Force loading of \"non-RT\" plugins "); + gtk_widget_show (force_nonrt_plugins); + gtk_table_attach (GTK_TABLE (table3), force_nonrt_plugins, 1, 2, 7, 8, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (0), 0, 0); + label3 = gtk_label_new ("Misc"); gtk_widget_show (label3); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 7), label3); - gtk_label_set_justify (GTK_LABEL (label3), GTK_JUSTIFY_LEFT); dialog_action_area3 = GTK_DIALOG (tx_options)->action_area; gtk_widget_show (dialog_action_area3); @@ -1176,6 +1164,10 @@ create_tx_options (void) GLADE_HOOKUP_OBJECT (tx_options, reconnect_enabled, "reconnect_enabled"); GLADE_HOOKUP_OBJECT (tx_options, label57, "label57"); GLADE_HOOKUP_OBJECT (tx_options, quit_confirm, "quit_confirm"); + GLADE_HOOKUP_OBJECT (tx_options, label58, "label58"); + GLADE_HOOKUP_OBJECT (tx_options, label59, "label59"); + GLADE_HOOKUP_OBJECT (tx_options, verbose_plugin_loading, "verbose_plugin_loading"); + GLADE_HOOKUP_OBJECT (tx_options, force_nonrt_plugins, "force_nonrt_plugins"); GLADE_HOOKUP_OBJECT (tx_options, label3, "label3"); GLADE_HOOKUP_OBJECT_NO_REF (tx_options, dialog_action_area3, "dialog_action_area3"); GLADE_HOOKUP_OBJECT (tx_options, pref_reset, "pref_reset"); @@ -1218,7 +1210,6 @@ create_tx_del_mode (void) delmode_label = gtk_label_new ("Select which events to delete."); gtk_widget_show (delmode_label); gtk_box_pack_start (GTK_BOX (vbox2), delmode_label, TRUE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (delmode_label), GTK_JUSTIFY_LEFT); hbox3 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox3); @@ -1308,7 +1299,6 @@ create_tX_midilearn (void) midilabel = gtk_label_new ("Waiting for MIDI event...."); gtk_widget_show (midilabel); gtk_box_pack_start (GTK_BOX (vbox4), midilabel, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (midilabel), GTK_JUSTIFY_LEFT); dialog_action_area5 = GTK_DIALOG (tX_midilearn)->action_area; gtk_widget_show (dialog_action_area5); diff --git a/src/tX_global.c b/src/tX_global.c index 248a6c9..489ad6e 100644 --- a/src/tX_global.c +++ b/src/tX_global.c @@ -154,6 +154,9 @@ void set_global_defaults() { globals.quit_confirm=1; globals.use_realtime=1; globals.auto_assign_midi=0; + + globals.verbose_plugin_loading=0; + globals.force_nonrt_plugins=0; } int load_globals_xml() { @@ -253,6 +256,8 @@ int load_globals_xml() { restore_int("quit_confirm", globals.quit_confirm); restore_int("use_realtime", globals.use_realtime); restore_int("auto_assign_midi", globals.auto_assign_midi); + restore_int("force_nonrt_plugins", globals.force_nonrt_plugins); + restore_int("verbose_plugin_loading", globals.verbose_plugin_loading); #ifdef USE_ALSA_MIDI_IN if (!elementFound && (xmlStrcmp(cur->name, (xmlChar *) "midi_connections")==0)) { @@ -370,6 +375,9 @@ void store_globals() { store_int("quit_confirm", globals.quit_confirm); store_int("use_realtime", globals.use_realtime); store_int("auto_assign_midi", globals.auto_assign_midi); + + store_int("verbose_plugin_loading", globals.verbose_plugin_loading); + store_int("force_nonrt_plugins", globals.force_nonrt_plugins); #ifdef USE_ALSA_MIDI_IN tX_midiin_store_connections(rc, indent); diff --git a/src/tX_global.h b/src/tX_global.h index f7bd8d2..e74e343 100644 --- a/src/tX_global.h +++ b/src/tX_global.h @@ -63,6 +63,7 @@ extern "C" { #define tX_error(fmt, args...); { fprintf(stderr, "* tX_error: "); fprintf(stderr, fmt , ## args); fprintf(stderr, "\n"); } #define tX_warning(fmt, args...); { fprintf(stderr, "+ tX_warning: "); fprintf(stderr, fmt , ## args); fprintf(stderr, "\n"); } #define tX_msg(fmt, args...); { fprintf(stderr, "- tX_msg: "); fprintf(stderr, fmt , ## args); fprintf(stderr, "\n"); } +#define tX_plugin_warning(fmt, args...); { if (globals.verbose_plugin_loading) { fprintf(stderr, "+ tX_warning: "); fprintf(stderr, fmt , ## args); fprintf(stderr, "\n"); }} #ifdef MEM_DEBUG #define tX_freemem(ptr, varname, comment); fprintf(stderr, "** free() [%s] at %08x. %s.\n", varname, ptr, comment); free(ptr); @@ -176,6 +177,9 @@ typedef struct { int quit_confirm; int use_realtime; int auto_assign_midi; + + int verbose_plugin_loading; + int force_nonrt_plugins; } tx_global; extern tx_global globals; diff --git a/src/tX_ladspa.cc b/src/tX_ladspa.cc index 037c002..1db0655 100644 --- a/src/tX_ladspa.cc +++ b/src/tX_ladspa.cc @@ -83,10 +83,13 @@ void LADSPA_Plugin :: handlelib(void *lib, LADSPA_Descriptor_Function desc_func, for (i=0; (descriptor = desc_func(i)) != NULL; i++) { if (LADSPA_IS_INPLACE_BROKEN(descriptor->Properties)) { - tX_warning("Plugin \"%s\" [%i] disabled: No in-place processing support.", descriptor->Label, descriptor->UniqueID); - } else if (!LADSPA_IS_HARD_RT_CAPABLE(descriptor->Properties)) { - tX_warning("Plugin \"%s\" [%i] disabled: Not realtime capable.", descriptor->Label, descriptor->UniqueID); - } else { + tX_plugin_warning("Plugin \"%s\" [%i] disabled: No in-place processing support.", descriptor->Label, descriptor->UniqueID); + } else if (!LADSPA_IS_HARD_RT_CAPABLE(descriptor->Properties) && !globals.force_nonrt_plugins) { + tX_plugin_warning("Plugin \"%s\" [%i] disabled: Not realtime capable.", descriptor->Label, descriptor->UniqueID); + } else { + if (!LADSPA_IS_HARD_RT_CAPABLE(descriptor->Properties)) { + tX_warning("Plugin \"%s\" [%i] is classified as non-rt capable: loading forced.", descriptor->Label, descriptor->UniqueID); + } in_audio=0; out_audio=0; in_ctrl=0; for (port = 0; portPortCount; port++) { @@ -103,7 +106,7 @@ void LADSPA_Plugin :: handlelib(void *lib, LADSPA_Descriptor_Function desc_func, } if ((in_audio == 2) && (out_audio == 2)) { new LADSPA_Stereo_Plugin(descriptor, filename); } - else { tX_warning("Plugin \"%s\" [%i] disabled: Neither mono nor stereo.", descriptor->Label, descriptor->UniqueID); } + else { tX_plugin_warning("Plugin \"%s\" [%i] disabled: Neither mono nor stereo.", descriptor->Label, descriptor->UniqueID); } } } } @@ -118,13 +121,13 @@ void LADSPA_Plugin :: scandir(char *dirname) void *handle; LADSPA_Descriptor_Function desc_func; - if (!dirlen) { tX_error("tX: Error: empty directory name?"); return; }; + if (!dirlen) { tX_error("empty directory name?"); return; }; if (dirname[dirlen - 1] != '/') needslash=1; dir = opendir(dirname); - if (!dir) { tX_error("tX: Error: couldn't access directory \"%s\".", dirname); return; }; + if (!dir) { tX_error("couldn't access directory \"%s\".", dirname); return; }; while (1) { entry=readdir(dir); @@ -148,7 +151,7 @@ void LADSPA_Plugin :: scandir(char *dirname) if (dlerror() == NULL && desc_func) { LADSPA_Plugin :: handlelib(handle, desc_func, entry->d_name); } else { - tX_error("tX: Error: %s is not a LADSPA plugin library.", filename); + tX_error("\"%s\" is not a LADSPA plugin library.", filename); dlclose(handle); } } @@ -159,7 +162,6 @@ void LADSPA_Plugin :: scandir(char *dirname) void LADSPA_Plugin :: status () { - printf ("tX: %i LADSPA plugins available\n", plugin_list.size()); debug_display(); } diff --git a/src/tX_mastergui.cc b/src/tX_mastergui.cc index 0ceb50d..3e8638e 100644 --- a/src/tX_mastergui.cc +++ b/src/tX_mastergui.cc @@ -1448,7 +1448,7 @@ void create_mastergui(int x, int y) add_sep2(); - dummy=gtk_label_new("V "VERSION); + dummy=gtk_label_new("Rel. "VERSION); gtk_misc_set_alignment(GTK_MISC(dummy), 1, 0.5); gtk_box_pack_end(GTK_BOX(status_box), dummy, WID_FIX); gtk_widget_show(dummy); diff --git a/src/tX_vtt.cc b/src/tX_vtt.cc index d878299..14c7351 100644 --- a/src/tX_vtt.cc +++ b/src/tX_vtt.cc @@ -205,7 +205,6 @@ vtt_class :: ~vtt_class() main_list.remove(this); if (audiofile) delete audiofile; - //if (buffer) free(buffer); if (output_buffer) tX_freemem(output_buffer, "output_buffer", "vtt Destructor"); if (output_buffer2) tX_freemem(output_buffer2, "output_buffer2", "vtt Destructor"); @@ -213,8 +212,7 @@ vtt_class :: ~vtt_class() if (mix_solo) solo_ctr--; - while (fx_list.size()) - { + while (fx_list.size()) { effect=(*fx_list.begin()); fx_list.remove(effect); delete effect; @@ -240,7 +238,7 @@ tX_audio_error vtt_class :: load_file(char *fname) if (is_playing) stop(); - if (audiofile) delete(audiofile); + if (audiofile) delete audiofile; buffer=NULL; samples_in_buffer=0; @@ -261,11 +259,9 @@ tX_audio_error vtt_class :: load_file(char *fname) maxpos=audiofile->get_no_samples(); strcpy(filename, fname); if (was_playing) trigger(); -// printf("Successfully loaded %s, %08x, %i\n", fname, buffer, samples_in_buffer); } - if (have_gui) - { + if (have_gui) { gui_update_display(this); } ec_set_length(ec_length); @@ -290,8 +286,7 @@ int vtt_class :: set_output_buffer_size(int newsize) samples_in_outputbuffer=newsize; inv_samples_in_outputbuffer=1.0/samples_in_outputbuffer; - for (effect=fx_list.begin(); effect != fx_list.end(); effect++) - { + for (effect=fx_list.begin(); effect != fx_list.end(); effect++) { (*effect)->reconnect_buffer(); } @@ -309,36 +304,25 @@ void vtt_class :: recalc_volume() res_volume=rel_volume*res_master_volume; f_prec ec_res_volume=res_volume*ec_volume; - if (pan>0.0) - { + if (pan>0.0) { res_volume_left=(1.0-pan)*res_volume; res_volume_right=res_volume; - } - else if (pan<0.0) - { + } else if (pan<0.0) { res_volume_left=res_volume; res_volume_right=(1.0+pan)*res_volume; - } - else - { + } else { res_volume_left=res_volume_right=res_volume; } - if (ec_pan>0.0) - { + if (ec_pan>0.0) { ec_volume_left=(1.0-ec_pan)*ec_res_volume; ec_volume_right=ec_res_volume; - } - else if (ec_pan<0.0) - { + } else if (ec_pan<0.0) { ec_volume_left=ec_res_volume; ec_volume_right=(1.0+ec_pan)*ec_res_volume; - } - else - { + } else { ec_volume_left=ec_volume_right=ec_res_volume; } -// printf("vtt_volume: %f, %f, l: %f, r: %f\n", rel_volume, res_volume, res_volume_left, res_volume_right); } void vtt_class :: set_pan(f_prec newpan) @@ -385,14 +369,11 @@ void vtt_class :: set_mix_mute(int newstate) void vtt_class :: set_mix_solo(int newstate) { - if (mix_solo && !newstate) - { + if (mix_solo && !newstate) { /* turning it off */ mix_solo=0; solo_ctr--; - } - else if (!mix_solo && newstate) - { + } else if (!mix_solo && newstate) { /* turning it on */ mix_solo=1; solo_ctr++; @@ -475,19 +456,15 @@ void vtt_class :: ec_set_length(f_prec length) int delay; ec_length=length; - if (res_pitch==0) - { + if (res_pitch==0) { ec_res_length=length*samples_in_buffer; - } - else - { + } else { ec_res_length=length*samples_in_buffer/res_pitch; } if (ec_res_length<0) ec_res_length*=-1; - if (ec_res_length>=EC_MAX_BUFFER) - { + if (ec_res_length>=EC_MAX_BUFFER) { ec_res_length=EC_MAX_BUFFER*length; } @@ -510,20 +487,18 @@ void vtt_class :: ec_set_volume(f_prec volume) void vtt_class :: ec_clear_buffer() { -/* f_prec *ptr; - - for (ptr=ec_buffer; ptr<=ec_delay; ptr++) { - *ptr=0.0; - } */ - memset(ec_buffer, 0, sizeof(ec_buffer)); ec_ptr=ec_buffer; } #ifdef BIG_ENDIAN_MACHINE -#define vabs(x) fabs(x) +#define fastabs(x) fabs(x) #else -inline float vabs(float f) +// found this on musicdsp.org +// posted by +// proabably wont work on bigendian so we +// use fabs() instead. +inline float fastabs(float f) { int i=((*(int*)&f)&0x7fffffff); return (*(float*)&i); @@ -578,8 +553,8 @@ void vtt_class :: render() // find max signal for vu meters... for (int sample=0; samplemax_value) max_value=lmax; if (rmax>max_value2) max_value2=rmax; @@ -767,7 +742,6 @@ void vtt_class :: forward_turntable() if ((speed_real==0) && (!fade_out)) return; - /* following code is problematic as adding speed_real*n is different from adding speed_real n times to pos_f. @@ -862,31 +836,24 @@ int vtt_class :: set_mix_buffer_size(int no_samples) list :: iterator vtt; int res=0; -// printf("vtt_class::set_mix_buffer_size(), mix_buffer: %12x, mix_out: %12x, samples: %i\n", mix_buffer, mix_out_buffer, no_samples); - if (mix_buffer) tX_freemem(mix_buffer, "mix_buffer", "vtt set_mix_buffer_size()"); samples_in_mix_buffer=no_samples*2; tX_malloc(mix_buffer, "mix_buffer", "vtt set_mix_buffer_size()", sizeof(float)*samples_in_mix_buffer, (float *)); mix_buffer_end=mix_buffer+samples_in_mix_buffer; - -// printf("mix_buffer: %12x\n", mix_buffer); -// printf("mix_samples: %i, out_samples: %i", samples_in_mix_buffer, no_samples); if (mix_out_buffer) tX_freemem(mix_out_buffer, "mix_out_buffer", "vtt set_mix_buffer_size()"); tX_malloc(mix_out_buffer, "mix_out_buffer", "vtt set_mix_buffer_size()", sizeof(int16_t)*samples_in_mix_buffer + 4, (int16_t *)); - -// printf("mix_out_buffer: %12x\n", mix_out_buffer); for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++) { res|=(*vtt)->set_output_buffer_size(no_samples); } - if ((!mix_buffer) || (!mix_out_buffer) || res) return(1); + if ((!mix_buffer) || (!mix_out_buffer) || res) return 1; mix_buffer_size=no_samples; - return(0); + return 0; } int16_t * vtt_class :: render_all_turntables() @@ -894,9 +861,6 @@ int16_t * vtt_class :: render_all_turntables() list :: iterator vtt, next; int sample; int mix_sample; - f_prec temp; - f_prec max; - f_prec min; pthread_mutex_lock(&render_lock); @@ -907,82 +871,56 @@ int16_t * vtt_class :: render_all_turntables() */ memset((void *) mix_buffer, 0, sizeof(float)*samples_in_mix_buffer); } else { - vtt=render_list.begin(); - (*vtt)->render(); - - for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++) { - mix_buffer[mix_sample++]=(*vtt)->output_buffer[sample]*FL_SHRT_MAX; - mix_buffer[mix_sample++]=(*vtt)->output_buffer2[sample]*FL_SHRT_MAX; - } + vtt=render_list.begin(); + (*vtt)->render(); + + for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++) { + mix_buffer[mix_sample++]=(*vtt)->output_buffer[sample]*FL_SHRT_MAX; + mix_buffer[mix_sample++]=(*vtt)->output_buffer2[sample]*FL_SHRT_MAX; + } - if (master_triggered) { - for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++) { - if ((*vtt)->is_sync_client) { - if ((*vtt)->sync_countdown) { - (*vtt)->sync_countdown--; - } else { - (*vtt)->sync_countdown=(*vtt)->sync_cycles; - (*vtt)->trigger(false); - } + if (master_triggered) { + for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++) { + if ((*vtt)->is_sync_client) { + if ((*vtt)->sync_countdown) { + (*vtt)->sync_countdown--; + } else { + (*vtt)->sync_countdown=(*vtt)->sync_cycles; + (*vtt)->trigger(false); } } } - - vtt=render_list.begin(); - - for (vtt++; vtt!=render_list.end(); vtt++) { - (*vtt)->render(); + } + + vtt=render_list.begin(); + + for (vtt++; vtt!=render_list.end(); vtt++) { + (*vtt)->render(); - for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++) { - mix_buffer[mix_sample++]+=(*vtt)->output_buffer[sample]*FL_SHRT_MAX; - mix_buffer[mix_sample++]+=(*vtt)->output_buffer2[sample]*FL_SHRT_MAX; - } + for (sample=0, mix_sample=0; sample<(*vtt)->samples_in_outputbuffer; sample++) { + mix_buffer[mix_sample++]+=(*vtt)->output_buffer[sample]*FL_SHRT_MAX; + mix_buffer[mix_sample++]+=(*vtt)->output_buffer2[sample]*FL_SHRT_MAX; } - - /* left */ - - max=mix_max_l; - min=max; - - for (sample=0; sample FL_SHRT_MAX) temp = FL_SHRT_MAX; + if(temp < FL_SHRT_MIN) temp = FL_SHRT_MIN; + else if (temp > FL_SHRT_MAX) temp = FL_SHRT_MAX; #endif - - mix_out_buffer[sample]=(int16_t) temp; - - if (temp>max) max=temp; - else if (tempmax) mix_max_l=min; else mix_max_l=max; - - /* right */ - - max=mix_max_r; - min=max; - - for (sample=1; sample FL_SHRT_MAX) temp = FL_SHRT_MAX; -#endif - - mix_out_buffer[sample]=(int16_t) temp; + mix_out_buffer[sample]=(int16_t) temp; - if (temp>max) max=temp; - else if (tempmix_max_r) mix_max_r=temp; + } else { + if (temp>mix_max_l) mix_max_l=temp; } - - min*=-1.0; - if (min>max) mix_max_r=min; else mix_max_r=max; - + right=!right; + } } master_triggered=0; @@ -1003,41 +941,32 @@ void vtt_class :: forward_all_turntables() { list :: iterator vtt, next; - if (render_list.size()>0) - { - vtt=render_list.begin(); - (*vtt)->forward_turntable(); - - if (master_triggered) - { - for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++) - { - if ((*vtt)->is_sync_client) - { - if ((*vtt)->sync_countdown) - { - (*vtt)->sync_countdown--; - } - else - { - (*vtt)->sync_countdown=(*vtt)->sync_cycles; - (*vtt)->trigger(); - } - } - } - } - - vtt=render_list.begin(); - for (vtt++; vtt!=render_list.end(); vtt++) - { - (*vtt)->forward_turntable(); - } - + if (render_list.size()>0) { + vtt=render_list.begin(); + (*vtt)->forward_turntable(); + + if (master_triggered) { + for (vtt=main_list.begin(); vtt!=main_list.end(); vtt++) { + if ((*vtt)->is_sync_client){ + if ((*vtt)->sync_countdown) { + (*vtt)->sync_countdown--; + } else { + (*vtt)->sync_countdown=(*vtt)->sync_cycles; + (*vtt)->trigger(); + } + } + } + } + + vtt=render_list.begin(); + for (vtt++; vtt!=render_list.end(); vtt++) { + (*vtt)->forward_turntable(); + } } + master_triggered=0; vtt=render_list.begin(); - while (vtt!=render_list.end()) - { + while (vtt!=render_list.end()) { next=vtt; next++; @@ -1131,7 +1060,7 @@ int vtt_class :: stop() res=stop_nolock(); pthread_mutex_unlock(&render_lock); - return(res); + return res; } void vtt_class :: set_sync_master(int master) @@ -1320,7 +1249,6 @@ int vtt_class :: save(FILE *rc, gzFile rz, char *indent) { store_id("speed", sp_speed.get_persistence_id()); store_id("trigger", sp_trigger.get_persistence_id()); store_id("spin", sp_spin.get_persistence_id()); - if (x_par) { store_int("x_axis_mapping", x_par->get_persistence_id()); @@ -1336,10 +1264,8 @@ int vtt_class :: save(FILE *rc, gzFile rz, char *indent) { store_bool("trigger_panel_hidden", gui.trigger_panel->is_hidden()); store_bool("lowpass_panel_hidden", gui.lp_panel->is_hidden()); store_bool("echo_panel_hidden", gui.ec_panel->is_hidden()); - store_bool("mix_mute", mix_mute); store_bool("mix_solo", mix_solo); - store_float("audio_x_zoom", gui_get_audio_x_zoom(this)); tX_store("%s\n", indent); @@ -1380,8 +1306,6 @@ int vtt_class :: save_all(FILE* rc, gzFile rz) { strcpy(indent, "\t"); - //store_int(vtt_amount); obsolete - store_float_sp("master_volume", master_volume, sp_master_volume); store_float_sp("master_pitch", globals.pitch, sp_master_pitch); @@ -1464,10 +1388,10 @@ int vtt_class :: load(xmlDocPtr doc, xmlNodePtr node) { if (cur->type == XML_ELEMENT_NODE) { int elementFound=0; - if (xmlStrcmp(cur->name, (xmlChar *) "cutoff")==0) { + if ((xmlStrcmp(cur->name, (xmlChar *) "cutoff")==0) && !stereo) { for (unsigned int t=0; tname, (xmlChar *) "lowpass")==0) { + } else if ((xmlStrcmp(cur->name, (xmlChar *) "lowpass")==0) && !stereo) { for (unsigned int t=0; tname, (xmlChar *) "ladspa_plugin")==0) { diff --git a/terminatorX.glade b/terminatorX.glade index 1e6d3ee..02898f9 100644 --- a/terminatorX.glade +++ b/terminatorX.glade @@ -229,7 +229,7 @@ True False True - + @@ -251,7 +251,7 @@ True GTK_RELIEF_NORMAL 0 - + @@ -264,7 +264,7 @@ True GTK_RELIEF_NORMAL -6 - + @@ -277,7 +277,7 @@ True GTK_RELIEF_NORMAL -10 - + @@ -290,7 +290,7 @@ True GTK_RELIEF_NORMAL -5 - + @@ -325,7 +325,7 @@ True - Use Driver: + Driver: False False GTK_JUSTIFY_LEFT @@ -423,8 +423,7 @@ True - Use realtime scheduling -where available: + Scheduling: False False GTK_JUSTIFY_LEFT @@ -449,7 +448,7 @@ where available: True True - Enabled + Use realtime scheduling where available True GTK_RELIEF_NORMAL False @@ -504,7 +503,7 @@ where available: True - Audio Device: + Audio device: False False GTK_JUSTIFY_LEFT @@ -528,7 +527,7 @@ where available: True - No. of Buffers: + No. of buffers: False False GTK_JUSTIFY_LEFT @@ -664,7 +663,7 @@ where available: True True True - GTK_POS_TOP + GTK_POS_LEFT 0 GTK_UPDATE_CONTINUOUS False @@ -910,7 +909,7 @@ where available: True True True - GTK_POS_TOP + GTK_POS_LEFT 0 GTK_UPDATE_CONTINUOUS False @@ -955,12 +954,12 @@ where available: True True True - GTK_POS_TOP + GTK_POS_LEFT 0 GTK_UPDATE_CONTINUOUS False - 50 10 500 1 10 10 - + 69 10 500 1 10 10 + 1 @@ -1055,7 +1054,7 @@ where available: True - XInput Device: + XInput device: False False GTK_JUSTIFY_LEFT @@ -1079,7 +1078,7 @@ where available: True - Mouse Speed: + Mouse speed: False False GTK_JUSTIFY_LEFT @@ -1103,7 +1102,7 @@ where available: True - Stop-Sense-Cycles: + Stop-sense-cycles: False False GTK_JUSTIFY_LEFT @@ -1169,7 +1168,7 @@ where available: True True True - GTK_POS_TOP + GTK_POS_LEFT 1 GTK_UPDATE_CONTINUOUS False @@ -1190,8 +1189,8 @@ where available: True True True - GTK_POS_TOP - 0 + GTK_POS_LEFT + 1 GTK_UPDATE_CONTINUOUS False 80 30 250 5 1 1 @@ -1235,7 +1234,7 @@ where available: True CAREFUL! Enable this *only* if you want to use an input device than your default X-Pointer (yes, your mouse ;). You have to select your desired device as well. Selecting the default mouse pointer will crash terminatorX so if you want to use that keep this option disabled. True - Enabled + Activate XInput support True GTK_RELIEF_NORMAL False @@ -1255,7 +1254,7 @@ where available: True - Turntable Inertia: + Turntable inertia: False False GTK_JUSTIFY_LEFT @@ -1281,11 +1280,11 @@ where available: True True True - GTK_POS_TOP + GTK_POS_LEFT 1 GTK_UPDATE_CONTINUOUS False - 10 1 310 0.01 1 10 + 11 1 310 0.01 1 10 1 @@ -1335,7 +1334,7 @@ where available: True - Main Window Tooltips: + Tooltips: False False GTK_JUSTIFY_LEFT @@ -1359,7 +1358,7 @@ where available: True - Update Idle (ms): + Update idle (ms): False False GTK_JUSTIFY_LEFT @@ -1383,7 +1382,7 @@ where available: True - Update Delay (cycles): + Update delay (cycles): False False GTK_JUSTIFY_LEFT @@ -1407,14 +1406,14 @@ where available: True - VU Meter Decay: + VU meter decay: False False GTK_JUSTIFY_LEFT False False 0 - 0.5 + 0.49 0 0 @@ -1433,7 +1432,7 @@ where available: True Enable tooltips for the terminatorX main window. True - Enabled + Activate tooltips for the main wnidow True GTK_RELIEF_NORMAL False @@ -1455,11 +1454,11 @@ where available: True True True - GTK_POS_TOP + GTK_POS_LEFT 0 GTK_UPDATE_CONTINUOUS False - 11 2 100 1 10 10 + 11 6 100 1 10 10 1 @@ -1476,8 +1475,8 @@ where available: True True True - GTK_POS_TOP - 0 + GTK_POS_LEFT + 1 GTK_UPDATE_CONTINUOUS False 0 0 15 1 10 10 @@ -1497,8 +1496,8 @@ where available: True True True - GTK_POS_TOP - 1 + GTK_POS_LEFT + 2 GTK_UPDATE_CONTINUOUS False 0.8 0.8 0.99 0.01 0.01 0.001 @@ -1516,7 +1515,7 @@ where available: True - Startup-Nagbox: + Nagbox: False False GTK_JUSTIFY_LEFT @@ -1542,7 +1541,7 @@ where available: True Display nagbox on startup while loading data. True - Enabled + Display nagbox on startup True GTK_RELIEF_NORMAL False @@ -1657,7 +1656,7 @@ where available: True - Filename Length: + Filename length: False False GTK_JUSTIFY_LEFT @@ -1884,7 +1883,7 @@ where available: button1 True GTK_RELIEF_NORMAL - + 1 @@ -1902,7 +1901,7 @@ where available: button2 True GTK_RELIEF_NORMAL - + 1 @@ -1920,7 +1919,7 @@ where available: button3 True GTK_RELIEF_NORMAL - + 1 @@ -1938,7 +1937,7 @@ where available: button4 True GTK_RELIEF_NORMAL - + 1 @@ -1956,7 +1955,7 @@ where available: button5 True GTK_RELIEF_NORMAL - + 1 @@ -1974,7 +1973,7 @@ where available: button6 True GTK_RELIEF_NORMAL - + 1 @@ -2143,7 +2142,7 @@ where available: button7 True GTK_RELIEF_NORMAL - + 1 @@ -2162,7 +2161,7 @@ where available: button8 True GTK_RELIEF_NORMAL - + 1 @@ -2181,7 +2180,7 @@ where available: button9 True GTK_RELIEF_NORMAL - + 1 @@ -2222,7 +2221,7 @@ where available: 4 True - 6 + 8 2 False 2 @@ -2231,7 +2230,7 @@ where available: True - Soundfile Editor: + Soundfile editor: False False GTK_JUSTIFY_LEFT @@ -2277,7 +2276,7 @@ where available: True - "Pre-Listen" to soundfiles: + Pre-listen: False False GTK_JUSTIFY_LEFT @@ -2303,7 +2302,7 @@ where available: True When enabled soundfiles will be playedback when selected in a file dialog (before loading them). True - Enabled + Play audiofiles in file dialogs True GTK_RELIEF_NORMAL False @@ -2323,7 +2322,7 @@ where available: True - LADSPA RDF Path: + LADSPA RDF path: False False GTK_JUSTIFY_LEFT @@ -2368,7 +2367,7 @@ where available: True - Compress set files: + Compression: False False GTK_JUSTIFY_LEFT @@ -2393,7 +2392,7 @@ where available: True True - Enabled + Compress terminatorX set files True GTK_RELIEF_NORMAL False @@ -2413,7 +2412,7 @@ where available: True - Restore MIDI connections: + MIDI: False False GTK_JUSTIFY_LEFT @@ -2439,7 +2438,7 @@ where available: True When enabled soundfiles will be playedback when selected in a file dialog (before loading them). True - Enabled + Restore MIDI connections on startup True GTK_RELIEF_NORMAL False @@ -2459,7 +2458,7 @@ where available: True - Ask for "Quit" confirmation: + Quit: False False GTK_JUSTIFY_LEFT @@ -2484,7 +2483,7 @@ where available: True True - Enabled + Ask for "Quit" confirmation True GTK_RELIEF_NORMAL False @@ -2500,6 +2499,96 @@ where available: + + + + True + Plugins: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 6 + 7 + fill + + + + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 1 + 7 + 8 + fill + + + + + + + True + True + Verbose plugin loading + True + GTK_RELIEF_NORMAL + False + False + True + + + 1 + 2 + 6 + 7 + fill + + + + + + + True + True + Force loading of "non-RT" plugins + True + GTK_RELIEF_NORMAL + False + False + True + + + 1 + 2 + 7 + 8 + fill + + + False @@ -2566,7 +2655,7 @@ where available: True GTK_RELIEF_NORMAL -6 - + @@ -2579,7 +2668,7 @@ where available: True GTK_RELIEF_NORMAL -5 - + @@ -2805,7 +2894,7 @@ where available: True True GTK_RELIEF_NORMAL - + @@ -2815,7 +2904,7 @@ where available: True True GTK_RELIEF_NORMAL - + -- 2.25.4