def METHOD_NAME(interval, callback, param):
    """Add a new timer to the pool of timers already running.
    :Parameters:
        `interval` : int
            The interval before calling the callback, in milliseconds.
        `callback` : function
            The callback function.  It is passed the current timer
            interval, in millseconds, and returns the next timer interval,
            in milliseconds.  If the returned value is the same as the one
            passed in, the periodic alarm continues, otherwise a new alarm
            is scheduled.  If the callback returns 0, the periodic alarm is
            cancelled.  An example callback function is::
                def timer_callback(interval, param):
                    print('timer called after %d ms.' % interval)
                    return 1000     # call again in 1 second
        `param` : any
            A value passed to the callback function.
    :rtype: int
    :return: the timer ID
    """
    def _callback(interval, _ignored_param):
        return callback(interval, param)
    func = _SDL_NewTimerCallback(_callback)
    result = _SDL_AddTimer(interval, func, None)
    if not result:
        raise SDL.error.SDL_Exception(SDL.error.SDL_GetError())
    _timer_refs[result] = func
    return result