summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rototiller.c3
-rw-r--r--src/rototiller.h4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/rototiller.c b/src/rototiller.c
index 7203ca2..de580cd 100644
--- a/src/rototiller.c
+++ b/src/rototiller.c
@@ -233,7 +233,8 @@ static int setup_module(settings_t *settings, setting_desc_t **next_setting)
if (!module)
return -EINVAL;
- /* TODO: here's where the module-specific settings would get hooked */
+ if (module->setup)
+ return module->setup(settings, next_setting);
return 0;
}
diff --git a/src/rototiller.h b/src/rototiller.h
index 84b3842..c578bd5 100644
--- a/src/rototiller.h
+++ b/src/rototiller.h
@@ -7,6 +7,9 @@
* return value of 1 means a fragment has been produced, 0 means num is beyond the end of fragments. */
typedef int (*rototiller_fragmenter_t)(void *context, const fb_fragment_t *fragment, unsigned num, fb_fragment_t *res_fragment);
+typedef struct settings_t settings;
+typedef struct setting_desc_t setting_desc_t;
+
typedef struct rototiller_module_t {
void * (*create_context)(void);
void (*destroy_context)(void *context);
@@ -17,6 +20,7 @@ typedef struct rototiller_module_t {
char *description;
char *author;
char *license;
+ int (*setup)(const settings_t *settings, setting_desc_t **next_setting);
} rototiller_module_t;
#endif
© All Rights Reserved