diff base/Selection.cpp @ 9:73d85d19919f

* Add play-selection and looping modes. Looping seems to work OK, but the plain play-selection is miscalculating current frame number to feed back to the GUI. * Cache selection rectanges wherever possible in View::paintEvent.
author Chris Cannam
date Tue, 24 Jan 2006 16:20:58 +0000
parents 214054a0d8b8
children bb9291d84810
line wrap: on
line diff
--- a/base/Selection.cpp	Mon Jan 23 17:02:57 2006 +0000
+++ b/base/Selection.cpp	Tue Jan 24 16:20:58 2006 +0000
@@ -65,14 +65,28 @@
 }
 
 bool
+Selection::contains(size_t frame) const
+{
+    return (frame >= m_startFrame) && (frame < m_endFrame);
+}
+
+bool
 Selection::operator<(const Selection &s) const
 {
-    return (m_startFrame < s.m_startFrame);
+    if (isEmpty()) {
+	if (s.isEmpty()) return false;
+	else return true;
+    } else {
+	if (s.isEmpty()) return false;
+	else return (m_startFrame < s.m_startFrame);
+    }
 }
 
 bool
 Selection::operator==(const Selection &s) const
 {
+    if (isEmpty()) return s.isEmpty();
+
     return (m_startFrame == s.m_startFrame &&
 	    m_endFrame == s.m_endFrame);
 }