2 key.cc -- implement Key, Octave_key
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
15 const int NUMBER_OF_OCTAVES=14; // ugh..
16 const int ZEROOCTAVE=7;
20 Octave_key::print () const
22 for (int i= 0; i < 7 ; i++)
23 DOUT << "note " << i << " acc: " << accidental_i_arr_[i] << "\n";
28 Octave_key::Octave_key()
30 accidental_i_arr_.set_size (7);
37 for (int i= 0; i < 7 ; i++)
38 accidental_i_arr_[i] = 0;
43 multi_octave_b_ = false;
44 octaves_.set_size (NUMBER_OF_OCTAVES);
48 Key::octave_to_index (int o) const
50 int i = o + ZEROOCTAVE;
53 warning ("Don't have that many octaves (" + String (o) + ")");
56 if (i >= NUMBER_OF_OCTAVES)
58 warning ("Don't have that many octaves (" + String (o) + ")");
59 i = NUMBER_OF_OCTAVES -1;
68 return octaves_[octave_to_index (i)];
73 Octave_key::set (int i, int a)
77 warning ("Underdone accidentals (" + String (a)+ ")");
82 warning ("Overdone accidentals (" + String (a) + ")");
85 accidental_i_arr_[i]=a;
89 Key::set (int o, int n , int a)
91 int i = octave_to_index (o);
92 octaves_[i].set (n,a);
96 Key::set (int n, int a)
98 for (int i= 0; i < NUMBER_OF_OCTAVES ; i++)
99 octaves_[i].set (n,a);
104 for (int i= 0; i < NUMBER_OF_OCTAVES ; i++)
105 octaves_[i].clear ();
110 for (int i= 0; i < NUMBER_OF_OCTAVES ; i++)
112 DOUT << "octave " << i - ZEROOCTAVE << " Octave_key { ";
113 octaves_[i].print ();