LCOV - code coverage report
Current view: top level - src/importexport/guitarpro/internal - guitarprodrumset.cpp Coverage Total Hit
Test: filtered_coverage.info Lines: 29.2 % 271 79
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) 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              : #include "guitarprodrumset.h"
      24              : #include "engraving/dom/drumset.h"
      25              : #include "engraving/dom/instrument.h"
      26              : #include "engraving/types/typesconv.h"
      27              : 
      28              : namespace mu::iex::guitarpro::drumset {
      29              : //---------------------------------------------------------
      30              : //   initGuitarProDrumset
      31              : //---------------------------------------------------------
      32              : 
      33           80 : void initGuitarProDrumset()
      34              : {
      35              :     using namespace mu::engraving;
      36              : 
      37           80 :     if (!gpDrumset) {
      38            1 :         gpDrumset = new Drumset();
      39          129 :         for (int i = 0; i < DRUM_INSTRUMENTS; ++i) {
      40          128 :             gpDrumset->drum(i).name.clear();
      41          128 :             gpDrumset->drum(i).notehead = NoteHeadGroup::HEAD_INVALID;
      42          128 :             gpDrumset->drum(i).line     = 0;
      43          128 :             gpDrumset->drum(i).shortcut.clear();
      44          128 :             gpDrumset->drum(i).voice    = 0;
      45          128 :             gpDrumset->drum(i).stemDirection = DirectionV::UP;
      46          128 :             gpDrumset->drum(i).panelRow = -1;
      47          128 :             gpDrumset->drum(i).panelColumn = -1;
      48              :         }
      49              :         // new drumset determined via guitar pro (third argument specifies position on staff, 10 = C3, 9 = D3, 8 = E3,...)
      50              : 
      51            1 :         gpDrumset->drum(27) = DrumInstrument(TConv::userName(DrumNum(27)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      52            1 :         gpDrumset->drum(28) = DrumInstrument(TConv::userName(DrumNum(28)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      53            1 :         gpDrumset->drum(29) = DrumInstrument(TConv::userName(DrumNum(29)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      54              : 
      55            1 :         gpDrumset->drum(30) = DrumInstrument(TConv::userName(DrumNum(30)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      56            1 :         gpDrumset->drum(31) = DrumInstrument(TConv::userName(DrumNum(31)), NoteHeadGroup::HEAD_CROSS, 3, DirectionV::UP);
      57            1 :         gpDrumset->drum(32) = DrumInstrument(TConv::userName(DrumNum(32)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      58            1 :         gpDrumset->drum(33) = DrumInstrument(TConv::userName(DrumNum(33)), NoteHeadGroup::HEAD_CROSS, 3, DirectionV::UP);
      59            1 :         gpDrumset->drum(34) = DrumInstrument(TConv::userName(DrumNum(34)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      60            1 :         gpDrumset->drum(35) = DrumInstrument(TConv::userName(DrumNum(35)), NoteHeadGroup::HEAD_NORMAL, 8, DirectionV::UP);
      61            1 :         gpDrumset->drum(36) = DrumInstrument(TConv::userName(DrumNum(36)), NoteHeadGroup::HEAD_NORMAL, 7, DirectionV::UP);
      62            1 :         gpDrumset->drum(37) = DrumInstrument(TConv::userName(DrumNum(37)), NoteHeadGroup::HEAD_CROSS, 3, DirectionV::UP);
      63            1 :         gpDrumset->drum(38) = DrumInstrument(TConv::userName(DrumNum(38)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      64            1 :         gpDrumset->drum(39) = DrumInstrument(TConv::userName(DrumNum(39)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      65              : 
      66            1 :         gpDrumset->drum(40) = DrumInstrument(TConv::userName(DrumNum(40)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      67            1 :         gpDrumset->drum(41) = DrumInstrument(TConv::userName(DrumNum(41)), NoteHeadGroup::HEAD_NORMAL, 6, DirectionV::UP);
      68            1 :         gpDrumset->drum(42) = DrumInstrument(TConv::userName(DrumNum(42)), NoteHeadGroup::HEAD_CROSS, -1, DirectionV::UP);
      69            1 :         gpDrumset->drum(43) = DrumInstrument(TConv::userName(DrumNum(43)), NoteHeadGroup::HEAD_NORMAL, 6, DirectionV::UP);
      70            1 :         gpDrumset->drum(44) = DrumInstrument(TConv::userName(DrumNum(44)), NoteHeadGroup::HEAD_CROSS, 9, DirectionV::UP);
      71            1 :         gpDrumset->drum(45) = DrumInstrument(TConv::userName(DrumNum(45)), NoteHeadGroup::HEAD_NORMAL, 5, DirectionV::UP);
      72            1 :         gpDrumset->drum(46) = DrumInstrument(TConv::userName(DrumNum(46)), NoteHeadGroup::HEAD_XCIRCLE, -1, DirectionV::UP);
      73            1 :         gpDrumset->drum(47) = DrumInstrument(TConv::userName(DrumNum(47)), NoteHeadGroup::HEAD_NORMAL, 4, DirectionV::UP);
      74            1 :         gpDrumset->drum(48) = DrumInstrument(TConv::userName(DrumNum(48)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
      75            1 :         gpDrumset->drum(49) = DrumInstrument(TConv::userName(DrumNum(49)), NoteHeadGroup::HEAD_CROSS, -2, DirectionV::UP);
      76              : 
      77            1 :         gpDrumset->drum(50) = DrumInstrument(TConv::userName(DrumNum(50)), NoteHeadGroup::HEAD_NORMAL, 1, DirectionV::UP);
      78            1 :         gpDrumset->drum(51) = DrumInstrument(TConv::userName(DrumNum(51)), NoteHeadGroup::HEAD_CROSS, 0, DirectionV::UP);
      79            1 :         gpDrumset->drum(52) = DrumInstrument(TConv::userName(DrumNum(52)), NoteHeadGroup::HEAD_HEAVY_CROSS_HAT, -3, DirectionV::UP);
      80            1 :         gpDrumset->drum(53) = DrumInstrument(TConv::userName(DrumNum(53)), NoteHeadGroup::HEAD_DIAMOND, 0, DirectionV::UP);
      81            1 :         gpDrumset->drum(54) = DrumInstrument(TConv::userName(DrumNum(54)), NoteHeadGroup::HEAD_CROSS, 2, DirectionV::UP);
      82            1 :         gpDrumset->drum(55) = DrumInstrument(TConv::userName(DrumNum(55)), NoteHeadGroup::HEAD_CROSS, -2, DirectionV::UP);
      83            1 :         gpDrumset->drum(56) = DrumInstrument(TConv::userName(DrumNum(56)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::UP);
      84            1 :         gpDrumset->drum(57) = DrumInstrument(TConv::userName(DrumNum(57)), NoteHeadGroup::HEAD_CROSS, -3, DirectionV::UP);
      85            1 :         gpDrumset->drum(58) = DrumInstrument(TConv::userName(DrumNum(58)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      86            1 :         gpDrumset->drum(59) = DrumInstrument(TConv::userName(DrumNum(59)), NoteHeadGroup::HEAD_CROSS, 2, DirectionV::UP);
      87              : 
      88            1 :         gpDrumset->drum(60) = DrumInstrument(TConv::userName(DrumNum(60)), NoteHeadGroup::HEAD_NORMAL, 8, DirectionV::UP);
      89            1 :         gpDrumset->drum(61) = DrumInstrument(TConv::userName(DrumNum(61)), NoteHeadGroup::HEAD_NORMAL, 9, DirectionV::UP);
      90            1 :         gpDrumset->drum(62) = DrumInstrument(TConv::userName(DrumNum(62)), NoteHeadGroup::HEAD_CROSS, 5, DirectionV::UP);
      91            1 :         gpDrumset->drum(63) = DrumInstrument(TConv::userName(DrumNum(63)), NoteHeadGroup::HEAD_CROSS, 4, DirectionV::UP);
      92            1 :         gpDrumset->drum(64) = DrumInstrument(TConv::userName(DrumNum(64)), NoteHeadGroup::HEAD_CROSS, 6, DirectionV::UP);
      93            1 :         gpDrumset->drum(65) = DrumInstrument(TConv::userName(DrumNum(65)), NoteHeadGroup::HEAD_CROSS, 8, DirectionV::UP);
      94            1 :         gpDrumset->drum(66) = DrumInstrument(TConv::userName(DrumNum(66)), NoteHeadGroup::HEAD_CROSS, 9, DirectionV::UP);
      95            1 :         gpDrumset->drum(67) = DrumInstrument(TConv::userName(DrumNum(67)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      96            1 :         gpDrumset->drum(68) = DrumInstrument(TConv::userName(DrumNum(68)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      97            1 :         gpDrumset->drum(69) = DrumInstrument(TConv::userName(DrumNum(69)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
      98              : 
      99            1 :         gpDrumset->drum(70) = DrumInstrument(TConv::userName(DrumNum(70)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     100            1 :         gpDrumset->drum(71) = DrumInstrument(TConv::userName(DrumNum(71)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     101            1 :         gpDrumset->drum(72) = DrumInstrument(TConv::userName(DrumNum(72)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     102            1 :         gpDrumset->drum(73) = DrumInstrument(TConv::userName(DrumNum(73)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     103            1 :         gpDrumset->drum(74) = DrumInstrument(TConv::userName(DrumNum(74)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     104            1 :         gpDrumset->drum(75) = DrumInstrument(TConv::userName(DrumNum(75)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     105            1 :         gpDrumset->drum(76) = DrumInstrument(TConv::userName(DrumNum(76)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     106            1 :         gpDrumset->drum(77) = DrumInstrument(TConv::userName(DrumNum(77)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     107            1 :         gpDrumset->drum(78) = DrumInstrument(TConv::userName(DrumNum(78)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     108            1 :         gpDrumset->drum(79) = DrumInstrument(TConv::userName(DrumNum(79)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     109              : 
     110            1 :         gpDrumset->drum(80) = DrumInstrument(TConv::userName(DrumNum(80)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     111            1 :         gpDrumset->drum(81) = DrumInstrument(TConv::userName(DrumNum(81)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     112            1 :         gpDrumset->drum(82) = DrumInstrument(TConv::userName(DrumNum(82)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     113            1 :         gpDrumset->drum(83) = DrumInstrument(TConv::userName(DrumNum(83)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     114            1 :         gpDrumset->drum(84) = DrumInstrument(TConv::userName(DrumNum(84)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     115            1 :         gpDrumset->drum(85) = DrumInstrument(TConv::userName(DrumNum(85)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     116            1 :         gpDrumset->drum(86) = DrumInstrument(TConv::userName(DrumNum(86)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     117            1 :         gpDrumset->drum(87) = DrumInstrument(TConv::userName(DrumNum(87)), NoteHeadGroup::HEAD_NORMAL, 3, DirectionV::UP);
     118              : 
     119            1 :         gpDrumset->drum(91) = DrumInstrument(TConv::userName(DrumNum(91)), NoteHeadGroup::HEAD_DIAMOND, 3, DirectionV::UP);
     120            1 :         gpDrumset->drum(92) = DrumInstrument(TConv::userName(DrumNum(46)), NoteHeadGroup::HEAD_CROSS, -1, DirectionV::UP);
     121            1 :         gpDrumset->drum(93) = DrumInstrument(TConv::userName(DrumNum(93)), NoteHeadGroup::HEAD_CROSS, 0, DirectionV::UP);
     122              : 
     123              :         //Additional clutch presets (midi by default can't play this)
     124            1 :         gpDrumset->drum(99) = DrumInstrument(TConv::userName(DrumNum(99)), NoteHeadGroup::HEAD_TRIANGLE_UP, 1, DirectionV::UP);
     125            1 :         gpDrumset->drum(102)= DrumInstrument(TConv::userName(DrumNum(102)), NoteHeadGroup::HEAD_TRIANGLE_UP, -1, DirectionV::UP);
     126              :     }
     127           80 : }
     128              : 
     129            0 : void initGuitarProPercussionSet(const GpDrumSet& ds)
     130              : {
     131              :     using namespace mu::engraving;
     132            0 :     switch (ds.idx) {
     133            0 :     case DrumSetType::DRUMS:
     134            0 :         break;
     135            0 :     case DrumSetType::AGOGO:
     136            0 :         if (!gpAgogoSet) {
     137            0 :             gpAgogoSet = new Drumset;
     138            0 :             gpAgogoSet->drum(67) = DrumInstrument(TConv::userName(DrumNum(67)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     139            0 :             gpAgogoSet->drum(68) = DrumInstrument(TConv::userName(DrumNum(68)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     140              :         }
     141            0 :         break;
     142            0 :     case DrumSetType::HAND_CLAP:
     143            0 :         if (!gpHandClapSet) {
     144            0 :             gpHandClapSet = new Drumset;
     145            0 :             gpHandClapSet->drum(39) = DrumInstrument(TConv::userName(DrumNum(39)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     146              :         }
     147            0 :         break;
     148            0 :     case DrumSetType::TAMBOURINE:
     149            0 :         if (!gpTambourineSet) {
     150            0 :             gpTambourineSet = new Drumset;
     151            0 :             gpTambourineSet->drum(54) = DrumInstrument(TConv::userName(DrumNum(54)), NoteHeadGroup::HEAD_TRIANGLE_UP, 0, DirectionV::DOWN);
     152              :         }
     153            0 :         break;
     154            0 :     case DrumSetType::COWBELL:
     155            0 :         if (!gpCowbellSet) {
     156            0 :             gpCowbellSet = new Drumset;
     157            0 :             gpCowbellSet->drum(56) = DrumInstrument(TConv::userName(DrumNum(56)), NoteHeadGroup::HEAD_TRIANGLE_UP, 2, DirectionV::DOWN);
     158            0 :             gpCowbellSet->drum(99) = DrumInstrument(TConv::userName(DrumNum(99)), NoteHeadGroup::HEAD_TRIANGLE_UP, 4, DirectionV::UP);
     159            0 :             gpCowbellSet->drum(102) = DrumInstrument(TConv::userName(DrumNum(102)), NoteHeadGroup::HEAD_TRIANGLE_UP, 0, DirectionV::DOWN);
     160              :         }
     161            0 :         break;
     162            0 :     case DrumSetType::VIBRASLAP:
     163            0 :         if (!gpVibraslapSet) {
     164            0 :             gpVibraslapSet = new Drumset;
     165            0 :             gpVibraslapSet->drum(58) = DrumInstrument(TConv::userName(DrumNum(58)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     166              :         }
     167            0 :         break;
     168            0 :     case DrumSetType::BONGOS:
     169            0 :         if (!gpBongosSet) {
     170            0 :             gpBongosSet = new Drumset;
     171            0 :             gpBongosSet->drum(60) = DrumInstrument(TConv::userName(DrumNum(60)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     172            0 :             gpBongosSet->drum(61) = DrumInstrument(TConv::userName(DrumNum(61)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     173              :         }
     174            0 :         break;
     175            0 :     case DrumSetType::CONGAS:
     176            0 :         if (!gpCongasSet) {
     177            0 :             gpCongasSet = new Drumset;
     178            0 :             gpCongasSet->drum(62) = DrumInstrument(TConv::userName(DrumNum(62)), NoteHeadGroup::HEAD_CROSS, 0, DirectionV::DOWN);
     179            0 :             gpCongasSet->drum(63) = DrumInstrument(TConv::userName(DrumNum(63)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     180            0 :             gpCongasSet->drum(64) = DrumInstrument(TConv::userName(DrumNum(64)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     181              :         }
     182            0 :         break;
     183            0 :     case DrumSetType::TIMBALE:
     184            0 :         if (!gpTimbalesSet) {
     185            0 :             gpTimbalesSet = new Drumset;
     186            0 :             gpTimbalesSet->drum(65) = DrumInstrument(TConv::userName(DrumNum(65)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     187            0 :             gpTimbalesSet->drum(66) = DrumInstrument(TConv::userName(DrumNum(66)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     188              :         }
     189            0 :         break;
     190            0 :     case DrumSetType::CABASA:
     191            0 :         if (!gpCabasaSet) {
     192            0 :             gpCabasaSet = new Drumset;
     193            0 :             gpCabasaSet->drum(69) = DrumInstrument(TConv::userName(DrumNum(69)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     194              :         }
     195            0 :         break;
     196            0 :     case DrumSetType::MARACAS:
     197            0 :         if (!gpMaracasSet) {
     198            0 :             gpMaracasSet = new Drumset;
     199            0 :             gpMaracasSet->drum(70) = DrumInstrument(TConv::userName(DrumNum(70)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     200              :         }
     201            0 :         break;
     202            0 :     case DrumSetType::WHISTLE:
     203            0 :         if (!gpWhistleSet) {
     204            0 :             gpWhistleSet = new Drumset;
     205            0 :             gpWhistleSet->drum(71) = DrumInstrument(TConv::userName(DrumNum(71)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     206            0 :             gpWhistleSet->drum(72) = DrumInstrument(TConv::userName(DrumNum(72)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     207              :         }
     208            0 :         break;
     209            0 :     case DrumSetType::GUIRO:
     210            0 :         if (!gpGuiroSet) {
     211            0 :             gpGuiroSet = new Drumset;
     212            0 :             gpGuiroSet->drum(73) = DrumInstrument(TConv::userName(DrumNum(73)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     213            0 :             gpGuiroSet->drum(74) = DrumInstrument(TConv::userName(DrumNum(74)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     214              :         }
     215            0 :         break;
     216            0 :     case DrumSetType::CLAVES:
     217            0 :         if (!gpClavesSet) {
     218            0 :             gpClavesSet = new Drumset;
     219            0 :             gpClavesSet->drum(75) = DrumInstrument(TConv::userName(DrumNum(75)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     220              :         }
     221            0 :         break;
     222            0 :     case DrumSetType::WOODBLOCK:
     223            0 :         if (!gpWoodblockSet) {
     224            0 :             gpWoodblockSet = new Drumset;
     225            0 :             gpWoodblockSet->drum(76) = DrumInstrument(TConv::userName(DrumNum(76)), NoteHeadGroup::HEAD_NORMAL, 2, DirectionV::UP);
     226            0 :             gpWoodblockSet->drum(77) = DrumInstrument(TConv::userName(DrumNum(77)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     227              :         }
     228            0 :         break;
     229            0 :     case DrumSetType::CUICA:
     230            0 :         if (!gpCuicaSet) {
     231            0 :             gpCuicaSet = new Drumset;
     232            0 :             gpCuicaSet->drum(78) = DrumInstrument(TConv::userName(DrumNum(78)), NoteHeadGroup::HEAD_CROSS, 0, DirectionV::DOWN);
     233            0 :             gpCuicaSet->drum(79) = DrumInstrument(TConv::userName(DrumNum(79)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     234              :         }
     235            0 :         break;
     236            0 :     case DrumSetType::TRIANGLE:
     237            0 :         if (!gpTriangleSet) {
     238            0 :             gpTriangleSet = new Drumset;
     239            0 :             gpTriangleSet->drum(80) = DrumInstrument(TConv::userName(DrumNum(80)), NoteHeadGroup::HEAD_CROSS, 0, DirectionV::DOWN);
     240            0 :             gpTriangleSet->drum(81) = DrumInstrument(TConv::userName(DrumNum(81)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     241              :         }
     242            0 :         break;
     243            0 :     case DrumSetType::SHAKER:
     244            0 :         if (!gpShakerSet) {
     245            0 :             gpShakerSet = new Drumset;
     246            0 :             gpShakerSet->drum(82) = DrumInstrument(TConv::userName(DrumNum(82)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     247              :         }
     248            0 :         break;
     249            0 :     case DrumSetType::JINGLE_BELL:
     250            0 :         if (!gpJingleBellSet) {
     251            0 :             gpJingleBellSet = new Drumset;
     252            0 :             gpJingleBellSet->drum(83) = DrumInstrument(TConv::userName(DrumNum(83)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     253              :         }
     254            0 :         break;
     255            0 :     case DrumSetType::BELL_TREE:
     256            0 :         if (!gpBellTreeSet) {
     257            0 :             gpBellTreeSet = new Drumset;
     258            0 :             gpBellTreeSet->drum(84) = DrumInstrument(TConv::userName(DrumNum(84)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     259              :         }
     260            0 :         break;
     261            0 :     case DrumSetType::CASTANETS:
     262            0 :         if (!gpCastanetsSet) {
     263            0 :             gpCastanetsSet = new Drumset;
     264            0 :             gpCastanetsSet->drum(85) = DrumInstrument(TConv::userName(DrumNum(85)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     265              :         }
     266            0 :         break;
     267            0 :     case DrumSetType::SURDO:
     268            0 :         if (!gpSurdoSet) {
     269            0 :             gpSurdoSet = new Drumset;
     270            0 :             gpSurdoSet->drum(86) = DrumInstrument(TConv::userName(DrumNum(86)), NoteHeadGroup::HEAD_NORMAL, 0, DirectionV::DOWN);
     271            0 :             gpSurdoSet->drum(87) = DrumInstrument(TConv::userName(DrumNum(87)), NoteHeadGroup::HEAD_CROSS, 0, DirectionV::DOWN);
     272              :         }
     273            0 :         break;
     274              :     }
     275            0 : }
     276              : 
     277            0 : void setInstrumentDrumset(mu::engraving::Instrument* instrument, const GpDrumSet& ds)
     278              : {
     279            0 :     switch (ds.idx) {
     280            0 :     case DrumSetType::DRUMS:
     281            0 :         instrument->setDrumset(gpDrumset);
     282            0 :         break;
     283            0 :     case DrumSetType::AGOGO:
     284            0 :         instrument->setDrumset(gpAgogoSet);
     285            0 :         break;
     286            0 :     case DrumSetType::HAND_CLAP:
     287            0 :         instrument->setDrumset(gpHandClapSet);
     288            0 :         break;
     289            0 :     case DrumSetType::TAMBOURINE:
     290            0 :         instrument->setDrumset(gpTambourineSet);
     291            0 :         break;
     292            0 :     case DrumSetType::COWBELL:
     293            0 :         instrument->setDrumset(gpCowbellSet);
     294            0 :         break;
     295            0 :     case DrumSetType::VIBRASLAP:
     296            0 :         instrument->setDrumset(gpVibraslapSet);
     297            0 :         break;
     298            0 :     case DrumSetType::BONGOS:
     299            0 :         instrument->setDrumset(gpBongosSet);
     300            0 :         break;
     301            0 :     case DrumSetType::CONGAS:
     302            0 :         instrument->setDrumset(gpCongasSet);
     303            0 :         break;
     304            0 :     case DrumSetType::TIMBALE:
     305            0 :         instrument->setDrumset(gpTimbalesSet);
     306            0 :         break;
     307            0 :     case DrumSetType::CABASA:
     308            0 :         instrument->setDrumset(gpCabasaSet);
     309            0 :         break;
     310            0 :     case DrumSetType::MARACAS:
     311            0 :         instrument->setDrumset(gpMaracasSet);
     312            0 :         break;
     313            0 :     case DrumSetType::WHISTLE:
     314            0 :         instrument->setDrumset(gpWhistleSet);
     315            0 :         break;
     316            0 :     case DrumSetType::GUIRO:
     317            0 :         instrument->setDrumset(gpGuiroSet);
     318            0 :         break;
     319            0 :     case DrumSetType::CLAVES:
     320            0 :         instrument->setDrumset(gpClavesSet);
     321            0 :         break;
     322            0 :     case DrumSetType::WOODBLOCK:
     323            0 :         instrument->setDrumset(gpWoodblockSet);
     324            0 :         break;
     325            0 :     case DrumSetType::CUICA:
     326            0 :         instrument->setDrumset(gpCuicaSet);
     327            0 :         break;
     328            0 :     case DrumSetType::TRIANGLE:
     329            0 :         instrument->setDrumset(gpTriangleSet);
     330            0 :         break;
     331            0 :     case DrumSetType::SHAKER:
     332            0 :         instrument->setDrumset(gpShakerSet);
     333            0 :         break;
     334            0 :     case DrumSetType::JINGLE_BELL:
     335            0 :         instrument->setDrumset(gpJingleBellSet);
     336            0 :         break;
     337            0 :     case DrumSetType::BELL_TREE:
     338            0 :         instrument->setDrumset(gpBellTreeSet);
     339            0 :         break;
     340            0 :     case DrumSetType::CASTANETS:
     341            0 :         instrument->setDrumset(gpCastanetsSet);
     342            0 :         break;
     343            0 :     case DrumSetType::SURDO:
     344            0 :         instrument->setDrumset(gpSurdoSet);
     345            0 :         break;
     346              :     }
     347            0 : }
     348              : } // namespace mu::iex::guitarpro::drumset
        

Generated by: LCOV version 2.0-1