]> git.donarmstrong.com Git - lilypond.git/blobdiff - mi2mu/mudela-item.cc
release: 0.1.44
[lilypond.git] / mi2mu / mudela-item.cc
index 300ada5d4c01e36518d7048765ea87ff04c72d7c..136e03a7d69e0bcda710f368107a84f222754aaa 100644 (file)
@@ -17,6 +17,10 @@ Mudela_item::Mudela_item (Mudela_column* mudela_column_l)
   mudela_column_l_ = mudela_column_l;
 }
 
+Mudela_item::~Mudela_item ()
+{
+}
+
 Moment
 Mudela_item::at_mom ()
 {
@@ -40,22 +44,23 @@ Mudela_key::Mudela_key (int accidentals_i, int minor_i)
 {
   accidentals_i_ = accidentals_i;
   minor_i_ = minor_i;
-  if (accidentals_i >= 0)
-       key_i_ =   ((accidentals_i % 7)[ "cgdaebf" ] - 'a' - 2) % 7;
-  else
-       key_i_ =   ((-accidentals_i % 7)[ "cfbeadg" ] - 'a' - 2) % 7;
 }
 
 String
 Mudela_key::str ()
 {
+  int key_i = 0;
+  if (accidentals_i_ >= 0)
+       key_i =   ((accidentals_i_ % 7)[ "cgdaebf" ] - 'a' - 2) % 7;
+  else
+       key_i =   ((-accidentals_i_ % 7)[ "cfbeadg" ] - 'a' - 2) % 7;
   String str = "\\key ";
-  if (!minor_i_) 
-       str += String ((char)  ((key_i_ + 2) % 7 + 'A'));
+  if (!minor_i_)
+       str += String ((char)  ((key_i + 2) % 7 + 'A'));
   else // heu, -2: should be - 1 1/2: A -> fis
-       str += String ((char)  ((key_i_ + 2 - 2) % 7 + 'a'));
+       str += String ((char)  ((key_i + 2 - 2) % 7 + 'a'));
   str = String ("% \"") + str
-       + String ('"') + "; % not supported yet\n"; 
+       + String ('"') + _("; % not supported yet\n");
   return str;
 }
 
@@ -69,10 +74,10 @@ Mudela_key::notename_str (int pitch_i)
   // minor scale: la-la  (= + 5)
   static int notename_i_a[ 12 ] = { 0, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6 };
   int notename_i = notename_i_a[  (minor_i_ * 5 + pitch_i) % 12 ];
-  
+
   static int accidentals_i_a[ 12 ] = { 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 };
-  int accidental_i = accidentals_i_a[ minor_i_ * 5 + pitch_i % 12 ];
-  if (accidental_i &&  (accidentals_i_ < 0)) 
+  int accidental_i = accidentals_i_a[ (minor_i_ * 5 + pitch_i) % 12 ];
+  if (accidental_i &&  (accidentals_i_ < 0))
     {
        accidental_i = - accidental_i;
        notename_i =  (notename_i + 1) % 7;
@@ -97,20 +102,20 @@ Mudela_key::notename_str (int pitch_i)
 Mudela_meter::Mudela_meter (int num_i, int den_i, int clocks_4_i, int count_32_i)
    : Mudela_item (0)
 {
-  sync_dur_.durlog_i_ = 3 ;
+  sync_dur_.durlog_i_ = 3;
   sync_f_ = 1.0;
   if (count_32_i != 8)
-       warning (String ("#32 in quarter: ") + String (count_32_i));
+       warning (String (_("#32 in quarter: ")) + String (count_32_i));
   num_i_ = num_i;
   den_i_ = den_i;
-  clocks_1_i_ = clocks_4_i * 4; 
+  clocks_1_i_ = clocks_4_i * 4;
 }
 
 Moment
 Mudela_meter::bar_mom ()
 {
   Duration d;
-  d.durlog_i_ =   den_i_;
+  d.durlog_i_ = den_i_;
   return Moment (num_i_) * Duration_convert::dur2_mom (d);
 }
 
@@ -136,7 +141,7 @@ String
 Mudela_meter::str ()
 {
   String str = "\\meter "
-       + String (num_i_) + "/" + String (1 << den_i_) 
+       + String (num_i_) + "/" + String (1 << den_i_)
        + ";\n";
   return str;
 }
@@ -144,9 +149,9 @@ Mudela_meter::str ()
 
 // statics Mudela_note
 /*
- this switch can be used to write simple plets like 
-   c4*2/3 
- as  
+ this switch can be used to write simple plets like
+   c4*2/3
+ as
    \plet 2/3; c4 \plet 1/1;
  */
 bool const Mudela_note::simple_plet_b_s = true;
@@ -157,7 +162,7 @@ Mudela_note::Mudela_note (Mudela_column* mudela_column_l, int channel_i, int pit
   // junk dynamics
   (void)dyn_i;
   channel_i_ = channel_i;
-  pitch_i_ = pitch_i;  
+  pitch_i_ = pitch_i;
   end_column_l_ = 0;
 }
 
@@ -172,8 +177,7 @@ Mudela_note::duration ()
 Moment
 Mudela_note::duration_mom ()
 {
-// ugh
-//    return Duration_convert::dur2_mom (duration ());
+  assert (end_column_l_);
   return end_column_l_->at_mom () - at_mom ();
 }
 
@@ -184,20 +188,19 @@ Mudela_note::str ()
   if (dur.durlog_i_ < -10)
        return "";
 
-  String name_str 
+  String name_str
     = mudela_column_l_->mudela_score_l_->mudela_key_l_->notename_str (pitch_i_);
 
   if (simple_plet_b_s)
-       return name_str + Duration_convert::dur2_str (dur) + " ";
+    return name_str + Duration_convert::dur2_str (dur) + " ";
 
-  //ugh
   String str;
+  //ugh
   if (dur.plet_b ())
-       str += String ("\\plet ")
+       str += String ("\\[")
            + String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0)
            + "/"
-           + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0)
-           + "; ";
+           + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0);
 
   str += name_str;
 
@@ -206,7 +209,14 @@ Mudela_note::str ()
   str += Duration_convert::dur2_str (tmp);
 
   if (dur.plet_b ())
-       str += String (" \\plet 1/1;");
+       str += String (" \\]");
+
+  /* 
+    note of zero duration is nonsense, 
+    but let's output anyway for convenient debugging
+   */
+  if (!duration_mom ())
+    return String ("\n% ") + str + "\n";
 
   return str + " ";
 }
@@ -261,7 +271,7 @@ Mudela_tempo::str ()
   return str;
 }
 
-int 
+int
 Mudela_tempo::useconds_per_4_i ()
 {
   return useconds_per_4_i_;
@@ -283,10 +293,9 @@ Mudela_text::Mudela_text (Mudela_text::Type type, String text_str)
 String
 Mudela_text::str ()
 {
-  if (!text_str_.length_i () 
+  if (!text_str_.length_i ()
        ||  (text_str_.length_i () != (int)strlen (text_str_.ch_C ())))
        return "";
 
   return "% " + text_str_ + "\n";
 }
-