]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/audio-item.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / audio-item.cc
index 60a6badc8dd6292065a6b965ebde17388eae73de..0e4ded6386cfc23d852df3548cd9ffe54ce3ca8e 100644 (file)
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c) 1997--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 */
-#include "debug.hh"
+
 #include "audio-item.hh"
+
 #include "midi-item.hh"
-#include "request.hh"
 #include "audio-column.hh"
 
-Audio_instrument::Audio_instrument (String instrument_str)
-  : Audio_item (0)
-{
-  str_ = instrument_str;
-}
-
-Midi_item*
-Audio_instrument::midi_item_p()
+Audio_instrument::Audio_instrument (string instrument_string)
 {
-  return str_.length_i() ? new Midi_instrument(0, str_) : 0;
+  str_ = instrument_string;
 }
-IMPLEMENT_IS_TYPE_B1(Audio_instrument, Audio_item);
 
-Audio_item::Audio_item (Request* req_l)
+Audio_item::Audio_item ()
 {
-  audio_column_l_ = 0;
-  req_l_ = req_l;
+  audio_column_ = 0;
 }
 
-Audio_key::Audio_key (Request* req_l)
-  : Audio_item (req_l)
+Audio_note::Audio_note (Pitch p, Moment m, int transposing_i)
 {
+  pitch_ = p;
+  length_mom_ = m;
+  tied_ = 0;
+  transposing_ = transposing_i;
 }
 
-Midi_item*
-Audio_key::midi_item_p()
+void
+Audio_note::tie_to (Audio_note *t)
 {
-  return new Midi_key (this);
+  tied_ = t;
+  Audio_note *first = t;
+  while (first->tied_)
+    first = first->tied_;
+  first->length_mom_ += length_mom_;
+  length_mom_ = 0;
 }
-IMPLEMENT_IS_TYPE_B1 (Audio_key, Audio_item);
 
-Audio_note::Audio_note (Request* req_l)
-  : Audio_item (req_l)
+Audio_key::Audio_key (int acc, bool major)
 {
+  accidentals_ = acc;
+  major_ = major;
 }
 
-Midi_item*
-Audio_note::midi_item_p()
+Audio_dynamic::Audio_dynamic (Real volume)
 {
-  return new Midi_note (this);
+  volume_ = volume;
 }
 
-IMPLEMENT_IS_TYPE_B1(Audio_note, Audio_item);
-
 Audio_tempo::Audio_tempo (int per_minute_4_i)
-  : Audio_item (0)
-{
-  per_minute_4_i_ = per_minute_4_i;
-}
-
-Midi_item*
-Audio_tempo::midi_item_p()
 {
-  return new Midi_tempo (this);
+  per_minute_4_ = per_minute_4_i;
 }
 
-IMPLEMENT_IS_TYPE_B1(Audio_tempo, Audio_item);
-
-Audio_meter::Audio_meter (Request* req_l)
-  : Audio_item (req_l)
+Audio_time_signature::Audio_time_signature (int beats, int one_beat)
 {
+  beats_ = beats;
+  one_beat_ = one_beat;
 }
 
-Midi_item*
-Audio_meter::midi_item_p()
+Audio_text::Audio_text (Audio_text::Type type, string text_string)
 {
-  return new Midi_meter (this);
-}
-IMPLEMENT_IS_TYPE_B1(Audio_meter, Audio_item);
-
-Audio_text::Audio_text (Audio_text::Type type, String text_str)
-  : Audio_item (0)
-{
-  text_str_ = text_str;
+  text_string_ = text_string;
   type_ = type;
 }
 
-Midi_item*
-Audio_text::midi_item_p()
-{
-  return text_str_.length_i() ? new Midi_text(this) : 0;
-}
-
-IMPLEMENT_IS_TYPE_B1(Audio_text, Audio_item);
-
-IMPLEMENT_IS_TYPE_B1(Audio_item, Audio_element);
-
-void
-Audio_item::do_print () const
-{
-#ifndef NPRINT
-  if (audio_column_l_)
-    {
-      DOUT << "at: "<< audio_column_l_->at_mom ();
-    }
-  if (req_l_)
-    {
-      DOUT << "from: ";
-      req_l_->print ();
-    }
-#endif
-}
-