summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ghostregion.h
AgeCommit message (Collapse)Author
2019-08-03Update GPL boilerplate and (C)Robin Gareus
Copyright-holder and year information is extracted from git log. git history begins in 2005. So (C) from 1998..2005 is lost. Also some (C) assignment of commits where the committer didn't use --author.
2017-09-24convert codebase to use Temporal for various time typesPaul Davis
2017-07-17Purify libcanvas, remove libardour dependencyRobin Gareus
A canvas is just a canvas. Move WaveView into its own library.
2017-07-17Clean up library inheritance (colors.h, utils.h)Robin Gareus
make libwidget independent of libcanvas. Confine basics to pbd and gtkmm2ext.
2017-07-01NO-OP whitespace & foratting of header filesRobin Gareus
2017-01-30speed up midi ghost region updatenick_m
- as MRV removes invalid notes from the GR, we can simply update all events after checking vertical visibility.
2017-01-04note display performance.nick_m
use boost::unordered_map as a note store for ghost & midi region views. as per otiginal method, only notes within regoin bounds are stored.
2016-12-30allow the use of static_cast for MGR ghost events (speeds things up a bit).nick_m
2016-12-24speed up load/quit for sessions containing ~25k events.nick_m
- MGR uses a _note_group to hold events. - MRV & MGR delete canvas notes directly from their note group. - sysex is untested (it uses MRV note group).
2016-12-23hide ghost events appropriately (e.g. after split).nick_m
2016-12-23midi scrooming performance updates.nick_m
- MGR visibility is handled by update_note/hit() MRV unconditionally updates MGR events - remove MidiGhostRegion::update_range() - rename set_contents_height -> update_contents_height
2016-12-22GhostEvent wrangling.nick_m
- update_range() solely looks after visibility. - update_note/hit() positions both x and y using code stolen from update_range() - add update_contents_height() for when we just change the GR height. - find_event() is now used rather than map::find() - use temp canvas items to avoid constructor overhead.
2016-12-21use a map to find GhostEvents by a pointer to Note.nick_m
2016-11-25midi ghost region fill colour is per event. don't store it. ensure _outline ↵nick_m
is set.
2016-10-16Slightly improve note update performance, fix note resizing for non-4.0 ↵nick_m
meter divisors.
2016-07-10Improve midi model redraw performance by caching colours.nick_m
2015-10-22Remove GhostRegion::CatchDeletion signal to reduce session close timesTim Mayberry
Currently when a GhostRegion is deleted by its "parent" RegionView it emits the static GhostRegion::CatchDeletion signal which is connected to the RegionView::remove_ghost method of every RegionView instance. With a static GhostRegion::CatchDeletion signal a particular test session causes 31 Million calls of RegionView::remove_ghost on Session deletion and the session takes 70 seconds to close with a debug build. The lifetime of a ghost region is tied to both the TimeAxisView(TAV) and RegionView(RV) in that when a RegionView is deleted all GhostRegion instances associated with the RegionView should be deleted or when a TimeAxisView is deleted all ghost regions that are contained in the view should be deleted. This means that there needs to be notification between GhostRegion and both classes. Instead of using a signal for this as we know there are only two listeners and GhostRegion already holds a reference to the TimeAxisView, also take a reference to the parent RegionView in the GhostRegion constructor and use it to notify the RegionView when GhostRegion destructor is called so it can drop any references it holds. Using a direct function call in the GhostRegion destructor to notify the TimeAxisView and RegionView "parents" brings the unload/close time down for the test session from 70 seconds to 4.5 seconds. The GhostRegion also references canvas items that are added to the TimeAxisView canvas group or at least a canvas group that it manages. So when the TimeAxisView is destroyed and the canvas group that is the parent of those items is destroyed, the GhostRegion's canvas items will also be deleted/destroyed by the parent canvas item/group. This means the GhostRegions must be destroyed when the TimeAxisView they are contained in is destroyed or there will be dangling references to canvas items that have already been deleted and trying to delete them again will be bad.
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2014-12-28Automation ghost notes for percussive hits.David Robillard
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
2013-04-12change frames_per_pixel to samples_per_pixelPaul Davis
2013-04-04commit immediately post linkingPaul Davis
2013-04-04initial commit of hand merging, plus getting "ancient" waf script to work ↵Paul Davis
correctly
2011-11-17Concatenate MidiGhostRegion::Note and MidiGhostRegion::Event.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10660 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-17Remove ghost notes when actual notes are deleted, and ensure the ↵Carl Hetherington
_optimization_iterator is valid even after things have been removed from the list (should fix #4483). git-svn-id: svn://localhost/ardour2/branches/3.0@10659 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-05Make GhostRegion a sigc::trackable as MidiGhostRegion connects to signals. ↵Carl Hetherington
Fixes e.g. a crash on track resize after splitting a MIDI region with automation. git-svn-id: svn://localhost/ardour2/branches/3.0@9482 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-28Remove unused code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-28Update ghost MIDI regions in automation tracks when zoom changes. Fixes #3803.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8985 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-28Remove unused code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8984 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-30Fix up midi ghost regions. Should fix #3629.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8388 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-22cleanup up cleanup at session destruction; clarify the meaning of 3 signals ↵Paul Davis
(DropReferences & Destroyed in libardour ; CatchDeletion in the GTK UI); clarify ownership of objects (session no longer pays attention to DropReferences for objects that it is considered to own, such as routes, sources, etc); fix up MIDI parsing and a couple of other places by correcting syntax for return of values from a boost::signals2::signal (possible danger elsewhere to be checked) git-svn-id: svn://localhost/ardour2/branches/3.0@6389 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-19use new syntax for connecting to backend signals that enforces explicit ↵Paul Davis
connection scope, plus a few other related matters git-svn-id: svn://localhost/ardour2/branches/3.0@6376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17switch to using boost::signals2 instead of sigc++, at least for libardour. ↵Paul Davis
not finished yet, but compiles, loads sessions, records and can close a session without a crash git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14Strip trailing whitespace and fix other whitespace errors (e.g. space/tab ↵David Robillard
mixing). Whitespace changes only. Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red. I don't know the emacs equivalent... git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-09Back out big shared_ptr change. Moving to a branch. Apologies all.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@5343 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-09Use shared_ptr for the TimeAxisView hierarchy.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@5339 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-14First stage of options rework.Carl Hetherington
- Split Configuration into RCConfiguration and SessionConfiguration; the first for options which are saved to .rc files and the second for options which are saved in a session file. - Move some options from the old `master' Configuration object into SessionConfiguration; this needs more refinement. - Reflect many RCConfiguration options in an expanded Edit->Preferences dialog; my intention is to remove the corresponding menu items eventually. git-svn-id: svn://localhost/ardour2/branches/3.0@5075 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-25*** NEW CODING POLICY ***David Robillard
All #include statements that include a header that is a part of a library bundled with ardour MUST use quotes, not angle brackets. Do this: #include "ardour/types.h" NOT this: #include <ardour/types.h> Rationale: This is best practice in general, to ensure we include the local version and not the system version. That quotes mean "local" (in some sense) and angle brackets mean "system" (in some sense) is a ubiquitous convention and IIRC right in the C spec somewhere. More pragmatically, this is required by (my) waf (stuff) for dependencies to work correctly. That is: !!! FAILURE TO DO THIS CAN RESULT IN BROKEN BUILDS !!! Failure to comply is punishable by death by torture. :) P.S. It's not that dramatic in all cases, but this (in combination with some GCC flags specific to the include type) is the best way I have found to be absolutely 100% positive the local ones are being used (and we definitely want to be absolutely 100% positive on that one). git-svn-id: svn://localhost/ardour2/branches/3.0@4655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-04-29* first prototype of program changes UI show up correctly (see ↵Hans Baier
http://www.flickr.com/photos/24012642@N02/2451596190/) git-svn-id: svn://localhost/ardour2/branches/3.0@3293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-02-22Clean up weird formatting from underlays patch.David Robillard
Fix several memory (valgrind) errors in a vain attempt to fix crash on session close. git-svn-id: svn://localhost/ardour2/branches/3.0@3105 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-02-10Committed underlay support (from Audun).David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@3037 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-15Major Theme Manager changes, see ardour-devDoug McLain
git-svn-id: svn://localhost/ardour2/trunk@1987 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-04-03audun's tempo redraw fix; sort-of cache time axis view item name widths and ↵Paul Davis
avoid pango-width-computation when unnecessary git-svn-id: svn://localhost/ardour2/trunk@1657 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-02-28remove Id: lines from many/all headers and some more source filesPaul Davis
git-svn-id: svn://localhost/ardour2/trunk@1535 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-03-072006-03-04 Tim Mayberry <mojofunk@gmail.com>Tim Mayberry
* Enable linking to system soundtouch library if SYSLIBS=1, soundtouch-1.3.1 needed for pkgconfig support * Fix to allow compiling against libgnomecanvasmm library when SYSLIBS=1 git-svn-id: svn://localhost/trunk/ardour2@354 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-11-22plugin selector from doug; lots and lots of fixes from karstenPaul Davis
git-svn-id: svn://localhost/trunk/ardour2@105 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-11-13some C++-ification of GnomeCanvasBlahNick Mainsbridge
git-svn-id: svn://localhost/trunk/ardour2@82 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-09-25Switched to use libgnomecanvas (not the C++ one).Taybin Rutkin
git-svn-id: svn://localhost/trunk/ardour2@30 d708f5d6-7413-0410-9779-e7cbd77b26cf