annotate base/XmlExportable.h @ 378:a38cd7823cb2

* PortAudio driver: do not specify frames per buffer, let PA decide * Remove old non-RubberBand time stretcher -- it doesn't work with varying buffer sizes such as the PA driver may now be using * Rewrite getCurrentPlayingFrame for greater correctness when using long buffer sizes (interpolating according to audio stream timestamp) * Several changes to make the timestretch management RT safe(r)
author Chris Cannam
date Fri, 08 Feb 2008 17:51:15 +0000
parents 70a232b1f12a
children 7aa1de571880
rev   line source
Chris@49 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@3 2
Chris@3 3 /*
Chris@52 4 Sonic Visualiser
Chris@52 5 An audio file viewer and annotation editor.
Chris@52 6 Centre for Digital Music, Queen Mary, University of London.
Chris@52 7 This file copyright 2006 Chris Cannam.
Chris@3 8
Chris@52 9 This program is free software; you can redistribute it and/or
Chris@52 10 modify it under the terms of the GNU General Public License as
Chris@52 11 published by the Free Software Foundation; either version 2 of the
Chris@52 12 License, or (at your option) any later version. See the file
Chris@52 13 COPYING included with this distribution for more information.
Chris@3 14 */
Chris@3 15
Chris@3 16 #ifndef _XML_EXPORTABLE_H_
Chris@3 17 #define _XML_EXPORTABLE_H_
Chris@3 18
Chris@3 19 #include <QString>
Chris@3 20 #include <QColor>
Chris@3 21
Chris@123 22 class QTextStream;
Chris@123 23
Chris@3 24 class XmlExportable
Chris@3 25 {
Chris@3 26 public:
Chris@27 27 virtual ~XmlExportable() { }
Chris@27 28
Chris@123 29 /**
Chris@123 30 * Stream this exportable object out to XML on a text stream.
Chris@123 31 */
Chris@123 32 virtual void toXml(QTextStream &stream,
Chris@123 33 QString indent = "",
Chris@314 34 QString extraAttributes = "") const = 0;
Chris@123 35
Chris@123 36 /**
Chris@314 37 * Convert this exportable object to XML in a string. The default
Chris@314 38 * implementation calls toXml and returns the result as a string.
Chris@314 39 * Do not override this unless you really know what you're doing.
Chris@123 40 */
Chris@3 41 virtual QString toXmlString(QString indent = "",
Chris@314 42 QString extraAttributes = "") const;
Chris@3 43
Chris@3 44 static QString encodeEntities(QString);
Chris@3 45
Chris@277 46 static QString encodeColour(QColor);
Chris@4 47
Chris@85 48 static int getObjectExportId(const void *); // thread-safe
Chris@3 49 };
Chris@3 50
Chris@3 51 #endif