13
0
Commit Graph

174 Commits

Author SHA1 Message Date
0d71876189
signals_generated.h is no longer required 2024-10-19 21:54:34 +02:00
Alejandro Domínguez
16dd8528c8
Make SignalN template variadic 2024-10-18 20:41:05 +02:00
d30c8a1286 abstract concept of a history owner from ARDOUR::Session into libpbd 2024-10-17 07:44:31 -06:00
a8c26dbfa4
Fix localtime_r check (#9554) 2023-11-28 17:05:03 +01: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
1c686f4d63 wscript: drop additional configure statements already present in the top level wscript
Missed in 8bb91099c5.
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
Mads Kiilerich
a0916ef368 wscript: drop unused APPNAME assignment in libs
https://waf.io/book/ says
  By default, the project name and version are set to noname and 1.0. To
  change them, it is necessary to provide two additional variables in
  the top-level project file

- and waf code inspection confirms that waf itself only will use the top
level APPNAME.

Also, the 'waf dist' comment doesn't seem relevant - especially after
this change - and is removed too.

(Note: libs/evoral/wscript and libs/temporal/wscript still use APPNAME
for other purposes.)
2023-09-17 07:34:55 -06:00
Mads Kiilerich
3b4cf9191c wscript: drop unused VERSION assignment in libs
https://waf.io/book/ says
  By default, the project name and version are set to noname and 1.0. To
  change them, it is necessary to provide two additional variables in the
  top-level project file

- and waf code inspection confirms that waf itself only will use the top
  level VERSION.

Some wscripts will use
  bld.env['VERSION']
but that will also just use the value set in the top wscript.
2023-09-17 07:34:55 -06:00
Mads Kiilerich
7737c17d52 wscript: drop unused imports, scripted
Done with ad hoc scripting hacks processing unused imports found by pyflakes:

for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Logs.* but unused' | cut -d: -f1 | while read f; do sed -i 's/^import waflib.Logs as Logs,/import/g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i 's/import waflib.Options as Options, /import /g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i 's/^from waflib import Options,/from waflib import/g' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep ' imported but unused$' | sed "s/^\([^:]*\):[0-9]*:[0-9]* '\(.*\)'.*/\1 \2/g" | while read f lib; do sed -i "/^import $lib$/d" $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Options.* but unused' | cut -d: -f1 | while read f; do sed -i '/from waflib import Options$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.TaskGen.* but unused' | cut -d: -f1 | while read f; do sed -i '/from waflib import TaskGen$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Task.Task.* but unused' | cut -d: -f1 | while read f; do sed -i '/^from waflib.Task import Task$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Tools.winres.* but unused' | cut -d: -f1 | while read f; do sed -i '/^from waflib.Tools import winres$/d' $f; done
for f in $( find * -name wscript ); do echo; pyflakes $f; done | grep 'waflib.Utils.* but unused' | cut -d: -f1 | while read f; do sed -i '/^import waflib.Utils as Utils$/d' $f; done
2023-09-17 07:34:55 -06:00
65f2be76f6
Move Ardour::Progress to PBD::Progress
This will allow PBD::Filearchive to properly report progress.
It is also a generally useful API and deserves to be in libpbd.

Temporarily keep Ardour::Progress as alias
2023-05-19 00:35:20 +02:00
df298c6046
Add API to sanitize UTF-8 strings 2023-04-26 17:25:24 +02:00
39ed528e25 std-ize: convert all boost shared/weak ptr includes to <memory>
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
375daf4810 libpbd: new threader Inflater and Downlaoder classes 2022-09-13 13:53:45 -06:00
968533cc23 (re)add mechanism for a callback in any glib event loop executed before the loop "executes"
This is based on code from earlier commits that were later reversed, but we need some mechanism
to ensure that threads have a thread local tempo map ptr set. The big difference is that this
time we do not implement this for all instances of an AbstractUI - implementation is left to
each thread/event loop
2022-05-16 15:24:52 -06: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
5a1201f05b
Fix duplicate libs 2021-09-19 23:39:51 +02:00
e057088195 remove unused, empty glib event source/callback code (was from an experiment during nutempo2 development) 2021-09-04 07:39:27 -06:00
a3b28b4114
Move PCG RNG implementation out of header, update API 2021-08-15 16:03:01 +02:00
09c84d1de8 add new GSource-derived object that can be attached to a Glib::MainContext to execute code before other sources have their dispatch() method invoked 2021-08-13 12:51:29 -06:00
9e598548f7 put get_microseconds() into PBD namsepace
This implementation is a blend of the two previously in libs/ardour/globals.cc
and libs/pbd/window_timer_utils.cc
2021-06-26 18:25:02 -06:00
a1d53c1d2e
Fix linking unit-tests with lld
ld.lld: error: libs/pbd/libpbd.so: undefined reference to dlopen [--no-allow-shlib-undefined]
2021-04-13 23:29:02 +02:00
88fc0ed392
Add RCU unit test 2020-11-05 02:24:54 +01:00
1fa05b4764
Generate header before building dependency graph 2020-10-16 02:35:51 +02:00
fe8a05d6c9
libpbd signals.h depends on signals_generated.h
This fixes building with large concurrency where signals_generated.h
may otherwise be generated to late.
2020-10-15 05:45:51 +02:00
5c789547cb
Fix building unit-tests 2020-01-27 17:43:37 +01:00
David Runge
2e9ac80e99
Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
bca825e515
NO-OP: whitespace 2020-01-14 00:52:24 +01:00
8ed33f1bc7 remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead 2018-10-14 22:06:11 -04:00
1aa96dc0a1 Add a RAII SpinLock (using boost's spinlock) 2017-10-26 22:33:46 +02:00
c634daef6a Add locale independent and thread safe string conversion API with tests
All conversions are performed as if in the "C" locale but without actually
changing locale.

This is a wrapper around printf/sscanf for int types which aren't affected by
locale and uses glib functions g_ascii_strtod and g_ascii_dtostr for
float/double types.

My first attempt at this used std::stringstream and
ios::imbue(std::locale::classic()) as it should be thread safe, but testing
shows it is not for gcc/mingw-w64 on Windows, and possibly also some versions
of macOS/OS X.

Use "yes" and "no" when converting a boolean in PBD::string_to<bool> as this
seems to be the convention used throughout libardour which will allow using
string_to<bool> in those cases.

Add accepted bool string values from PBD::string_is_affirmative to
PBD::string_to<bool>

Mark strings in pbd/string_convert.cc as not for translation

Add u/int16_t string conversions to pbd/string_convert.h and tests

Add DEBUG_TRACE output on conversion errors

Add int8_t/uint8_t conversions(using int16/uint16 types) to string_convert.h

Add support for converting an infinity expression to/from string

Follows the C99/C11 standard for strtof/strtod where subject sequence is an
optional plus or minus sign then INF or INFINITY, ignoring case.
2017-04-16 14:02:41 +10:00
b51321bd7d Make libpbd and evoral capable of standalone build
Just an update to slightly rotten wscripts, shouldn't be any changes during an
ardour build.  Motivation being a short development cycle for working on evoral
and/or its test suite.
2016-12-04 15:15:11 -05:00
Kamil Rytarowski
e426f0777a NetBSD ships with backtrace(3) in libexecinfo 2016-10-04 22:18:52 +02:00
53ee3e2e72 Add support for built-in file/url unzip/untar
This introduces new build-dependency: libarchive
(http://www.libarchive.org/)
2016-09-13 16:14:40 +02:00
d13435a4e1 re-add TLSF 2016-07-19 15:03:51 +02:00
311a5f1462 add a natural sort algorithm 2016-07-14 16:52:43 +02:00
d5127001bb move ControllableDescriptor from libpbd to libardour; add support for describing VCAs 2016-05-31 15:30:42 -04:00
3c87629c7e realloc-pool unit-test 2016-02-22 22:06:47 +01:00
6cf5e989c0 time-bound memory-pool
O(1) realloc() for use with Lua.
A standard malloc/free/realloc API is exposed for testing and other
potential use-cases.

The current configuration it's performs well for lua-metatables
(regular calls to realloc() with varying tiny chunks ~1-50 bytes)
For the use-case at hand it outperforms TLSF.
2016-02-22 22:06:47 +01:00
Kamil Rytarowski
2da6e45922 NetBSD: Stop hardcoding Python binary name
Caught with pkgsrc on NetBSD
2015-12-07 13:24:36 +01:00
15c958e32f consolidate semaphore implementation (part three) 2015-12-02 16:09:51 +01:00
5f4f89fb39 Move PBD symbol demangle functions into pbd/demangle.h/cc
Add pbd/demangle.cc source file and move functions from pbd/stacktrace.cc into
it
2015-12-01 14:22:38 +10:00
73d1de3b75 NOOP, remove trailing whitespace, replace tabs in python scripts 2015-11-29 17:54:31 +01:00
091c4ed3a7 Move Windows MMCSS related utility functions into libpbd 2015-09-16 11:22:16 +10:00
cd05d46c00 Add windows specific test for pbd/windows_timer_utils.h API 2015-09-16 11:22:16 +10:00
62f75b8b16 Remove glib timer test from pbd testsuite
There are no test assertions and it takes a long time to execute the test so
just leave it disabled for now.
2015-09-16 11:22:16 +10:00
3f5c01e4eb Move Windows timer utility functions from PA backend into libpbd 2015-09-16 11:22:16 +10:00
b2ff1e1734 Add unit test to check that libxml2 expects utf-8 encoded file paths on Windows 2015-07-25 23:14:50 +10:00
2f10fb5b96 OSX 10.5/PPC compat
posix_memalign is 10.6 or later
2015-07-19 23:02:24 +02:00