aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-03-12 01:33:51 +0000
committerDavid Robillard <d@drobilla.net>2007-03-12 01:33:51 +0000
commitee76743c774f64759daef42d416d3fb7bbc4a473 (patch)
tree0b82b468d0433c3d5c1c68d28d3a2f78e32ce104 /src/engine
parent04c6f60d1f1fb94f6a9dca81439026db22ebb88e (diff)
downloadmachina-ee76743c774f64759daef42d416d3fb7bbc4a473.tar.gz
machina-ee76743c774f64759daef42d416d3fb7bbc4a473.tar.bz2
machina-ee76743c774f64759daef42d416d3fb7bbc4a473.zip
Flowcanvas resizing, auto-arrange resizes if necessary.
Per-track SMF reading (raul and machina) git-svn-id: http://svn.drobilla.net/lad/machina@354 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SMFDriver.cpp6
-rw-r--r--src/engine/machina/SMFDriver.hpp2
2 files changed, 6 insertions, 2 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;
diff --git a/src/engine/machina/SMFDriver.hpp b/src/engine/machina/SMFDriver.hpp
index e702534..f5d1229 100644
--- a/src/engine/machina/SMFDriver.hpp
+++ b/src/engine/machina/SMFDriver.hpp
@@ -34,7 +34,7 @@ class Machine;
class SMFDriver : public Raul::SMFWriter,
public boost::enable_shared_from_this<SMFDriver> {
public:
- SharedPtr<Machine> learn(const Glib::ustring& uri);
+ SharedPtr<Machine> learn(const Glib::ustring& uri, unsigned track=1);
void run(SharedPtr<Machine> machine, Raul::BeatTime max_time);
};