svcore  1.9
ModelTransformer.cpp
Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     Sonic Visualiser
00005     An audio file viewer and annotation editor.
00006     Centre for Digital Music, Queen Mary, University of London.
00007     This file copyright 2006 Chris Cannam.
00008    
00009     This program is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU General Public License as
00011     published by the Free Software Foundation; either version 2 of the
00012     License, or (at your option) any later version.  See the file
00013     COPYING included with this distribution for more information.
00014 */
00015 
00016 #include "ModelTransformer.h"
00017 
00018 ModelTransformer::ModelTransformer(Input input, const Transform &transform) :
00019     m_input(input),
00020     m_detached(false),
00021     m_detachedAdd(false),
00022     m_abandoned(false)
00023 {
00024     m_transforms.push_back(transform);
00025 }
00026 
00027 ModelTransformer::ModelTransformer(Input input, const Transforms &transforms) :
00028     m_transforms(transforms),
00029     m_input(input),
00030     m_detached(false),
00031     m_detachedAdd(false),
00032     m_abandoned(false)
00033 {
00034 }
00035 
00036 ModelTransformer::~ModelTransformer()
00037 {
00038     m_abandoned = true;
00039     wait();
00040     if (!m_detached) {
00041         Models mine = getOutputModels();
00042         foreach (Model *m, mine) delete m;
00043     }
00044     if (!m_detachedAdd) {
00045         Models mine = getAdditionalOutputModels();
00046         foreach (Model *m, mine) delete m;
00047     }
00048 }
00049