hydrogen 1.2.6
AutomationPathSerializer.cpp
Go to the documentation of this file.
1/*
2 * Hydrogen
3 * Copyright(c) 2002-2008 by Alex >Comix< Cominu [comix@users.sourceforge.net]
4 * Copyright(c) 2008-2025 The hydrogen development team [hydrogen-devel@lists.sourceforge.net]
5 *
6 * http://www.hydrogen-music.org
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY, without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see https://www.gnu.org/licenses
20 *
21 */
23
24namespace H2Core
25{
26
27
31
33{
34 auto point = node.firstChildElement();
35 while (! point.isNull()) {
36 if (point.tagName() == "point") {
37 bool hasX = false;
38 bool hasY = false;
39 float x = point.attribute("x").toFloat(&hasX);
40 float y = point.attribute("y").toFloat(&hasY);
41
42 if (hasX && hasY) {
43 path.add_point(x, y);
44 }
45
46 }
47 point = point.nextSiblingElement();
48 }
49}
50
51
53{
54 for (auto point : path) {
55 auto element = node.ownerDocument().createElement("point");
56 element.setAttribute("x", point.first);
57 element.setAttribute("y", point.second);
58 node.appendChild(element);
59 }
60}
61
62
63}
void write_automation_path(QDomNode &node, const AutomationPath &path)
void read_automation_path(const QDomNode &node, AutomationPath &path)
void add_point(float x, float y)
Add a point to path.