LCOV - code coverage report
Current view: top level - src/engraving/api/v1 - engravingapiv1.h Coverage Total Hit
Test: filtered_coverage.info Lines: 0.0 % 143 0
Test Date: 2026-11-05 04:07:02

            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) 2024 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              : #pragma once
      23              : 
      24              : #include <QJSValue>
      25              : 
      26              : #include "global/api/apiobject.h"
      27              : #include "global/api/apiutils.h"
      28              : 
      29              : #include "extensions/api/v1/iapiv1object.h"
      30              : 
      31              : #include "qmlpluginapi.h"
      32              : 
      33              : #undef ENUM_PROPERTY
      34              : #define ENUM_PROPERTY(qmlName, enumType) \
      35              :     Q_PROPERTY(QJSValue qmlName READ get##qmlName CONSTANT) \
      36              :     QJSValue get##qmlName() const { return makeEnum<enumType>(); }
      37              : 
      38              : namespace mu::engraving::apiv1 {
      39              : //! NOTE This API is used in `js` scripts of macros
      40              : //! It repeats the API of the qml plugin.
      41              : //! It is also available as `api.engraving.`
      42              : class EngravingApiV1 : public muse::api::ApiObject, public muse::extensions::apiv1::IApiV1Object
      43              : {
      44              :     Q_OBJECT
      45              : 
      46              :     Q_PROPERTY(int division READ division CONSTANT)
      47              :     Q_PROPERTY(int mscoreVersion READ mscoreVersion CONSTANT)
      48              :     Q_PROPERTY(int mscoreMajorVersion READ mscoreMajorVersion CONSTANT)
      49              :     Q_PROPERTY(int mscoreMinorVersion READ mscoreMinorVersion CONSTANT)
      50              :     Q_PROPERTY(int mscoreUpdateVersion READ mscoreUpdateVersion CONSTANT)
      51              :     Q_PROPERTY(qreal mscoreDPI READ mscoreDPI CONSTANT)
      52              : 
      53              :     Q_PROPERTY(apiv1::Score * curScore READ curScore CONSTANT)
      54              : 
      55              :     // Enums
      56            0 :     ENUM_PROPERTY(Element, enums::ElementType);
      57            0 :     ENUM_PROPERTY(TextStyleType, enums::TextStyleType);
      58              : 
      59              :     Q_PROPERTY(apiv1::Enum * Accidental READ accidentalTypeEnum CONSTANT)
      60              :     Q_PROPERTY(apiv1::Enum * AccidentalBracket READ accidentalBracketEnum CONSTANT)
      61              :     Q_PROPERTY(apiv1::Enum * OrnamentStyle READ ornamentStyleEnum CONSTANT)
      62              :     Q_PROPERTY(apiv1::Enum * Align READ alignEnum CONSTANT)
      63              :     Q_PROPERTY(apiv1::Enum * Placement READ placementEnum CONSTANT)
      64              :     Q_PROPERTY(apiv1::Enum * PlacementH READ placementHEnum CONSTANT)
      65              :     Q_PROPERTY(apiv1::Enum * TextPlace READ textPlaceEnum CONSTANT)
      66              :     Q_PROPERTY(apiv1::Enum * Direction READ directionEnum CONSTANT)
      67              :     Q_PROPERTY(apiv1::Enum * DirectionH READ directionHEnum CONSTANT)
      68              :     Q_PROPERTY(apiv1::Enum * Orientation READ orientationEnum CONSTANT)
      69              :     Q_PROPERTY(apiv1::Enum * AutoOnOff READ autoOnOffEnum CONSTANT)
      70              :     Q_PROPERTY(apiv1::Enum * AutoCustomHide READ autoCustomHideEnum CONSTANT)
      71              :     Q_PROPERTY(apiv1::Enum * VoiceAssignment READ voiceAssignmentEnum CONSTANT)
      72              :     Q_PROPERTY(apiv1::Enum * SpacerType READ spacerTypeEnum CONSTANT)
      73              :     Q_PROPERTY(apiv1::Enum * LayoutBreak READ layoutBreakTypeEnum CONSTANT)
      74              :     Q_PROPERTY(apiv1::Enum * DurationType READ durationTypeEnum CONSTANT)
      75              :     Q_PROPERTY(apiv1::Enum * NoteValueType READ noteValueTypeEnum CONSTANT)
      76              :     Q_PROPERTY(apiv1::Enum * Beam READ beamModeEnum CONSTANT)
      77              :     Q_PROPERTY(apiv1::Enum * Glissando READ glissandoTypeEnum CONSTANT) // was probably absent in 2.X
      78              :     Q_PROPERTY(apiv1::Enum * GlissandoStyle READ glissandoStyleEnum CONSTANT)
      79              :     Q_PROPERTY(apiv1::Enum * HarmonyType READ harmonyTypeEnum CONSTANT)
      80              :     Q_PROPERTY(apiv1::Enum * HarmonyVoicing READ harmonyVoicingEnum CONSTANT)
      81              :     Q_PROPERTY(apiv1::Enum * HDuration READ hDurationEnum CONSTANT)
      82              :     Q_PROPERTY(apiv1::Enum * FrameType READ frameTypeEnum CONSTANT)
      83              :     Q_PROPERTY(apiv1::Enum * VerticalAlignment READ verticalAlignmentEnum CONSTANT)
      84              :     Q_PROPERTY(apiv1::Enum * TremoloBarType READ tremoloBarTypeEnum CONSTANT)
      85              :     Q_PROPERTY(apiv1::Enum * PreferSharpFlat READ preferSharpFlatEnum CONSTANT)
      86              :     Q_PROPERTY(apiv1::Enum * NoteHeadType READ noteHeadTypeEnum CONSTANT)
      87              :     Q_PROPERTY(apiv1::Enum * NoteHeadScheme READ noteHeadSchemeEnum CONSTANT)
      88              :     Q_PROPERTY(apiv1::Enum * NoteHeadGroup READ noteHeadGroupEnum CONSTANT)
      89              :     Q_PROPERTY(apiv1::Enum * NoteType READ noteTypeEnum CONSTANT)
      90              :     Q_PROPERTY(apiv1::Enum * PlayEventType READ playEventTypeEnum CONSTANT)
      91              :     Q_PROPERTY(apiv1::Enum * Segment READ segmentTypeEnum CONSTANT)
      92              :     Q_PROPERTY(apiv1::Enum * BarLineType READ barLineTypeEnum CONSTANT)
      93              :     Q_PROPERTY(apiv1::Enum * Tid READ tidEnum CONSTANT)
      94              :     Q_PROPERTY(apiv1::Enum * Lyrics READ lyricsSyllabicEnum CONSTANT)
      95              :     Q_PROPERTY(apiv1::Enum * Spanner READ spannerAnchorEnum CONSTANT)           // probably unavailable in 2.X
      96              :     Q_PROPERTY(apiv1::Enum * MMRestRangeBracketType READ mMRestRangeBracketTypeEnum CONSTANT)
      97              :     Q_PROPERTY(apiv1::Enum * TupletNumberType READ tupletNumberTypeEnum CONSTANT)
      98              :     Q_PROPERTY(apiv1::Enum * TupletBracketType READ tupletBracketTypeEnum CONSTANT)
      99              :     Q_PROPERTY(apiv1::Enum * TripletFeelType READ tripletFeelTypeEnum CONSTANT)
     100              :     Q_PROPERTY(apiv1::Enum * GuitarBendType READ guitarBendTypeEnum CONSTANT)
     101              :     Q_PROPERTY(apiv1::Enum * GuitarBendShowHoldLine READ guitarBendShowHoldLineEnum CONSTANT)
     102              :     Q_PROPERTY(apiv1::Enum * ClefType READ clefTypeEnum CONSTANT)
     103              :     Q_PROPERTY(apiv1::Enum * ClefToBarlinePosition READ clefToBarlinePositionEnum CONSTANT)
     104              :     Q_PROPERTY(apiv1::Enum * DynamicType READ dynamicTypeEnum CONSTANT)
     105              :     Q_PROPERTY(apiv1::Enum * DynamicSpeed READ dynamicSpeedEnum CONSTANT)
     106              :     Q_PROPERTY(apiv1::Enum * LineType READ lineTypeEnum CONSTANT)
     107              :     Q_PROPERTY(apiv1::Enum * HookType READ hookTypeEnum CONSTANT)
     108              :     Q_PROPERTY(apiv1::Enum * KeyMode READ keyModeEnum CONSTANT)
     109              :     Q_PROPERTY(apiv1::Enum * ArpeggioType READ arpeggioTypeEnum CONSTANT)
     110              :     Q_PROPERTY(apiv1::Enum * IntervalStep READ intervalStepEnum CONSTANT)
     111              :     Q_PROPERTY(apiv1::Enum * IntervalType READ intervalTypeEnum CONSTANT)
     112              :     Q_PROPERTY(apiv1::Enum * InstrumentLabelVisibility READ instrumentLabelVisibilityEnum CONSTANT)
     113              :     Q_PROPERTY(apiv1::Enum * OrnamentShowAccidental READ ornamentShowAccidentalEnum CONSTANT)
     114              :     Q_PROPERTY(apiv1::Enum * PartialSpannerDirection READ partialSpannerDirectionEnum CONSTANT)
     115              :     Q_PROPERTY(apiv1::Enum * ChordStylePreset READ chordStylePresetEnum CONSTANT)
     116              :     Q_PROPERTY(apiv1::Enum * PlayingTechniqueType READ playingTechniqueTypeEnum CONSTANT)
     117              :     Q_PROPERTY(apiv1::Enum * GradualTempoChangeType READ gradualTempoChangeTypeEnum CONSTANT)
     118              :     Q_PROPERTY(apiv1::Enum * ChangeMethod READ changeMethodEnum CONSTANT)
     119              :     Q_PROPERTY(apiv1::Enum * ChangeDirection READ changeDirectionEnum CONSTANT)
     120              :     Q_PROPERTY(apiv1::Enum * AccidentalRole READ accidentalRoleEnum CONSTANT)
     121              :     Q_PROPERTY(apiv1::Enum * AccidentalVal READ accidentalValEnum CONSTANT)
     122              :     Q_PROPERTY(apiv1::Enum * FermataType READ fermataTypeEnum CONSTANT)
     123              :     Q_PROPERTY(apiv1::Enum * ChordLineType READ chordLineTypeEnum CONSTANT)
     124              :     Q_PROPERTY(apiv1::Enum * SlurStyleType READ slurStyleTypeEnum CONSTANT)
     125              :     Q_PROPERTY(apiv1::Enum * TremoloType READ tremoloTypeEnum CONSTANT)
     126              :     Q_PROPERTY(apiv1::Enum * TremoloChordType READ tremoloChordTypeEnum CONSTANT)
     127              :     Q_PROPERTY(apiv1::Enum * BracketType READ bracketTypeEnum CONSTANT)
     128              :     Q_PROPERTY(apiv1::Enum * JumpType READ jumpTypeEnum CONSTANT)
     129              :     Q_PROPERTY(apiv1::Enum * MarkerType READ markerTypeEnum CONSTANT)
     130              :     Q_PROPERTY(apiv1::Enum * MeasureNumberMode READ measureNumberModeEnum CONSTANT)
     131              :     Q_PROPERTY(apiv1::Enum * StaffGroup READ staffGroupEnum CONSTANT)
     132              :     Q_PROPERTY(apiv1::Enum * OttavaType READ ottavaTypeEnum CONSTANT)
     133              :     Q_PROPERTY(apiv1::Enum * HairpinType READ hairpinTypeEnum CONSTANT)
     134              :     Q_PROPERTY(apiv1::Enum * TrillType READ trillTypeEnum CONSTANT)
     135              :     Q_PROPERTY(apiv1::Enum * VibratoType READ vibratoTypeEnum CONSTANT)
     136              :     Q_PROPERTY(apiv1::Enum * ArticulationTextType READ articulationTextTypeEnum CONSTANT)
     137              :     Q_PROPERTY(apiv1::Enum * LyricsDashSystemStart READ lyricsDashSystemStartEnum CONSTANT)
     138              :     Q_PROPERTY(apiv1::Enum * NoteLineEndPlacement READ noteLineEndPlacementEnum CONSTANT)
     139              :     Q_PROPERTY(apiv1::Enum * SpannerSegmentType READ spannerSegmentTypeEnum CONSTANT)
     140              :     Q_PROPERTY(apiv1::Enum * TiePlacement READ tiePlacementEnum CONSTANT)
     141              :     Q_PROPERTY(apiv1::Enum * TieDotsPlacement READ tieDotsPlacementEnum CONSTANT)
     142              :     Q_PROPERTY(apiv1::Enum * TimeSigType READ timeSigTypeEnum CONSTANT)
     143              :     Q_PROPERTY(apiv1::Enum * TimeSigPlacement READ timeSigPlacementEnum CONSTANT)
     144              :     Q_PROPERTY(apiv1::Enum * TimeSigStyle READ timeSigStyleEnum CONSTANT)
     145              :     Q_PROPERTY(apiv1::Enum * TimeSigVSMargin READ timeSigVSMarginEnum CONSTANT)
     146              :     Q_PROPERTY(apiv1::Enum * NoteSpellingType READ noteSpellingTypeEnum CONSTANT)
     147              :     Q_PROPERTY(apiv1::Enum * Key READ keyEnum CONSTANT)
     148              :     Q_PROPERTY(apiv1::Enum * UpdateMode READ updateModeEnum CONSTANT)
     149              :     Q_PROPERTY(apiv1::Enum * LayoutFlag READ layoutFlagEnum CONSTANT)
     150              :     Q_PROPERTY(apiv1::Enum * LayoutMode READ layoutModeEnum CONSTANT)
     151              :     Q_PROPERTY(apiv1::Enum * TappingHand READ tappingHandEnum CONSTANT)
     152              :     Q_PROPERTY(apiv1::Enum * LHTappingSymbol READ lHTappingSymbolEnum CONSTANT)
     153              :     Q_PROPERTY(apiv1::Enum * RHTappingSymbol READ rHTappingSymbolEnum CONSTANT)
     154              :     Q_PROPERTY(apiv1::Enum * LHTappingShowItems READ lHTappingShowItemsEnum CONSTANT)
     155              :     Q_PROPERTY(apiv1::Enum * ParenthesesMode READ parenthesesModeEnum CONSTANT)
     156              :     Q_PROPERTY(apiv1::Enum * RepeatPlayCountPreset READ repeatPlayCountPresetEnum CONSTANT)
     157              :     Q_PROPERTY(apiv1::Enum * MeasureNumberPlacement READ measureNumberPlacementEnum CONSTANT)
     158              :     Q_PROPERTY(apiv1::Enum * SymId READ symIdEnum CONSTANT)
     159              :     Q_PROPERTY(apiv1::Enum * Cursor READ cursorEnum CONSTANT)
     160              : 
     161              : public:
     162              :     EngravingApiV1(muse::api::IApiEngine* e);
     163              :     ~EngravingApiV1();
     164              : 
     165              :     void setup(QJSValue globalObject) override;
     166              : 
     167              :     void setApi(PluginAPI* api);
     168              :     PluginAPI* api() const;
     169              : 
     170              :     //! Api V1 (qml plugin api)
     171            0 :     int division() const { return api()->division(); }
     172            0 :     int mscoreVersion() const { return api()->mscoreVersion(); }
     173            0 :     int mscoreMajorVersion() const { return api()->mscoreMajorVersion(); }
     174            0 :     int mscoreMinorVersion() const { return api()->mscoreMinorVersion(); }
     175            0 :     int mscoreUpdateVersion() const { return api()->mscoreUpdateVersion(); }
     176            0 :     qreal mscoreDPI() const { return api()->mscoreDPI(); }
     177              : 
     178            0 :     apiv1::Score* curScore() const { return api()->curScore(); }
     179              : 
     180            0 :     apiv1::Enum* accidentalTypeEnum() const { return api()->get_accidentalTypeEnum(); }
     181            0 :     apiv1::Enum* accidentalBracketEnum() const { return api()->get_accidentalBracketEnum(); }
     182            0 :     apiv1::Enum* ornamentStyleEnum() const { return api()->get_ornamentStyleEnum(); }
     183            0 :     apiv1::Enum* alignEnum() const { return api()->get_alignEnum(); }
     184            0 :     apiv1::Enum* placementEnum() const { return api()->get_placementEnum(); }
     185            0 :     apiv1::Enum* placementHEnum() const { return api()->get_placementHEnum(); }
     186            0 :     apiv1::Enum* textPlaceEnum() const { return api()->get_textPlaceEnum(); }
     187            0 :     apiv1::Enum* directionEnum() const { return api()->get_directionEnum(); }
     188            0 :     apiv1::Enum* directionHEnum() const { return api()->get_directionHEnum(); }
     189            0 :     apiv1::Enum* orientationEnum() const { return api()->get_orientationEnum(); }
     190            0 :     apiv1::Enum* autoOnOffEnum() const { return api()->get_autoOnOffEnum(); }
     191            0 :     apiv1::Enum* autoCustomHideEnum() const { return api()->get_autoCustomHideEnum(); }
     192            0 :     apiv1::Enum* voiceAssignmentEnum() const { return api()->get_voiceAssignmentEnum(); }
     193            0 :     apiv1::Enum* spacerTypeEnum() const { return api()->get_spacerTypeEnum(); }
     194            0 :     apiv1::Enum* layoutBreakTypeEnum() const { return api()->get_layoutBreakTypeEnum(); }
     195            0 :     apiv1::Enum* durationTypeEnum() const { return api()->get_durationTypeEnum(); }
     196            0 :     apiv1::Enum* noteValueTypeEnum() const { return api()->get_noteValueTypeEnum(); }
     197            0 :     apiv1::Enum* beamModeEnum() const { return api()->get_beamModeEnum(); }
     198            0 :     apiv1::Enum* glissandoTypeEnum() const { return api()->get_glissandoTypeEnum(); }
     199            0 :     apiv1::Enum* glissandoStyleEnum() const { return api()->get_glissandoStyleEnum(); }
     200            0 :     apiv1::Enum* harmonyTypeEnum() const { return api()->get_harmonyTypeEnum(); }
     201            0 :     apiv1::Enum* harmonyVoicingEnum() const { return api()->get_harmonyVoicingEnum(); }
     202            0 :     apiv1::Enum* hDurationEnum() const { return api()->get_hDurationEnum(); }
     203            0 :     apiv1::Enum* frameTypeEnum() const { return api()->get_frameTypeEnum(); }
     204            0 :     apiv1::Enum* verticalAlignmentEnum() const { return api()->get_verticalAlignmentEnum(); }
     205            0 :     apiv1::Enum* tremoloBarTypeEnum() const { return api()->get_tremoloBarTypeEnum(); }
     206            0 :     apiv1::Enum* preferSharpFlatEnum() const { return api()->get_preferSharpFlatEnum(); }
     207            0 :     apiv1::Enum* noteHeadTypeEnum() const { return api()->get_noteHeadTypeEnum(); }
     208            0 :     apiv1::Enum* noteHeadSchemeEnum() const { return api()->get_noteHeadSchemeEnum(); }
     209            0 :     apiv1::Enum* noteHeadGroupEnum() const { return api()->get_noteHeadGroupEnum(); }
     210            0 :     apiv1::Enum* noteTypeEnum() const { return api()->get_noteTypeEnum(); }
     211            0 :     apiv1::Enum* playEventTypeEnum() const { return api()->get_playEventTypeEnum(); }
     212            0 :     apiv1::Enum* segmentTypeEnum() const { return api()->get_segmentTypeEnum(); }
     213            0 :     apiv1::Enum* barLineTypeEnum() const { return api()->get_barLineTypeEnum(); }
     214            0 :     apiv1::Enum* tidEnum() const { return api()->get_tidEnum(); }
     215            0 :     apiv1::Enum* lyricsSyllabicEnum() const { return api()->get_lyricsSyllabicEnum(); }
     216            0 :     apiv1::Enum* spannerAnchorEnum() const { return api()->get_spannerAnchorEnum(); }
     217            0 :     apiv1::Enum* mMRestRangeBracketTypeEnum() const { return api()->get_mMRestRangeBracketTypeEnum(); }
     218            0 :     apiv1::Enum* tupletNumberTypeEnum() const { return api()->get_tupletNumberTypeEnum(); }
     219            0 :     apiv1::Enum* tupletBracketTypeEnum() const { return api()->get_tupletBracketTypeEnum(); }
     220            0 :     apiv1::Enum* tripletFeelTypeEnum() const { return api()->get_tripletFeelTypeEnum(); }
     221            0 :     apiv1::Enum* guitarBendTypeEnum() const { return api()->get_guitarBendTypeEnum(); }
     222            0 :     apiv1::Enum* guitarBendShowHoldLineEnum() const { return api()->get_guitarBendShowHoldLineEnum(); }
     223            0 :     apiv1::Enum* clefTypeEnum() const { return api()->get_clefTypeEnum(); }
     224            0 :     apiv1::Enum* clefToBarlinePositionEnum() const { return api()->get_clefToBarlinePositionEnum(); }
     225            0 :     apiv1::Enum* dynamicTypeEnum() const { return api()->get_dynamicTypeEnum(); }
     226            0 :     apiv1::Enum* dynamicSpeedEnum() const { return api()->get_dynamicSpeedEnum(); }
     227            0 :     apiv1::Enum* lineTypeEnum() const { return api()->get_lineTypeEnum(); }
     228            0 :     apiv1::Enum* hookTypeEnum() const { return api()->get_hookTypeEnum(); }
     229            0 :     apiv1::Enum* keyModeEnum() const { return api()->get_keyModeEnum(); }
     230            0 :     apiv1::Enum* arpeggioTypeEnum() const { return api()->get_arpeggioTypeEnum(); }
     231            0 :     apiv1::Enum* intervalStepEnum() const { return api()->get_intervalStepEnum(); }
     232            0 :     apiv1::Enum* intervalTypeEnum() const { return api()->get_intervalTypeEnum(); }
     233            0 :     apiv1::Enum* instrumentLabelVisibilityEnum() const { return api()->get_instrumentLabelVisibilityEnum(); }
     234            0 :     apiv1::Enum* ornamentShowAccidentalEnum() const { return api()->get_ornamentShowAccidentalEnum(); }
     235            0 :     apiv1::Enum* partialSpannerDirectionEnum() const { return api()->get_partialSpannerDirectionEnum(); }
     236            0 :     apiv1::Enum* chordStylePresetEnum() const { return api()->get_chordStylePresetEnum(); }
     237            0 :     apiv1::Enum* playingTechniqueTypeEnum() const { return api()->get_playingTechniqueTypeEnum(); }
     238            0 :     apiv1::Enum* gradualTempoChangeTypeEnum() const { return api()->get_gradualTempoChangeTypeEnum(); }
     239            0 :     apiv1::Enum* changeMethodEnum() const { return api()->get_changeMethodEnum(); }
     240            0 :     apiv1::Enum* changeDirectionEnum() const { return api()->get_changeDirectionEnum(); }
     241            0 :     apiv1::Enum* accidentalRoleEnum() const { return api()->get_accidentalRoleEnum(); }
     242            0 :     apiv1::Enum* accidentalValEnum() const { return api()->get_accidentalValEnum(); }
     243            0 :     apiv1::Enum* fermataTypeEnum() const { return api()->get_fermataTypeEnum(); }
     244            0 :     apiv1::Enum* chordLineTypeEnum() const { return api()->get_chordLineTypeEnum(); }
     245            0 :     apiv1::Enum* slurStyleTypeEnum() const { return api()->get_slurStyleTypeEnum(); }
     246            0 :     apiv1::Enum* tremoloTypeEnum() const { return api()->get_tremoloTypeEnum(); }
     247            0 :     apiv1::Enum* tremoloChordTypeEnum() const { return api()->get_tremoloChordTypeEnum(); }
     248            0 :     apiv1::Enum* bracketTypeEnum() const { return api()->get_bracketTypeEnum(); }
     249            0 :     apiv1::Enum* jumpTypeEnum() const { return api()->get_jumpTypeEnum(); }
     250            0 :     apiv1::Enum* markerTypeEnum() const { return api()->get_markerTypeEnum(); }
     251            0 :     apiv1::Enum* measureNumberModeEnum() const { return api()->get_measureNumberModeEnum(); }
     252            0 :     apiv1::Enum* staffGroupEnum() const { return api()->get_staffGroupEnum(); }
     253            0 :     apiv1::Enum* ottavaTypeEnum() const { return api()->get_ottavaTypeEnum(); }
     254            0 :     apiv1::Enum* hairpinTypeEnum() const { return api()->get_hairpinTypeEnum(); }
     255            0 :     apiv1::Enum* trillTypeEnum() const { return api()->get_trillTypeEnum(); }
     256            0 :     apiv1::Enum* vibratoTypeEnum() const { return api()->get_vibratoTypeEnum(); }
     257            0 :     apiv1::Enum* articulationTextTypeEnum() const { return api()->get_articulationTextTypeEnum(); }
     258            0 :     apiv1::Enum* lyricsDashSystemStartEnum() const { return api()->get_lyricsDashSystemStartEnum(); }
     259            0 :     apiv1::Enum* noteLineEndPlacementEnum() const { return api()->get_noteLineEndPlacementEnum(); }
     260            0 :     apiv1::Enum* spannerSegmentTypeEnum() const { return api()->get_spannerSegmentTypeEnum(); }
     261            0 :     apiv1::Enum* tiePlacementEnum() const { return api()->get_tiePlacementEnum(); }
     262            0 :     apiv1::Enum* tieDotsPlacementEnum() const { return api()->get_tieDotsPlacementEnum(); }
     263            0 :     apiv1::Enum* timeSigTypeEnum() const { return api()->get_timeSigTypeEnum(); }
     264            0 :     apiv1::Enum* timeSigPlacementEnum() const { return api()->get_timeSigPlacementEnum(); }
     265            0 :     apiv1::Enum* timeSigStyleEnum() const { return api()->get_timeSigStyleEnum(); }
     266            0 :     apiv1::Enum* timeSigVSMarginEnum() const { return api()->get_timeSigVSMarginEnum(); }
     267            0 :     apiv1::Enum* noteSpellingTypeEnum() const { return api()->get_noteSpellingTypeEnum(); }
     268            0 :     apiv1::Enum* keyEnum() const { return api()->get_keyEnum(); }
     269            0 :     apiv1::Enum* updateModeEnum() const { return api()->get_updateModeEnum(); }
     270            0 :     apiv1::Enum* layoutFlagEnum() const { return api()->get_layoutFlagEnum(); }
     271            0 :     apiv1::Enum* layoutModeEnum() const { return api()->get_layoutModeEnum(); }
     272            0 :     apiv1::Enum* tappingHandEnum() const { return api()->get_tappingHandEnum(); }
     273            0 :     apiv1::Enum* lHTappingSymbolEnum() const { return api()->get_lHTappingSymbolEnum(); }
     274            0 :     apiv1::Enum* rHTappingSymbolEnum() const { return api()->get_rHTappingSymbolEnum(); }
     275            0 :     apiv1::Enum* lHTappingShowItemsEnum() const { return api()->get_lHTappingShowItemsEnum(); }
     276            0 :     apiv1::Enum* parenthesesModeEnum() const { return api()->get_parenthesesModeEnum(); }
     277            0 :     apiv1::Enum* repeatPlayCountPresetEnum() const { return api()->get_repeatPlayCountPresetEnum(); }
     278            0 :     apiv1::Enum* measureNumberPlacementEnum() const { return api()->get_measureNumberPlacementEnum(); }
     279            0 :     apiv1::Enum* symIdEnum() const { return api()->get_symIdEnum(); }
     280            0 :     apiv1::Enum* cursorEnum() const { return api()->get_cursorEnum(); }
     281              : 
     282            0 :     Q_INVOKABLE apiv1::Score* newScore(const QString& name, const QString& part, int measures)
     283              :     {
     284            0 :         return api()->newScore(name, part, measures);
     285              :     }
     286              : 
     287            0 :     Q_INVOKABLE apiv1::EngravingItem* newElement(int type) { return api()->newElement(type); }
     288            0 :     Q_INVOKABLE void removeElement(apiv1::EngravingItem* wrapped) { api()->removeElement(wrapped); }
     289            0 :     Q_INVOKABLE void cmd(const QString& code) { api()->cmd(code); }
     290            0 :     Q_INVOKABLE bool writeScore(apiv1::Score* s, const QString& name, const QString& ext)
     291              :     {
     292            0 :         return api()->writeScore(s, name, ext);
     293              :     }
     294              : 
     295            0 :     Q_INVOKABLE apiv1::Score* readScore(const QString& name, bool noninteractive = false)
     296              :     {
     297            0 :         return api()->readScore(name, noninteractive);
     298              :     }
     299              : 
     300            0 :     Q_INVOKABLE void closeScore(apiv1::Score* s) { api()->closeScore(s); }
     301              : 
     302            0 :     Q_INVOKABLE void log(const QString& m) { api()->log(m); }
     303            0 :     Q_INVOKABLE void logn(const QString& m) { api()->logn(m); }
     304            0 :     Q_INVOKABLE void log2(const QString& t, const QString& m) { api()->log2(t, m); }
     305            0 :     Q_INVOKABLE void openLog(const QString& f) { api()->openLog(f); }
     306            0 :     Q_INVOKABLE void closeLog() { api()->closeLog(); }
     307              : 
     308            0 :     Q_INVOKABLE apiv1::Fraction* fraction(int numerator, int denominator) const
     309              :     {
     310            0 :         return api()->fraction(numerator, denominator);
     311              :     }
     312              : 
     313            0 :     Q_INVOKABLE apiv1::Fraction* fractionFromTicks(int ticks) const
     314              :     {
     315            0 :         return api()->fractionFromTicks(ticks);
     316              :     }
     317              : 
     318            0 :     Q_INVOKABLE apiv1::OrnamentIntervalWrapper* defaultOrnamentInterval() const
     319              :     {
     320            0 :         return api()->defaultOrnamentInterval();
     321              :     }
     322              : 
     323            0 :     Q_INVOKABLE apiv1::OrnamentIntervalWrapper* ornamentInterval(int step, int type) const
     324              :     {
     325            0 :         return api()->ornamentInterval(step, type);
     326              :     }
     327              : 
     328            0 :     Q_INVOKABLE apiv1::IntervalWrapper* interval(int diatonic, int chromatic) const
     329              :     {
     330            0 :         return api()->interval(diatonic, chromatic);
     331              :     }
     332              : 
     333            0 :     Q_INVOKABLE apiv1::IntervalWrapper* intervalFromOrnamentInterval(apiv1::OrnamentIntervalWrapper* o) const
     334              :     {
     335            0 :         return api()->intervalFromOrnamentInterval(o);
     336              :     }
     337              : 
     338            0 :     Q_INVOKABLE void quit() { api()->quit(); }
     339              : 
     340              : private:
     341              : 
     342              :     template<typename T>
     343            0 :     QJSValue makeEnum(muse::api::EnumType type = muse::api::EnumType::Undefined) const
     344              :     {
     345            0 :         if (type == muse::api::EnumType::Undefined) {
     346            0 :             type = engine()->apiversion() == 1 ? muse::api::EnumType::Int : muse::api::EnumType::String;
     347              :         }
     348              :         return muse::api::enumToJsValue(engine(),
     349            0 :                                         QMetaEnum::fromType<T>(),
     350            0 :                                         type);
     351              :     }
     352              : 
     353              :     mutable PluginAPI* m_api = nullptr;
     354              :     mutable bool m_selfApi = false;
     355              : };
     356              : }
        

Generated by: LCOV version 2.0-1