Use another enum class in CBC_PDF417HighLevelEncoder.

Make the EncodingMode an enum class.

Change-Id: I20b948180399289f1edd9abbd2cb16e45ae14ca5
Reviewed-on: https://pdfium-review.googlesource.com/c/45692
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
index 7739801..e899fb9 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
@@ -102,26 +102,26 @@
   if (compaction == TEXT) {
     EncodeText(msg, p, len, textSubMode, &sb);
   } else if (compaction == BYTES) {
-    EncodeBinary(byteArr, p, byteArr.size(), BYTE_COMPACTION, &sb);
+    EncodeBinary(byteArr, p, byteArr.size(), EncodingMode::kByte, &sb);
   } else if (compaction == NUMERIC) {
     sb += kLatchToNumeric;
     EncodeNumeric(msg, p, len, &sb);
   } else {
-    int32_t encodingMode = kLatchToText;
+    EncodingMode encodingMode = EncodingMode::kUnknown;
     while (p < len) {
       size_t n = DetermineConsecutiveDigitCount(msg, p);
       if (n >= 13) {
         sb += kLatchToNumeric;
-        encodingMode = NUMERIC_COMPACTION;
+        encodingMode = EncodingMode::kNumeric;
         textSubMode = SubMode::kAlpha;
         EncodeNumeric(msg, p, n, &sb);
         p += n;
       } else {
         size_t t = DetermineConsecutiveTextCount(msg, p);
         if (t >= 5 || n == len) {
-          if (encodingMode != TEXT_COMPACTION) {
+          if (encodingMode != EncodingMode::kText) {
             sb += kLatchToText;
-            encodingMode = TEXT_COMPACTION;
+            encodingMode = EncodingMode::kText;
             textSubMode = SubMode::kAlpha;
           }
           textSubMode = EncodeText(msg, p, t, textSubMode, &sb);
@@ -137,11 +137,11 @@
           if (b_value == 0) {
             b_value = 1;
           }
-          if (b_value == 1 && encodingMode == TEXT_COMPACTION) {
-            EncodeBinary(byteArr, p, 1, TEXT_COMPACTION, &sb);
+          if (b_value == 1 && encodingMode == EncodingMode::kText) {
+            EncodeBinary(byteArr, p, 1, EncodingMode::kText, &sb);
           } else {
             EncodeBinary(byteArr, p, b_value, encodingMode, &sb);
-            encodingMode = BYTE_COMPACTION;
+            encodingMode = EncodingMode::kByte;
             textSubMode = SubMode::kAlpha;
           }
           p += b_value;
@@ -286,9 +286,9 @@
 void CBC_PDF417HighLevelEncoder::EncodeBinary(const std::vector<uint8_t>& bytes,
                                               size_t startpos,
                                               size_t count,
-                                              int32_t startmode,
+                                              EncodingMode startmode,
                                               WideString* sb) {
-  if (count == 1 && startmode == TEXT_COMPACTION)
+  if (count == 1 && startmode == EncodingMode::kText)
     *sb += kShiftToByte;
 
   size_t idx = startpos;
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
index 4706ab1..a654e4b 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
@@ -22,11 +22,9 @@
   static void Finalize();
 
  private:
-  enum class SubMode { kAlpha = 0, kLower, kMixed, kPunctuation };
+  enum class EncodingMode { kUnknown = 0, kText, kByte, kNumeric };
 
-  static constexpr int32_t TEXT_COMPACTION = 0;
-  static constexpr int32_t BYTE_COMPACTION = 1;
-  static constexpr int32_t NUMERIC_COMPACTION = 2;
+  enum class SubMode { kAlpha = 0, kLower, kMixed, kPunctuation };
 
   static SubMode EncodeText(const WideString& msg,
                             size_t startpos,
@@ -36,7 +34,7 @@
   static void EncodeBinary(const std::vector<uint8_t>& bytes,
                            size_t startpos,
                            size_t count,
-                           int32_t startmode,
+                           EncodingMode startmode,
                            WideString* sb);
   static void EncodeNumeric(const WideString& msg,
                             size_t startpos,
diff --git a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
index 6a0b777..a37a8dc 100644
--- a/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
+++ b/fxbarcode/pdf417/BC_PDF417HighLevelEncoder_unittest.cpp
@@ -18,23 +18,23 @@
     const char* input;
     int offset;
     int count;
-    int startmode;
+    CBC_PDF417HighLevelEncoder::EncodingMode startmode;
     const wchar_t* expected;
     int expected_length;
   } encode_binary_cases[] = {
       // Empty string encodes as empty string.
-      {"", 0, 0, CBC_PDF417HighLevelEncoder::TEXT_COMPACTION, L"", 0},
+      {"", 0, 0, CBC_PDF417HighLevelEncoder::EncodingMode::kText, L"", 0},
 
       // Fewer than 6 characters encodes as prefix without compaction.
-      {"xxxxx", 0, 5, CBC_PDF417HighLevelEncoder::TEXT_COMPACTION,
+      {"xxxxx", 0, 5, CBC_PDF417HighLevelEncoder::EncodingMode::kText,
        L"\x0385xxxxx", 6},
 
       // 6 charcters triggerst text encoding compaction.
-      {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::TEXT_COMPACTION,
+      {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::EncodingMode::kText,
        L"\u039c\u00c9\u031f\u012a\u00d2\u02d0", 6},
 
       // Same result if initially in numeric compaction mode.
-      {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::NUMERIC_COMPACTION,
+      {"xxxxxx", 0, 6, CBC_PDF417HighLevelEncoder::EncodingMode::kNumeric,
        L"\u039c\u00c9\u031f\u012a\u00d2\u02d0", 6},
   };