Commit Graph

27765 Commits

Author SHA1 Message Date
fc981d4399 (Source List) Revert to displaying whole-file Regions instead of Sources.
This preserves the stereo-ness of files that were imported or recorded in stereo.

ToDo  (maybe someday): provide a disclosure triangle that exposes the individual channels in a multichannel region
2019-08-01 12:11:31 -05:00
ed325b52b2 (Source List) Add forall_regions function, used by Region and Source lists. 2019-08-01 12:11:31 -05:00
52611e2374 (Source List) No need to show the path when file is internal to session. 2019-08-01 12:11:31 -05:00
0b699ac9f7 (Source List) merge fixes 2019-08-01 12:11:31 -05:00
e0bdcd7137 (Source List) Clean up the natural_position implementation (gtk2 part). 2019-08-01 12:11:31 -05:00
edde5d64a2 (Source List) Clean up the natural_position implementation (libardour part). 2019-08-01 12:11:31 -05:00
77950c36c5 (Source List) Implement remove_selected_sources when the user clicks Delete key. 2019-08-01 12:11:31 -05:00
98c509cc48 (Source List) NOOP: whitespace cleanup
remove debug output
2019-08-01 12:11:31 -05:00
b409c58ee6 (Source List) Fix drag-n-drop. 2019-08-01 12:11:31 -05:00
be7ebbb7ba (Source List) RegionFactory should return an empty region here. 2019-08-01 12:11:31 -05:00
71c2ed8160 (Source List) Source list, Region List: Resolve various action+behaviors between the 2 lists.
Duplicate the remove_unsued_region action in the Session->Cleanup menu, for discoverability.
Region list should use the same Region actions as the canvas...
OK, now resolve the change in use-cases of Region List and Source List.  tentative.
Rough-in remove_selected_sources (Delete in Sources list).
Column tweaks.
2019-08-01 12:11:31 -05:00
c12a017728 (Source List) Region Tags (gtk2 part) 2019-08-01 12:11:31 -05:00
6c052348b5 (Source List) Region Tags (libardour part)
Rough-in: Region-Tags.

More correct implementation of tags property (libardour).

Region Tags (libardour part)
2019-08-01 12:11:31 -05:00
375a090295 (Source List) Make clock change func more explicit. 2019-08-01 12:11:31 -05:00
b1019bbbf6 (Source List) Region List rewrite (gtk2 part)
See:  https://docs.google.com/document/d/1sI7p9RoRVZtNx2n67RvBa0_16fuZblV_lNkkKN2g93s/edit?usp=sharing
2019-08-01 12:11:31 -05:00
3e6ce20fd7 (Source List) Region List rewrite (libardour part) 2019-08-01 12:11:31 -05:00
90962d3426 (Source List) Source property signals (gtk2 part)
See:  https://docs.google.com/document/d/1sI7p9RoRVZtNx2n67RvBa0_16fuZblV_lNkkKN2g93s/edit?usp=sharing
2019-08-01 12:11:31 -05:00
ca3c191d7c (Source List) Source property signals (libardour part) 2019-08-01 12:11:31 -05:00
949450bbb5 (Source List) Take-ID: new (working) implementation. 2019-08-01 12:11:31 -05:00
afb987d698
Update clang-format to match ardour-style 2019-08-01 18:31:44 +02:00
4a52a9b3b0
Fix C++11 NSDMI 2019-07-31 04:48:52 +02:00
8dbbc19567
Update MIDI Event precedence
A patch-change that is concurrent with a note-on event should be sent
before the given Note-on event.

As follow up: CCs also need to be prioritize to send bank-select first.

see also https://discourse.ardour.org/t/midi-strangeness-patch-setting-and-first-notes/101415
2019-07-30 21:17:15 +02:00
bf5da033dc Another try at fixing our 'spinlock_t' compatibility 2019-07-29 16:56:45 +01:00
82bdb48dab
Partially undo 6d4b94df13 for MSVC and C++98 compat 2019-07-29 04:45:29 +02:00
7b92f54929
Fix random off-by-one issue when vertically zooming a waveform
To mitigate concurrent rendering, the waveform cache adds a random
range of pixels centered around the visible waveform.

Alignment is using integer half_width = width_samples / 2;
This always aligns the left-edge to the left-most cairo-pixel.

This fixes an issue with moving moiree patterns in waveforms when
zooming vertically (which invalidates the cache and uses a
different random number of pixels),
2019-07-29 03:56:35 +02:00
a582b24fcd
Fix rendering of region waveform left-edge
The left-most part may be a partial block of a given "sample per pixel"
range. Also previously there was an off-by-one [block] in case
sample_pos was an even multiple of samples_per_visual_peak.
2019-07-29 03:48:52 +02:00
a176efee02
NO-OP: whitespace 2019-07-29 03:29:36 +02:00
6d4b94df13
Reduce compiler warnings when boost uses std-atomics
This works around for compilers with non-static-data-member
initialization.

spinlock_t is-a struct { lockType _; } and BOOST_DETAIL_SPINLOCK_INIT
initializes the first member of the struct.
All defines of BOOST_DETAIL_SPINLOCK_INIT include c-style curly braces
to initialize the struct's data member.

However, modern C++ compiler interpret the braces differently resulting
in copy constriction of the initializer.
2019-07-28 20:10:09 +02:00
684b364a8a
Yet another spinlock init hack for g++8 std::atomics
Perhaps we should rather implement this ourselves,
using <boost/atomic.hpp>
2019-07-28 18:39:26 +02:00
63fee3b0c8
Prevent spinlock copy construction 2019-07-28 15:02:04 +02:00
d00650c2fd
Another attempt at improving spinlock init 2019-07-28 15:01:40 +02:00
d382b756c2
Follow up d8ae3fd
Depending on implementation, d8ae3fd may only construct the spinlock
once to `sl_init`. Later it is only copy-constructed and that leads to
compile and/or runtmime errors.

e.g. gcc-8.3 fails to compile
error: use of deleted function ‘boost::detail::spinlock::spinlock(const boost::detail::spinlock&)’
2019-07-28 14:57:51 +02:00
d8ae3fd3a6 MSVC requires an already initialized object to initialize our boost::detail::spinlock (rather than the simpler #define)
Hopefully this'll work for the other builds too.
2019-07-27 12:31:15 +01:00
8a8468c5f1
Correctly initialize spintlock_t
Depending on underlying implementation, boost::detail::spinlock
needs to be explicitly initialized
2019-07-26 21:40:39 +02:00
8a969b56c9
PA-backend: Flush buffer and wake up main thread at stop 2019-07-26 21:38:40 +02:00
0717c4c71a
Prefix env variable with "ARDOUR_" 2/2 2019-07-26 16:58:31 +02:00
78fc6d6651
Prefix all env variable with "ARDOUR_"
In particular "CONCURRENCY" can be problematic. But in general
it's good practice to use a namespace prefix for app-specifics.
2019-07-26 16:44:29 +02:00
b759fb883e
Launch pavucontrol as PA's control app 2019-07-26 04:43:56 +02:00
7cf68eaf72
Fix time_t <> long int ambiguity (OSX gcc builds)
This fixes an issue with
* XMLNode::get_property(const char*, T&)
* XMLNode::set_property(const char*, const T&)
resulting in
 string_convert.h:77: error: 'long int' is not a class,
 struct, or union type
2019-07-26 01:58:18 +02:00
c81cbd8f30
Linux-bundle: use build-stack only
This fixes an issue with libpulse indirectly adding libasync
2019-07-25 22:37:13 +02:00
d7454714ab
Fix PA: unlock mainloop on abort 2019-07-25 21:24:36 +02:00
77fbe22e55
Package PA backend when available 2019-07-25 21:00:12 +02:00
384c97e12d
Puls der Zeit
Prototype a basic stereo-playback only pulseaudio backend.
2019-07-25 17:49:42 +02:00
d70b03ae61
Fix engine-dialog for backends without MIDI options 2019-07-25 17:49:42 +02:00
967c66790c Add device file for Behringer X-Touch One 2019-07-24 11:50:13 -05:00
771f2d2499
ALSA backend: fix play/capture device param detection 2019-07-24 16:40:40 +02:00
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
Nikolaus Gullotta
31ec8ce7d1 Location timestamp changes - can now sort by location creation date: gtk part 2019-07-22 15:47:17 -05:00
Nikolaus Gullotta
7d4f72174c Location timestamp changes - can now sort by location creation date: lib ardour part 2019-07-22 15:47:01 -05:00
b5a50821fc 'ARDOUR::LuaScripting::Sorter()' needs to be exportable (since it gets used outside of libardour) 2019-07-19 15:40:06 +01:00