summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.h
AgeCommit message (Collapse)Author
2014-12-24Fix potential memory errors with note player.David Robillard
Seems unlikely, but if the event firing stuff is off, it could trigger the issue (#5502) and/or a possible memory leak.
2014-12-23Fix cursor update on nested entry.David Robillard
For example, if you're in a note and something about the mode changes, it's the underlying region context that needs to change. So, seems we need a stack of entry contexts to deal with this sort of thing. Switching in/out of smart mode still doesn't update immediately because we don't have the y-coordinate needed to update it.
2014-12-20Fix various cursor problems.David Robillard
Add a new scoped cursor system that makes it much harder to screw up and end up with stick cursors and so on.
2014-12-18Use color modifiers for dynamic region styles.David Robillard
2014-12-18Make MIDI regions translucent for internal tools.David Robillard
2014-12-18Enforce internal/external selection exclusivity.Ben Loftis
2014-12-17Support stepping bank by shift+scroll/arrow.David Robillard
2014-12-17Remove some aborts that don't really need to be.David Robillard
Enforce PatchPrimaryKey sanity at the type level rather than attempting to check for it everywhere. Remove dead file.
2014-12-17Don't allow drawing notes in rec regions (crash).David Robillard
2014-12-06Nudge notes by 1 bar if secondary modifier active.David Robillard
Similar to how transpose moves an octave if the same modifier is active.
2014-12-06Grab keyboard only with note selection.David Robillard
When entered, the keyboard is grabbed when the selection becomes non-empty, and ungrabbed if it becomes empty again or the region is left or the user switches out of internal mode. This fixes scroll in internal mode and note moving with arrow keys. Also frees up useful keybindings when there is no note selection, which is much nicer than the "nothing works in edit mode at all" greedy grab approach used previously. Attempt #874327892 of getting this damned grabbing right.
2014-12-06Support paste between automation lanes.David Robillard
Also push the increasingly unwieldly paste parameters into a context object. As with othe things, currently it is only possible to do "cross-type paste" by explicitly selecting the target track. We will need to get automation region view selection working to do better here, but at least for now it's possible to get the data over.
2014-11-22Wrap MusicalTime in a class.David Robillard
This lets us get a more explicit handle on time conversions, and is the main step towards using actual beat:tick time and getting away from floating point precision problems.
2014-11-22Factor out copy-paste code to get grid type in beats defaulting to 1.David Robillard
2014-11-22Move time converters only to the region views that actually need them.David Robillard
A step towards sorting out time issues more solidly, the time situation of MIDI region views and automation region views is slightly different.
2014-11-16Support cut/copy/paste of MIDI notes and controllers at the same time.David Robillard
2014-11-14Implement "multi-paste" for notes, regions, and automation.David Robillard
The idea here is that pasting several times to the same location doesn't make sense. Instead, the paste is appended past the last paste, snapped to the grid. This make it simple to replicate a given section a number of times, simply by copying once and pasting several times. This behaviour only appears when successive pastes are done to the same location (whatever the edit point is). When the paste point changes, the "multi-paste" state is reset. Boots 'n cats 'n boots 'n cats.
2014-11-14Fix various sticky/broken cursor issues.David Robillard
This still isn't quite right, but it's a lot less broken than before, at least.
2014-06-22more canvas refactoring.Paul Davis
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it could theoretically be used by any derived type.
2014-06-21use newly factored canvas in gtk2_ardourPaul Davis
2014-06-09substantial changes in color management, involving a reduction in the use of ↵Paul Davis
Gdk::Color and more consistent logic for region coloring. Group tabs now also get the text drawn in an appropriately contrast-y color
2014-06-03fix two mysterious problems with stdint typesPaul Davis
2014-03-06trivial API change for MidiRegionView::update_hit()Paul Davis
2013-04-25use virtual bool canvas_group_event () in TimeAxisViewItems to get suitably ↵Paul Davis
delegatable/inherited event handling
2013-04-12change frames_per_pixel to samples_per_pixelPaul Davis
2013-04-12change all frame_to_pixel and pixel_to_frame to sample_to_pixel and ↵Paul Davis
pixel_to_sample
2013-04-04commit immediately post linkingPaul Davis
2013-04-04initial commit of hand merging, plus getting "ancient" waf script to work ↵Paul Davis
correctly
2013-03-27Squashed commit of the following:Paul Davis
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-01-21Trim the include tree a bit.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@13941 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-20Support note names from midnam files (tested with the DM5).David Robillard
Do this via a simple MasterDeviceNames::note_name() function. The same really needs to be done for program names, this stuff is absolutely brutal to use. Store note names in a vector indexed by number instead of a list with string "numbers" for reasonable lookup time. Make some references const that should be. git-svn-id: svn://localhost/ardour2/branches/3.0@13908 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11Make input filtering while recording work in GUI, tooHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@13244 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11make sysex contents appear as verbose_cursor for visual feedback the flag as ↵Hans Baier
been entered and for readability git-svn-id: svn://localhost/ardour2/branches/3.0@13240 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-11implement deleting of sysex eventsHans Baier
git-svn-id: svn://localhost/ardour2/branches/3.0@13238 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-19really, really do not signal MidiRegionView::SelectionCleared during destructionPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12783 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-12fix complete screw up in connecting MIDNAM PatchNameList with ↵Paul Davis
ChannelNameSets; more tweaks and twirls for patch/program change mgmt git-svn-id: svn://localhost/ardour2/branches/3.0@12673 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-11lots more work trying to create a common structure for accessing plugin and ↵Paul Davis
MIDNAME patch/preset/program names. still not done git-svn-id: svn://localhost/ardour2/branches/3.0@12665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-11partially-done (but compile-friendly) move of instrument info into a new ↵Paul Davis
backend object git-svn-id: svn://localhost/ardour2/branches/3.0@12652 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-09Somewhat primitive implementation of allowing the edit note dialog to handle ↵Carl Hetherington
multiple notes (#4096). git-svn-id: svn://localhost/ardour2/branches/3.0@12623 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-08When sounding notes on selection / note movements, play the note for as long ↵Carl Hetherington
as the mouse button is held down (#4574). git-svn-id: svn://localhost/ardour2/branches/3.0@12606 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-08Remove unused declaration.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12605 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-08Grey-out patch changes on inactive channels rather than notCarl Hetherington
plotting them at all (part of #4207). git-svn-id: svn://localhost/ardour2/branches/3.0@12600 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-06add "v" as a new MIDI editing key for velocity, add velocity dialog, fix ↵Paul Davis
crash when quitting with MIDI notes selected git-svn-id: svn://localhost/ardour2/branches/3.0@12583 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-06incomplete change to allow all selected MIDI notes to have their velocity ↵Paul Davis
set to the same adjusted value (needs more work to find modifiers and/or add a dialog) git-svn-id: svn://localhost/ardour2/branches/3.0@12581 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-02Put MIDNAM stuff into the patch change dialog.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12539 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-28Expand comment.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12474 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-28Deselect MIDI notes when leaving internal edit modeCarl Hetherington
(part of #4669). git-svn-id: svn://localhost/ardour2/branches/3.0@12471 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-30Remove un-read variable.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@12121 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-12Fix comments.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11645 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20make mouse range mode do something interesting when in internal/note edit ↵Paul Davis
mode. not entirely finished because the usual modifiers to add/extend the selection don't work correctly. note that this works both on the scroomer (where the modifiers do work correctly) and in the track (where they do not) git-svn-id: svn://localhost/ardour2/branches/3.0@11273 d708f5d6-7413-0410-9779-e7cbd77b26cf