From 4c71743820903ed150db153faa5fd2e549ed97a1 Mon Sep 17 00:00:00 2001 From: fred Date: Fri, 8 Nov 1996 21:53:58 +0000 Subject: [PATCH] lilypond-0.0.9 --- hdr/swalker.hh | 34 ++++++++++++++++++++++++++++++++++ src/swalker.cc | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 hdr/swalker.hh create mode 100644 src/swalker.cc diff --git a/hdr/swalker.hh b/hdr/swalker.hh new file mode 100644 index 0000000000..c00923ff99 --- /dev/null +++ b/hdr/swalker.hh @@ -0,0 +1,34 @@ + +/* + swalker.hh -- part of LilyPond + + (c) 1996 Han-Wen Nienhuys +*/ + +#ifndef SWALKER_HH +#define SWALKER_HH + +#include "staff.hh" + +struct Staff_walker : public PCursor { + Staff * staff_; + PScore * pscore_; + + int break_status; + + /****************/ + int priority() const; // Command + Real when() const; + virtual ~Staff_walker(); + Staff_walker(Staff*, PScore*); + void process() ; + virtual void process_command(Command *)=0; + virtual void process_requests()=0; +}; +/** + manage run-time info when walking staffcolumns such as: key, + meter, pending beams & slurs + */ + +#endif // SWALKER_HH + diff --git a/src/swalker.cc b/src/swalker.cc new file mode 100644 index 0000000000..db48fd1f82 --- /dev/null +++ b/src/swalker.cc @@ -0,0 +1,32 @@ +#include "request.hh" +#include "swalker.hh" +#include "stcol.hh" + +Staff_walker::~Staff_walker() {} + +Staff_walker::Staff_walker(Staff * s, PScore*ps ) + : PCursor (s->cols) +{ + staff_ = s; + pscore_ = ps; + break_status = BREAK_END - BREAK_PRE; +} + +Real +Staff_walker::when() const +{ + return (* (PCursor *) this)->when(); +} + +void +Staff_walker::process() +{ + break_status = BREAK_END - BREAK_PRE; + + for (int i = 0 ; i < (*this)->s_commands.sz(); i++) { + process_command((*this)->s_commands[i]); + } + + process_requests(); +} + -- 2.39.5