enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
[ardour.git] / libs / ardour / midi_playlist_source.cc
index 957531f52007f5a1a78d0858c1cc48e406eb496b..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;
 
+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
@@ -98,7 +94,6 @@ MidiPlaylistSource::get_state ()
        return node;
 }
 
-
 int
 MidiPlaylistSource::set_state (const XMLNode& node, int version)
 {
@@ -127,10 +122,12 @@ MidiPlaylistSource::length (framepos_t)  const
 }
 
 framecnt_t
-MidiPlaylistSource::read_unlocked (Evoral::EventSink<framepos_t>& dst,
+MidiPlaylistSource::read_unlocked (const Lock& lock,
+                                  Evoral::EventSink<framepos_t>& dst,
                                   framepos_t /*position*/,
                                   framepos_t start, framecnt_t cnt,
-                                  MidiStateTracker*) const
+                                  MidiStateTracker*,
+                                  MidiChannelFilter*) const
 {
        boost::shared_ptr<MidiPlaylist> mp = boost::dynamic_pointer_cast<MidiPlaylist> (_playlist);
 
@@ -142,43 +139,44 @@ MidiPlaylistSource::read_unlocked (Evoral::EventSink<framepos_t>& dst,
 }
 
 framecnt_t
-MidiPlaylistSource::write_unlocked (MidiRingBuffer<framepos_t>&,
-                                   framepos_t,
-                                   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*/)
+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*/)
+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)
 {
        /* nothing to do */
 }
 
 void
-MidiPlaylistSource::destroy_model ()
+MidiPlaylistSource::destroy_model (const Glib::Threads::Mutex::Lock&)
 {
        /* nothing to do */
 }
 
 void
-MidiPlaylistSource::flush_midi ()
+MidiPlaylistSource::flush_midi (const Lock& lock)
 {
 }