7c2f978a68
fix assumed typo from LV2_SUPPORT PR recently committed
2017-01-05 09:56:07 +00:00
Olivier Humbert
ac562c1093
Undo (bad) fix
2017-01-05 09:31:09 +00:00
Olivier Humbert
117e80d3f0
One fix
2017-01-05 09:31:09 +00:00
Olivier Humbert
fda770eed0
French translation update
2017-01-05 09:31:09 +00:00
Olivier Humbert
7f5fcd4789
French translation update
2017-01-05 09:31:09 +00:00
Olivier Humbert
3119545407
French translation update
2017-01-05 09:31:09 +00:00
Dobroslav Slavenskoj
04b515d535
syncing with upstream
2017-01-05 09:24:40 +00:00
Dobroslav Slavenskoj
5f0857620e
Fixing LV2_SUPPORT #ifdefs
2017-01-05 09:24:40 +00:00
Julien ROGER
481334ae2a
Proposed fix managing shared playlists (see #7150 )
...
Actually, when duplicating a track with "share playlist", the current
playlist is owned by the new created track(orig-track-id). The sharing
mecanism is made by diskstreams pointing on the same(shared) playlist.
Since playlist now owned by the new track, selecting another playlist in
the original track "forgets" the playlist for this track.You can't
select the shared playlist anymore from the original track.
This commit adds a way to keep trace of shared playlist between tracks.
2017-01-05 09:20:50 +00:00
0eedb7f866
Add missing function call in error message when compiling for windows
2017-01-05 10:06:17 +10:00
nick_m
7674ef1c2c
add Meter::operator==.
2017-01-05 03:48:35 +11:00
nick_m
4a56b92b13
disallow tempi of 0 ntpm or less.
2017-01-05 00:15:14 +11:00
0f4d61ab30
MidiRegion::clone() needs to ensure that the model is loaded before calling MidiSource::write_to()
2017-01-03 22:10:05 +00:00
7785389e50
Extend/update LV2 license interface
2017-01-03 13:26:48 +01:00
c33f94f686
Enforce minimum pane sizes
...
* enforce minimum size of child widgets
* honor manually set child-minsize in size-requests
* ignore hidden children (eg. VCA)
* clamp divider position (instead of just ignoring out-of-bounds moves)
2017-01-02 17:13:56 +01:00
2ed145cfd4
allow Lua session scripts to inject [immediate] RT-events
2017-01-02 17:03:33 +01:00
ead84f75a5
Whitelist bit32 Lua library for session rt-scripts
2017-01-02 00:46:01 +01:00
e3050d144a
Match API: add rt_context option for en/disable_record()
...
This allows to call maybe_enable_record () from Lua session or DSP scripts
2017-01-02 00:26:21 +01:00
564d6c4e3c
OSC: remove unused overall feedback calls and variables
2016-12-31 08:01:23 -08:00
49d53bc98d
OSC: remove feedback enable from GUI (unused)
2016-12-31 07:42:51 -08:00
81123a774a
amend 3afe3f32df
(remove unused global feedback option)
...
That commit accidentally removed unrelated code in generic-midi surface
which just happened to have the same name (get/set_midi_feedback) as the
unused preference.
Regardless, there was more cruft there. GMCP midicontrollables now use
the control surfaces' feedback option.
2016-12-31 15:20:07 +01:00
3afe3f32df
Remove cruft (old MIDI feedback API)
2016-12-30 17:29:08 +01:00
c8d0015986
Tear down OSC settings GUI, when the protocol is disabled
2016-12-28 22:59:49 +01:00
d1e869f96d
Move "Feedback" option to control-portocol settings
2016-12-28 22:59:15 +01:00
e1846c79a9
Fix AudioRegion RMS calc for multi-channel
2016-12-28 22:19:37 +01:00
a02aeb025b
Add Lua bindings for AudioRegion RMS+Peak calc
2016-12-28 22:19:37 +01:00
nick_m
3129370bc5
add ArdourCanvas::Flag::width()
2016-12-29 04:16:09 +11:00
nick_m
d0580ecfbc
allow all types of range location (loop, start, end etc.) to be glued to bars and beats.
2016-12-29 01:39:31 +11:00
27ee53bf8f
Emit signal for special cased configuration variable
2016-12-28 13:38:49 +01:00
3120270d87
Add enum for locale-config
2016-12-28 13:38:49 +01:00
6df001e9e1
Some operators need to have different visibility (as they're now used outside of libardour)
2016-12-28 09:14:51 +00:00
bbbf8e6127
Add backend support to extract session-archives
2016-12-27 22:24:24 +01:00
fe01666475
Normalize audio when archiving to fixed-point format.
2016-12-27 18:33:41 +01:00
54a79639df
Allow gain factor for audio sources.
...
In preparation for archiving files as .flac (fixed point),
normalized with gain factor.
2016-12-27 18:20:02 +01:00
Nil Geisweiller
6431c4a6d9
More 8 whitespace to tab indentation fixes
2016-12-22 14:20:13 +02:00
Nil Geisweiller
c1127c245b
Fix minor typo in comment
2016-12-21 23:09:40 +01:00
Nil Geisweiller
4c66e36b91
Fix indentation 8 whitespaces to tab
2016-12-21 23:09:40 +01:00
nick_m
ef8187662a
check audio-locked meter ordering by frame.
2016-12-22 05:36:40 +11:00
de04da27ee
Fix crash when unpacking or deleting pane
...
Gtk::Widget_Class::dispose_vfunc_callback calls hide() which invokes
Pane::handle_child_visibility which calls Pane::reallocate which
tries to get the allocation of the widget being destroyed.
2016-12-21 17:10:37 +01:00
nick_m
109cd269b4
fix yet another meter-locked tempo ordering thinko.
2016-12-21 05:56:07 +11:00
377b357afb
Add Zoom/Expand icon
2016-12-20 18:48:10 +01:00
6941d0b74d
Fix the case of jump-to-next-Subdivision
2016-12-19 17:25:59 -06:00
22bc091c37
Fix the case of jump-to-next{prev}-Bar
2016-12-19 17:25:59 -06:00
0a167f5c99
Fix minimum/maximum discovery for integer params (from Hanspeter Portner)
2016-12-19 23:10:36 +00:00
7b9d3f94d4
make solo button on faderport actually work
2016-12-19 22:56:37 +00:00
53be243f6a
Session::_ac_thread_active should be used with atomics to create memory barriers, even though lock ordering is likely correct now
2016-12-19 15:33:54 +00:00
3d1eb9a6e5
Session::auto_connect_thread_terminate() cannot use ::auto_connect_thread_wakeup() because that method is allowed to "fail".
...
Should fix hangs when closing a session with the ALSA backend (and perhaps others too).
2016-12-19 14:36:39 +00:00
004431426d
Towards packing CairoWidgets on ArdourCanvas.
2016-12-19 13:36:42 +01:00
218d376154
vertically center text in time rulers
2016-12-19 13:27:22 +01:00
6bbb2c72f0
NO-OP: whitespace
2016-12-19 13:27:22 +01:00
bd0fc8cafc
Shorten sync-button label/size
2016-12-18 23:17:29 +01:00
nick_m
d4f7f5ffa2
TempoMap - rename some methods.
...
gui_move_tempo -> gui_set_tempo_position
gui_move_meter -> gui_set_meter_position
gui_dilate_tempo -> gui_stretch_tempo
2016-12-19 04:13:17 +11:00
nick_m
27b95300e2
add frame parameter for Meter ctor and TempoMap::replace_meter(). allow for various failures.
2016-12-19 04:02:01 +11:00
nick_m
741df6e6ef
there is no curve for identical note_types_per_minute values.
2016-12-19 03:23:33 +11:00
ecc2348ecc
should not really bind a shared_ptr<Port> to a sigc slot, so don't do that
2016-12-18 00:07:59 +00:00
1223c8d1cd
move termination of auto connect thread till after control protocols are destroyed.
...
Otherwise, control protocol ports don't actually get deleted
2016-12-18 00:07:59 +00:00
f80fb029e2
Prepare configurable mini-timeline time-span
2016-12-18 00:06:39 +01:00
8ba7e8f4ef
Hide/remove per-track record-mode in favor of global setting.
2016-12-17 02:43:42 +01:00
73f8ffce63
add copy constructor, operator= and a clean ::dump() method for TempoMap
2016-12-16 16:49:27 +00:00
e487014e56
add arguments (unusued) to control whether or not SMF tempo map is used during import
2016-12-16 14:57:10 +00:00
6a0ea65885
"toll free bridging" between smf_tempo_t and Evoral::SMF::Tempo
2016-12-16 13:45:43 +00:00
c0aa738395
expose SMF tempo information in Evoral::SMF
2016-12-16 10:43:52 +00:00
2378e7b60c
add function to get number of tempos found in SMF tempo map
2016-12-16 10:43:41 +00:00
fe0761d404
unused but slightly tricky code to add track name/instrument to an SMF file when saved
2016-12-16 09:36:52 +00:00
76dca432f0
add comments about limitations for Evoral::SMF and tracks
2016-12-16 09:36:52 +00:00
462c3eeb84
MIDI tracer actually changes the event-loop
2016-12-16 01:56:15 +01:00
6c88f339ca
some further invalidation details:
...
Prevent double unref during when the EventLoop terminates:
deleting the ringbuffer deletes all requests, some of which may
contain stale invalidation
remove the buffer_map_lock, now that signals ref-count the IR.
2016-12-15 18:19:38 +01:00
529b91828d
store InvalidationRecord in a Connection object and ref/unref it as appropriate
2016-12-15 16:36:50 +00:00
342c112ae3
add ::use_count() method to InvalidationRecord
2016-12-15 16:36:50 +00:00
nick_m
d118a60090
fix unused Outside filled framed curve for constant points outside the draw area.
2016-12-16 02:54:10 +11:00
nick_m
49c6d13386
revert c3ab67dd
now that this misbehaviour is understood.
2016-12-16 02:52:39 +11:00
nick_m
d3ad6dc001
fix issue with disappearing tempo curve at constant tempi.
2016-12-16 02:50:07 +11:00
nick_m
9add5ed480
tempo before the initial section is always constant.
2016-12-16 02:15:56 +11:00
nick_m
9afe719827
amend incomplete change in previous commit.
2016-12-16 02:01:50 +11:00
nick_m
a99331a4e9
more work on patch change redisplay.
...
- fixes just-introduced undo crash.
2016-12-16 01:58:58 +11:00
nick_m
2a79bcd6b2
fix thinko in TempoMap::framepos_plus_qn.
...
- affects region relative time conversion when
initial meter is non-zero.
2016-12-16 01:04:22 +11:00
cf4668a11e
std::list::erase() needs a non-const iterator.;
...
at least for some versions of gcc.
2016-12-15 11:40:22 +00:00
714da0f68e
and now with erase
2016-12-15 10:57:40 +01:00
71bfe79e2c
C++98 compatible iterator erase
2016-12-15 10:40:45 +01:00
a95be76741
rework request invalidation
...
This kills 2 birds with 1 stone: Removes the necessity of locks
and makes call_slot() realtime safe (req->invalidation->requests list
push_back). On object destruction, the invalidation-record (IR) itself is
invalidated.
Invalidated IRs are pushed onto a trash-pool and deleted in the event-loop
of the invalidated object (GUI thread) once all requests that reference it
have been processed.
One last detail remains: PBD::signal connect should reference the IR
and disconnect unreference it. This will guarantee that signal emission
will not reference the IR while the pool trash is dropped.
2016-12-15 06:11:30 +01:00
62b06fa427
Add a trash pool for invalidation requests.
...
While EventLoop::invalidate_request() does invalidate request in the
request-list. It does *not* invalidate requests in the
per-thread-request-ringbuffer(s).
The invalidation record cannot be deleted in EventLoop::invalidate_request
see 6b5891a78f
.
2016-12-14 22:39:25 +01:00
07bcdc7f0a
NO-OP: re-indent
2016-12-14 22:39:22 +01:00
77845f6019
Atomically to invalidate request
...
Yet another slightly overkill approach, but it /may/ explain crashes.
2016-12-14 22:39:18 +01:00
7dbdf6cc6d
Add some more invalidation debug messages.
2016-12-14 19:43:12 +01:00
6b5891a78f
The threading anecdotes - Episode 7
...
When do_request() destroys the receiver object, the receiver will
free the invalidation record. So the IR needs to be removed from the list
before executing the request.
Invalid read of size 8
at: AbstractUI<Gtkmm2ext::UIRequest>::handle_ui_requests() (abstract_ui.cc:242)
by: BaseUI::request_handler(Glib::IOCondition) (base_ui.cc:141)
by: sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>::operator()(Glib::IOCondition const&) const (mem_fun.h:2066)
by: sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::deduce_result_type<Glib::IOCondition const&, void, void, void, void, void, void>::type sigc::adaptor_functor<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition> >::operator()<Glib::IOCondition const&>(Glib::IOCondition const&) const (adaptor_trait.h:89)
by: sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, BaseUI, Glib::IOCondition>, bool, Glib::IOCondition>::call_it(sigc::internal::slot_rep*, Glib::IOCondition const&) (slot.h:148)
by: sigc::slot1<bool, Glib::IOCondition>::operator()(Glib::IOCondition const&) const (slot.h:643)
by: cross_thread_channel_call_receive_slot(_GIOChannel*, GIOCondition, void*) (crossthread.cc:49)
by: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
by: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
by: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2)
by: gtk_main (in /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.31)
by: Gtkmm2ext::UI::run(Receiver&) (gtk_ui.cc:286)
by main (main.cc:408)
Addrd1b8 is 24 bytes inside a block of size 48 free'd
at: operator delete(void*) (vg_replace_malloc.c:576)
by: PBD::EventLoop::invalidate_request(void*) (event_loop.cc:98)
by: sigc::internal::trackable_callback_list::~trackable_callback_list() (in /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0.0.0)
by: sigc::trackable::notify_callbacks() (in /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0.0.0)
by: ProcessorEntry::LuaPluginDisplay::~LuaPluginDisplay() (processor_box.cc:1757)
by: ProcessorEntry::LuaPluginDisplay::~LuaPluginDisplay() (processor_box.cc:1760)
by: ProcessorEntry::~ProcessorEntry() (processor_box.cc:251)
2016-12-14 18:46:01 +01:00
518c31eeb7
skip dead threads (if the event remains, it'll be cleaned up below)
2016-12-14 17:48:44 +01:00
036390f4c2
fix potential invalid lock
2016-12-14 17:31:31 +01:00
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
f3b3a411d0
use SMF track or instrument names in imported MIDI track names, if requested
2016-12-14 11:46:26 +00:00
6ea7f37c6b
add new member to ImportStatus object to allow specifying how to name new MIDI tracks
2016-12-14 11:46:26 +00:00
721f3270c3
add a new enum to identify how SMF data should be used when naming imported MIDI tracks
2016-12-14 11:46:26 +00:00
d2fd01c241
add API to Evoral::SMF to retrieve all track/instrument names for use when importing
2016-12-14 11:46:26 +00:00
7e0dbd06db
extract track and instrument names from SMF while loading
2016-12-14 11:46:26 +00:00
24160a3b85
add braces and warning for unlikely error
2016-12-14 11:46:26 +00:00
ff6f8ca6c4
fix incorrect test for textual meta events in libsmf
2016-12-14 11:46:26 +00:00
54ef5fadc2
braces please
2016-12-14 11:46:26 +00:00
d5074be4f1
braces, please
2016-12-14 11:46:26 +00:00
8002a0c66e
free track name/instrument string memory when necessary
2016-12-14 11:46:26 +00:00
28caef7d81
add track and instrument name members to smf_track_t
2016-12-14 11:46:26 +00:00
dd525d1613
release locks before deleting record
2016-12-14 02:25:13 +01:00