Merge branch 'master' into windows
[ardour.git] / libs / evoral / evoral / Sequence.hpp
index 26bef20232a04a1ce5af757d8c9c312c887a0861..dbc04d619b206ed9afc73838a0e22d19254481d0 100644 (file)
@@ -142,7 +142,7 @@ public:
                typedef const Note<Time>* value_type;
                inline bool operator()(const boost::shared_ptr< const Note<Time> > a,
                                       const boost::shared_ptr< const Note<Time> > b) const {
-                       return musical_time_less_than (a->end_time(), b->end_time());
+                       return musical_time_greater_than (a->end_time(), b->end_time());
                }
        };
 
@@ -179,7 +179,7 @@ public:
        OverlapPitchResolution overlap_pitch_resolution() const { return _overlap_pitch_resolution; }
        void set_overlap_pitch_resolution(OverlapPitchResolution opr);
 
-       void set_notes (const Sequence<Time>::Notes& n);
+       void set_notes (const typename Sequence<Time>::Notes& n);
 
        typedef boost::shared_ptr< Event<Time> > SysExPtr;
        typedef boost::shared_ptr<const Event<Time> > constSysExPtr;
@@ -269,10 +269,16 @@ public:
 
        const const_iterator& end() const { return _end_iter; }
 
+       // CONST iterator implementations (x3)
        typename Notes::const_iterator note_lower_bound (Time t) const;
        typename PatchChanges::const_iterator patch_change_lower_bound (Time t) const;
        typename SysExes::const_iterator sysex_lower_bound (Time t) const;
 
+       // NON-CONST iterator implementations (x3)
+       typename Notes::iterator note_lower_bound (Time t);
+       typename PatchChanges::iterator patch_change_lower_bound (Time t);
+       typename SysExes::iterator sysex_lower_bound (Time t);
+
        bool control_to_midi_event(boost::shared_ptr< Event<Time> >& ev,
                                   const ControlIterator&            iter) const;