I committed the triggered segment change. Briefly, controllers and
pitchbend in triggered segments are now relative to their initial value a
trigger time. It handles all the controllers. It assumes there's only
one pitchbend-type controller.
* New files ControllerContext.h and ControllerContext.cpp define a
class that knows one controller's value at one point in time for
one instrument, and can make absolute controller values from
relative ones.
* Modified SegmentMapper::mergeTriggerSegment - when linearizing a
triggered segment, keep a map of controllercontexts (lazily) and
adjust any controllers we see.
* New Composition::getInstrumentSegments, gets all segments that play
a given instrument. I wrote that before we had that talk about
segment-vs-instruments.
* New Device::getControllable, encapsulating the dynamic cast idiom
that is used several places in Rosegarden. I didn't convert the
existing uses to it.
* New RosegardenDocument::getInstrument similarly encapsulates common
existing code; didn't convert existing uses.
I have not made it refresh when other segments that are playing the same
instrument are changed. When we talked about segment-vs-instruments,
there was a proposal to make segments and logical instruments one to one,
and if that happens, doing so would be a non-issue. So I felt doing so
would be premature, at least.
Tom Breton (Tehom)
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create
new or port existing apps to sell to consumers worldwide. Explore the
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel