Commit graph

43 commits

Author SHA1 Message Date
Robin Gareus
e44a66287a
Correctly detect localtime_r 2025-05-18 20:08:27 +02:00
Paul Davis
75f56cd3e1 the great onceification (libs)
Replace use of #ifndef header guards with #pragma once

Modern C++, baby!
2024-10-17 07:44:31 -06:00
Mads Kiilerich
88cecdfaef wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
Mads Kiilerich
f1bb18ae53 wscript: drop unused path_prefix
It is not referenced anywhere, and also not set consistently.
2023-09-17 07:34:55 -06:00
Mads Kiilerich
d220f477ed wscript: drop unused "mandatory variables" 'top' and 'out' in libs
Variables by these names are only used from the local wscript and when
running "waf configure", which already for other reasons only can run at
the top-level.

These variables are thus not mandatory and not used.
2023-09-17 07:34:55 -06:00
Robin Gareus
d899441df1
ALSA: disambiguate multiple soundcards with the same name 2023-07-02 00:17:58 +02:00
Robin Gareus
64b480dd65
ARD: shutdown message is not an error 2023-04-27 15:35:22 +02:00
Robin Gareus
f85b4fef15
Distinct stderr messages from ARD 2022-09-12 16:15:10 +02:00
Mads Kiilerich
49855e52aa wscript: consistently have at most one empty separator line 2022-04-09 12:16:40 +02:00
Mads Kiilerich
8bb91099c5 wscript: drop configure statements already present in the top level wscript
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!)                   : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler)                      : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01:00
Robin Gareus
2c8916310a
Consistent env variable naming (see also 6801c2cac2) 2021-06-10 03:17:49 +02:00
David Robillard
7e9d4f9e73 Fix C function prototypes
This fixes Wstrict-prototypes warnings.
2020-12-01 12:08:09 +01:00
Robin Gareus
52f62f0c14
Possible fix for linking with new libdbus
libdbus_1_la-dbus-sysdeps-pthread.o): in function _dbus_platform_condvar_new':
undefined reference to pthread_condattr_setclock’
2020-11-26 00:50:56 +01:00
Robin Gareus
3a6a9cfa6c
Tweak ALSA nperiod setting, fallback to nearest
This is mainly for RME RayDAT that has a fixed buffersize of 16k:

  dev_name : hw:HDSPMxc2f6c5,0
  channels : 36
  min_rate : 32000
  max_rate : 192000
  min_bufz : 16384
  max_bufz : 16384
  min_nper : 4
  max_nper : 512

However nperiod configuration determines the effective latency
regardless.

This is similar to https://github.com/jackaudio/jack1/blob/master/drivers/alsa/alsa_driver.c#L476-L486
2020-04-29 23:56:24 +02:00
Robin Gareus
3d5ea7dfab
ALSA: set min/max sizes before the debug message 2020-04-29 01:16:23 +02:00
Robin Gareus
8e482ef0fb
Con't work on ALSA nperiod selection (see also d3d120fa) 2020-04-28 17:56:17 +02:00
Robin Gareus
d3d120fa28
Prepare to allow using ALSA backend with nperiods > 3
This will still need an update for Alsa_pcmi::set_hwpar() capture
channel (which is fixed at 2, unless FRAG_NEAR is used).
2020-04-28 03:28:34 +02:00
Robin Gareus
531fa74eb1
Suffix complete hw: ID to make ALSA card names unique 2019-08-16 20:00:29 +02:00
Robin Gareus
316880b9cf
Don't print usage to stdout for invalid parameters 2019-08-15 01:09:26 +02:00
Robin Gareus
47a62b2850
Update backend GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus
0fe3cba8b1
Fix ALSA available buffersize detection:
buffer-size = periods * period-size

Previously, buffersize was used for period-size.

This fixes an issue with a dedicated .asoundrc configuring a specific
period-size or buffer-size that has to be exact.
Ardour's device configuration failed in this case.

This has not been an issues since most hardware devices offer a wide
range: 8 < period-size < 262144 ; 16 < buffer-size < 524288.
Only a subset of which (32 .8192) is allowed by Ardour.
2019-07-24 16:40:32 +02:00
Robin Gareus
34b671911c
Skip name-suffix for first ALSA sub-device
This fixes an issue when a device has more than one
playback sub-device, but only a single capture sub-device (or vice
versa).
2019-06-04 19:20:26 +02:00
Robin Gareus
f777d8389d
List available ALSA sub-devices
Previously Ardour only listed the first audio sub-device in the
for ALSA and JACK backend device selection dialog.
2019-06-01 15:49:46 +02:00
Robin Gareus
7e56812c55
Fix ALSA MIDI device naming
The backend will replace the information in the last bracket (IO)
of the name with (In/Out) when creating pretty port-names from the
device-name. -- see replace_name_io().

This fixes an issue with device-name number suffixes in brackets.
2019-05-10 13:21:22 +02:00
Robin Gareus
4185ad80a6
Prepare for Ardour/ALSA multiple identical MIDI devices
The engine setup identifies devices by name (device list is a map<>
with the device-name as key). To support multiple devices with the
same name, the name needs to be unique.

So far this is achieved by simply adding a number suffix starting with
the 2nd device (this allows to re-use configurations).

Ideally we'd use UUIDs or unique device IDs to handle this, and also
somehow clarify which device is which...
2019-05-08 19:58:53 +02:00
Tim Mayberry
0de5722fb1 Use PBD::to_string() from pbd/string_convert.h in ardour ALSA utils
Use pbd/string_convert.h API instead of std::ostream for numeric formatting to
remain locale independent and not have to use a LocaleGuard. The formatting is
equivalent
2017-04-19 09:37:00 +10:00
Robin Gareus
ba78359129 prepare for update to waf 1.8
uselib is no longer implicit (inherited by .use). This is still incomplete,
some uselibs for non-linux variants may be missing.

bld.is_defined("HAVE_XXX") also no longer works and will have to be
changed (I think to bld.env["HAVE_XXX"]) in countless places.
2016-02-28 21:16:44 +01:00
Paul Davis
3cc4ee8029 alsa: allow environment variable ARDOUR_ALSA_DEVICE to identify a single, arbitrary ALSA PCM name as the only available/allowed device 2016-02-21 12:44:54 -05:00
Paul Davis
ec06f2c49f spelling error fixes (notably "overriden" => "overidden") from IOhannes m zmölnig 2015-09-11 09:23:43 -04:00
Robin Gareus
40661f7d1f add API to query ALSA supported parameters 2015-08-11 18:18:19 +02:00
Robin Gareus
acd95215a4 allow to scan for half-duplex ALSA devices 2015-06-14 22:26:06 +02:00
Paul Davis
404a77adb8 get installdir for libardouralsautil correct 2014-09-06 14:42:25 -04:00
Robin Gareus
c1ae35242b update ARD - allow to release it as standalone tool.
see https://github.com/x42/alsa_request_device
2014-06-29 21:19:04 +02:00
Robin Gareus
359a968e61 alsa sequencer device/port listing 2014-06-21 11:51:11 +02:00
Robin Gareus
443ccb866f fix edge case - handle error in device owner request 2014-06-15 21:07:19 +02:00
Robin Gareus
4651530d6f ARD: proper cleanup 2014-06-15 21:07:19 +02:00
Paul Davis
5288de3dc0 install libardouralsautil into the normal libdir, not a subdir 2014-06-07 08:30:35 -04:00
Robin Gareus
475e24f1d9 don't build a-r-d if alsa backend is not built 2014-06-05 18:19:55 +02:00
Robin Gareus
27af0f2d4b add default timeout for old dbus headers 2014-06-05 18:19:54 +02:00
Robin Gareus
de6a1ab701 make alsa/ardour dbus-device request tool generally useful. 2014-06-05 18:02:43 +02:00
Robin Gareus
27f8fc90cf mark dbus reservation tool optional 2014-06-05 03:26:52 +02:00
Robin Gareus
742282b7e9 proper dbus device reservation 2014-06-05 02:22:12 +02:00
Robin Gareus
a907d3455e break out ALSA related functions into libardouralsautil 2014-06-04 19:16:37 +02:00