summaryrefslogtreecommitdiff
path: root/libs/ardour/smf_source.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/smf_source.cc')
-rw-r--r--libs/ardour/smf_source.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc
index d52923c302..c3bc78c83d 100644
--- a/libs/ardour/smf_source.cc
+++ b/libs/ardour/smf_source.cc
@@ -34,6 +34,7 @@
#include <glibmm/fileutils.h>
#include "evoral/Control.hpp"
+#include "evoral/evoral/SMF.hpp"
#include "ardour/event_type_map.h"
#include "ardour/midi_model.h"
@@ -48,6 +49,7 @@
using namespace ARDOUR;
using namespace Glib;
using namespace PBD;
+using namespace Evoral;
/** Constructor used for new internal-to-session files. File cannot exist. */
SMFSource::SMFSource (Session& s, const string& path, Source::Flag flags)
@@ -497,6 +499,15 @@ SMFSource::mark_midi_streaming_write_completed (Evoral::Sequence<Evoral::Musical
}
bool
+SMFSource::valid_midi_file (const string& file)
+{
+ if (safe_midi_file_extension (file) ) {
+ return (SMF::test (file) );
+ }
+ return false;
+}
+
+bool
SMFSource::safe_midi_file_extension (const string& file)
{
static regex_t compiled_pattern;