revert inadvertently committed debug settings
[ardour.git] / libs / ardour / midi_playlist_source.cc
index c39d5e238908a5566eca657367a54f1953987228..65c2794947dd5ae53da549bb0d79e15b57e4dd96 100644 (file)
 #include "libardour-config.h"
 #endif
 
-#include <vector>
-#include <cstdio>
-
-#include <glibmm/fileutils.h>
-#include <glibmm/miscutils.h>
-
 #include "pbd/error.h"
-#include "pbd/convert.h"
-#include "pbd/enumwriter.h"
 
 #include "ardour/midi_playlist.h"
 #include "ardour/midi_playlist_source.h"
-#include "ardour/midi_region.h"
-#include "ardour/debug.h"
-#include "ardour/filename_extensions.h"
-#include "ardour/session.h"
-#include "ardour/session_directory.h"
-#include "ardour/session_playlists.h"
-#include "ardour/source_factory.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace ARDOUR;
 using namespace PBD;
 
-MidiPlaylistSource::MidiPlaylistSource (Session& s, const ID& orig, const std::string& name, boost::shared_ptr<MidiPlaylist> p, 
-                                       uint32_t chn, frameoffset_t begin, framecnt_t len, Source::Flag flags)
-       : Source (s, DataType::AUDIO, name)
+namespace ARDOUR {
+class MidiStateTracker;
+class Session;
+template <typename T> class MidiRingBuffer;
+}
+
+namespace Evoral {
+template <typename T> class EventSink;
+template <typename Time> class Event;
+}
+
+/*******************************************************************************
+As of May 2011, it appears too complex to support compound regions for MIDI
+because of the need to be able to edit the data represented by the region.  It
+seems that it would be a better idea to render the consituent regions into a
+new MIDI file and create a new region based on that, an operation we have been
+calling "consolidate"
+
+This code has been in place as a stub in case anyone gets any brilliant ideas
+on other ways to approach this issue.
+********************************************************************************/
+
+MidiPlaylistSource::MidiPlaylistSource (Session& s, const ID& orig, const std::string& name, boost::shared_ptr<MidiPlaylist> p,
+                                       uint32_t /*chn*/, frameoffset_t begin, framecnt_t len, Source::Flag flags)
+       : Source (s, DataType::MIDI, name)
        , MidiSource (s, name, flags)
-       , PlaylistSource (s, orig, name, p, DataType::AUDIO, begin, len, flags)
+       , PlaylistSource (s, orig, name, p, DataType::MIDI, begin, len, flags)
 {
-       ensure_buffers_for_level (_level);
 }
 
 MidiPlaylistSource::MidiPlaylistSource (Session& s, const XMLNode& node)
@@ -66,7 +72,7 @@ MidiPlaylistSource::MidiPlaylistSource (Session& s, const XMLNode& node)
        /* ancestors have already called ::set_state() in their XML-based
           constructors.
        */
-       
+
        if (set_state (node, Stateful::loading_state_version, false)) {
                throw failed_constructor ();
        }
@@ -88,26 +94,23 @@ MidiPlaylistSource::get_state ()
        return node;
 }
 
-       
 int
-MidiPlaylistSource::set_state (const XMLNode& node, int version) 
+MidiPlaylistSource::set_state (const XMLNode& node, int version)
 {
        return set_state (node, version, true);
 }
 
 int
-MidiPlaylistSource::set_state (const XMLNode& node, int version, bool with_descendants) 
+MidiPlaylistSource::set_state (const XMLNode& node, int version, bool with_descendants)
 {
        if (with_descendants) {
-               if (Source::set_state (node, version) || 
+               if (Source::set_state (node, version) ||
                    MidiSource::set_state (node, version) ||
                    PlaylistSource::set_state (node, version)) {
                        return -1;
                }
        }
 
-       ensure_buffers_for_level (_level);
-
        return 0;
 }
 
@@ -118,11 +121,13 @@ MidiPlaylistSource::length (framepos_t)  const
        return extent.second - extent.first;
 }
 
-framepos_t 
-MidiPlaylistSource::read_unlocked (Evoral::EventSink<framepos_t>& dst,
-                                  framepos_t position,
+framecnt_t
+MidiPlaylistSource::read_unlocked (const Lock& lock,
+                                  Evoral::EventSink<framepos_t>& dst,
+                                  framepos_t /*position*/,
                                   framepos_t start, framecnt_t cnt,
-                                  MidiStateTracker* tracker) const 
+                                  MidiStateTracker*,
+                                  MidiChannelFilter*) const
 {
        boost::shared_ptr<MidiPlaylist> mp = boost::dynamic_pointer_cast<MidiPlaylist> (_playlist);
 
@@ -133,46 +138,45 @@ MidiPlaylistSource::read_unlocked (Evoral::EventSink<framepos_t>& dst,
        return mp->read (dst, start, cnt);
 }
 
-framepos_t 
-MidiPlaylistSource::write_unlocked (MidiRingBuffer<framepos_t>& dst,
-                                   framepos_t position,
-                                   framecnt_t cnt) 
+framecnt_t
+MidiPlaylistSource::write_unlocked (const Lock&,
+                                    MidiRingBuffer<framepos_t>&,
+                                    framepos_t,
+                                    framecnt_t)
 {
        fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::write_unlocked() called - should be impossible") << endmsg;
-       /*NOTREACHED*/
+       abort(); /*NOTREACHED*/
        return 0;
 }
 
-void 
-MidiPlaylistSource::append_event_unlocked_beats(const Evoral::Event<Evoral::MusicalTime>& /*ev*/)
+void
+MidiPlaylistSource::append_event_beats(const Glib::Threads::Mutex::Lock& /*lock*/, const Evoral::Event<Evoral::Beats>& /*ev*/)
 {
-       fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::append_event_unlocked_beats() called - should be impossible") << endmsg;
-       /*NOTREACHED*/
+       fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::append_event_beats() called - should be impossible") << endmsg;
+       abort(); /*NOTREACHED*/
 }
 
-void 
-MidiPlaylistSource::append_event_unlocked_frames(const Evoral::Event<framepos_t>& ev, framepos_t source_start)
+void
+MidiPlaylistSource::append_event_frames(const Glib::Threads::Mutex::Lock& /*lock*/, const Evoral::Event<framepos_t>& /* ev */, framepos_t /*source_start*/)
 {
-       fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::append_event_unlocked_frames() called - should be impossible") << endmsg;
-       /*NOTREACHED*/
+       fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::append_event_frames() called - should be impossible") << endmsg;
+       abort(); /*NOTREACHED*/
 }
 
 void
-MidiPlaylistSource::load_model (bool, bool) 
+MidiPlaylistSource::load_model (const Glib::Threads::Mutex::Lock&, bool)
 {
-       fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::load_model() called - should be impossible") << endmsg;
-       /*NOTREACHED*/
+       /* nothing to do */
 }
 
 void
-MidiPlaylistSource::destroy_model (
+MidiPlaylistSource::destroy_model (const Glib::Threads::Mutex::Lock&)
 {
-       fatal << string_compose (_("programming error: %1"), "MidiPlaylistSource::destroy_model() called - should be impossible") << endmsg;
-       /*NOTREACHED*/
+       /* nothing to do */
 }
 
 void
-MidiPlaylistSource::flush_midi ()
+MidiPlaylistSource::flush_midi (const Lock& lock)
 {
 }
 
@@ -183,9 +187,3 @@ MidiPlaylistSource::empty () const
        return !_playlist || _playlist->empty();
 }
 
-void
-MidiPlaylistSource::ensure_buffers_for_level (uint32_t level)
-{
-}
-
-