Line data Source code
1 : #ifndef MU_IMPORTEXPORT_GPDRUMSETRESOLVER_H
2 : #define MU_IMPORTEXPORT_GPDRUMSETRESOLVER_H
3 :
4 : #include <map>
5 : #include <list>
6 :
7 : #include "types/string.h"
8 :
9 : namespace mu::iex::guitarpro {
10 : struct GPDrum {
11 : int32_t pitch = -1;
12 : int32_t element = -1;
13 : int32_t variation = -1;
14 : muse::String _name;
15 :
16 : GPDrum() {}
17 26962 : GPDrum(int32_t pitch, int32_t element, int32_t variation, const muse::String& name = u"drmkt")
18 26962 : : pitch(pitch), element(element), variation(variation), _name(name) {}
19 : };
20 :
21 : class GPDrumSetResolver
22 : {
23 : public:
24 :
25 221 : GPDrumSetResolver() = default;
26 442 : virtual ~GPDrumSetResolver() = default;
27 :
28 : void initGPDrum();
29 :
30 : int32_t pitch(int32_t element, int32_t variation, const muse::String& name) const;
31 :
32 : private:
33 :
34 : void addDrum(const GPDrum& drum);
35 :
36 : std::map<muse::String, std::list<GPDrum> > _drum;
37 : };
38 : } // namespace mu::iex::guitarpro
39 : #endif // MU_IMPORTEXPORT_GPDRUMSETRESOLVER_H
|