issue 0005121: added comment to source. Sorry, last commit was for issue 0005121...
[ardour.git] / libs / evoral / src / Note.cpp
index ead5d1eff572947a2fbd516682ebae27e7a44a00..8ff3ccaff1772339d0068c4c5837c341f6c6f286 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Evoral.
- * Copyright (C) 2008 Dave Robillard <http://drobilla.net>
+ * Copyright (C) 2008 David Robillard <http://drobilla.net>
  * Copyright (C) 2000-2008 Paul Davis
  *
  * Evoral is free software; you can redistribute it and/or modify it under the
@@ -18,6 +18,7 @@
 
 #include <iostream>
 #include <limits>
+#include <glib.h>
 #include "evoral/Note.hpp"
 
 namespace Evoral {
@@ -25,8 +26,8 @@ namespace Evoral {
 template<typename Time>
 Note<Time>::Note(uint8_t chan, Time t, Time l, uint8_t n, uint8_t v)
        // FIXME: types?
-       : _on_event(0xDE, t, 3, NULL, true)
-       , _off_event(0xAD, t + l, 3, NULL, true)
+       : _on_event (0xDE, t, 3, NULL, true)
+       , _off_event (0xAD, t + l, 3, NULL, true)
 {
        assert(chan < 16);
 
@@ -38,7 +39,7 @@ Note<Time>::Note(uint8_t chan, Time t, Time l, uint8_t n, uint8_t v)
        _off_event.buffer()[1] = n;
        _off_event.buffer()[2] = 0x40;
 
-       assert(time() == t);
+       assert(musical_time_equal (time(),t));
        assert(musical_time_equal (length(), l));
        assert(note() == n);
        assert(velocity() == v);
@@ -52,23 +53,25 @@ Note<Time>::Note(const Note<Time>& copy)
        : _on_event(copy._on_event, true)
        , _off_event(copy._off_event, true)
 {
+       set_id (copy.id());
+
        assert(_on_event.buffer());
        assert(_off_event.buffer());
        /*
-       assert(copy._on_event.size == 3);
-       _on_event.buffer = _on_event_buffer;
-       memcpy(_on_event_buffer, copy._on_event_buffer, 3);
+         assert(copy._on_event.size == 3);
+         _on_event.buffer = _on_event_buffer;
+         memcpy(_on_event_buffer, copy._on_event_buffer, 3);
 
-       assert(copy._off_event.size == 3);
-       _off_event.buffer = _off_event_buffer;
-       memcpy(_off_event_buffer, copy._off_event_buffer, 3);
+         assert(copy._off_event.size == 3);
+         _off_event.buffer = _off_event_buffer;
+         memcpy(_off_event_buffer, copy._off_event_buffer, 3);
        */
-
-       assert(time() == copy.time());
-       assert(end_time() == copy.end_time());
+       
+       assert(musical_time_equal (time(),copy.time()));
+       assert(musical_time_equal (end_time(), copy.end_time()));
+       assert(musical_time_equal (length(), copy.length()));
        assert(note() == copy.note());
        assert(velocity() == copy.velocity());
-       assert(length() == copy.length());
        assert(_on_event.channel() == _off_event.channel());
        assert(channel() == copy.channel());
 }
@@ -78,6 +81,13 @@ Note<Time>::~Note()
 {
 }
 
+template<typename Time> void
+Note<Time>::set_id (event_id_t id)
+{
+       _on_event.set_id (id);
+       _off_event.set_id (id);
+}
+
 template<typename Time>
 const Note<Time>&
 Note<Time>::operator=(const Note<Time>& other)
@@ -85,11 +95,11 @@ Note<Time>::operator=(const Note<Time>& other)
        _on_event = other._on_event;
        _off_event = other._off_event;
 
-       assert(time() == other.time());
-       assert(end_time() == other.end_time());
+       assert(musical_time_equal (time(),other.time()));
+       assert(musical_time_equal (end_time(), other.end_time()));
+       assert(musical_time_equal (length(), other.length()));
        assert(note() == other.note());
        assert(velocity() == other.velocity());
-       assert(length() == other.length());
        assert(_on_event.channel() == _off_event.channel());
        assert(channel() == other.channel());