diff options
author | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
---|---|---|
committer | Doug McLain <doug@nostar.net> | 2008-06-02 05:02:28 +0000 |
commit | 9c0d7d72d70082a54f823cd44c0ccda5da64bb6f (patch) | |
tree | 96ec400b83b8c1c06852b1936f684b5fbcd47a79 /libs/ardour/midi_stretch.cc | |
parent | 2f3f697bb8e185eb43c2c50b4eefc2bcb937f269 (diff) |
remove empty sigc++2 directory
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_stretch.cc')
-rw-r--r-- | libs/ardour/midi_stretch.cc | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/libs/ardour/midi_stretch.cc b/libs/ardour/midi_stretch.cc deleted file mode 100644 index f33c58a0fd..0000000000 --- a/libs/ardour/midi_stretch.cc +++ /dev/null @@ -1,108 +0,0 @@ -/* - Copyright (C) 2008 Paul Davis - Author: Dave Robillard - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#include <pbd/error.h> - -#include <ardour/types.h> -#include <ardour/midi_stretch.h> -#include <ardour/session.h> -#include <ardour/midi_region.h> - -#include "i18n.h" - -using namespace std; -using namespace ARDOUR; -using namespace PBD; - -MidiStretch::MidiStretch (Session& s, TimeFXRequest& req) - : Filter (s) - , _request (req) -{ -} - -MidiStretch::~MidiStretch () -{ -} - -int -MidiStretch::run (boost::shared_ptr<Region> r) -{ - SourceList nsrcs; - char suffix[32]; - - boost::shared_ptr<MidiRegion> region = boost::dynamic_pointer_cast<MidiRegion>(r); - if (!region) - return -1; - - /* the name doesn't need to be super-precise, but allow for 2 fractional - digits just to disambiguate close but not identical stretches. - */ - - snprintf (suffix, sizeof (suffix), "@%d", (int) floor (_request.time_fraction * 100.0f)); - - string new_name = region->name(); - string::size_type at = new_name.find ('@'); - - // remove any existing stretch indicator - - if (at != string::npos && at > 2) { - new_name = new_name.substr (0, at - 1); - } - - new_name += suffix; - - /* create new sources */ - - if (make_new_sources (region, nsrcs, suffix)) - return -1; - - // FIXME: how to make a whole file region if it isn't? - //assert(region->whole_file()); - - boost::shared_ptr<MidiSource> src = region->midi_source(0); - src->load_model(); - - boost::shared_ptr<MidiModel> old_model = src->model(); - - boost::shared_ptr<MidiSource> new_src = boost::dynamic_pointer_cast<MidiSource>(nsrcs[0]); - assert(new_src); - - boost::shared_ptr<MidiModel> new_model = new_src->model(); - new_model->start_write(); - - for (MidiModel::const_iterator i = old_model->begin(); i != old_model->end(); ++i) { - const double new_time = i->time() * _request.time_fraction; - - // FIXME: double copy - MIDI::Event ev = MIDI::Event(*i, true); - ev.time() = new_time; - new_model->append(ev); - } - - new_model->end_write(); - new_model->set_edited(true); - - const int ret = finish (region, nsrcs, new_name); - - results[0]->set_length((nframes_t) floor (r->length() * _request.time_fraction), NULL); - - return ret; -} - |