annotate data/model/Model.cpp @ 212:fb8ddd00f440

* better icon * support range mappers in thumbwheel * supply range mapper for vertical zoom from spectrogram * fix bug in fftmodel for scaled ffts * make the various widgets all respond to double-click for edit, middle-click for reset, ctrl-left-click for reset
author Chris Cannam
date Fri, 12 Jan 2007 14:49:18 +0000
parents 4b2ea82fd0ed
children 3e6fee4e4257
rev   line source
Chris@150 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@150 2
Chris@150 3 /*
Chris@150 4 Sonic Visualiser
Chris@150 5 An audio file viewer and annotation editor.
Chris@150 6 Centre for Digital Music, Queen Mary, University of London.
Chris@150 7 This file copyright 2006 Chris Cannam.
Chris@150 8
Chris@150 9 This program is free software; you can redistribute it and/or
Chris@150 10 modify it under the terms of the GNU General Public License as
Chris@150 11 published by the Free Software Foundation; either version 2 of the
Chris@150 12 License, or (at your option) any later version. See the file
Chris@150 13 COPYING included with this distribution for more information.
Chris@150 14 */
Chris@150 15
Chris@150 16 #include "Model.h"
Chris@150 17 #include "base/PlayParameterRepository.h"
Chris@150 18
Chris@150 19 #include <QTextStream>
Chris@150 20
Chris@150 21 #include <iostream>
Chris@150 22
Chris@150 23 const int Model::COMPLETION_UNKNOWN = -1;
Chris@150 24
Chris@150 25 Model::~Model()
Chris@150 26 {
Chris@150 27 // std::cerr << "Model::~Model(" << this << ")" << std::endl;
Chris@150 28
Chris@150 29 // Subclasses have to handle adding themselves to the repository,
Chris@150 30 // if they want to be played. We can't do it from here because
Chris@150 31 // the repository would be unable to tell whether we were playable
Chris@150 32 // or not (because dynamic_cast won't work from the base class ctor)
Chris@150 33 PlayParameterRepository::getInstance()->removeModel(this);
Chris@150 34 }
Chris@150 35
Chris@150 36 void
Chris@150 37 Model::toXml(QTextStream &stream, QString indent,
Chris@150 38 QString extraAttributes) const
Chris@150 39 {
Chris@150 40 stream << indent;
Chris@150 41 stream << QString("<model id=\"%1\" name=\"%2\" sampleRate=\"%3\" start=\"%4\" end=\"%5\" %6/>\n")
Chris@150 42 .arg(getObjectExportId(this))
Chris@150 43 .arg(encodeEntities(objectName()))
Chris@150 44 .arg(getSampleRate())
Chris@150 45 .arg(getStartFrame())
Chris@150 46 .arg(getEndFrame())
Chris@150 47 .arg(extraAttributes);
Chris@150 48 }
Chris@150 49
Chris@150 50 QString
Chris@150 51 Model::toXmlString(QString indent, QString extraAttributes) const
Chris@150 52 {
Chris@150 53 QString s;
Chris@150 54
Chris@150 55 s += indent;
Chris@150 56
Chris@150 57 s += QString("<model id=\"%1\" name=\"%2\" sampleRate=\"%3\" start=\"%4\" end=\"%5\" %6/>\n")
Chris@150 58 .arg(getObjectExportId(this))
Chris@150 59 .arg(encodeEntities(objectName()))
Chris@150 60 .arg(getSampleRate())
Chris@150 61 .arg(getStartFrame())
Chris@150 62 .arg(getEndFrame())
Chris@150 63 .arg(extraAttributes);
Chris@150 64
Chris@150 65 return s;
Chris@150 66 }
Chris@150 67
Chris@150 68 #ifdef INCLUDE_MOCFILES
Chris@150 69 #include "Model.moc.cpp"
Chris@150 70 #endif
Chris@150 71