/* Rosegarden A sequencer and musical notation editor. This program is Copyright 2000-2008 Guillaume Laurent , Chris Cannam , Richard Bown The moral right of the authors to claim authorship of this work has been asserted. 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. See the file COPYING included with this distribution for more information. */ #include "Property.h" #include #include #include namespace Rosegarden { using std::string; string PropertyDefn::typeName() { return "UInt"; } PropertyDefn::basic_type PropertyDefn::parse(string s) { return atoi(s.c_str()); } string PropertyDefn::unparse(PropertyDefn::basic_type i) { static char buffer[20]; sprintf(buffer, "%ld", i); return buffer; } string PropertyDefn::typeName() { return "Int"; } PropertyDefn::basic_type PropertyDefn::parse(string s) { return atoi(s.c_str()); } string PropertyDefn::unparse(PropertyDefn::basic_type i) { static char buffer[20]; sprintf(buffer, "%ld", i); return buffer; } string PropertyDefn::typeName() { return "String"; } PropertyDefn::basic_type PropertyDefn::parse(string s) { return s; } string PropertyDefn::unparse(PropertyDefn::basic_type i) { return i; } string PropertyDefn::typeName() { return "Bool"; } PropertyDefn::basic_type PropertyDefn::parse(string s) { return s == "true"; } string PropertyDefn::unparse(PropertyDefn::basic_type i) { return (i ? "true" : "false"); } string PropertyDefn::typeName() { return "RealTimeT"; } PropertyDefn::basic_type PropertyDefn::parse(string s) { string sec = s.substr(0, s.find('/')), nsec = s.substr(s.find('/') + 1); return RealTime(atoi(sec.c_str()), atoi(nsec.c_str())); } string PropertyDefn::unparse(PropertyDefn::basic_type i) { static char buffer[256]; sprintf(buffer, "%d/%d", i.sec, i.nsec); return buffer; } PropertyStoreBase::~PropertyStoreBase() { } template <> size_t PropertyStore::getStorageSize() const { return sizeof(*this); } template <> size_t PropertyStore::getStorageSize() const { return sizeof(*this); } template <> size_t PropertyStore::getStorageSize() const { return sizeof(*this) + m_data.size(); } template <> size_t PropertyStore::getStorageSize() const { return sizeof(*this); } template <> size_t PropertyStore::getStorageSize() const { return sizeof(*this); } }