/* automatically generated by rust-bindgen 0.59.2 */

#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BrainFlowExitCodes {
    StatusOk = 0,
    PortAlreadyOpenError = 1,
    UnableToOpenPortError = 2,
    SetPortError = 3,
    BoardWriteError = 4,
    IncommingMsgError = 5,
    InitialMsgError = 6,
    BoardNotReadyError = 7,
    StreamAlreadyRunError = 8,
    InvalidBufferSizeError = 9,
    StreamThreadError = 10,
    StreamThreadIsNotRunning = 11,
    EmptyBufferError = 12,
    InvalidArgumentsError = 13,
    UnsupportedBoardError = 14,
    BoardNotCreatedError = 15,
    AnotherBoardIsCreatedError = 16,
    GeneralError = 17,
    SyncTimeoutError = 18,
    JsonNotFoundError = 19,
    NoSuchDataInJsonError = 20,
    ClassifierIsNotPreparedError = 21,
    AnotherClassifierIsPreparedError = 22,
    UnsupportedClassifierAndMetricCombinationError = 23,
}
impl BoardIds {
    pub const FIRST: BoardIds = BoardIds::PlaybackFileBoard;
}
impl BoardIds {
    pub const LAST: BoardIds = BoardIds::MuseSAthenaBoard;
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BoardIds {
    NoBoard = -100,
    PlaybackFileBoard = -3,
    StreamingBoard = -2,
    SyntheticBoard = -1,
    CytonBoard = 0,
    GanglionBoard = 1,
    CytonDaisyBoard = 2,
    GaleaBoard = 3,
    GanglionWifiBoard = 4,
    CytonWifiBoard = 5,
    CytonDaisyWifiBoard = 6,
    BrainbitBoard = 7,
    UnicornBoard = 8,
    CallibriEegBoard = 9,
    CallibriEmgBoard = 10,
    CallibriEcgBoard = 11,
    Notion1Board = 13,
    Notion2Board = 14,
    GforceProBoard = 16,
    Freeeeg32Board = 17,
    BrainbitBledBoard = 18,
    GforceDualBoard = 19,
    MuseSBledBoard = 21,
    Muse2BledBoard = 22,
    CrownBoard = 23,
    AntNeuroEe410Board = 24,
    AntNeuroEe411Board = 25,
    AntNeuroEe430Board = 26,
    AntNeuroEe211Board = 27,
    AntNeuroEe212Board = 28,
    AntNeuroEe213Board = 29,
    AntNeuroEe214Board = 30,
    AntNeuroEe215Board = 31,
    AntNeuroEe221Board = 32,
    AntNeuroEe222Board = 33,
    AntNeuroEe223Board = 34,
    AntNeuroEe224Board = 35,
    AntNeuroEe225Board = 36,
    EnophoneBoard = 37,
    Muse2Board = 38,
    MuseSBoard = 39,
    BrainaliveBoard = 40,
    Muse2016Board = 41,
    Muse2016BledBoard = 42,
    Explore4ChanBoard = 44,
    Explore8ChanBoard = 45,
    GanglionNativeBoard = 46,
    EmotibitBoard = 47,
    NtlWifiBoard = 50,
    AntNeuroEe511Board = 51,
    Freeeeg128Board = 52,
    AavaaV3Board = 53,
    ExplorePlus8ChanBoard = 54,
    ExplorePlus32ChanBoard = 55,
    PieegBoard = 56,
    NeuropawnKnightBoard = 57,
    SynchroniTrio3ChannelsBoard = 58,
    SynchroniOcto8ChannelsBoard = 59,
    Ob50008ChannelsBoard = 60,
    SynchroniNeo8ChannelsBoard = 61,
    SynchroniUno1ChannelsBoard = 62,
    Ob300024ChannelsBoard = 63,
    BiolistenerBoard = 64,
    Ironbci32Board = 65,
    NeuropawnKnightBoardImu = 66,
    MuseSAthenaBoard = 67,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum IpProtocolTypes {
    NoIpProtocol = 0,
    Udp = 1,
    Tcp = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum FilterTypes {
    Butterworth = 0,
    ChebyshevType1 = 1,
    Bessel = 2,
    ButterworthZeroPhase = 3,
    ChebyshevType1ZeroPhase = 4,
    BesselZeroPhase = 5,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum AggOperations {
    Mean = 0,
    Median = 1,
    Each = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum WindowOperations {
    NoWindow = 0,
    Hanning = 1,
    Hamming = 2,
    BlackmanHarris = 3,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum DetrendOperations {
    NoDetrend = 0,
    Constant = 1,
    Linear = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BrainFlowMetrics {
    Mindfulness = 0,
    Restfulness = 1,
    UserDefined = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BrainFlowClassifiers {
    DefaultClassifier = 0,
    DynLibClassifier = 1,
    OnnxClassifier = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum BrainFlowPresets {
    DefaultPreset = 0,
    AuxiliaryPreset = 1,
    AncillaryPreset = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum LogLevels {
    LevelTrace = 0,
    LevelDebug = 1,
    LevelInfo = 2,
    LevelWarn = 3,
    LevelError = 4,
    LevelCritical = 5,
    LevelOff = 6,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum NoiseTypes {
    Fifty = 0,
    Sixty = 1,
    FiftyAndSixty = 2,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum WaveletDenoisingTypes {
    Visushrink = 0,
    Sureshrink = 1,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum ThresholdTypes {
    Soft = 0,
    Hard = 1,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum WaveletExtensionTypes {
    Symmetric = 0,
    Periodic = 1,
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum NoiseEstimationLevelTypes {
    FirstLevel = 0,
    AllLevels = 1,
}
impl WaveletTypes {
    pub const FIRSTWavelet: WaveletTypes = WaveletTypes::Haar;
}
impl WaveletTypes {
    pub const LASTWavelet: WaveletTypes = WaveletTypes::Sym10;
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum WaveletTypes {
    Haar = 0,
    Db1 = 1,
    Db2 = 2,
    Db3 = 3,
    Db4 = 4,
    Db5 = 5,
    Db6 = 6,
    Db7 = 7,
    Db8 = 8,
    Db9 = 9,
    Db10 = 10,
    Db11 = 11,
    Db12 = 12,
    Db13 = 13,
    Db14 = 14,
    Db15 = 15,
    Bior11 = 16,
    Bior13 = 17,
    Bior15 = 18,
    Bior22 = 19,
    Bior24 = 20,
    Bior26 = 21,
    Bior28 = 22,
    Bior31 = 23,
    Bior33 = 24,
    Bior35 = 25,
    Bior37 = 26,
    Bior39 = 27,
    Bior44 = 28,
    Bior55 = 29,
    Bior68 = 30,
    Coif1 = 31,
    Coif2 = 32,
    Coif3 = 33,
    Coif4 = 34,
    Coif5 = 35,
    Sym2 = 36,
    Sym3 = 37,
    Sym4 = 38,
    Sym5 = 39,
    Sym6 = 40,
    Sym7 = 41,
    Sym8 = 42,
    Sym9 = 43,
    Sym10 = 44,
}
