MuseScore Plugins  3.2.3
Plugins API for MuseScore
part.h
1 //=============================================================================
2 // MuseScore
3 // Music Composition & Notation
4 //
5 // Copyright (C) 2019 Werner Schweer and others
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2
9 // as published by the Free Software Foundation and appearing in
10 // the file LICENCE.GPL
11 //=============================================================================
12 
13 #ifndef __PLUGIN_API_PART_H__
14 #define __PLUGIN_API_PART_H__
15 
16 #include "scoreelement.h"
17 #include "libmscore/part.h"
18 
19 namespace Ms {
20 namespace PluginAPI {
21 
22 //---------------------------------------------------------
23 // Part
24 //---------------------------------------------------------
25 
27  Q_OBJECT
28  Q_PROPERTY(int startTrack READ startTrack)
29  Q_PROPERTY(int endTrack READ endTrack)
31  Q_PROPERTY(QString instrumentId READ instrumentId)
33  Q_PROPERTY(int harmonyCount READ harmonyCount)
35  Q_PROPERTY(bool hasDrumStaff READ hasDrumStaff)
37  Q_PROPERTY(bool hasPitchedStaff READ hasPitchedStaff)
39  Q_PROPERTY(bool hasTabStaff READ hasTabStaff)
41  Q_PROPERTY(int lyricCount READ lyricCount)
43  Q_PROPERTY(int midiChannel READ midiChannel)
45  Q_PROPERTY(int midiProgram READ midiProgram)
49  Q_PROPERTY(QString longName READ longName)
53  Q_PROPERTY(QString shortName READ shortName)
59  Q_PROPERTY(QString partName READ partName)
63  Q_PROPERTY(bool show READ show)
64 
65  public:
67  Part(Ms::Part* p = nullptr, Ownership o = Ownership::SCORE)
68  : ScoreElement(p, o) {}
69 
70  Ms::Part* part() { return toPart(e); }
71  const Ms::Part* part() const { return toPart(e); }
72 
73  int startTrack() const { return part()->startTrack(); }
74  int endTrack() const { return part()->endTrack(); }
75  QString instrumentId() const { return part()->instrument()->instrumentId(); }
76  int harmonyCount() const { return part()->harmonyCount(); }
77  bool hasPitchedStaff() const { return part()->hasPitchedStaff(); }
78  bool hasTabStaff() const { return part()->hasTabStaff(); }
79  bool hasDrumStaff() const { return part()->hasDrumStaff(); }
80  int lyricCount() const { return part()->lyricCount(); }
81  int midiChannel() const { return part()->midiChannel(); }
82  int midiProgram() const { return part()->midiProgram(); }
83  QString longName() const { return part()->longName(); }
84  QString shortName() const { return part()->shortName(); }
85  QString partName() const { return part()->partName(); }
86  bool show() const { return part()->show(); }
88  };
89 } // namespace PluginAPI
90 } // namespace Ms
91 #endif
Base class for most of object wrappers exposed to QML.
Definition: scoreelement.h:42
bool hasDrumStaff
Whether it is a percussion staff.
Definition: part.h:35
QString longName
The long name for the current instrument.
Definition: part.h:49
Definition: part.h:26
QString instrumentId
The string identifier for the current instrument.
Definition: part.h:31
bool show
Whether part is shown or hidden.
Definition: part.h:63
int harmonyCount
The number of Chord Symbols.
Definition: part.h:33
int lyricCount
The number of lyrics syllables.
Definition: part.h:41
QString partName
The name of the current part of music.
Definition: part.h:59
Definition: cursor.cpp:29
int midiChannel
One of 16 music channels that can be assigned an instrument.
Definition: part.h:43
QString shortName
The short name for the current instrument.
Definition: part.h:53
int midiProgram
One of the 128 different instruments in General MIDI.
Definition: part.h:45
bool hasTabStaff
Whether it is a tablature staff.
Definition: part.h:39
bool hasPitchedStaff
Whether it is a 'normal' staff with notes.
Definition: part.h:37