Commit graph

369 commits

Author SHA1 Message Date
Robin Gareus
392f4847b0 use 2 digit width as minium for track number labels 2014-08-28 22:38:59 +02:00
Ben Loftis
7306568634 More fixes to ArdourButton actions.
Optionally allow events to fallthrough to parents, in particular for the DnDVBox case.
Also allow the number_label to operate as a track selector.
2014-08-28 14:25:19 -05:00
Ben Loftis
74f313dd6b Rationalize ArdourButton and lots of associated theming issues.
ArdourButtons now have a "pushed" animation.
The gradient is now implemented in the button, rather than providing 2 colors in the theme, which was burdensome.
Lots of code cleanup in ArdourButton.  Removed several unnecessary flags.
Refactor more stuff into route_ui.
2014-08-22 11:51:20 -05:00
Ben Loftis
5c1a561325 change packing so number_label shares space with name_label 2014-08-11 15:08:57 -05:00
Ben Loftis
b41df8e120 shuffle packing order to accomodate midi controls 2014-08-11 14:44:12 -05:00
Ben Loftis
bf034f48ce New track header layout.
Vertical alignment no longer depends on number of meters shown.
Looking for comments.
2014-08-11 12:59:42 -05:00
Ben Loftis
f296389fe0 Enforce mixer strip widths, more case fixes, and minor theme changes 2014-08-01 15:44:42 -05:00
Ben Loftis
3961017921 allow track headers to select io from right-click menu 2014-08-01 13:48:47 -05:00
Ben Loftis
b32823f074 Various UI tweaks.
Refactor comments dialog into Route_UI so it can be shared by tracks and strips.
Make Color and Comments selections consistent in the menus
Refine the color displays at the top of each mixer strip
Correctly color the number displays on tracks
2014-07-29 16:40:19 -05:00
Ben Loftis
e85ff4dad2 Cut and Copy should remember the white space at the end of a range.
This will be used when you paste with Ripple; it maintains the whitespace that you chose in the selection.
Also fix default setting of Dim contol by storing the default(normal) value for MPControl Controllables.
2014-07-23 14:36:21 -05:00
Paul Davis
07e0f785f8 add "fade range" operation, bound to alt-f at present by default 2014-07-10 08:17:22 -04:00
Paul Davis
0a87bbc37b add partial support for mute automation (playback does not work, data is not recorded in the session) 2014-07-01 14:37:05 -04:00
Colin Fletcher
e5e12acc56 Merge branch 'ripple-mode-cc' into cairocanvas
Fix up merge conflicts in
	gtk2_ardour/editor_mouse.cc
	gtk2_ardour/editor_ops.cc

Also fix up compile errors.
2014-07-01 19:10:47 +01:00
Colin Fletcher
cabd3783fe Ripple mode: fix undo of paste
Fix undo of region paste operations in ripple mode.
2014-07-01 18:38:14 +01:00
Robin Gareus
a7c559fd63 show track-number in GUI 2014-06-26 19:21:05 +02:00
Robin Gareus
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
Robin Gareus
14c6dfab07 Do not allow to de/activate a track while the transport is rolling.
roll_delay and latency are only re-calculated when the transport is stopped.
de/activating a track is also not RT-safe.
2014-06-22 23:18:00 +02:00
Colin Fletcher
00af9a967b Ripple mode: ripple all after start of deleted range
When deleting a range in ripple mode, ripple everything after the start
point of that range backwards by the length of the range, so that
newly-created regions immediately at the range end move back to the range
start.
2014-05-16 20:04:57 +01:00
Colin Fletcher
99c0ef21d7 Ripple mode: ripple when deleting ranges.
Make delete, cut and clear of a range ripple the appropriate playlists.
2014-05-16 01:03:37 +01:00
Colin Fletcher
d75c7151d4 Ripple mode: basic implementation
Add a value for Ripple to EditMode enum.

Add Ripple edit mode to edit mode dropdown, by adding it to the
Editor::build_edit_mode_menu() helper function, and remove the old code that
added items to the (now unused) Editor::edit_mode_strings.

Add the regions that should be affected by the drag to RegionDrag::_views so
that the drag carries them along automatically.

Use a copy of the RegionList in Playlist::core_ripple(), since bad things
happen when iterating over regions and they get moved around in the list.

Handle rippling in removal of regions from playlist.

When dragging in ripple mode, exclude all regions that lie before the
original start position of the selected regions being dragged from
rippling: this is what Mixbus does.

Make editor dragging respect snap-to settings, by using the existing
compute_x_delta() function, which did almost the right thing. Move setting
of _last_frame_position out of that function so all ripple-dragged regions
can move.

Ripple when dragging from region list: even though Mixbus doesn't do this, it
seems like a good idea.

Prevent multi-track selection being dragged across tracks, by making
RegionMotionDrag::y_movement_allowed() virtual, and overriding it in
RegionRippleDrag to forbid dragging of selections containing regions on more
than one track to dofferent tracks in ripple mode.

Remember which TimeAxisView a ripple-mode drag that's allowed cross-track
drags started from, so that the effect of rippling regions after any region
that's dragged off that track can be undone.
2014-05-07 19:46:24 +01:00
Paul Davis
509159c3c6 first pass hiding/rearrangement of UI elements related to trx 2014-04-10 13:30:25 -04:00
Robin Gareus
2952ac05e6 fixed a few warnings from clang static analysis 2014-03-18 22:51:44 +01:00
Paul Davis
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
Paul Davis
fa22520fd2 Merge branch 'master' into cairocanvas 2013-11-25 09:26:35 -05:00
Robin Gareus
9a50b56930 reset time-axis peak when meter-point changes - fixes #5771 2013-11-20 18:54:34 +01:00
Paul Davis
08b485db75 send enter events to EVERY newly entered item (ignore the bool return from the event handler); other canvas debugging aids;switch items_at_point() to use canvas coordinates 2013-11-03 10:07:00 -05:00
John Emmas
19bb2b33a8 Merge remote-tracking branch 'remotes/origin/cairocanvas' into windows
Conflicts (hopefully resolved):
	gtk2_ardour/marker.cc
	gtk2_ardour/midi_region_view.h
	gtk2_ardour/region_gain_line.h
	gtk2_ardour/utils.cc
	gtk2_ardour/video_image_frame.cc
	gtk2_ardour/wscript
	libs/backends/jack/wscript
2013-09-21 09:17:25 +01:00
Paul Davis
c08b336292 Fix ambiguous type CheckMenuItem that is also defined via windows.h 2013-07-11 15:32:31 -04:00
Paul Davis
580520b12f fix conflicts caused by meterbridge merge 2013-07-11 09:11:53 -04:00
Robin Gareus
2b53ac2e31 amend cb7bcb6d - locked-solo button style 2013-07-11 02:31:30 +02:00
Robin Gareus
92494b8965 queue axis resize if port-config changes 2013-07-10 20:48:42 +02:00
Robin Gareus
fbc324ee81 adjust-width/redraw track-header when meter changes 2013-07-10 15:27:09 +02:00
Robin Gareus
6d69567676 fix track-header: show meters the first time 'round. 2013-07-10 15:27:06 +02:00
Robin Gareus
aabe526df2 update track-header layout - proper padding around meters 2013-07-10 15:27:06 +02:00
Robin Gareus
2a534de272 double width of mono-meters in track-header 2013-07-10 15:27:04 +02:00
Robin Gareus
066b385c68 adjust padding of meters in time-axis view (still using border bg color) 2013-07-10 15:27:03 +02:00
Robin Gareus
363b646de9 add margin around meters in editor track header 2013-07-10 15:27:03 +02:00
Paul Davis
1c24a847dd remove no-op "horizontal_position_changed()" method from StreamView and RouteTimeAxisView 2013-06-16 22:15:32 -04:00
Paul Davis
f00b3b7f11 merge with master 2013-06-13 23:00:24 -04:00
Robin Gareus
ce0aa96838 NOOP - use PBD's std::string to number functions 2013-06-08 09:03:26 +02:00
Paul Davis
96eee9e7a1 change UIConfig to use accessor/setter methods like RCConfig so that ParameterChanged methods can actually be emitted; add variable (over a small range) background shading for all TimeAxisViewItems 2013-04-16 23:46:22 -04:00
Paul Davis
b05968fb4e change frames_per_pixel to samples_per_pixel 2013-04-12 11:31:50 -04:00
Paul Davis
30968b8542 merge with master, including manual merge conflict resolution 2013-04-06 16:12:15 -04:00
Paul Davis
cd6cbba299 rename Route::is_hidden() to Route::is_auditioner() and Route::Hidden to Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit 2013-04-06 16:04:02 -04:00
Paul Davis
8eef4b1904 master merge; new files not added after initial cairocanvas patch application 2013-04-05 17:16:33 -04:00
Colin Fletcher
096fe04e61 Make track header faders insensitive to vertical scroll-wheel events again.
This effectively reverts d235a27a, and restores the behaviour to that of
Ardour 2.
2013-04-05 10:08:36 +01:00
Paul Davis
aaea166135 initial commit of hand merging, plus getting "ancient" waf script to work correctly 2013-04-04 00:32:52 -04:00
Paul Davis
0a05c08a1a alter menu name for processor automation and hide extra separator in menu when not needed 2013-03-30 09:23:12 -04:00
Paul Davis
4abbabdcf9 Squashed commit of the following:
commit fdbae82077db53add90df7448a06869dac89acc6
Author: Paul Davis <paul@linuxaudiosystems.com>
Date:   Wed Mar 27 21:45:28 2013 -0400

    mammoth changes in basic signal flow, total redesign of MIDI channel filtering and more.

commit 59343a8283698e02bc0f622313b29e98f449e4c8
Author: Paul Davis <paul@linuxaudiosystems.com>
Date:   Wed Mar 27 01:58:53 2013 -0400

    initial working version after changes to MIDI channel filtering. may affect metering input too. testing not yet finished

this commit merges many deep changes in ardour's internal architecture,
combined with a total redesign of how MIDI channel filtering works.

data in a track used to flow from JACK port buffers to diskstream's ringbuffers
and was then copied from the ringbuffers into a BufferSet for use during
Route::process_output_buffers(). The butler thread would handle the movement of
data between the ringbuffers and disk.

with this commit, data now flows from JACK port buffers into the BufferSet used
for Route processing, and is copied from the BufferSet into the diskstream's
ringbuffers (the butler thread continues to handle interactions with disk as
usual).

this change allowed a dramatic consolidation of code and simplification of most
aspects of Track/Route::roll() and Track/Route::no_roll(). in particular, see
Route::fill_buffers_with_input() which now concisely describes how we move data
from JACK port buffers into the BufferSet for all Route types (including Tracks).

this work was initially motivated by changing MIDI channel filtering so that we
can process capture and playback independently. there is now a very clean
pathway for this - see MidiTrack::roll() (NOTE: This needs implementing in the
no-roll case too - a TODO item).

the channel selector for MIDI tracks has been moved out of the track header and
is now accessible via the context menu. more work is likely here, to make it
(more) obvious to the user when filtering is going on.
2013-03-27 21:50:18 -04:00
Paul Davis
f4f0dd6637 completely revisit how track name editing works in the editor
git-svn-id: svn://localhost/ardour2/branches/3.0@13898 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 15:27:04 +00:00