fix incorrect region opacity after move + undo
[ardour.git] / libs / pbd / convert.cc
index 60d39c91e2d675eff6825a3fd9931b9b2cf35c92..832c54acd84c186eb1cc21b55c01b87ee51cb2f3 100644 (file)
 
 #include <cmath>
 #include <stdint.h>
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif
+#include <inttypes.h>
 
 #include "pbd/convert.h"
 
@@ -106,12 +110,12 @@ atof (const string& s)
 }
 
 vector<string>
-internationalize (const char **array)
+internationalize (const char *package_name, const char **array)
 {
        vector<string> v;
 
        for (uint32_t i = 0; array[i]; ++i) {
-               v.push_back (_(array[i]));
+               v.push_back (dgettext(package_name, array[i]));
        }
 
        return v;
@@ -190,23 +194,44 @@ url_decode (string& url)
        }
 }
 
+#if 0
 string
 length2string (const int32_t frames, const float sample_rate)
 {
-    int secs = (int) (frames / sample_rate);
-    int hrs =  secs / 3600;
+    int32_t secs = (int32_t) (frames / sample_rate);
+    int32_t hrs =  secs / 3600;
     secs -= (hrs * 3600);
-    int mins = secs / 60;
+    int32_t mins = secs / 60;
     secs -= (mins * 60);
 
-    int total_secs = (hrs * 3600) + (mins * 60) + secs;
-    int frames_remaining = (int) floor (frames - (total_secs * sample_rate));
+    int32_t total_secs = (hrs * 3600) + (mins * 60) + secs;
+    int32_t frames_remaining = (int) floor (frames - (total_secs * sample_rate));
     float fractional_secs = (float) frames_remaining / sample_rate;
 
     char duration_str[32];
-    sprintf (duration_str, "%02d:%02d:%05.2f", hrs, mins, (float) secs + fractional_secs);
+    sprintf (duration_str, "%02" PRIi32 ":%02" PRIi32 ":%05.2f", hrs, mins, (float) secs + fractional_secs);
 
     return duration_str;
 }
+#endif
+
+string
+length2string (const int64_t frames, const double sample_rate)
+{
+       int64_t secs = (int64_t) floor (frames / sample_rate);
+       int64_t hrs =  secs / 3600LL;
+       secs -= (hrs * 3600LL);
+       int64_t mins = secs / 60LL;
+       secs -= (mins * 60LL);
+       
+       int64_t total_secs = (hrs * 3600LL) + (mins * 60LL) + secs;
+       int64_t frames_remaining = (int64_t) floor (frames - (total_secs * sample_rate));
+       float fractional_secs = (float) frames_remaining / sample_rate;
+       
+       char duration_str[64];
+       sprintf (duration_str, "%02" PRIi64 ":%02" PRIi64 ":%05.2f", hrs, mins, (float) secs + fractional_secs);
+       
+       return duration_str;
+}
 
 } // namespace PBD