Speed up AFL/PFL changes for large sessions
[ardour.git] / gtk2_ardour / session_metadata_dialog.cc
index c4eede02c3e06002f461d2c6ee95072b196ae969..a4cfee2b1047ff33aa78eca0955fb3419553cdfa 100644 (file)
@@ -30,7 +30,7 @@
 #include "ardour/session.h"
 #include "ardour/session_utils.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace Glib;
@@ -270,23 +270,26 @@ EAN13MetadataField::update_status ()
                // calculate EAN-13 modulo 10 check digit
                int sum = 0;
                const char *p = _value.c_str();
-               for (int i =0; i < 12; i++) {
+               for (int i = 0; i < 12; i++) {
                        char c = p[i] - '0';
                        if (i % 2) {
-                               sum += c;
-                       } else {
                                sum += c * 3;
+                       } else {
+                               sum += c;
                        }
                }
                sum %= 10;
+               if (sum)
+                       sum = 10 - sum;
+
                if (sum == p[12] - '0') {
                        status_label->set_markup (string_compose(
                                                "<span color=\"green\">%1: %2</span>",
                                                _("EAN Check digit OK"), sum));
                } else {
                        status_label->set_markup (string_compose(
-                                               "<span color=\"#ffa755\">%1: %2 (expected %3)</span>",
-                                               _("EAN Check digit error"), p[12] - '0', sum));
+                                               "<span color=\"#ffa755\">%1: %2 (%3 %4)</span>",
+                                               _("EAN Check digit error"), p[12] - '0', _("expected"), sum));
                }
        } else if (len > 0) {
                status_label->set_markup (string_compose(
@@ -900,7 +903,7 @@ SessionMetadataImporter::run ()
                return;
        }
 
-       //create a temporary 
+       //create a temporary
        ARDOUR::SessionMetadata data;
        data.set_state (*node, version);
        init_data ( true );  //skip user data here