X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=csharp%2Fcommon%2FECI.cs;fp=csharp%2Fcommon%2FECI.cs;h=05f8dc67201639be0392064379041dfeec6215d6;hb=e35d358134873c3f640672da7cd0c01f02253151;hp=0000000000000000000000000000000000000000;hpb=dac5abcb8f2d3d3e61977924dc01e5749d75dc00;p=zxing.git diff --git a/csharp/common/ECI.cs b/csharp/common/ECI.cs new file mode 100755 index 00000000..05f8dc67 --- /dev/null +++ b/csharp/common/ECI.cs @@ -0,0 +1,56 @@ +/* +* Copyright 2008 ZXing authors +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +namespace com.google.zxing.common +{ + using System; + using System.Text; + + /// A class which wraps a 2D array of bytes. The default usage is signed. If you want to use it as a + /// unsigned container, it's up to you to do byteValue & 0xff at each location. + /// * + /// JAVAPORT: I'm not happy about the argument ordering throughout the file, as I always like to have + /// the horizontal component first, but this is for compatibility with the C++ code. The original + /// code was a 2D array of ints, but since it only ever gets assigned -1, 0, and 1, I'm going to use + /// less memory and go with bytes. + /// * + /// + /// dswitkin@google.com (Daniel Switkin) + /// + /// + public abstract class ECI + { + private int value; + + public ECI(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + + public static ECI getECIByValue(int value) { + if (value < 0 || value > 999999) { + throw new Exception("Bad ECI value: " + value); + } + if (value < 900) { // Character set ECIs use 000000 - 000899 + return CharacterSetECI.getCharacterSetECIByValue(value); + } + throw new Exception("Unsupported ECI value: " + value); + } + + } +} \ No newline at end of file