# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _oppai
else:
    import _oppai

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)



def ezpp_new():
    r"""ezpp_new() -> ezpp_t"""
    return _oppai.ezpp_new()

def ezpp_free(ez):
    r"""
    ezpp_free(ezpp_t ez)

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_free(ez)

def ezpp(ez, map):
    r"""
    ezpp(ezpp_t ez, char * map) -> int

    Parameters
    ----------
    ez: ezpp_t
    map: char *

    """
    return _oppai.ezpp(ez, map)

def ezpp_pp(ez):
    r"""
    ezpp_pp(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_pp(ez)

def ezpp_stars(ez):
    r"""
    ezpp_stars(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_stars(ez)

def ezpp_set_autocalc(ez, autocalc):
    r"""
    ezpp_set_autocalc(ezpp_t ez, int autocalc)

    Parameters
    ----------
    ez: ezpp_t
    autocalc: int

    """
    return _oppai.ezpp_set_autocalc(ez, autocalc)

def ezpp_autocalc(ez):
    r"""
    ezpp_autocalc(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_autocalc(ez)

def ezpp_data(ez, data, data_size):
    r"""
    ezpp_data(ezpp_t ez, char * data, int data_size) -> int

    Parameters
    ----------
    ez: ezpp_t
    data: char *
    data_size: int

    """
    return _oppai.ezpp_data(ez, data, data_size)

def ezpp_aim_stars(ez):
    r"""
    ezpp_aim_stars(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_aim_stars(ez)

def ezpp_speed_stars(ez):
    r"""
    ezpp_speed_stars(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_speed_stars(ez)

def ezpp_aim_pp(ez):
    r"""
    ezpp_aim_pp(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_aim_pp(ez)

def ezpp_speed_pp(ez):
    r"""
    ezpp_speed_pp(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_speed_pp(ez)

def ezpp_acc_pp(ez):
    r"""
    ezpp_acc_pp(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_acc_pp(ez)

def ezpp_accuracy_percent(ez):
    r"""
    ezpp_accuracy_percent(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_accuracy_percent(ez)

def ezpp_n300(ez):
    r"""
    ezpp_n300(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_n300(ez)

def ezpp_n100(ez):
    r"""
    ezpp_n100(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_n100(ez)

def ezpp_n50(ez):
    r"""
    ezpp_n50(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_n50(ez)

def ezpp_nmiss(ez):
    r"""
    ezpp_nmiss(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_nmiss(ez)

def ezpp_ar(ez):
    r"""
    ezpp_ar(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_ar(ez)

def ezpp_cs(ez):
    r"""
    ezpp_cs(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_cs(ez)

def ezpp_od(ez):
    r"""
    ezpp_od(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_od(ez)

def ezpp_hp(ez):
    r"""
    ezpp_hp(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_hp(ez)

def ezpp_artist(ez):
    r"""
    ezpp_artist(ezpp_t ez) -> char *

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_artist(ez)

def ezpp_artist_unicode(ez):
    r"""
    ezpp_artist_unicode(ezpp_t ez) -> char *

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_artist_unicode(ez)

def ezpp_title(ez):
    r"""
    ezpp_title(ezpp_t ez) -> char *

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_title(ez)

def ezpp_title_unicode(ez):
    r"""
    ezpp_title_unicode(ezpp_t ez) -> char *

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_title_unicode(ez)

def ezpp_version(ez):
    r"""
    ezpp_version(ezpp_t ez) -> char *

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_version(ez)

def ezpp_creator(ez):
    r"""
    ezpp_creator(ezpp_t ez) -> char *

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_creator(ez)

def ezpp_ncircles(ez):
    r"""
    ezpp_ncircles(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_ncircles(ez)

def ezpp_nsliders(ez):
    r"""
    ezpp_nsliders(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_nsliders(ez)

def ezpp_nspinners(ez):
    r"""
    ezpp_nspinners(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_nspinners(ez)

def ezpp_nobjects(ez):
    r"""
    ezpp_nobjects(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_nobjects(ez)

def ezpp_odms(ez):
    r"""
    ezpp_odms(ezpp_t ez) -> float

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_odms(ez)

def ezpp_mode(ez):
    r"""
    ezpp_mode(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_mode(ez)

def ezpp_combo(ez):
    r"""
    ezpp_combo(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_combo(ez)

def ezpp_max_combo(ez):
    r"""
    ezpp_max_combo(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_max_combo(ez)

def ezpp_mods(ez):
    r"""
    ezpp_mods(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_mods(ez)

def ezpp_score_version(ez):
    r"""
    ezpp_score_version(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_score_version(ez)

def ezpp_time_at(ez, i):
    r"""
    ezpp_time_at(ezpp_t ez, int i) -> float

    Parameters
    ----------
    ez: ezpp_t
    i: int

    """
    return _oppai.ezpp_time_at(ez, i)

def ezpp_strain_at(ez, i, difficulty_type):
    r"""
    ezpp_strain_at(ezpp_t ez, int i, int difficulty_type) -> float

    Parameters
    ----------
    ez: ezpp_t
    i: int
    difficulty_type: int

    """
    return _oppai.ezpp_strain_at(ez, i, difficulty_type)

def ezpp_ntiming_points(ez):
    r"""
    ezpp_ntiming_points(ezpp_t ez) -> int

    Parameters
    ----------
    ez: ezpp_t

    """
    return _oppai.ezpp_ntiming_points(ez)

def ezpp_timing_time(ez, i):
    r"""
    ezpp_timing_time(ezpp_t ez, int i) -> float

    Parameters
    ----------
    ez: ezpp_t
    i: int

    """
    return _oppai.ezpp_timing_time(ez, i)

def ezpp_timing_ms_per_beat(ez, i):
    r"""
    ezpp_timing_ms_per_beat(ezpp_t ez, int i) -> float

    Parameters
    ----------
    ez: ezpp_t
    i: int

    """
    return _oppai.ezpp_timing_ms_per_beat(ez, i)

def ezpp_timing_change(ez, i):
    r"""
    ezpp_timing_change(ezpp_t ez, int i) -> int

    Parameters
    ----------
    ez: ezpp_t
    i: int

    """
    return _oppai.ezpp_timing_change(ez, i)

def ezpp_set_aim_stars(ez, aim_stars):
    r"""
    ezpp_set_aim_stars(ezpp_t ez, float aim_stars)

    Parameters
    ----------
    ez: ezpp_t
    aim_stars: float

    """
    return _oppai.ezpp_set_aim_stars(ez, aim_stars)

def ezpp_set_speed_stars(ez, speed_stars):
    r"""
    ezpp_set_speed_stars(ezpp_t ez, float speed_stars)

    Parameters
    ----------
    ez: ezpp_t
    speed_stars: float

    """
    return _oppai.ezpp_set_speed_stars(ez, speed_stars)

def ezpp_set_base_ar(ez, ar):
    r"""
    ezpp_set_base_ar(ezpp_t ez, float ar)

    Parameters
    ----------
    ez: ezpp_t
    ar: float

    """
    return _oppai.ezpp_set_base_ar(ez, ar)

def ezpp_set_base_od(ez, od):
    r"""
    ezpp_set_base_od(ezpp_t ez, float od)

    Parameters
    ----------
    ez: ezpp_t
    od: float

    """
    return _oppai.ezpp_set_base_od(ez, od)

def ezpp_set_base_cs(ez, cs):
    r"""
    ezpp_set_base_cs(ezpp_t ez, float cs)

    Parameters
    ----------
    ez: ezpp_t
    cs: float

    """
    return _oppai.ezpp_set_base_cs(ez, cs)

def ezpp_set_base_hp(ez, hp):
    r"""
    ezpp_set_base_hp(ezpp_t ez, float hp)

    Parameters
    ----------
    ez: ezpp_t
    hp: float

    """
    return _oppai.ezpp_set_base_hp(ez, hp)

def ezpp_set_mode_override(ez, mode_override):
    r"""
    ezpp_set_mode_override(ezpp_t ez, int mode_override)

    Parameters
    ----------
    ez: ezpp_t
    mode_override: int

    """
    return _oppai.ezpp_set_mode_override(ez, mode_override)

def ezpp_set_mode(ez, mode):
    r"""
    ezpp_set_mode(ezpp_t ez, int mode)

    Parameters
    ----------
    ez: ezpp_t
    mode: int

    """
    return _oppai.ezpp_set_mode(ez, mode)

def ezpp_set_mods(ez, mods):
    r"""
    ezpp_set_mods(ezpp_t ez, int mods)

    Parameters
    ----------
    ez: ezpp_t
    mods: int

    """
    return _oppai.ezpp_set_mods(ez, mods)

def ezpp_set_combo(ez, combo):
    r"""
    ezpp_set_combo(ezpp_t ez, int combo)

    Parameters
    ----------
    ez: ezpp_t
    combo: int

    """
    return _oppai.ezpp_set_combo(ez, combo)

def ezpp_set_nmiss(ez, nmiss):
    r"""
    ezpp_set_nmiss(ezpp_t ez, int nmiss)

    Parameters
    ----------
    ez: ezpp_t
    nmiss: int

    """
    return _oppai.ezpp_set_nmiss(ez, nmiss)

def ezpp_set_score_version(ez, score_version):
    r"""
    ezpp_set_score_version(ezpp_t ez, int score_version)

    Parameters
    ----------
    ez: ezpp_t
    score_version: int

    """
    return _oppai.ezpp_set_score_version(ez, score_version)

def ezpp_set_accuracy_percent(ez, accuracy_percent):
    r"""
    ezpp_set_accuracy_percent(ezpp_t ez, float accuracy_percent)

    Parameters
    ----------
    ez: ezpp_t
    accuracy_percent: float

    """
    return _oppai.ezpp_set_accuracy_percent(ez, accuracy_percent)

def ezpp_set_accuracy(ez, n100, n50):
    r"""
    ezpp_set_accuracy(ezpp_t ez, int n100, int n50)

    Parameters
    ----------
    ez: ezpp_t
    n100: int
    n50: int

    """
    return _oppai.ezpp_set_accuracy(ez, n100, n50)

def ezpp_set_end(ez, end):
    r"""
    ezpp_set_end(ezpp_t ez, int end)

    Parameters
    ----------
    ez: ezpp_t
    end: int

    """
    return _oppai.ezpp_set_end(ez, end)

def ezpp_set_end_time(ez, end):
    r"""
    ezpp_set_end_time(ezpp_t ez, float end)

    Parameters
    ----------
    ez: ezpp_t
    end: float

    """
    return _oppai.ezpp_set_end_time(ez, end)

def ezpp_dup(ez, mapfile):
    r"""
    ezpp_dup(ezpp_t ez, char * mapfile) -> int

    Parameters
    ----------
    ez: ezpp_t
    mapfile: char *

    """
    return _oppai.ezpp_dup(ez, mapfile)

def ezpp_data_dup(ez, data, data_size):
    r"""
    ezpp_data_dup(ezpp_t ez, char * data, int data_size) -> int

    Parameters
    ----------
    ez: ezpp_t
    data: char *
    data_size: int

    """
    return _oppai.ezpp_data_dup(ez, data, data_size)
ERR_MORE = _oppai.ERR_MORE

ERR_SYNTAX = _oppai.ERR_SYNTAX

ERR_TRUNCATED = _oppai.ERR_TRUNCATED

ERR_NOTIMPLEMENTED = _oppai.ERR_NOTIMPLEMENTED

ERR_IO = _oppai.ERR_IO

ERR_FORMAT = _oppai.ERR_FORMAT

ERR_OOM = _oppai.ERR_OOM


def errstr(err):
    r"""
    errstr(int err) -> char *

    Parameters
    ----------
    err: int

    """
    return _oppai.errstr(err)

def oppai_version():
    r"""oppai_version()"""
    return _oppai.oppai_version()

def oppai_version_str():
    r"""oppai_version_str() -> char *"""
    return _oppai.oppai_version_str()
MODE_STD = _oppai.MODE_STD

MODE_TAIKO = _oppai.MODE_TAIKO

DIFF_SPEED = _oppai.DIFF_SPEED

DIFF_AIM = _oppai.DIFF_AIM

MODS_NOMOD = _oppai.MODS_NOMOD

MODS_NF = _oppai.MODS_NF

MODS_EZ = _oppai.MODS_EZ

MODS_TD = _oppai.MODS_TD

MODS_HD = _oppai.MODS_HD

MODS_HR = _oppai.MODS_HR

MODS_SD = _oppai.MODS_SD

MODS_DT = _oppai.MODS_DT

MODS_RX = _oppai.MODS_RX

MODS_HT = _oppai.MODS_HT

MODS_NC = _oppai.MODS_NC

MODS_FL = _oppai.MODS_FL

MODS_AT = _oppai.MODS_AT

MODS_SO = _oppai.MODS_SO

MODS_AP = _oppai.MODS_AP

MODS_PF = _oppai.MODS_PF

MODS_KEY4 = _oppai.MODS_KEY4

MODS_KEY5 = _oppai.MODS_KEY5

MODS_KEY6 = _oppai.MODS_KEY6

MODS_KEY7 = _oppai.MODS_KEY7

MODS_KEY8 = _oppai.MODS_KEY8

MODS_FADEIN = _oppai.MODS_FADEIN

MODS_RANDOM = _oppai.MODS_RANDOM

MODS_CINEMA = _oppai.MODS_CINEMA

MODS_TARGET = _oppai.MODS_TARGET

MODS_KEY9 = _oppai.MODS_KEY9

MODS_KEYCOOP = _oppai.MODS_KEYCOOP

MODS_KEY1 = _oppai.MODS_KEY1

MODS_KEY3 = _oppai.MODS_KEY3

MODS_KEY2 = _oppai.MODS_KEY2

MODS_SCOREV2 = _oppai.MODS_SCOREV2

MODS_TOUCH_DEVICE = _oppai.MODS_TOUCH_DEVICE

MODS_NOVIDEO = _oppai.MODS_NOVIDEO

MODS_SPEED_CHANGING = _oppai.MODS_SPEED_CHANGING

MODS_MAP_CHANGING = _oppai.MODS_MAP_CHANGING



