Skip to content

Commit 8de35b2

Browse files
authored
Merge pull request #25879 from alexpavlov96/disable_playback_option
added cmake option to disable playback build
2 parents 1d73047 + fe60ad7 commit 8de35b2

File tree

9 files changed

+377
-75
lines changed

9 files changed

+377
-75
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ option(MUE_BUILD_BRAILLE_TESTS "Build braille tests" ON)
6666
option(MUE_BUILD_CONVERTER_MODULE "Build converter module" ON)
6767
option(MUE_BUILD_ENGRAVING_TESTS "Build engraving tests" ON)
6868
option(MUE_BUILD_ENGRAVING_DEVTOOLS "Build engraving devtools" ON)
69+
option(MUE_BUILD_ENGRAVING_PLAYBACK "Build engraving playback" ON)
6970
option(MUE_BUILD_IMPORTEXPORT_MODULE "Build importexport module" ON)
7071
option(MUE_BUILD_IMPORTEXPORT_TESTS "Build importexport tests" ON)
7172
option(MUE_BUILD_VIDEOEXPORT_MODULE "Build videoexport module" OFF)

src/engraving/CMakeLists.txt

Lines changed: 5 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ if (MUE_BUILD_ENGRAVING_DEVTOOLS)
4949
include(${CMAKE_CURRENT_LIST_DIR}/devtools/devtools.cmake)
5050
endif()
5151

52+
if (MUE_BUILD_ENGRAVING_PLAYBACK)
53+
include(${CMAKE_CURRENT_LIST_DIR}/playback/playback.cmake)
54+
endif()
55+
5256
set(MODULE_SRC
5357

5458
${CMAKE_CURRENT_LIST_DIR}/engravingmodule.cpp
@@ -211,74 +215,7 @@ set(MODULE_SRC
211215
${RENDERING_SCORE_SRC}
212216
${RENDERING_SINGLE_SRC}
213217

214-
${CMAKE_CURRENT_LIST_DIR}/playback/renderingcontext.h
215-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackcontext.cpp
216-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackcontext.h
217-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackmodel.cpp
218-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackmodel.h
219-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackeventsrenderer.cpp
220-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackeventsrenderer.h
221-
${CMAKE_CURRENT_LIST_DIR}/playback/playbacksetupdataresolver.cpp
222-
${CMAKE_CURRENT_LIST_DIR}/playback/playbacksetupdataresolver.h
223-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/renderbase.h
224-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/ornamentsrenderer.cpp
225-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/ornamentsrenderer.h
226-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/glissandosrenderer.cpp
227-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/glissandosrenderer.h
228-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/arpeggiorenderer.cpp
229-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/arpeggiorenderer.h
230-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/gracechordsrenderer.cpp
231-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/gracechordsrenderer.h
232-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/tremolorenderer.cpp
233-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/tremolorenderer.h
234-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/chordarticulationsrenderer.cpp
235-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/chordarticulationsrenderer.h
236-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/noterenderer.cpp
237-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/noterenderer.h
238-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/bendsrenderer.cpp
239-
${CMAKE_CURRENT_LIST_DIR}/playback/renderers/bendsrenderer.h
240-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/symbolsmetaparser.cpp
241-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/symbolsmetaparser.h
242-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/annotationsmetaparser.cpp
243-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/annotationsmetaparser.h
244-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/spannersmetaparser.cpp
245-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/spannersmetaparser.h
246-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/tremolometaparser.cpp
247-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/tremolometaparser.h
248-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/arpeggiometaparser.cpp
249-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/arpeggiometaparser.h
250-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/gracenotesmetaparser.cpp
251-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/gracenotesmetaparser.h
252-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/chordlinemetaparser.cpp
253-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/internal/chordlinemetaparser.h
254-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/notearticulationsparser.cpp
255-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/notearticulationsparser.h
256-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/chordarticulationsparser.cpp
257-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/chordarticulationsparser.h
258-
${CMAKE_CURRENT_LIST_DIR}/playback/metaparsers/metaparserbase.h
259-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/setupresolverbase.h
260-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/keyboardssetupdataresolver.cpp
261-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/keyboardssetupdataresolver.h
262-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/stringssetupdataresolver.cpp
263-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/stringssetupdataresolver.h
264-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/windssetupdataresolver.cpp
265-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/windssetupdataresolver.h
266-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/percussionssetupdataresolver.cpp
267-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/percussionssetupdataresolver.h
268-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/voicessetupdataresolver.cpp
269-
${CMAKE_CURRENT_LIST_DIR}/playback/mapping/voicessetupdataresolver.h
270-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/filterbase.h
271-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/chordfilter.cpp
272-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/chordfilter.h
273-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/spannerfilter.cpp
274-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/spannerfilter.h
275-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/internal/tremolofilter.cpp
276-
${CMAKE_CURRENT_LIST_DIR}/playback/filters/internal/tremolofilter.h
277-
278-
${CMAKE_CURRENT_LIST_DIR}/playback/utils/pitchutils.h
279-
${CMAKE_CURRENT_LIST_DIR}/playback/utils/expressionutils.h
280-
${CMAKE_CURRENT_LIST_DIR}/playback/utils/arrangementutils.h
281-
218+
${PLAYBACK_SRC}
282219
${DEVTOOLS_SRC}
283220
)
284221

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# SPDX-License-Identifier: GPL-3.0-only
2+
# MuseScore-Studio-CLA-applies
3+
#
4+
# MuseScore Studio
5+
# Music Composition & Notation
6+
#
7+
# Copyright (C) 2024 MuseScore Limited
8+
#
9+
# This program is free software: you can redistribute it and/or modify
10+
# it under the terms of the GNU General Public License version 3 as
11+
# published by the Free Software Foundation.
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+
set(PLAYBACK_SRC
22+
${CMAKE_CURRENT_LIST_DIR}/renderingcontext.h
23+
${CMAKE_CURRENT_LIST_DIR}/playbackcontext.cpp
24+
${CMAKE_CURRENT_LIST_DIR}/playbackcontext.h
25+
${CMAKE_CURRENT_LIST_DIR}/playbackmodel.cpp
26+
${CMAKE_CURRENT_LIST_DIR}/playbackmodel.h
27+
${CMAKE_CURRENT_LIST_DIR}/playbackeventsrenderer.cpp
28+
${CMAKE_CURRENT_LIST_DIR}/playbackeventsrenderer.h
29+
${CMAKE_CURRENT_LIST_DIR}/playbacksetupdataresolver.cpp
30+
${CMAKE_CURRENT_LIST_DIR}/playbacksetupdataresolver.h
31+
${CMAKE_CURRENT_LIST_DIR}/renderers/renderbase.h
32+
${CMAKE_CURRENT_LIST_DIR}/renderers/ornamentsrenderer.cpp
33+
${CMAKE_CURRENT_LIST_DIR}/renderers/ornamentsrenderer.h
34+
${CMAKE_CURRENT_LIST_DIR}/renderers/glissandosrenderer.cpp
35+
${CMAKE_CURRENT_LIST_DIR}/renderers/glissandosrenderer.h
36+
${CMAKE_CURRENT_LIST_DIR}/renderers/arpeggiorenderer.cpp
37+
${CMAKE_CURRENT_LIST_DIR}/renderers/arpeggiorenderer.h
38+
${CMAKE_CURRENT_LIST_DIR}/renderers/gracechordsrenderer.cpp
39+
${CMAKE_CURRENT_LIST_DIR}/renderers/gracechordsrenderer.h
40+
${CMAKE_CURRENT_LIST_DIR}/renderers/tremolorenderer.cpp
41+
${CMAKE_CURRENT_LIST_DIR}/renderers/tremolorenderer.h
42+
${CMAKE_CURRENT_LIST_DIR}/renderers/chordarticulationsrenderer.cpp
43+
${CMAKE_CURRENT_LIST_DIR}/renderers/chordarticulationsrenderer.h
44+
${CMAKE_CURRENT_LIST_DIR}/renderers/noterenderer.cpp
45+
${CMAKE_CURRENT_LIST_DIR}/renderers/noterenderer.h
46+
${CMAKE_CURRENT_LIST_DIR}/renderers/bendsrenderer.cpp
47+
${CMAKE_CURRENT_LIST_DIR}/renderers/bendsrenderer.h
48+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/symbolsmetaparser.cpp
49+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/symbolsmetaparser.h
50+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/annotationsmetaparser.cpp
51+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/annotationsmetaparser.h
52+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/spannersmetaparser.cpp
53+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/spannersmetaparser.h
54+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/tremolometaparser.cpp
55+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/tremolometaparser.h
56+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/arpeggiometaparser.cpp
57+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/arpeggiometaparser.h
58+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/gracenotesmetaparser.cpp
59+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/gracenotesmetaparser.h
60+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/chordlinemetaparser.cpp
61+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/internal/chordlinemetaparser.h
62+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/notearticulationsparser.cpp
63+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/notearticulationsparser.h
64+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/chordarticulationsparser.cpp
65+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/chordarticulationsparser.h
66+
${CMAKE_CURRENT_LIST_DIR}/metaparsers/metaparserbase.h
67+
${CMAKE_CURRENT_LIST_DIR}/mapping/setupresolverbase.h
68+
${CMAKE_CURRENT_LIST_DIR}/mapping/keyboardssetupdataresolver.cpp
69+
${CMAKE_CURRENT_LIST_DIR}/mapping/keyboardssetupdataresolver.h
70+
${CMAKE_CURRENT_LIST_DIR}/mapping/stringssetupdataresolver.cpp
71+
${CMAKE_CURRENT_LIST_DIR}/mapping/stringssetupdataresolver.h
72+
${CMAKE_CURRENT_LIST_DIR}/mapping/windssetupdataresolver.cpp
73+
${CMAKE_CURRENT_LIST_DIR}/mapping/windssetupdataresolver.h
74+
${CMAKE_CURRENT_LIST_DIR}/mapping/percussionssetupdataresolver.cpp
75+
${CMAKE_CURRENT_LIST_DIR}/mapping/percussionssetupdataresolver.h
76+
${CMAKE_CURRENT_LIST_DIR}/mapping/voicessetupdataresolver.cpp
77+
${CMAKE_CURRENT_LIST_DIR}/mapping/voicessetupdataresolver.h
78+
${CMAKE_CURRENT_LIST_DIR}/filters/filterbase.h
79+
${CMAKE_CURRENT_LIST_DIR}/filters/chordfilter.cpp
80+
${CMAKE_CURRENT_LIST_DIR}/filters/chordfilter.h
81+
${CMAKE_CURRENT_LIST_DIR}/filters/spannerfilter.cpp
82+
${CMAKE_CURRENT_LIST_DIR}/filters/spannerfilter.h
83+
${CMAKE_CURRENT_LIST_DIR}/filters/internal/tremolofilter.cpp
84+
${CMAKE_CURRENT_LIST_DIR}/filters/internal/tremolofilter.h
85+
86+
${CMAKE_CURRENT_LIST_DIR}/utils/pitchutils.h
87+
${CMAKE_CURRENT_LIST_DIR}/utils/expressionutils.h
88+
${CMAKE_CURRENT_LIST_DIR}/utils/arrangementutils.h
89+
)

src/engraving/tests/CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,6 @@ set(MODULE_TEST_SRC
6767
${CMAKE_CURRENT_LIST_DIR}/note_tests.cpp
6868
${CMAKE_CURRENT_LIST_DIR}/parts_tests.cpp
6969
${CMAKE_CURRENT_LIST_DIR}/pitchwheelrender_tests.cpp
70-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackeventsrendering_tests.cpp
71-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackmodel_tests.cpp
72-
${CMAKE_CURRENT_LIST_DIR}/playback/playbackcontext_tests.cpp
73-
${CMAKE_CURRENT_LIST_DIR}/playback/bendsrenderer_tests.cpp
7470
${CMAKE_CURRENT_LIST_DIR}/readwriteundoreset_tests.cpp
7571
${CMAKE_CURRENT_LIST_DIR}/remove_tests.cpp
7672
${CMAKE_CURRENT_LIST_DIR}/repeat_tests.cpp
@@ -103,6 +99,15 @@ set(MODULE_TEST_SRC ${MODULE_TEST_SRC}
10399
)
104100
endif()
105101

102+
if(MUE_BUILD_ENGRAVING_PLAYBACK)
103+
set(MODULE_TEST_SRC ${MODULE_TEST_SRC}
104+
${CMAKE_CURRENT_LIST_DIR}/playback/playbackeventsrendering_tests.cpp
105+
${CMAKE_CURRENT_LIST_DIR}/playback/playbackmodel_tests.cpp
106+
${CMAKE_CURRENT_LIST_DIR}/playback/playbackcontext_tests.cpp
107+
${CMAKE_CURRENT_LIST_DIR}/playback/bendsrenderer_tests.cpp
108+
)
109+
endif()
110+
106111
set(MODULE_TEST_LINK
107112
engraving
108113
)

src/notation/CMakeLists.txt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,19 @@ set(MODULE_QML_IMPORT ${CMAKE_CURRENT_LIST_DIR}/qml)
2626
include(${CMAKE_CURRENT_LIST_DIR}/view/widgets/widgets.cmake)
2727
include(${CMAKE_CURRENT_LIST_DIR}/view/styledialog/styledialog.cmake)
2828

29+
if (MUE_BUILD_ENGRAVING_PLAYBACK)
30+
set(NOTATION_PLAYBACK_SRC_FILES
31+
${CMAKE_CURRENT_LIST_DIR}/internal/notationplayback.cpp
32+
${CMAKE_CURRENT_LIST_DIR}/internal/notationplayback.h
33+
)
34+
set(MODULE_DEF ${MODULE_DEF} -DMUE_BUILD_ENGRAVING_PLAYBACK)
35+
else()
36+
set(NOTATION_PLAYBACK_SRC_FILES
37+
${CMAKE_CURRENT_LIST_DIR}/internal/notationplaybackstub.cpp
38+
${CMAKE_CURRENT_LIST_DIR}/internal/notationplaybackstub.h
39+
)
40+
endif()
41+
2942
set(MODULE_SRC
3043
${CMAKE_CURRENT_LIST_DIR}/notationmodule.cpp
3144
${CMAKE_CURRENT_LIST_DIR}/notationmodule.h
@@ -92,8 +105,7 @@ set(MODULE_SRC
92105
${CMAKE_CURRENT_LIST_DIR}/internal/positionswriter.h
93106
${CMAKE_CURRENT_LIST_DIR}/internal/mscnotationwriter.cpp
94107
${CMAKE_CURRENT_LIST_DIR}/internal/mscnotationwriter.h
95-
${CMAKE_CURRENT_LIST_DIR}/internal/notationplayback.cpp
96-
${CMAKE_CURRENT_LIST_DIR}/internal/notationplayback.h
108+
${NOTATION_PLAYBACK_SRC_FILES}
97109
${CMAKE_CURRENT_LIST_DIR}/internal/midiinputoutputcontroller.cpp
98110
${CMAKE_CURRENT_LIST_DIR}/internal/midiinputoutputcontroller.h
99111
${CMAKE_CURRENT_LIST_DIR}/internal/notationmidiinput.cpp

src/notation/internal/masternotation.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,19 @@
3939
#include "engraving/dom/box.h"
4040
#include "engraving/dom/keysig.h"
4141
#include "engraving/dom/rest.h"
42+
#include "engraving/dom/sig.h"
4243
#include "engraving/dom/tempotext.h"
4344
#include "engraving/dom/undo.h"
4445

4546
#include "excerptnotation.h"
4647
#include "masternotationparts.h"
48+
49+
#ifdef MUE_BUILD_ENGRAVING_PLAYBACK
4750
#include "notationplayback.h"
51+
#else
52+
#include "notationplaybackstub.h"
53+
#endif
54+
4855
#include "../notationerrors.h"
4956

5057
using namespace mu::notation;
@@ -69,7 +76,12 @@ MasterNotation::MasterNotation(const muse::modularity::ContextPtr& iocCtx)
6976
: Notation(iocCtx)
7077
{
7178
m_parts = std::make_shared<MasterNotationParts>(this, interaction(), undoStack());
79+
80+
#ifdef MUE_BUILD_ENGRAVING_PLAYBACK
7281
m_notationPlayback = std::make_shared<NotationPlayback>(this, m_notationChanged, iocCtx);
82+
#else
83+
m_notationPlayback = std::make_shared<NotationPlaybackStub>();
84+
#endif
7385

7486
m_parts->partsChanged().onNotify(this, [this]() {
7587
notifyAboutNotationChanged();

src/notation/internal/notation.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
#include "notationviewstate.h"
3131
#include "notationsolomutestate.h"
3232
#include "notationinteraction.h"
33-
#include "notationplayback.h"
3433
#include "notationundostack.h"
3534
#include "notationstyle.h"
3635
#include "notationelements.h"

0 commit comments

Comments
 (0)