Commit Graph

32 Commits

Author SHA1 Message Date
7a1ff7ce8f rework locking (fa07233a, 112fba182)
For now: use a single lock, which should fix all related crashes.
optimize (with less contended partial locks) if this works.
2016-12-14 13:43:20 +01:00
fa07233a17 mutex 'er up
Some overzealous locking to track down RequestObject related crashes.

bc0fa4d689 wrongly locked the current event loop's
request_invalidation_lock instead of the invalidation's list lock.

Also Abstract UI is able to delete requests concurrently with with
EventLoop invalidation.
e.g. PortManager::PortRegisteredOrUnregistered  and GlobalPortMatrixWindow
so the lock needs to be exposed.

If this solves various issues, mutexes should to be consolidated
(request_buffer_map_lock + request_invalidation_lock) and be chosen
such that there is as little contention as possible.
2016-12-13 23:47:07 +01:00
nick_m
d9dea0a3aa rename Region pos_beats -> quarter_note 2016-11-11 03:37:08 +11:00
nick_m
594137f5cc remove public pulse methods from TempoMap.
- the only object whose musical position is not expressed in
	  quarter notes is MetricSection.
	  there is now no need to expose this.
2016-11-11 03:37:08 +11:00
nick_m
dca96d8b5d rename Region pulse to pos_beats. use new beat distance api where required.
- add more debugging output detecting regions whose
	  beat and frame position do not align on a playlist.
	  this is required as a check as we have never used
	  frame rounding on constant tempi before 8884a5723dc
2016-11-11 03:37:08 +11:00
a1a1112998 include session-utils with windows bundles 2016-10-14 18:36:54 +02:00
nick_m
4faf44588f Interpret start & length_beats properties as double rather than Evoral::Beats.
- Evoral::Beats operator!= would prevent an increment
	  of start_beats by intervals of less than a tick,
	  so its possible that other subtle problems
	  existed due to this kind of thing.
2016-10-10 03:39:57 +11:00
nick_m
bb3312c3bb fix_bbtppq: add missing space - no-op 2016-10-01 11:30:40 +10:00
nick_m
c742596024 fix_bbtppqn: setting start and length accounts for for multiple tempi, 2016-10-01 09:08:54 +10:00
nick_m
e67303b0e4 fix_bbtppq: fix typo. 2016-09-29 23:45:15 +10:00
nick_m
52ce0dc354 fix_bbtppq update: format text, remove old sources in region method. 2016-09-29 22:34:32 +10:00
96b35db9bd Fix error: conversion from 'int' to non-scalar type 2016-09-29 13:41:17 +02:00
nick_m
4634801cf1 Rename headless-chicken utility to fix_bbtppq 2016-09-29 02:26:16 +10:00
nick_m
b9332f5fe2 headless-chicken: force setting of region length properties, clean up code. 2016-09-29 01:27:42 +10:00
nick_m
83fd395476 headless-chicken: skip !writable sources, ensure midi path is writable. 2016-09-29 01:27:42 +10:00
nick_m
ab888ae4f6 headless-chicken: ensure new sources are empty, misc renaming. 2016-09-29 01:27:42 +10:00
nick_m
05dd601240 headless-chicken: misc fixes.
-clean up user text, remove double null ptr check,
	 we're using namespace std::
2016-09-29 01:27:42 +10:00
nick_m
460d5986f9 headless-chicken: various fixes
- one_source_per_region_fix no longer clobbers midi source
	- allow user to override per-region fix and suggest they do so.
	- fix multiple note divisor detection.
2016-09-29 01:27:42 +10:00
nick_m
8c6e9e15d4 Add headless-chicken session utility.
- provides an upgrade path for sessions affected by a nasty bug
	  present in some 5.0 - 5.3 MIDI sessions.
	  If testing from source, it can be run from the session_utils directory
	  using ./run ardour5-headless-chicken -h
2016-09-29 01:27:42 +10:00
44a04be437 update session utils for API change in 636522 2016-08-22 18:52:08 +02:00
8c944c08ea Normalize API rename part 2 2016-07-18 17:37:13 +02:00
f43ccd7321 update session-utils
* use target name in help text
* add options and documentation to copy-mixer
2016-06-03 23:09:18 +02:00
fe0ad00e7f copy mixer utility evolution 2016-06-02 22:25:41 +02:00
ea85217437 session-utils tweaks
* emulate 256 i/o (don't loose connections)
* allow "silent" start
2016-06-02 22:25:41 +02:00
1af8b564b4 fix typo in export-util help text 2016-06-02 22:25:41 +02:00
1fd04a37c1 prototype tool to copy mixer/route settings between sessions 2016-06-02 14:07:25 +02:00
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
883a6a3d4e UI updates for export-abort 2016-02-09 21:37:28 +01:00
d56a44bf36 UI updates for detailed export state. 2016-02-09 13:19:34 +01:00
47c08a36eb session-utils use the "Dummy" backend 2016-01-07 13:30:34 +01:00
53d8b45457 session-utils: use session's sample-rate 2015-12-16 23:22:05 +01:00
b228c11311 commandline session utilities 2015-12-16 00:25:07 +01:00