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