Line data Source code
1 : /*
2 : * SPDX-License-Identifier: GPL-3.0-only
3 : * MuseScore-Studio-CLA-applies
4 : *
5 : * MuseScore Studio
6 : * Music Composition & Notation
7 : *
8 : * Copyright (C) 2021 MuseScore Limited and others
9 : *
10 : * This program is free software: you can redistribute it and/or modify
11 : * it under the terms of the GNU General Public License version 3 as
12 : * published by the Free Software Foundation.
13 : *
14 : * This program is distributed in the hope that it will be useful,
15 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : * GNU General Public License for more details.
18 : *
19 : * You should have received a copy of the GNU General Public License
20 : * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 : */
22 :
23 : #pragma once
24 :
25 : #include <vector>
26 :
27 : namespace mu::engraving {
28 : class Tuplet;
29 :
30 : //---------------------------------------------------------
31 : // Tuplet2
32 : //---------------------------------------------------------
33 :
34 : struct Tuplet2 {
35 : Tuplet* o = nullptr;
36 : Tuplet* n = nullptr;
37 13 : Tuplet2(Tuplet* _o, Tuplet* _n)
38 13 : : o(_o), n(_n) {}
39 : };
40 :
41 : //---------------------------------------------------------
42 : // TupletMap
43 : //---------------------------------------------------------
44 :
45 : class TupletMap
46 : {
47 : public:
48 7502 : TupletMap() {}
49 : Tuplet* findNew(Tuplet* o);
50 13 : void add(Tuplet* _o, Tuplet* _n) { m_map.emplace_back(_o, _n); }
51 :
52 : private:
53 : std::vector<Tuplet2> m_map;
54 : };
55 : }
|