Commit graph

240 commits

Author SHA1 Message Date
Paul Davis
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
Robin Gareus
e14b6428c3 slightly better version of 0077923d, don't stop the engine for nothing 2016-04-18 17:37:14 +02:00
Robin Gareus
0077923dea update flow when loading a new session with different SR. 2016-04-18 15:18:36 +02:00
Robin Gareus
652468a344 add a try-autostart-engine option (most recently used settings) 2016-04-18 14:11:22 +02:00
Robin Gareus
db56a4da71 Engine Dialog: exclude optional widgets from show_all. 2016-04-18 14:07:49 +02:00
Tim Mayberry
0812f3bac1 Hide "Use Buffered I/O" button when switching to backend with no control
Which in this case means the JACK backend where the server is already running.
2016-02-13 10:00:59 +10:00
Tim Mayberry
2b4ac72e5d Add button to Engine Dialog to choose between Portaudio callback and blocking API 2016-02-11 12:15:07 +10:00
Tim Mayberry
d54a320374 Show/Hide midi calibrate button based on AudioBackend::enumerate_devices
Rather than use an ifdef to only pack the button on linux just hide the button
if the backend doesn't enumerate the devices.
2016-02-11 12:15:07 +10:00
Robin Gareus
c0a843a905 fix device-list update concurrency issue.
It may happen that during push_state_to_backend() a device is
reconfigured in a way that triggers a "Device Changed" callback before
the engine is started. This callback can trigger a change to the
configuration that will be used when the engine is actually started.

This has been seen on OSX in conjunction with Aggregate Devices
(even if the aggregate is not used, but the device which is used
is also part of an aggregate) 

example: HW changed callback arrives, device-list is re-populated,
*A*irplay" is at the top of the list, Airplay supports only 44.1K,
Samplerate changes... later save also writes this new rate to the file.
2016-01-29 01:12:53 +01:00
Robin Gareus
aeaf0610d4 GUI for latency-measurement signal-level 2016-01-14 19:25:23 +01:00
Robin Gareus
fed6c9f3ad tweak GUI for backends where nperiods is driver dependent. 2015-12-05 13:55:37 +01:00
Robin Gareus
b5c5b7e493 GUI chores to show nperiods option. 2015-12-05 01:53:13 +01:00
Robin Gareus
2529b9db96 GUI handling for live latency-measurement 2015-12-04 17:34:46 +01:00
Robin Gareus
e9b0b4bcf0 remove duplicate check (same is done few lines above) 2015-12-04 17:05:21 +01:00
Robin Gareus
911830726e prefer recently used states. 2015-11-23 22:45:16 +01:00
Robin Gareus
b754c4341e restore last used driver+devices for a given backend. 2015-11-23 22:45:16 +01:00
Robin Gareus
8431d102b9 Do not restore engine state if we don't have control
When connecting to already running jack, display jack's buffersize
correctly.
2015-10-06 14:40:51 +02:00
Tim Mayberry
ef0f13cb84 Stop engine when clicking back button in latency measurement tab of EngineControl dialog
The engine is started when you switch to latency measurement tab but it isn't
stopped if you just click the back button without measuring for latency.
2015-10-06 13:29:57 +10:00
Tim Mayberry
cd4dd08931 Add EngineControl::stop_engine method to show errors when stopping engine
This replaces using ARDOUR_UI::disconnect_from_session which is only used by the
EngineControl class. ARDOUR_UI::disconnect_from_session also disconnects from
the AudioEngine::Halted signal which seems unnecessary as Halted is not emitted
when stopping the engine and calling update_sample_rate() which is already
handled when the AudioEngine::Stopped signal is emitted.
2015-10-06 13:29:57 +10:00
Tim Mayberry
1195aeb64e Handle all errors when starting backend in EngineDialog 2015-10-06 13:29:57 +10:00
Tim Mayberry
4b9e738636 Align switch statement with case labels to reduce indentation in EngineDialog 2015-10-06 13:29:57 +10:00
Robin Gareus
dc36b063bf remove unused fstream includes 2015-10-05 22:15:18 +02:00
Robin Gareus
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Tim Mayberry
520b78b841 Add parent window argument to ARDOUR_UI::check_audioengine
Ensures relevant placement of the dialog when presented
2015-10-01 09:10:19 +10:00
Tim Mayberry
73acaf6de6 Display warning when closing Audio Setup dialog with engine stopped
Only show warning when a session is loaded
2015-10-01 09:10:19 +10:00
Tim Mayberry
463bd470e8 Don't hide Audio Setup dialog when clicking 'OK' if engine fails to start
This has to be handled in two places, in ARDOUR_UI::do_audio_midi_setup and in
the dialogs response handler and in as the window can also be triggered via the
window action manager.
2015-10-01 09:10:19 +10:00
Robin Gareus
b7fbd4e9c0 fix a small memleak.
downcase(char*) requires free(), downcase(std::string) does not.
2015-09-10 17:39:31 +02:00
Robin Gareus
fc079a0ea3 initialize some uninitialized variables.
really just nitpicking (keep valgrind clean).
2015-09-06 21:54:54 +02:00
Tim Mayberry
dbe3500f24 Add utility method for choosing which device/s to display in Audio Setup dialog 2015-09-02 12:07:15 +10:00
Tim Mayberry
25ff056921 Use previously set buffer size in EngineDialog if possible
This is also to support refreshing of devices so that the buffer size isn't
reset.
2015-09-02 12:07:15 +10:00
Tim Mayberry
9626e0c413 Add "Refresh Devices" button in Audio Setup dialog for backends that support it
This allows the portaudio library to be reinitialized to pick up new devices
and changes to ASIO buffer changes made externally.
2015-09-02 12:07:15 +10:00
Tim Mayberry
88b332412c Add some debugging output for state restoration in Audio Setup dialog 2015-09-02 12:07:15 +10:00
Tim Mayberry
e6492319b1 Remove Apply button from Audio Setup dialog now that there is a start/stop button 2015-09-02 12:07:15 +10:00
Tim Mayberry
dd275327a4 Change "Stop" button into a Start/Stop button in Audio Setup dialog 2015-09-02 12:07:15 +10:00
Robin Gareus
c734f82ff2 use program-name for internal ports 2015-08-27 16:50:09 +02:00
Tim Mayberry
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
Robin Gareus
ad9cebe247 hide “Midi Setup” button on OSX and Windows. 2015-08-12 03:16:09 +02:00
Robin Gareus
687921a760 remove -Woverload-virtual ambiguity (from 1d3690d) 2015-08-11 23:50:56 +02:00
Robin Gareus
bf1b65029c update driver selection sensitivity 2015-08-11 22:04:28 +02:00
Robin Gareus
212a4c1f8d refine "Running" message. 2015-08-11 19:44:14 +02:00
Robin Gareus
6cc029f5da don't allow to change devices while engine is running. 2015-08-11 19:13:10 +02:00
Robin Gareus
52c25cab36 allow to stop engine for re-configure 2015-08-11 15:38:38 +02:00
Robin Gareus
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
Robin Gareus
a3b2b1bcfa Engine Dialog: use new API 2015-08-11 15:38:19 +02:00
Tim Mayberry
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
Tim Mayberry
c80e4c04c5 Extract two utility methods from EngineControl::set_samplerate/bufferize_popdown_strings 2015-08-11 14:13:06 +10:00
Tim Mayberry
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
Tim Mayberry
5e5db3c402 Check the default SR is available for a device when setting SR in EngineControl 2015-08-11 09:57:38 +10:00
Tim Mayberry
4651b10345 Remove unnecesary clearing of local variable in EngineControl 2015-08-11 09:46:46 +10:00
Tim Mayberry
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