From 74afae5817e7d575488a868ce5afecafd24b86d6 Mon Sep 17 00:00:00 2001 From: fred Date: Mon, 18 Nov 1996 22:38:19 +0000 Subject: [PATCH] lilypond-0.0.10 --- src/key.cc | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/key.cc diff --git a/src/key.cc b/src/key.cc new file mode 100644 index 0000000000..303bf10beb --- /dev/null +++ b/src/key.cc @@ -0,0 +1,78 @@ +#include "key.hh" +#include "notename.hh" + +const int OCTAVES=14; +const int ZEROOCTAVE=7; + +Key::Key() +{ + accidentals.set_size(7); + for (int i= 0; i < 7 ; i++) + accidentals[i] = 0; +} + +Local_key::Local_key() +{ + octaves.set_size(OCTAVES); +} + +Key& +Local_key::oct(int i) +{ + return octaves[i+ZEROOCTAVE]; +} + +void +Key::set(int i, int a) +{ + assert(a > -3 && a < 3); + accidentals[i]=a; +} + + +void +Local_key::reset(Key k) +{ + for (int i= 0; i < OCTAVES ; i++) + octaves[i] = k; +} + +svec +Key::read(svec s) +{ + svec newkey; + + for (int i=0; i < s.sz(); i++) { + int large, small; + lookup_notename(large, small, s[i]); + accidentals[large]=small; + + newkey.add(large); + newkey.add(small); + } + return newkey; +} + +svec +Key::oldkey_undo(svec s) +{ + svec oldkey; + svec newkey; + newkey.set_size(7); + for (int i=0; i < newkey.sz(); i++) + newkey[i] = 0; + + for (int i=0; i < s.sz(); i++) { + int large, small; + lookup_notename(large, small, s[i]); + newkey[large] = small; + } + for (int i=0; i < newkey.sz(); i++) + if (accidentals[i] && accidentals[i] != newkey[i]) { + oldkey.add(i); + oldkey.add(0); + } + + + return oldkey; +} -- 2.39.5