+++ /dev/null
-/*
- complexcolumn.hh -- declare Complex_column
-
- source file of the LilyPond music typesetter
-
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-
-#ifndef COMPLEXCOLUMN_HH
-#define COMPLEXCOLUMN_HH
-
-#include "stcol.hh"
-
-/// column of Complex_staff: store one request
-struct Complex_column : Staff_column {
-
- Array<Request*> first_l_arr_;
- Array<Request*> second_l_arr_;
-
- Complex_staff* staff_l_;
-
- /* *************** */
-
- Slur_req *find_slur(Voice *);
-
- void typeset_musical_item(Item *);
- void typeset_breakable_items(Array<Item *> &pre_p_arr,
- Array<Item *> &nobreak_p_arr,
- Array<Item *> &post_p_arr);
- virtual void setup_one_request(Request*);
-
- Complex_column(Complex_staff*rs);
-};
-
-#endif // COMPLEXCOLUMN_HH
+++ /dev/null
-//
-// lyriccolumn.hh -- declare Lyric_column
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-
-#ifndef LYRIC_COLUMN_HH
-#define LYRIC_COLUMN_HH
-
-#include "key.hh"
-#include "stcol.hh"
-#include "staff.hh"
-
-/// (lcol)
-struct Lyric_column : Staff_column {
-
- Array<Lyric_req*> lreq_l_array_;
- Lyric_staff* lstaff_l_;
-
- void typeset_item(Item *);
- virtual void setup_one_request(Request*);
-
- Lyric_column(Lyric_staff*rs);
-};
-
-#endif // LYRIC_COLUMN_HH
-
-
-
-
+++ /dev/null
-//
-// midicolumn.hh -- declare Midi_column
-//
-// copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
-
-
-#ifndef MIDI_COLUMN_HH
-#define MIDI_COLUMN_HH
-
-#include "key.hh"
-#include "stcol.hh"
-#include "staff.hh"
-
-/// (mcol)
-struct Midi_column : Staff_column {
-
- Array<Melodic_req*> melreq_l_array_;
- Midi_staff* mstaff_l_;
-
- void note_on( Midi_track* midi_track_l );
- void note_off( Midi_track* midi_track_l, Moment next );
- virtual void setup_one_request(Request*);
-
- Midi_column(Midi_staff*rs);
-};
-
-#endif // MIDI_COLUMN_HH
-
+++ /dev/null
-//
-// midiscorewalker.hh -- declare Midi_score_walker
-//
-// (c) 1996,97 Han-Wen Nienhuys, Jan Nieuwenhuizen <jan@digicash.com>
-//
-
-#ifndef MIDI_SCORE_WALKER_HH
-#define MIDI_SCORE_WALKER_HH
-
-#include "proto.hh"
-#include "grouping.hh"
-#include "scorewalker.hh"
-#include "midiitem.hh"
-
-/// a simple walker which collects midi stuff, and then outputs
-struct Midi_score_walker : Score_walker {
- Midi_stream* midi_stream_l_;
-
- /* *************** */
- virtual void process();
-
- Midi_score_walker( Score* score_l, Midi_stream* midi_stream_l );
-};
-
-
-#endif // MIDI_SCORE_WALKER_HH
-
-
+++ /dev/null
-/*
- midistaff.hh -- part of LilyPond
-
- copyright 1997 Jan Nieuwenhuizen <jan@digicash.com>
- */
-
-#ifndef MIDI_STAFF_HH
-#define MIDI_STAFF_HH
-
-#include "staff.hh"
-
-///(mstaff)
-struct Midi_staff : Staff {
-// PStaff* pstaff_l_;
-
- Staff_column* create_col();
- virtual void set_output(PScore *);
- void midi( Midi_stream* midi_stream_l, int track_i );
- virtual Staff_walker *get_walker_p();
- Midi_staff();
-};
-
-#endif // MIDI_STAFF_HH
-
-
-
-
-
+++ /dev/null
-/*
- complexcolumn.cc -- implement Complex_column
-
- source file of the LilyPond music typesetter
-
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-#include "voice.hh"
-#include "debug.hh"
-#include "complexcolumn.hh"
-#include "pscore.hh"
-#include "request.hh"
-#include "pscore.hh"
-#include "sccol.hh"
-#include "complexstaff.hh"
-#include "misc.hh"
-
-void
-Complex_column::typeset_musical_item(Item *i)
-{
- assert(i);
- Score_column * sccol_l = musical_column_l_;
- staff_l_->pscore_l_->typeset_item(i, sccol_l->pcol_l_,
- staff_l_->pstaff_l_);
-}
-
-Complex_column::Complex_column(Complex_staff *staff_l)
-{
- staff_l_ = staff_l;
-}
-
-void
-Complex_column::setup_one_request(Request * j)
-{
- if (j->nonmus()) // ugh
- first_l_arr_.push(j);
- else if (j->musical())
- second_l_arr_.push(j);
-}
-
-/**
- align items in #item_l_arr#, return the width.
- */
-Interval
-align_items(Array<Item*> item_l_arr)
-{
- Interval wid(0,0);
- for (int i =0; i < item_l_arr.size(); i++) {
- Interval item_width= item_l_arr[i]->width();
- item_l_arr[i]->translate(Offset( wid.right - item_width.left ,0));
- wid.unite(item_width);
- }
- return wid;
-}
-
-void
-translate_items(Real x, Array<Item*> item_l_arr)
-{
- for (int i =0; i < item_l_arr.size(); i++)
- item_l_arr[i]->translate(Offset(x, 0));
-}
-/*
- UGR
- This still sux
- */
-void
-Complex_column::typeset_breakable_items(Array<Item *> &pre_p_arr,
- Array<Item *> &nobreak_p_arr,
- Array<Item *> &post_p_arr)
-{
- PCol * c= command_column_l_->pcol_l_;
- PScore *ps_l=staff_l_->pscore_l_;
- if (!c->breakable_b()) {
- for (int i =0; i < pre_p_arr.size(); i++)
- delete pre_p_arr[i];
- pre_p_arr.set_size(0);
- for (int i =0; i < post_p_arr.size(); i++)
- delete post_p_arr[i];
- post_p_arr.set_size(0);
- }
-
-
- for (int i =0; i < pre_p_arr.size(); i++) {
- ps_l->typeset_item(pre_p_arr[i], c, staff_l_->pstaff_l_,0);
- }
- for (int i =0; i < nobreak_p_arr.size(); i++) {
- ps_l->typeset_item(nobreak_p_arr[i], c, staff_l_->pstaff_l_,1);
- }
- for (int i =0; i < post_p_arr.size(); i++) {
- ps_l->typeset_item(post_p_arr[i], c, staff_l_->pstaff_l_,2);
- }
-
- Interval pre_wid= align_items(pre_p_arr);
- translate_items( -pre_wid.right, pre_p_arr);
- align_items(nobreak_p_arr);
- Interval post_wid =align_items(post_p_arr);
- translate_items (-post_wid.left , post_p_arr);
-
- pre_p_arr.set_size(0);
- post_p_arr.set_size(0);
- nobreak_p_arr.set_size(0);
-}
+++ /dev/null
-#include "musicalrequest.hh"
-#include "voice.hh"
-#include "staffwalker.hh"
-#include "debug.hh"
-#include "staff.hh"
-#include "lyricstaff.hh"
-#include "lyriccolumn.hh"
-#include "sccol.hh"
-#include "pscore.hh"
-#include "main.hh"
-
-Lyric_column::Lyric_column(Lyric_staff* lstaff_l)
-{
- lstaff_l_ = lstaff_l;
-}
-
-void
-Lyric_column::setup_one_request(Request*req_l)
-{
- if (req_l->lreq_l())
- lreq_l_array_.push(req_l->lreq_l());
-}
-
-void
-Lyric_column::typeset_item(Item *i)
-{
- lstaff_l_->pscore_l_->typeset_item(i, musical_column_l_->pcol_l_,
- lstaff_l_->pstaff_l_);
-}
+++ /dev/null
-#include "musicalrequest.hh"
-#include "voice.hh"
-#include "staffwalker.hh"
-#include "debug.hh"
-#include "staff.hh"
-#include "midistaff.hh"
-#include "midicolumn.hh"
-#include "midiitem.hh"
-#include "sccol.hh"
-#include "pscore.hh"
-#include "main.hh"
-
-Midi_column::Midi_column(Midi_staff* mstaff_l)
-{
- mstaff_l_ = mstaff_l;
-}
-
-void
-Midi_column::setup_one_request(Request*req_l)
-{
- if ( req_l->melodic() )
- melreq_l_array_.push( req_l->melodic() );
-}
-
-void
-Midi_column::note_off( Midi_track* midi_track_l, Moment next )
-{
- Moment delta_t = next - when();
- for ( int i = 0; i < melreq_l_array_.size(); i++ ) {
- Midi_note midi_note( melreq_l_array_[ i ], midi_track_l->number_i_, false );
- midi_track_l->add( delta_t, &midi_note );
- delta_t = 0.0;
- }
-}
-
-void
-Midi_column::note_on( Midi_track* midi_track_l )
-{
- Moment delta_t = 0.0;
- for ( int i = 0; i < melreq_l_array_.size(); i++ ) {
- Midi_note midi_note( melreq_l_array_[ i ], midi_track_l->number_i_, true );
- midi_track_l->add( delta_t, &midi_note );
- }
-}
+++ /dev/null
-/*
- midiscorewalker.cc -- implement Midi_score_walker
-
- source file of the LilyPond music typesetter
-
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>, Jan Nieuwehuizen <jan@digicash.com>
-*/
-#include "plist.hh"
-#include "debug.hh"
-#include "score.hh"
-#include "staffwalker.hh"
-#include "staff.hh"
-#include "sccol.hh"
-#include "midistream.hh"
-#include "midiscorewalker.hh"
-
-Midi_score_walker::Midi_score_walker( Score* score_l, Midi_stream* midi_stream_l )
- :Score_walker( score_l )
-{
- midi_stream_l_ = midi_stream_l;
-}
-
-Midi_score_walker::~Midi_score_walker()
-{
-}
-
-void
-Midi_score_walker::process()
-{
-}
-
+++ /dev/null
-#include "musicalrequest.hh"
-#include "voice.hh"
-#include "staffwalker.hh"
-#include "debug.hh"
-#include "staff.hh"
-#include "midistaff.hh"
-#include "midicolumn.hh"
-#include "midiwalker.hh"
-#include "midiitem.hh"
-#include "midistream.hh"
-
-Midi_staff::Midi_staff()
-{
-}
-
-Staff_column*
-Midi_staff::create_col()
-{
- return new Midi_column(this);
-}
-
-Staff_walker*
-Midi_staff::get_walker_p()
-{
- return new Midi_walker(this);
-}
-
-void
-Midi_staff::midi( Midi_stream* midi_stream_l, int track_i )
-{
- Midi_track midi_track( track_i );
- Midi_column* last_mcol_l = 0;
- for ( Midi_walker w( this ); w.ok(); w++ ) {
- Midi_column* mcol_l = (Midi_column*)*w;
- if ( last_mcol_l )
- last_mcol_l->note_off( &midi_track, w->when() );
- mcol_l->note_on( &midi_track );
- last_mcol_l = mcol_l;
- }
- if ( last_mcol_l )
- last_mcol_l->note_off( &midi_track, last() );
- *midi_stream_l << midi_track;
-}
-
-void
-Midi_staff::set_output(PScore*pscore_l)
-{
- //i don-t want no pscore!
-}
-