13
0
Commit Graph

208 Commits

Author SHA1 Message Date
e6492319b1 Remove Apply button from Audio Setup dialog now that there is a start/stop button 2015-09-02 12:07:15 +10:00
dd275327a4 Change "Stop" button into a Start/Stop button in Audio Setup dialog 2015-09-02 12:07:15 +10:00
c734f82ff2 use program-name for internal ports 2015-08-27 16:50:09 +02:00
59a8fc9e64 Fix state restoration in EngineControl dialog for backends with driver selection
We want to save the driver name even when the engine is running and the driver
combo is insensitive
2015-08-13 00:19:01 +10:00
ad9cebe247 hide “Midi Setup” button on OSX and Windows. 2015-08-12 03:16:09 +02:00
687921a760 remove -Woverload-virtual ambiguity (from 1d3690d) 2015-08-11 23:50:56 +02:00
bf1b65029c update driver selection sensitivity 2015-08-11 22:04:28 +02:00
212a4c1f8d refine "Running" message. 2015-08-11 19:44:14 +02:00
6cc029f5da don't allow to change devices while engine is running. 2015-08-11 19:13:10 +02:00
52c25cab36 allow to stop engine for re-configure 2015-08-11 15:38:38 +02:00
6bb51a26eb consolidate engine-dialog widget sensitivity logic.
Use a single function with the complete logic.

Since the callgraph is complex, there is internal state as well as GUI
state (different pages), do not rely on individual methods to get it
right.

A widget's sensitivity should only be controlled by one function.
2015-08-11 15:38:31 +02:00
a3b2b1bcfa Engine Dialog: use new API 2015-08-11 15:38:19 +02:00
22acbc1cee Fix to ensure there are always sample rates and buffer sizes in the dropdown
This can happen if both input and output devices are set to None for instance
on backends that report no supported SR or buffer size for the None device.
2015-08-11 14:20:43 +10:00
c80e4c04c5 Extract two utility methods from EngineControl::set_samplerate/bufferize_popdown_strings 2015-08-11 14:13:06 +10:00
a8daa36901 Use a union of all sample rates and buffer sizes for all devices in EngineControl
Using just the input device doesn't work in the case that the input device is
an invalid/None device
2015-08-11 14:00:57 +10:00
5e5db3c402 Check the default SR is available for a device when setting SR in EngineControl 2015-08-11 09:57:38 +10:00
4651b10345 Remove unnecesary clearing of local variable in EngineControl 2015-08-11 09:46:46 +10:00
ab7cf8c7a7 Fix state restoration in EngineControl dialog for backends with driver selection
This also prevents backend_changed from being called more that once in the
EngineControl ctor
2015-08-11 09:24:53 +10:00
c165c991ca Use the current backend device names to set active text in device dropdowns if available
Compare device names with enumerated devices rather than assume an empty string
has special meaning
2015-08-11 09:24:53 +10:00
6451060bd1 Remove Unwinder instances in EngineControl::set_*_device_popdown_strings
These are not necessary since SignalBlocker will prevent signal emission
2015-08-11 09:24:53 +10:00
495dd2e52a Compare the string returned by backend->driver_name() against driver names in EngineControl
Don't assume an empty string has any meaning and compare string returned with
enumerated drivers
2015-08-11 09:24:52 +10:00
e20d74079a Remove Unwinder instance from EngineControl::set_driver_popdown_strings
Not necessary now that signal emission is blocked via backend_changed()
2015-08-11 09:24:52 +10:00
dfa9a2326a Reimplement method using code extracted from EngineDialog::backend_changed
EngineControl::set_driver_popdown_strings is now like the other
set_*_popdown_strings methods in that it sets the driver strings and a
default active entry and returns false if no drivers are available.
2015-08-11 09:24:52 +10:00
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