Commit graph

12400 commits

Author SHA1 Message Date
Robin Gareus
fe01666475 Normalize audio when archiving to fixed-point format. 2016-12-27 18:33:41 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
377b357afb Add Zoom/Expand icon 2016-12-20 18:48:10 +01:00
Ben Loftis
6941d0b74d Fix the case of jump-to-next-Subdivision 2016-12-19 17:25:59 -06:00
Ben Loftis
22bc091c37 Fix the case of jump-to-next{prev}-Bar 2016-12-19 17:25:59 -06:00
Paul Davis
0a167f5c99 Fix minimum/maximum discovery for integer params (from Hanspeter Portner) 2016-12-19 23:10:36 +00:00
Paul Davis
7b9d3f94d4 make solo button on faderport actually work 2016-12-19 22:56:37 +00:00
Paul Davis
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
Paul Davis
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
Robin Gareus
004431426d Towards packing CairoWidgets on ArdourCanvas. 2016-12-19 13:36:42 +01:00
Robin Gareus
218d376154 vertically center text in time rulers 2016-12-19 13:27:22 +01:00
Robin Gareus
6bbb2c72f0 NO-OP: whitespace 2016-12-19 13:27:22 +01:00
Robin Gareus
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
Paul Davis
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
Paul Davis
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
Robin Gareus
f80fb029e2 Prepare configurable mini-timeline time-span 2016-12-18 00:06:39 +01:00
Robin Gareus
8ba7e8f4ef Hide/remove per-track record-mode in favor of global setting. 2016-12-17 02:43:42 +01:00
Paul Davis
73f8ffce63 add copy constructor, operator= and a clean ::dump() method for TempoMap 2016-12-16 16:49:27 +00:00
Paul Davis
e487014e56 add arguments (unusued) to control whether or not SMF tempo map is used during import 2016-12-16 14:57:10 +00:00
Paul Davis
6a0ea65885 "toll free bridging" between smf_tempo_t and Evoral::SMF::Tempo 2016-12-16 13:45:43 +00:00
Paul Davis
c0aa738395 expose SMF tempo information in Evoral::SMF 2016-12-16 10:43:52 +00:00
Paul Davis
2378e7b60c add function to get number of tempos found in SMF tempo map 2016-12-16 10:43:41 +00:00
Paul Davis
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
Paul Davis
76dca432f0 add comments about limitations for Evoral::SMF and tracks 2016-12-16 09:36:52 +00:00
Robin Gareus
462c3eeb84 MIDI tracer actually changes the event-loop 2016-12-16 01:56:15 +01:00
Robin Gareus
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
Paul Davis
529b91828d store InvalidationRecord in a Connection object and ref/unref it as appropriate 2016-12-15 16:36:50 +00:00
Paul Davis
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
Paul Davis
cf4668a11e std::list::erase() needs a non-const iterator.;
at least for some versions of gcc.
2016-12-15 11:40:22 +00:00
Robin Gareus
714da0f68e and now with erase 2016-12-15 10:57:40 +01:00
Robin Gareus
71bfe79e2c C++98 compatible iterator erase 2016-12-15 10:40:45 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
07bcdc7f0a NO-OP: re-indent 2016-12-14 22:39:22 +01:00