mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Add macro for C plugins register_timed
This commit is contained in:
parent
c6288d89f9
commit
1e37b755fe
@ -85,7 +85,7 @@ c_api_register_command(const char *filename, const char *command_name, int min_a
|
|||||||
void(*callback)(char **args))
|
void(*callback)(char **args))
|
||||||
{
|
{
|
||||||
char *plugin_name = _c_plugin_name(filename);
|
char *plugin_name = _c_plugin_name(filename);
|
||||||
log_debug("FILENAME : %s", plugin_name);
|
log_debug("Register command %s for %s", command_name, plugin_name);
|
||||||
|
|
||||||
CommandWrapper *wrapper = malloc(sizeof(CommandWrapper));
|
CommandWrapper *wrapper = malloc(sizeof(CommandWrapper));
|
||||||
wrapper->func = callback;
|
wrapper->func = callback;
|
||||||
@ -94,8 +94,11 @@ c_api_register_command(const char *filename, const char *command_name, int min_a
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
c_api_register_timed(void(*callback)(void), int interval_seconds)
|
c_api_register_timed(const char *filename, void(*callback)(void), int interval_seconds)
|
||||||
{
|
{
|
||||||
|
char *plugin_name = _c_plugin_name(filename);
|
||||||
|
log_debug("Register timed for %s", plugin_name);
|
||||||
|
|
||||||
TimedWrapper *wrapper = malloc(sizeof(TimedWrapper));
|
TimedWrapper *wrapper = malloc(sizeof(TimedWrapper));
|
||||||
wrapper->func = callback;
|
wrapper->func = callback;
|
||||||
api_register_timed(wrapper, interval_seconds, c_timed_callback);
|
api_register_timed(wrapper, interval_seconds, c_timed_callback);
|
||||||
@ -303,7 +306,7 @@ c_api_init(void)
|
|||||||
prof_cons_show_themed = c_api_cons_show_themed;
|
prof_cons_show_themed = c_api_cons_show_themed;
|
||||||
prof_cons_bad_cmd_usage = c_api_cons_bad_cmd_usage;
|
prof_cons_bad_cmd_usage = c_api_cons_bad_cmd_usage;
|
||||||
_prof_register_command = c_api_register_command;
|
_prof_register_command = c_api_register_command;
|
||||||
prof_register_timed = c_api_register_timed;
|
_prof_register_timed = c_api_register_timed;
|
||||||
prof_completer_add = c_api_completer_add;
|
prof_completer_add = c_api_completer_add;
|
||||||
prof_completer_remove = c_api_completer_remove;
|
prof_completer_remove = c_api_completer_remove;
|
||||||
prof_completer_clear = c_api_completer_clear;
|
prof_completer_clear = c_api_completer_clear;
|
||||||
|
@ -46,7 +46,7 @@ void (*_prof_register_command)(const char *filename, const char *command_name, i
|
|||||||
const char **synopsis, const char *description, const char *arguments[][2], const char **examples,
|
const char **synopsis, const char *description, const char *arguments[][2], const char **examples,
|
||||||
void(*callback)(char **args)) = NULL;
|
void(*callback)(char **args)) = NULL;
|
||||||
|
|
||||||
void (*prof_register_timed)(void(*callback)(void), int interval_seconds) = NULL;
|
void (*_prof_register_timed)(const char *filename, void(*callback)(void), int interval_seconds) = NULL;
|
||||||
|
|
||||||
void (*prof_completer_add)(const char *key, char **items) = NULL;
|
void (*prof_completer_add)(const char *key, char **items) = NULL;
|
||||||
void (*prof_completer_remove)(const char *key, char **items) = NULL;
|
void (*prof_completer_remove)(const char *key, char **items) = NULL;
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#define PROF_API_H
|
#define PROF_API_H
|
||||||
|
|
||||||
#define prof_register_command(command_name, min_args, max_args, synopsis, description, arguments, examples, callback) _prof_register_command(__FILE__, command_name, min_args, max_args, synopsis, description, arguments, examples, callback)
|
#define prof_register_command(command_name, min_args, max_args, synopsis, description, arguments, examples, callback) _prof_register_command(__FILE__, command_name, min_args, max_args, synopsis, description, arguments, examples, callback)
|
||||||
|
#define prof_register_timed(callback, interval_seconds) _prof_register_timed(__FILE__, callback, interval_seconds)
|
||||||
|
|
||||||
typedef char* PROF_WIN_TAG;
|
typedef char* PROF_WIN_TAG;
|
||||||
|
|
||||||
@ -48,7 +49,7 @@ void (*_prof_register_command)(const char *filename, const char *command_name, i
|
|||||||
const char **synopsis, const char *description, const char *arguments[][2], const char **examples,
|
const char **synopsis, const char *description, const char *arguments[][2], const char **examples,
|
||||||
void(*callback)(char **args));
|
void(*callback)(char **args));
|
||||||
|
|
||||||
void (*prof_register_timed)(void(*callback)(void), int interval_seconds);
|
void (*_prof_register_timed)(const char *filename, void(*callback)(void), int interval_seconds);
|
||||||
|
|
||||||
void (*prof_completer_add)(const char *key, char **items);
|
void (*prof_completer_add)(const char *key, char **items);
|
||||||
void (*prof_completer_remove)(const char *key, char **items);
|
void (*prof_completer_remove)(const char *key, char **items);
|
||||||
|
@ -119,6 +119,9 @@ python_api_register_command(PyObject *self, PyObject *args)
|
|||||||
return Py_BuildValue("");
|
return Py_BuildValue("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *plugin_name = _python_plugin_name();
|
||||||
|
log_debug("Register command %s for %s", command_name, plugin_name);
|
||||||
|
|
||||||
if (p_callback && PyCallable_Check(p_callback)) {
|
if (p_callback && PyCallable_Check(p_callback)) {
|
||||||
Py_ssize_t len = PyList_Size(synopsis);
|
Py_ssize_t len = PyList_Size(synopsis);
|
||||||
const char *c_synopsis[len == 0 ? 0 : len+1];
|
const char *c_synopsis[len == 0 ? 0 : len+1];
|
||||||
@ -161,9 +164,6 @@ python_api_register_command(PyObject *self, PyObject *args)
|
|||||||
}
|
}
|
||||||
c_examples[len] = NULL;
|
c_examples[len] = NULL;
|
||||||
|
|
||||||
char *plugin_name = _python_plugin_name();
|
|
||||||
log_debug("FILENAME : %s", plugin_name);
|
|
||||||
|
|
||||||
allow_python_threads();
|
allow_python_threads();
|
||||||
api_register_command(command_name, min_args, max_args, c_synopsis,
|
api_register_command(command_name, min_args, max_args, c_synopsis,
|
||||||
description, c_arguments, c_examples, p_callback, python_command_callback);
|
description, c_arguments, c_examples, p_callback, python_command_callback);
|
||||||
@ -176,6 +176,9 @@ python_api_register_command(PyObject *self, PyObject *args)
|
|||||||
static PyObject *
|
static PyObject *
|
||||||
python_api_register_timed(PyObject *self, PyObject *args)
|
python_api_register_timed(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
|
char *plugin_name = _python_plugin_name();
|
||||||
|
log_debug("Register timed for %s", plugin_name);
|
||||||
|
|
||||||
PyObject *p_callback = NULL;
|
PyObject *p_callback = NULL;
|
||||||
int interval_seconds = 0;
|
int interval_seconds = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user