/*
 * This is one of the header files of Dynamsoft Capture Vision SDK - Barcode Reader module.
 *
 * Copyright © Dynamsoft Corporation. All rights reserved.
 */

#import <Foundation/Foundation.h>

typedef NS_OPTIONS(NSUInteger, DSBarcodeFormat) {
    
    DSBarcodeFormatNull NS_SWIFT_NAME(null) = 0,

    DSBarcodeFormatCode39 = 1 << 0,
    
    DSBarcodeFormatCode128 = 1 << 1,

    DSBarcodeFormatCode93 = 1 << 2,

    DSBarcodeFormatCodabar = 1 << 3,

    DSBarcodeFormatITF NS_SWIFT_NAME(itf) = 1 << 4,

    DSBarcodeFormatEAN13 NS_SWIFT_NAME(ean13) = 1 << 5,

    DSBarcodeFormatEAN8 NS_SWIFT_NAME(ean8) = 1 << 6,

    DSBarcodeFormatUPCA NS_SWIFT_NAME(upca) = 1 << 7,

    DSBarcodeFormatUPCE NS_SWIFT_NAME(upce) = 1 << 8,

    DSBarcodeFormatIndustrial25 = 1 << 9,

    DSBarcodeFormatCode39Extended = 1 << 10,

    DSBarcodeFormatGS1DatabarOmnidirectional NS_SWIFT_NAME(gs1DatabarOmnidirectional) = 1 << 11,
    
    DSBarcodeFormatGS1DatabarTruncated NS_SWIFT_NAME(gs1DatabarTruncated) = 1 << 12,
    
    DSBarcodeFormatGS1DatabarStacked NS_SWIFT_NAME(gs1DatabarStacked) = 1 << 13,
    
    DSBarcodeFormatGS1DatabarStackedOmnidirectional NS_SWIFT_NAME(gs1DatabarStackedOmnidirectional) = 1 << 14,
    
    DSBarcodeFormatGS1DatabarExpanded NS_SWIFT_NAME(gs1DatabarExpanded) = 1 << 15,

    DSBarcodeFormatGS1DatabarExpandedStacked NS_SWIFT_NAME(gs1DatabarExpandedStacked) = 1 << 16,
    
    DSBarcodeFormatGS1DatabarLimited NS_SWIFT_NAME(gs1DatabarLimited) = 1 << 17,

    DSBarcodeFormatPatchCode = 1 << 18,

    DSBarcodeFormatMicroPDF417 = 1 << 19,

    DSBarcodeFormatMSICode NS_SWIFT_NAME(msiCode) = 1 << 20,

    DSBarcodeFormatCode11 = 1 << 21,

    DSBarcodeFormatTwoDigitAddOn = 1 << 22,

    DSBarcodeFormatFiveDigitAddOn = 1 << 23,
    
    DSBarcodeFormatCode32 = 1UL << 24,

    DSBarcodeFormatPDF417 NS_SWIFT_NAME(pdf417) = 1 << 25,

    DSBarcodeFormatQRCode NS_SWIFT_NAME(qrCode) = 1 << 26,

    DSBarcodeFormatDataMatrix  = 1 << 27,

    DSBarcodeFormatAztec = 1 << 28,

    DSBarcodeFormatMaxiCode = 1 << 29,

    DSBarcodeFormatMicroQR = 1 << 30,

    DSBarcodeFormatGS1Composite NS_SWIFT_NAME(gs1Composite) = 1UL << 31,
    
    DSBarcodeFormatNonStandardBarcode = 1UL << 32,

    DSBarcodeFormatDotCode = 1UL << 33,

    DSBarcodeFormatPharmaCodeOneTrack = 1UL << 34,

    DSBarcodeFormatPharmaCodeTwoTrack = 1UL << 35,
    
    DSBarcodeFormatMatrix25 = 1UL << 36,

    DSBarcodeFormatUSPSIntelligentMail NS_SWIFT_NAME(uspsIntelligentMail) = 1UL << 52,

    DSBarcodeFormatPostnet = 1UL << 53,

    DSBarcodeFormatPlanet = 1UL << 54,

    DSBarcodeFormatAustralianPost = 1UL << 55,

    DSBarcodeFormatRM4SCC NS_SWIFT_NAME(rm4scc)  = 1UL << 56,
    
    DSBarcodeFormatKIX NS_SWIFT_NAME(kix) = 1UL << 57,
    
    DSBarcodeFormatDefault = 0xFE3BFFFF,
    
    DSBarcodeFormatOneD = 0x003007FF,

    DSBarcodeFormatGS1Databar NS_SWIFT_NAME(gs1Databar) = 0x0003F800,
    
    DSBarcodeFormatPharmaCode = 0xC00000000,
    
    DSBarcodeFormatPostalCode = 0x3F0000000000000,
    
    DSBarcodeFormatTelepen = 0x2000000000,
    
    DSBarcodeFormatTelepenNumeric = 0x4000000000,
    
    DSBarcodeFormatAll = 0xFFFFFFFEFFFFFFFF,
} NS_SWIFT_NAME(BarcodeFormat);
