]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-performer.cc
release: 1.1.44
[lilypond.git] / lily / staff-performer.cc
index 7270d20282ff281d678d7530ac64663c8dbf82fe..6628fbeca0b52d482e18c454bbbf532992ccbd20 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+  (c)  1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
  */
 
 #include "staff-performer.hh"
@@ -13,7 +13,7 @@
 #include "audio-item.hh"
 #include "audio-staff.hh"
 
-IMPLEMENT_IS_TYPE_B1 (Staff_performer,Performer_group_performer);
+
 ADD_THIS_TRANSLATOR (Staff_performer);
 
 Staff_performer::Staff_performer ()
@@ -77,7 +77,9 @@ String
 Staff_performer::new_instrument_str () 
 { 
   // mustn't ask Score for instrument: it will return piano!
-  String str = get_property ("instrument");
+  String str = get_property ("midiInstrument", 0);
+  if (!str.length_i ())
+    str = get_property ("instrument", 0);
   if (str == instrument_str_)
     return "";
 
@@ -85,8 +87,8 @@ Staff_performer::new_instrument_str ()
 
   return instrument_str_;
 
-/* ugh, but can't
-  if (properties_dict_.elt_b ("instrument"))
+/* ugh, but can 't
+  if (properties_dict_.elem_b ("instrument"))
     return properties_dict_["instrument"];
   return "";
 */
@@ -95,9 +97,9 @@ Staff_performer::new_instrument_str ()
 void 
 Staff_performer::play (Audio_element* p)
 {
-  if (p->is_type_b (Audio_item::static_name ())) 
+  if (Audio_item *ai = dynamic_cast<Audio_item *> (p)) 
     {
-      audio_staff_p_->add ( (Audio_item*)p);
+      audio_staff_p_->add_audio_item (ai);
     }
   Performer::play (p);
 }