/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.sun.jna.Library
 *  com.sun.jna.Native
 *  com.sun.jna.Structure
 *  com.sun.jna.Structure$ByReference
 *  com.sun.jna.Structure$ByValue
 *  com.sun.jna.ptr.IntByReference
 */
package com.hst.hwface.sdk;

import com.hst.hwface.utils.TheApp;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Structure;
import com.sun.jna.ptr.IntByReference;
import java.util.Arrays;
import java.util.List;

public interface IDCardRcgSDK
extends Library {
    public static final String libPath = TheApp.getHWIdCardRcgLibPath();
    public static final IDCardRcgSDK INSTANCE = (IDCardRcgSDK)Native.loadLibrary((String)libPath, IDCardRcgSDK.class);
    public static final int STATUS_OK = 0;
    public static final int STATUS_BADIMAGE = -1001;
    public static final int STATUS_BADLANGUAGE = -1002;
    public static final int STATUS_BADRGN = -1003;
    public static final int STATUS_NO_ENOUGH_RAM = -1004;
    public static final int STATUS_BADPARAMETER = -1005;
    public static final int STATUS_NOTSETLANGUAGE = -1006;
    public static final int STATUS_BADDICTFILE = -1007;
    public static final int STATUS_FAILED = -1100;
    public static final int STATUS_INVALIDARG = -1008;
    public static final int STATUS_NOMEMORY = -1009;
    public static final int IDCARDINFONUM = 8;
    public static final int IDCARDBACKINFONUM = 2;
    public static final int NAMEINFOMAXLEN = 20;
    public static final int GENDERINFOMAXLEN = 10;
    public static final int PEOPLEINFOMAXLEN = 10;
    public static final int BIRYEARINFOMAXLEN = 20;
    public static final int BIRMONTHINFOMAXLEN = 10;
    public static final int BIRDAYINFOMAXLEN = 10;
    public static final int ADDRESSINFOMAXLEN = 120;
    public static final int IDNUMBERINFOMAXLEN = 50;
    public static final int AUTHORITYINFOMAXLEN = 120;
    public static final int VALIDDATEINFOMAXLEN = 50;
    public static final int EGray2 = 0;
    public static final int EGray256 = 1;
    public static final int EColor16M = 2;

    public int HWOCR_IDCardRcgInit(String var1);

    public int HWOCR_IDCardRcgBoth(byte[] var1, int var2, int var3, int var4, TOCRRECT.ByValue var5, IntByReference var6, IDCARDRCGRST.ByReference var7);

    public void HWOCR_IDCardRcgExit();

    public static class IDCARDRCGRST
    extends Structure {
        public byte[] sName = new byte[20];
        public byte[] sGender = new byte[10];
        public byte[] sPeople = new byte[10];
        public byte[] sBirYear = new byte[20];
        public byte[] sBirMonth = new byte[10];
        public byte[] sBirDay = new byte[10];
        public byte[] sAddress = new byte[120];
        public byte[] sIDNumber = new byte[50];
        public byte[] sAuthority = new byte[120];
        public byte[] sValidDate = new byte[50];
        public int iNamLen;
        public int iGenLen;
        public int iPeoLen;
        public int iBirYLen;
        public int iBirMLen;
        public int iBirDLen;
        public int iAddLen;
        public int iIdNumLen;
        public int iAutLen;
        public int iVDateLen;
        public TOCRRECT.ByValue PhotoRect;

        protected List getFieldOrder() {
            return Arrays.asList("sName", "sGender", "sPeople", "sBirYear", "sBirMonth", "sBirDay", "sAddress", "sIDNumber", "sAuthority", "sValidDate", "iNamLen", "iGenLen", "iPeoLen", "iBirYLen", "iBirMLen", "iBirDLen", "iAddLen", "iIdNumLen", "iAutLen", "iVDateLen", "PhotoRect");
        }

        public static class ByReference
        extends IDCARDRCGRST
        implements Structure.ByReference {
        }

        public static class ByValue
        extends IDCARDRCGRST
        implements Structure.ByValue {
        }
    }

    public static class TOCRRECT
    extends Structure {
        public int left;
        public int top;
        public int right;
        public int bottom;

        protected List getFieldOrder() {
            return Arrays.asList("left", "top", "right", "bottom");
        }

        public static class ByReference
        extends TOCRRECT
        implements Structure.ByReference {
        }

        public static class ByValue
        extends TOCRRECT
        implements Structure.ByValue {
        }
    }
}
