headless-chicken: force setting of region length properties, clean up code.
[ardour.git] / libs / surfaces / push2 / mode.h
1 #ifndef __ardour_push2_mode_h__
2 #define __ardour_push2_mode_h__
3
4 #include <vector>
5
6 class MusicalMode
7 {
8   public:
9         enum Type {
10                 Dorian,
11                 IonianMajor,
12                 Minor,
13                 HarmonicMinor,
14                 MelodicMinorAscending,
15                 MelodicMinorDescending,
16                 Phrygian,
17                 Lydian,
18                 Mixolydian,
19                 Aeolian,
20                 Locrian,
21                 PentatonicMajor,
22                 PentatonicMinor,
23                 Chromatic,
24                 BluesScale,
25                 NeapolitanMinor,
26                 NeapolitanMajor,
27                 Oriental,
28                 DoubleHarmonic,
29                 Enigmatic,
30                 Hirajoshi,
31                 HungarianMinor,
32                 HungarianMajor,
33                 Kumoi,
34                 Iwato,
35                 Hindu,
36                 Spanish8Tone,
37                 Pelog,
38                 HungarianGypsy,
39                 Overtone,
40                 LeadingWholeTone,
41                 Arabian,
42                 Balinese,
43                 Gypsy,
44                 Mohammedan,
45                 Javanese,
46                 Persian,
47                 Algerian
48         };
49
50         MusicalMode (Type t);
51         ~MusicalMode ();
52
53         std::vector<float> steps;
54
55   private:
56         static void fill (MusicalMode&, Type);
57 };
58
59 #endif /* __ardour_push2_mode_h__ */