diff options
author | David Robillard <d@drobilla.net> | 2013-01-12 03:17:47 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-12 03:17:47 +0000 |
commit | e1a63732f796c8057751cb7f8ac98a595b91692e (patch) | |
tree | 764392d055901118ee285dd20f233ff33e0cd04a /src/engine/SMFDriver.cpp | |
parent | bb62bf2c23ba84f547e37b70b3ef31b51ba987ab (diff) | |
download | machina-e1a63732f796c8057751cb7f8ac98a595b91692e.tar.gz machina-e1a63732f796c8057751cb7f8ac98a595b91692e.tar.bz2 machina-e1a63732f796c8057751cb7f8ac98a595b91692e.zip |
Bulk reformat.
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4929 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/SMFDriver.cpp')
-rw-r--r-- | src/engine/SMFDriver.cpp | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/src/engine/SMFDriver.cpp b/src/engine/SMFDriver.cpp index 641baf9..a07f47d 100644 --- a/src/engine/SMFDriver.cpp +++ b/src/engine/SMFDriver.cpp @@ -49,11 +49,13 @@ SMFDriver::SMFDriver(Raul::Forge& forge, Raul::TimeUnit unit) * @return the resulting machine. */ SharedPtr<Machine> -SMFDriver::learn(const string& filename, unsigned track, double q, Raul::TimeDuration max_duration) +SMFDriver::learn(const string& filename, unsigned track, double q, + Raul::TimeDuration max_duration) { //assert(q.unit() == max_duration.unit()); - SharedPtr<Machine> m(new Machine(max_duration.unit())); - SharedPtr<MachineBuilder> builder = SharedPtr<MachineBuilder>(new MachineBuilder(m, q, false)); + SharedPtr<Machine> m(new Machine(max_duration.unit())); + SharedPtr<MachineBuilder> builder = SharedPtr<MachineBuilder>( + new MachineBuilder(m, q, false)); SMFReader reader; if (!reader.open(filename)) { @@ -61,17 +63,19 @@ SMFDriver::learn(const string& filename, unsigned track, double q, Raul::TimeDur return SharedPtr<Machine>(); } - if (track > reader.num_tracks()) + if (track > reader.num_tracks()) { return SharedPtr<Machine>(); - else + } else { learn_track(builder, reader, track, q, max_duration); + } m->reset(NULL, m->time()); - if (m->nodes().size() > 1) + if (m->nodes().size() > 1) { return m; - else + } else { return SharedPtr<Machine>(); + } } /** Learn all tracks from a MIDI file into a single machine. @@ -81,8 +85,9 @@ SMFDriver::learn(const string& filename, unsigned track, double q, Raul::TimeDur SharedPtr<Machine> SMFDriver::learn(const string& filename, double q, Raul::TimeStamp max_duration) { - SharedPtr<Machine> m(new Machine(max_duration.unit())); - SharedPtr<MachineBuilder> builder = SharedPtr<MachineBuilder>(new MachineBuilder(m, q, false)); + SharedPtr<Machine> m(new Machine(max_duration.unit())); + SharedPtr<MachineBuilder> builder = SharedPtr<MachineBuilder>( + new MachineBuilder(m, q, false)); SMFReader reader; if (!reader.open(filename)) { @@ -90,17 +95,18 @@ SMFDriver::learn(const string& filename, double q, Raul::TimeStamp max_duration) return SharedPtr<Machine>(); } - for (unsigned t=1; t <= reader.num_tracks(); ++t) { + for (unsigned t = 1; t <= reader.num_tracks(); ++t) { builder->reset(); learn_track(builder, reader, t, q, max_duration); } m->reset(NULL, m->time()); - if (m->nodes().size() > 1) + if (m->nodes().size() > 1) { return m; - else + } else { return SharedPtr<Machine>(); + } } void @@ -111,27 +117,30 @@ SMFDriver::learn_track(SharedPtr<MachineBuilder> builder, Raul::TimeDuration max_duration) { const bool found_track = reader.seek_to_track(track); - if (!found_track) + if (!found_track) { return; + } uint8_t buf[4]; uint32_t ev_size; uint32_t ev_delta_time; - uint64_t t = 0; + uint64_t t = 0; double unquantized_t = 0; while (reader.read_event(4, buf, &ev_size, &ev_delta_time) >= 0) { unquantized_t += ev_delta_time; - t = quantize(q, unquantized_t); + t = quantize(q, unquantized_t); builder->set_time(TimeStamp(max_duration.unit(), (double)t)); - if ((!max_duration.is_zero()) && t > max_duration.to_double()) + if ((!max_duration.is_zero()) && ( t > max_duration.to_double()) ) { break; + } - if (ev_size > 0) + if (ev_size > 0) { builder->event(TimeStamp(max_duration.unit(), 0, 0), ev_size, buf); + } } builder->resolve(); @@ -141,9 +150,11 @@ void SMFDriver::run(SharedPtr<Machine> machine, Raul::TimeStamp max_time) { // FIXME: unit kludge (tempo only) - Context context(_forge, machine->time().unit().ppt(), _writer->unit().ppt(), 120.0); + Context context(_forge, machine->time().unit().ppt(), + _writer->unit().ppt(), 120.0); context.set_sink(this); - context.time().set_slice(TimeStamp(max_time.unit(), 0, 0), context.time().beats_to_ticks(max_time)); + context.time().set_slice(TimeStamp(max_time.unit(), 0, 0), + context.time().beats_to_ticks(max_time)); machine->run(context, SharedPtr<UpdateBuffer>()); } |