Make SMF::append_event_delta take a buffer and a size rather than an Event (no point...
authorDavid Robillard <d@drobilla.net>
Sat, 14 Feb 2009 22:52:38 +0000 (22:52 +0000)
committerDavid Robillard <d@drobilla.net>
Sat, 14 Feb 2009 22:52:38 +0000 (22:52 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@4567 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/smf_source.cc
libs/evoral/evoral/SMF.hpp
libs/evoral/src/SMF.cpp

index 64bd6874189aace0353fecce440afade69f44cf9..cdf252c8cf8732510dccd143ed821861d7b176e9 100644 (file)
@@ -303,7 +303,7 @@ SMFSource::append_event_unlocked(EventTimeUnit unit, const Evoral::Event<double>
                delta_time = (uint32_t)((ev.time() - last_event_time()) * ppqn());
        }
 
-       Evoral::SMF<double>::append_event_delta(delta_time, ev);
+       Evoral::SMF<double>::append_event_delta(delta_time, ev.size(), ev.buffer());
        _last_ev_time = ev.time();
 
        _write_data_count += ev.size();
@@ -619,7 +619,6 @@ SMFSource::load_model(bool lock, bool force_reload)
                return;
        }
        
-
        if (lock) {
                Glib::Mutex::Lock lm (_lock);
        }
index cdf3170d526ad2d2118dd0210a259106bf05d150..14046ab8f3ee214d75eb4668591b4cc3d9d6aee1 100644 (file)
@@ -64,14 +64,12 @@ public:
        bool     eof()        const { assert(false); return true; }
        
        void begin_write();
-       void append_event_delta(uint32_t delta_t, const Event<Time>& ev);
+       void append_event_delta(uint32_t delta_t, uint32_t size, const uint8_t* buf);
        void end_write() THROW_FILE_ERROR;
        
        void flush() {};
 
 private:
-       static const uint16_t _ppqn = 19200;
-       
        std::string  _path;
        smf_t*       _smf;
        smf_track_t* _smf_track;
index 7e5e5935ce52c4eb581ac69cef909117a7f7d17b..86110b6401f8e750e7320d78664cd88ee0db372f 100644 (file)
@@ -211,7 +211,7 @@ SMF<Time>::read_event(uint32_t* delta_t, uint32_t* size, uint8_t** buf) const
        *size = event_size;
        
                /*printf("SMF::read_event:\n");
-               for (size_t i=0; i < *size; ++i) {
+               for (size_t i = 0; i < *size; ++i) {
                        printf("%X ", (*buf)[i]);
                } printf("\n");*/
        
@@ -223,28 +223,25 @@ SMF<Time>::read_event(uint32_t* delta_t, uint32_t* size, uint8_t** buf) const
 
 template<typename Time>
 void
-SMF<Time>::append_event_delta(uint32_t delta_t, const Event<Time>& ev)
+SMF<Time>::append_event_delta(uint32_t delta_t, uint32_t size, const uint8_t* buf)
 {
-       assert(ev.size() > 0);
+       if (size == 0) {
+               return;
+       }
        
        /*printf("SMF::append_event_delta:\n");
-       for (size_t i=0; i < ev.size(); ++i) {
-               printf("%X ", ev.buffer()[i]);
+       for (size_t i = 0; i < size; ++i) {
+               printf("%X ", buf[i]);
        } printf("\n");*/
 
        smf_event_t* event;
 
-       event = smf_event_new_from_pointer((void *) ev.buffer(), int(ev.size()));
+       event = smf_event_new_from_pointer(buf, size);
        assert(event != NULL);
        
-       memcpy(event->midi_buffer, ev.buffer(), ev.size());
-       
        assert(_smf_track);
-       smf_track_add_event_delta_pulses(_smf_track, event, int(delta_t));
-       
-       if (ev.size() > 0) {
-               _empty = false;
-       }
+       smf_track_add_event_delta_pulses(_smf_track, event, delta_t);
+       _empty = false;
 }
 
 template<typename Time>