YSE sound engine  1.0
cross platform sound engine
 All Classes Namespaces Functions Pages
chord.hpp
1 /*
2  ==============================================================================
3 
4  chord.h
5  Created: 4 Apr 2014 10:22:53am
6  Author: yvan vander sanden
7 
8  ==============================================================================
9 */
10 
11 #ifndef CHORD_H_INCLUDED
12 #define CHORD_H_INCLUDED
13 
14 #include "../classes.hpp"
15 #include <vector>
16 
17 
18 namespace YSE {
19 
20  namespace MUSIC {
21 
22  class API chord {
23  private:
24  std::vector<note> notes;
25 
26  public:
27 
28  chord();
29  chord(const chord & object);
30  chord(UInt count, ...);
31 
32  UInt elms();
33 
34  chord & transpose(Flt value);
35 
36  chord & operator+=(const chord& object);
37  chord & operator-=(const chord& object);
38 
39  chord & operator+=(const note& object);
40  chord & operator-=(const note& object);
41 
42  Bool operator==(const chord& object);
43  Bool operator!=(const chord& object);
44 
45 
46  friend chord operator+(const chord &c, const note &n);
47  friend chord operator-(const chord &c, const note &n);
48 
49  friend chord operator+(const chord &c1, const chord &c2);
50  friend chord operator-(const chord &c1, const chord &c2);
51 
52  friend chord operator+(const note &n, const chord &c);
53  friend chord operator-(const note &n, const chord &c);
54  };
55 
56  }
57 
58 }
59 
60 
61 
62 #endif // CHORD_H_INCLUDED