Blender V4.3
bpy_app_timers.cc File Reference
#include "BLI_timer.h"
#include <Python.h>
#include "bpy_app_timers.hh"
#include "../generic/python_compat.hh"

Go to the source code of this file.

Functions

static double handle_returned_value (PyObject *function, PyObject *ret)
 
static double py_timer_execute (uintptr_t, void *user_data)
 
static void py_timer_free (uintptr_t, void *user_data)
 
 PyDoc_STRVAR (bpy_app_timers_register_doc, ".. function:: register(function, first_interval=0, persistent=False)\n" "\n" " Add a new function that will be called after the specified amount of seconds.\n" " The function gets no arguments and is expected to return either None or a float.\n" " If ``None`` is returned, the timer will be unregistered.\n" " A returned number specifies the delay until the function is called again.\n" " ``functools.partial`` can be used to assign some parameters.\n" "\n" " :arg function: The function that should called.\n" " :type function: Callable[[], float | None]\n" " :arg first_interval: Seconds until the callback should be called the first time.\n" " :type first_interval: float\n" " :arg persistent: Don't remove timer when a new file is loaded.\n" " :type persistent: bool\n")
 
static PyObject * bpy_app_timers_register (PyObject *, PyObject *args, PyObject *kw)
 
 PyDoc_STRVAR (bpy_app_timers_unregister_doc, ".. function:: unregister(function)\n" "\n" " Unregister timer.\n" "\n" " :arg function: Function to unregister.\n" " :type function: Callable[[], float | None]\n")
 
static PyObject * bpy_app_timers_unregister (PyObject *, PyObject *function)
 
 PyDoc_STRVAR (bpy_app_timers_is_registered_doc, ".. function:: is_registered(function)\n" "\n" " Check if this function is registered as a timer.\n" "\n" " :arg function: Function to check.\n" " :type function: Callable[[], float | None]\n" " :return: True when this function is registered, otherwise False.\n" " :rtype: bool\n")
 
static PyObject * bpy_app_timers_is_registered (PyObject *, PyObject *function)
 
PyObject * BPY_app_timers_module ()
 

Variables

static PyMethodDef M_AppTimers_methods []
 
static PyModuleDef M_AppTimers_module_def
 

Function Documentation

◆ bpy_app_timers_is_registered()

static PyObject * bpy_app_timers_is_registered ( PyObject * ,
PyObject * function )
static

Definition at line 152 of file bpy_app_timers.cc.

References BLI_timer_is_registered(), and ret.

◆ BPY_app_timers_module()

PyObject * BPY_app_timers_module ( )

Definition at line 192 of file bpy_app_timers.cc.

References M_AppTimers_module_def, and mod().

Referenced by make_app_info().

◆ bpy_app_timers_register()

static PyObject * bpy_app_timers_register ( PyObject * ,
PyObject * args,
PyObject * kw )
static

◆ bpy_app_timers_unregister()

static PyObject * bpy_app_timers_unregister ( PyObject * ,
PyObject * function )
static

Definition at line 132 of file bpy_app_timers.cc.

References BLI_timer_unregister().

◆ handle_returned_value()

static double handle_returned_value ( PyObject * function,
PyObject * ret )
static

Definition at line 17 of file bpy_app_timers.cc.

References printf, and ret.

Referenced by py_timer_execute().

◆ py_timer_execute()

static double py_timer_execute ( uintptr_t ,
void * user_data )
static

Definition at line 45 of file bpy_app_timers.cc.

References handle_returned_value(), and ret.

Referenced by bpy_app_timers_register().

◆ py_timer_free()

static void py_timer_free ( uintptr_t ,
void * user_data )
static

Definition at line 60 of file bpy_app_timers.cc.

Referenced by bpy_app_timers_register().

◆ PyDoc_STRVAR() [1/3]

PyDoc_STRVAR ( bpy_app_timers_is_registered_doc ,
".. function:: is_registered(function)\n" "\n" " Check if this function is registered as a timer.\n" "\n" " :arg function: Function to check.\n" " :type function: Callable[[],
float|None]\n" " :return:True when this function is registered,
otherwise False.\n" " :rtype:bool\n"  )

◆ PyDoc_STRVAR() [2/3]

PyDoc_STRVAR ( bpy_app_timers_register_doc ,
".. function:: register(function, first_interval=0, persistent=False)\n" "\n" " Add a new function that will be called after the specified amount of seconds.\n" " The function gets no arguments and is expected to return either None or a float.\n" " If ``None`` is returned,
the timer will be unregistered.\n" " A returned number specifies the delay until the function is called again.\n" " ``functools.partial`` can be used to assign some parameters.\n" "\n" " :arg function:The function that should called.\n" " :type function:Callable [[],
float|None]\n" " :arg first_interval:Seconds until the callback should be called the first time.\n" " :type first_interval:float\n" " :arg persistent:Don 't remove timer when a new file is loaded.\n" " :type persistent:bool\n"  )

◆ PyDoc_STRVAR() [3/3]

PyDoc_STRVAR ( bpy_app_timers_unregister_doc ,
".. function:: unregister(function)\n" "\n" " Unregister timer.\n" "\n" " :arg function: Function to unregister.\n" " :type function: Callable[[],
float|None]\n"  )

Variable Documentation

◆ M_AppTimers_methods

PyMethodDef M_AppTimers_methods[]
static
Initial value:
= {
{"register",
METH_VARARGS | METH_KEYWORDS,
bpy_app_timers_register_doc},
{"unregister", (PyCFunction)bpy_app_timers_unregister, METH_O, bpy_app_timers_unregister_doc},
{"is_registered",
METH_O,
bpy_app_timers_is_registered_doc},
{nullptr, nullptr, 0, nullptr},
}
static PyObject * bpy_app_timers_unregister(PyObject *, PyObject *function)
static PyObject * bpy_app_timers_register(PyObject *, PyObject *args, PyObject *kw)
static PyObject * bpy_app_timers_is_registered(PyObject *, PyObject *function)

Definition at line 163 of file bpy_app_timers.cc.

◆ M_AppTimers_module_def

PyModuleDef M_AppTimers_module_def
static
Initial value:
= {
PyModuleDef_HEAD_INIT,
"bpy.app.timers",
nullptr,
0,
nullptr,
nullptr,
nullptr,
nullptr,
}
static PyMethodDef M_AppTimers_methods[]

Definition at line 180 of file bpy_app_timers.cc.

Referenced by BPY_app_timers_module().