aboutsummaryrefslogtreecommitdiff
path: root/src/effect.h
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-09-18 14:49:59 +0200
committerFederico Angelilli <code@fedang.net>2024-09-18 14:49:59 +0200
commit0eceb95c0a4b517d7eb537a464089f011e3804e2 (patch)
tree54e2646d5a7c43b3fec074ebe98d4a33aefde025 /src/effect.h
parentbc70dead7fb518f073fecb21a04fa374e9ad6dd0 (diff)
Add effect parsingeffect-conf
Diffstat (limited to 'src/effect.h')
-rw-r--r--src/effect.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/effect.h b/src/effect.h
index 1bf1a9e..2c6ec2c 100644
--- a/src/effect.h
+++ b/src/effect.h
@@ -5,25 +5,29 @@
#include "util.h"
-typedef enum {
- EFFECT_PULSE,
-} effect_type_t;
-
typedef struct effect effect_t;
typedef struct layout layout_t;
typedef void (*effect_render_t)(effect_t *effect, layout_t *layout, cairo_t *cr);
+// NOTE: The effect state must be freed by this function
+//
+typedef void (*effect_finalize_t)(effect_t *effect);
+
+typedef void (*effect_init_t)(effect_t *effect);
+
struct effect {
- effect_type_t type;
+ char *label;
struct timespec start;
struct timespec duration;
effect_render_t pre;
effect_render_t post;
+ void *state;
+ effect_finalize_t finalize;
};
-effect_t *effect_pulse(struct timespec duration);
+void effect_copy(effect_t *copy, const effect_t *effect);
void effect_free(effect_t *effect);