13
0
Commit Graph

185 Commits

Author SHA1 Message Date
1bea87e10a Remove previous fix attempt at restoring state for backends with driver selection
The fix does not work properly anymore for the Portaudio backend and needs
fixing in another manner. It will now be temporarily back to the broken state
it was in before the "fix".
2015-08-11 09:24:52 +10:00
eaf5ed2b18 Use SignalBlocker class in EngineControl to block widget signal emission
This stops a whole lot of redundant signal emission and makes it much easier to
think about what is going on. It also makes the dialog present much faster.
2015-08-11 09:24:52 +10:00
001c1a0910 Extract part of EngineControl::backend_changed into EngineControl::update_midi_options 2015-08-11 09:24:52 +10:00
6e0d062773 Move call to EngineControl::device_changed into EngineControl::list_devices ()
This prevents devices_changed from being called twice with backends that have
separate input and output devices
2015-08-11 09:24:52 +10:00
c8f8f75831 Add debug output to blocking/unblocking signals in EngineControl dialog 2015-08-11 09:24:52 +10:00
1bd15bef6c Add methods in EngineControl for blocking and unblocking signals
Only intended to be used with the nested SignalBlocker class
2015-08-11 09:24:52 +10:00
324b5ffbac Refactor part of EngineDialog ctor into connect_changed_signals method 2015-08-11 09:24:52 +10:00
ecd9950413 Add some basic debug output in EngineControl dialog
This should make it easier to see what affect subsequent commits have on
reducing the amount of unnecessary device querying and signal emission
2015-08-11 09:24:52 +10:00
f428cb4bf1 Refactor part of EngineControl::set_state into new set_current_state method 2015-08-11 09:24:52 +10:00
a9c149216d Remove unused method in EngineControl dialog 2015-08-11 09:24:52 +10:00
caae165cd3 Defer to device_changed when input or output devices change
This reduces the amount of unnecessary querying of samplerate and buffersize
for devices
2015-08-11 09:24:51 +10:00
7a3b6e6d08 remove more cruft (dead assignments) 2015-08-07 21:16:14 +02:00
160c185fc0 Don't call AudioBackend::enumerate_drivers for Backend states without driver selection
AudioBackend::enumerate_drivers is not supposed to be called for backends that
don't support driver selection. The wavesaudio backend asserts if the method is
called.
2015-08-07 21:41:37 +10:00
815ffcd567 Set active text in buffer_size combo in EngineControl dialog
Fixes issue with empty buffer size combo when switching to the PA ASIO driver
2015-08-07 01:42:28 +10:00
2437bbbe23 Fix state restoration in Engine dialog for Backends with driver selection
Connect to the backend_combo changed signal after setting state as calling
backend_combo.set_active_text() in set_state was triggering backend_changed(),
which would then see the driver_combo had not been set and set it to the
incorrect value.

The value/name of the backend needs to be restored first then we can populate
the driver combo and set the correct active entry from the saved state. After
which backend_changed() will populate the device combo's etc so they can then
be set to the correct active values from the saved state.
2015-07-31 09:59:53 +10:00
364022a35a add locale-guard when saving engine states, also #6418 2015-07-08 11:34:57 +02:00
3d2f298fb2 Change message about JACK already running to be less scary 2015-06-03 13:48:43 -04:00
4d2bc612f2 engine dialog fixes for multiple devices 2015-06-01 01:01:42 +02:00
d9f24a46aa Allow selection of input and output devices in EngineDialog for backends that support it
Some refactoring was necessary to avoid code duplication

Restoring of device state for input and output devices still doesn't work
correctly. I'm not quite sure what the issue is at this stage.
2015-05-31 20:02:07 +02:00
15bf19961f When running on Windows, hide the Engine dialog before calling 'push_state_to_backend()'
For some reason we don't understand 'push_state_to_backend()' can interfere with hiding the dialog (causing a partially hidden dialog to remain on screen). It's most likely a timing issue with the Windows version of GTK. Fortunately, reversing the calling order seems to fix it - BUT...

If there's no session loaded yet, the user can be left with a very long wait while nothing seems to be happening. The next thing the user would normally see would be the splash image. So let's display it slightly early (so the user can at least see that something's happening).

Sadly, it's all very kludgy - but a lot better than what we had before...  :)
2015-04-14 11:22:14 +01:00
40e3a01459 and 2c89ec5, keep backend running. 2015-04-07 15:23:24 +02:00
2c89ec5c0b Query backend’s setup_required() every time. fixes #6041 2015-04-04 02:39:30 +02:00
28730b4939 fancy plural form. 2015-03-31 04:16:24 +02:00
87e95e4bf1 add colon to match other labels 2015-03-26 21:43:33 -05:00
675444c7dd Engine: remember state only on “Apply” and “OK”
filed under “another scary engine dialog change”
2015-03-22 01:28:33 +01:00
7b1c7efc1c work-around engine dialog crashes.
Thanks to brilliant detective work by John E. we
can now reveal that the actual crash in
EngineControl::print_channel_count() is caused
by a seemingly unrelated exception.

The root cause however is waves/ASIO backend reporting a
buffersize that is not in list of available buffer-sizes
it reported earlier.
2015-03-16 15:09:59 +01:00
23a6526de7 remove unneeded debug output 2015-03-07 17:10:19 -06:00
dd6ee69ef8 engine dialog, update device is changed. 2015-03-07 14:35:33 +01:00
82e23ecd2a fix device changes..
backend_changed() stopped the backend.
2015-03-07 14:35:32 +01:00
818ed5fe12 update Engine Dialog when devices are dis/connected. 2015-03-06 06:24:56 +01:00
411c3ee70a possible fix for #6187 - assert(backend) 2015-03-01 16:48:14 +01:00
fbdf6a8151 recover the most recent audio setup settings from config 2015-02-24 14:29:02 -06:00
af174c0519 when the user changes devices, notify the backend 2015-02-06 13:55:00 -06:00
031f68fb9d add a simple status indicator to the Engine Dialog 2015-01-25 10:19:46 +01:00
37b8412aa3 fix latency measurement result display
If measurement is fast (<100ms), the GUI timeout function
never displayed the measured value.
2015-01-25 10:18:33 +01:00
611073790b move control app button adjacent to sample rate and bufsize settings 2015-01-22 15:00:13 -06:00
dcaf8d89c1 remove channelcount selectors for mixbus 2015-01-22 14:54:56 -06:00
49047e4dc9 consistent display of period-size. 2015-01-17 22:42:20 +01:00
cc221ea3c3 display current buffer size - hopefully w/o breaking ASIO 2015-01-17 21:29:14 +01:00
d2cbb28f79 Engine Dialog: fix various signal connections
connect/disconnect button was connected multiple times
Also the button allowed to start a backend with
invalid settings (after changing backend).

Q: does “Connect to” make sense? It’s redundant with 
“Apply”.
2015-01-17 21:03:56 +01:00
f77c923bee engine dialog fix buffersize sensitivity 2015-01-17 21:03:56 +01:00
7d88dc3202 update engine dialog UI state
fixes crash when jack is started externally
and the dialog is displayed later.
The current state e.g. avail buffer sizes is not
are queried from the backend, Apply,OK -> crash
because the dropdown is empty)
2015-01-17 21:03:56 +01:00
14a235ca8a fix 05a612b 2015-01-17 01:26:29 +01:00
c3847269c2 fix crash when changing the Audio System
When the i/o channel spinbox widgets are realized, they call
print_channel_count(). A "0" is formatted as "all available channels".
This causes the GTK::Entry inside the spinbox to emit a "changed"
signal which in turn triggers a parameter_changed(), [..], store_state(),
which calls into the spinbox again while it is being realized,
which makes gtkmm barf.

Start Ardour with JACK running (autoconnect to jack), Window ->
Audio/Midi settings -> initial no_control_notebook. Change
Audio System -> [control widgets are realized] -> glibmm std::exception
2014-10-03 15:32:12 +02:00
5e61c8ab12 fix engine control widget sensitivity 2014-10-03 15:08:06 +02:00
1d790355ca Fix warning from ./waf i18n about empty string
./waf i18n warns about passing an empty string to _(). Actually, the code
in question just wants to make a label not appear, so it might as well
just hide or show it as appropriate rather than attempting to set its
text to the empty string.
2014-10-02 18:03:19 +01:00
8b4eb07ab7 Fix restore of Jack driver setting
A small hack to ensure that the driver setting in the audio engine dialog
is restored when ardour starts up and when switching drivers.
2014-09-13 15:27:30 +01:00
001e4ca684 Engine Dialog: focus OK button (press enter to cont w/previous settings) 2014-09-01 22:06:45 +02:00
63d81d2419 purge states of Audio-backends that are N/A
fixes crashes/assert() when using different builds while
sharing ardour.rc with n/a engine backends marked active.
2014-07-04 15:52:14 +02:00
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00