make dist;
setversion
LILYVER=$NEWVER
-mv lilypond-$LILYVER.tar.gz ../releases
+
+tarball=lilypond-$LILYVER.tar.gz
+patch=patch-$LILYVER.gz
+
+mv $tarball ../releases
cd ../test
$heredir/bin/make_patch $LASTVER $NEWVER lilypond
gzip -f9 patch-$NEWVER
-mv patch-$NEWVER.gz ../patches/
+mv $patch ../patches/
RPMS=`find ~/rpms/ -name lilypond-$NEWVER'*'rpm`
rm *.rpm {lilypond,patch}-*.gz
if [ ! -z $RPMS ]; then
ln $RPMS .
fi
-ln ../releases/lilypond-$NEWVER.tar.gz .
-ln ../patches/patch-$NEWVER.gz .
+
+ln ../releases/$tarball .
+ln ../patches/$patch .
+
-RPMS=`echo *.rpm`
-tar cf updeet {lily,patch-}*.gz $RPMS
+if [ ! -z $RPMS ]; then
+ RPMS=lilypond-$LILYVER-1.i386.rpm lilypond-$LILYVER-1.src.rpm
+fi
+tar cf updeet $tarball $patch $RPMS
tar tfv updeet
#include "register.hh"
class Note_column_register :public Request_register {
+ Rest_column * rest_col_l();
+ Note_column * note_col_l();
+
+ Array< Script * > script_l_arr_;
+ Stem * stem_l_;
Note_column *ncol_p_;
+ Rest_column *restcol_p_;
bool h_shift_b_;
int dir_i_;
+
/* *************** */
bool acceptable_elem_b(Staff_elem const*)const;
protected:
virtual void set_feature(Feature);
virtual void acknowledge_element(Staff_elem_info);
virtual void pre_move_processing();
-
+ virtual void post_move_processing();
public:
Note_column_register();
NAME_MEMBERS(Note_column_register);
--- /dev/null
+/*
+ rest-column.hh -- declare Rest_column
+
+ source file of the LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef REST_COLUMN_HH
+#define REST_COLUMN_HH
+
+#include "script-column.hh"
+
+/**
+ struct to treat a set of rests as union (one voicegroup should
+ only produce one rest.
+ */
+class Rest_column : public Script_column {
+ Array<Notehead*> head_l_arr_;
+public:
+ int dir_i_;
+ void add(Notehead *);
+ NAME_MEMBERS(Rest_column);
+ void translate_y(Real dy);
+};
+
+#endif // REST_COLUMN_HH
\item the flag
\item up/down position.
\end{itemize}
- */
-
-struct Stem : Item {
- /// heads that the stem encompasses (positions)
- int minnote, maxnote;
- /// false if in beam
- bool print_flag;
+ should move beam_{left, right} into Beam
+ */
+class Stem : public Item {
+
+ Real stem_bottom_f_, stem_top_f_;
- int beams_left;
- int beams_right;
/// needed for determining direction/length
- int staff_center;
-
+ int staff_size_i_;
/**extent of the stem (positions).
fractional, since Beam has to adapt them.
*/
- Real bot, top;
- Real stemlen;
-
- /// flagtype? 4 none, 8 8th flag, 0 = beam.
- int flag;
-
/**
geen gedonder, jij gaat onder.
- -1 stem points down, +1: stem points up
- */
+ -1 stem points down, +1: stem points up
+ */
+ Real stem_xoffset_f_;
+ /**
+ store the wholes (for vapourware tremolo)
+ */
+ Array<Notehead*> whole_l_arr_;
+ Array<Notehead*> head_l_arr_;
+ Array<Notehead*> rest_l_arr_;
+
+public:
+ /// flagtype? 4 none, 8 8th flag, 0 = beam.
+ int flag_i_;
- int dir_i_;
- Real stem_xoffset;
+ int beams_left_i_;
+ int beams_right_i_;
+
+ /// false if in beam
+ bool print_flag_b_;
- Array<Notehead*> heads;
+ int dir_i_;
+
/* *************** */
- Stem(int center); //, Moment duration);
+ Stem(int staff_size_i);
/// ensure that this Stem also encompasses the Notehead #n#
void add(Notehead*n);
NAME_MEMBERS(Stem);
- Real hindex()const;
+ Real hpos_f()const;
+
void do_print() const;
void set_stemend(Real);
int get_default_dir();
void set_default_stemlen();
void set_default_extents();
void set_noteheads();
- void do_pre_processing();
- virtual Interval do_width() const;
+ Real stem_length_f()const;
+ Real stem_end_f()const;
+ Real stem_start_f() const;
+ bool invisible_b()const;
+
+ /// heads that the stem encompasses (positions)
+ int max_head_i() const;
+ int min_head_i() const;
+protected:
+ void do_pre_processing();
+ virtual Interval do_width() const;
Molecule* brew_molecule_p() const;
};
#endif
--- /dev/null
+/*
+ rest-collision.cc -- implement Rest_collision
+
+ source file of the LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "rest-collision.hh"
+#include "rest-column.hh"
+#include "collision.hh"
+
+void
+Rest_collision::add(Rest_column *rc_l)
+{
+ rest_l_arr_.push(rc_l);
+ add_dependency(rc_l);
+}
+void
+Rest_collision::add(Collision * c_l)
+{
+ add_dependency(c_l);
+ for (int i=0; i < c_l->clash_l_arr_.size(); i ++)
+ ncol_l_arr_.push(c_l->clash_l_arr_[i]);
+}
+
+
+void
+Rest_collision::do_post_processing()
+{
+ #if 0
+ bool rest_b_a[4];
+ rest_b_a[j] = (col_l_a[j]) ? col_l_a[j]->rest_b_ : false;
+ do {
+ int i1 = idx(d, false);
+ int i2 = idx(d,true);
+ if (!intersection(y_extent[i1] ,
+ y_extent[i2]).empty_b()) {
+ if (rest_b_a[i1]) {
+ y_off[i1] = -y_extent[i1][-d] + y_extent[1][d] + d*4; // ugh
+ y_extent[i1] += y_off[i1];
+ }
+ }
+ } while ((d *= -1) != 1);
+
+ do {
+ int i1 = idx(d, false);
+ int i2 = idx(-d,false);
+
+ if (d*(y_extent[i1][-d] - y_extent[i2][d] )< 0&& rest_b_a[i1]) {
+ y_off[i1] = -y_extent[i1][-d] + y_extent[i2][d] +d* 4; // ugh
+ y_extent[i1] += y_off[i1];
+ }
+ } while ((d *= -1) != 1);
+
+#endif
+}
+IMPLEMENT_STATIC_NAME(Rest_collision);
--- /dev/null
+/*
+ rest-column.cc -- implement Rest_column
+
+ source file of the LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "rest-column.hh"
+#include "notehead.hh"
+#include "rest-column.hh"
+
+void
+Rest_column::add(Notehead *n_l)
+{
+ add_support(n_l);
+ head_l_arr_.push(n_l);
+}
+
+void
+Rest_column::translate_y(Real dy_f)
+{
+ for (int i=0; i < head_l_arr_.size(); i++)
+ head_l_arr_[i]->translate(Offset(0,dy_f));
+}
+
+IMPLEMENT_STATIC_NAME(Rest_column);