aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/SMFDriver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SMFDriver.cpp')
-rw-r--r--src/engine/SMFDriver.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/engine/SMFDriver.cpp b/src/engine/SMFDriver.cpp
index 181da52..3481222 100644
--- a/src/engine/SMFDriver.cpp
+++ b/src/engine/SMFDriver.cpp
@@ -36,7 +36,7 @@ namespace Machina {
* @return the resulting machine.
*/
SharedPtr<Machine>
-SMFDriver::learn(const Glib::ustring& uri)
+SMFDriver::learn(const Glib::ustring& uri, unsigned track)
{
const string filename = Glib::filename_from_uri(uri);
@@ -51,6 +51,10 @@ SMFDriver::learn(const Glib::ustring& uri)
Raul::SMFReader reader;
reader.open(filename);
+
+ if ( ! reader.seek_to_track(track) )
+ return SharedPtr<Machine>();
+
Raul::BeatTime t = 0;
unsigned char buf[4];
uint32_t ev_size;