From 91c7845d409665e54d78c9325c36aa8926b82669 Mon Sep 17 00:00:00 2001 From: Colin Fletcher Date: Fri, 1 Apr 2016 15:18:53 +0100 Subject: Fix EAN check digit calculation Fix two mistakes in in the EAN check digit calculation. --- gtk2_ardour/session_metadata_dialog.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/session_metadata_dialog.cc b/gtk2_ardour/session_metadata_dialog.cc index 7973d035bb..88720edc74 100644 --- a/gtk2_ardour/session_metadata_dialog.cc +++ b/gtk2_ardour/session_metadata_dialog.cc @@ -270,15 +270,18 @@ 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( "%1: %2", -- cgit v1.2.3