cb81b06a5d
Revert "Fix div/zero, allow switching backends"
...
This reverts commit 1288262ca7
.
2021-09-15 17:52:53 +02:00
1288262ca7
Fix div/zero, allow switching backends
...
When switching backends, the effective sample-rate is zero.
This only affects the butler thread (the only active thread when
stopped). The actual issue here is the butler calling
"non-realtime-stop" without a backend. However fixing 0/0
generally seems appropriate.
```
#0 in int_div_round<long>(long, long) (x=0, y=0) at ../libs/pbd/pbd/integer_division.h:36
#1 in Temporal::samples_to_superclock(int64_t, int) (samples=0, sr=0) at ../libs/temporal/temporal/superclock.h:39
#2 in Temporal::timepos_t::timepos_t(long) (this=0x7f94bc0a5890, s=0) at ../libs/temporal/temporal/timeline.h:55
#3 in ARDOUR::Automatable::non_realtime_locate(long) (this=0x55a12a980cc8, now=0) at ../libs/ardour/automatable.cc:421
#4 in ARDOUR::Route::non_realtime_locate(long) (this=0x55a12a980ae0, pos=0) at ../libs/ardour/route.cc:5462
#5 in ARDOUR::Session::non_realtime_stop(bool, int, bool&) (this=0x55a12e0cd000, abort=false, on_entry=1, finished=@0x7f94bc0a5e0f: true) at ../libs/ardour/session_transport.cc:1487
#6 in ARDOUR::Session::butler_transport_work(bool) (this=0x55a12e0cd000, have_process_lock=false) at ../libs/ardour/session_transport.cc:1153
#7 in ARDOUR::Butler::thread_work() (this=0x55a12f3b7000) at ../libs/ardour/butler.cc:222
#8 in ARDOUR::Butler::_thread_work(void*) (arg=0x55a12f3b7000) at ../libs/ardour/butler.cc:16
```
2021-09-11 04:54:40 +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
John Emmas
dda7612479
A few visibility changes needed for linking to libpbd (when building with MSVC)
2021-09-04 12:35:44 +01:00
b4b4745bd4
Amend 55211b8d
(PRNG seed, use local address)
2021-08-16 04:59:10 +02:00
baf5a13f17
Update atomic/volatile compat
...
With glib 2.64, volatile gint produce annoying Wcast-qual
compiler warnings with mingw/gcc-8.
Even though the the build succeeds, and only glib 2.68+
requires non-volatile atomics this results in a much
cleaner build-log.
2021-08-16 04:26:55 +02:00
a3b28b4114
Move PCG RNG implementation out of header, update API
2021-08-15 16:03:01 +02:00
79baf356b9
Add realtime safe random number generator
2021-08-14 01:03:37 +02:00
b42727b92a
temporal: fix use of std::abs on 64 bit value
2021-08-13 12:51:34 -06:00
25ecc54208
possible minor optimizations of atomic loads in int62_t class
2021-08-13 12:51:34 -06:00
b96a2b1757
libpbd: provide a way to abort an RCU-based write_copy()->update() sequence
2021-08-13 12:51:32 -06:00
170541deb7
libpbd: fix implementation of int62_t::operator== and ::operator!=
...
Reversed logic error
2021-08-13 12:51:31 -06:00
bed76798f3
manual fixups after rebase against master (general libs edition)
2021-08-13 12:51:31 -06:00
4f6befea83
fix in62_t equality/inequality operators when used with mismatched arguments
2021-08-13 12:51:30 -06:00
b7d22508fa
Add blib event callback to BaseUI, with a virtual method to be overridden by derived classes.
2021-08-13 12:51:30 -06:00
179f2b2624
change value of int62_t::max to avoid flag bit being set
2021-08-13 12:51:30 -06:00
8dbbc1df54
library changes to get libtemporal setup at application startup
2021-08-13 12:51:30 -06:00
27c98adda9
alter API for MementoCommandBinder to allow future flexibility
2021-08-13 12:51:30 -06: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
b2a4fe1b50
likely temporary change to visibility inside PBD::int62.h
2021-08-13 12:51:29 -06:00
111f10638d
gcc 6.x requires <typeinfo> for typeid, it seems
2021-08-13 12:51:29 -06:00
0534d1fbb2
more improvements for int62_h based on rgareus' review
2021-08-13 12:51:28 -06:00
b7b4c99bc9
Temporal: add new arithmetic operators allowing more inter-operability of int64_t/int62_t; make operator int64_t explicit to avoid hidden use
2021-08-13 12:51:28 -06:00
788cd5456e
add additional methods allowing direct arithmetic operator expressions to be used with PBD::Property
2021-08-13 12:51:28 -06:00
709df7a08f
add operators for self-typed arithmetic
2021-08-13 12:51:28 -06:00
cb78984c63
add new int62.h header, which implements a generic 62bit-int-plus-flagbit type
2021-08-13 12:51:28 -06:00
c043156089
new header with an efficient implementation of integer division-rounding-to-nearest
2021-08-13 12:51:28 -06:00
8a41931ff4
Print note when stacktrace is too short
2021-07-23 01:43:18 +02:00
c5e5659022
Fix crash when demangled symbol is n/a
...
std::string foo (NULL) can throw a std::__throw_logic_error
which was not caught.
2021-07-19 18:26:22 +02:00
John Emmas
12e1c960b6
Add an extra dependency lib which was previously only needed for Debug builds
2021-07-15 09:30:08 +01:00
c92dfed706
Fix windows builds (stacktrace pthread debug)
2021-07-14 16:04:07 +02:00
46251c2068
Fix Windows debug builds
2021-07-14 15:07:26 +02:00
4651ec8382
Unconditionally enable stacktrace for windows builds
...
This also fixes an issue introduced 7d39205350
(duplicate variable name "levels".
2021-07-13 13:47:26 +02:00
7d39205350
Allow to skip top stacktrace frames
...
This is useful to hide the call of `PBD::stacktrace` itself.
2021-07-12 04:01:07 +02:00
a74b4e8ef0
No more wine
2021-07-03 19:07:25 +02:00
bf43c8d2d4
Set thread names
2021-06-30 17:15:27 +02:00
775f46315f
remove debugging output from timing.h
2021-06-29 17:46:03 -06:00
a36ab0c562
avoid timing stats calculation with <= values from get_microseconds()
2021-06-29 11:13:59 -06:00
a9f285b82b
debugging timing stats by showing how max values are computed
2021-06-29 09:46:46 -06:00
24ea6c4d30
make it possible to debug one of the RAII TimingStats objects
2021-06-29 09:25:38 -06:00
b20a541d7e
change PBD::microseconds_t to a signed type and check for -1 in TimingStats::update
...
This may help a Windows issue with the return value of QueryPerformanceCounter
2021-06-28 14:47:48 -06:00
John Emmas
09589c3c94
Add/remove source(s) in our MSVC project (libpbd)
2021-06-28 10:37:54 +01:00
4fd639eca9
NOOP: remove incomplete comment
2021-06-27 12:48:29 -06:00
a261d399e0
microsoft docs say that only windows.h is required for QueryPerformance*
2021-06-27 12:17:51 -06:00
e2f2d0cb0f
fix inadvertent typo that would cause compilation failure on windows
2021-06-27 10:53:31 -06:00
857a9b14d7
more macOS cleanup for microseconds.cc
2021-06-27 10:39:51 -06:00
347ca5c2fe
clean up locally-created mess in libs/pbd/microseconds.cc
2021-06-27 10:28:53 -06:00
412b6a922d
macOS: slight speed up for ::get_microseconds()
...
Move timebase initialization into microsecond_timer_init() and drop conditional
2021-06-27 10:23:44 -06:00
db0691d236
macOS: fix compilation warnings on macOS versions where clock_gettime() is finally implemented
2021-06-27 08:24:59 -06:00
738b0ad21b
Fix OSX builds (amend 04df26244
, a2b5962b6
)
2021-06-27 05:09:07 +02:00