aboutsummaryrefslogtreecommitdiffhomepage
path: root/midimonster.h
diff options
context:
space:
mode:
authorcbdev <cb@cbcdn.com>2017-06-03 23:02:46 +0200
committercbdev <cb@cbcdn.com>2017-06-03 23:02:46 +0200
commitb7e009a98698c4ed81b16cbc274a3b47793c1bab (patch)
treed0f130451f381bea80822b5d1533fca36d4f3434 /midimonster.h
parent19fd0404ba636ff5f67cbf218d175ccbef29579a (diff)
downloadmidimonster-b7e009a98698c4ed81b16cbc274a3b47793c1bab.tar.gz
midimonster-b7e009a98698c4ed81b16cbc274a3b47793c1bab.tar.bz2
midimonster-b7e009a98698c4ed81b16cbc274a3b47793c1bab.zip
Config parser
Diffstat (limited to 'midimonster.h')
-rw-r--r--midimonster.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/midimonster.h b/midimonster.h
index 59c97eb..8c323f1 100644
--- a/midimonster.h
+++ b/midimonster.h
@@ -1,3 +1,5 @@
+#ifndef MIDIMONSTER_HEADER
+#define MIDIMONSTER_HEADER
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
@@ -8,12 +10,12 @@ struct _channel_value;
struct _backend_channel;
struct _backend_instance;
-typedef int (*mmbackend_handle_event)(struct _backend_channel* c, struct _channel_value v);
-typedef struct _backend_channel* (*mmbackend_parse_channel)(char* spec);
-typedef int (*mmbackend_configure)(char* option, char* value);
+typedef int (*mmbackend_handle_event)(size_t channels, struct _backend_channel* c, struct _channel_value* v);
typedef struct _backend_instance* (*mmbackend_create_instance)();
-typedef int (*mmbackend_configure_instance)(char* option, char* value);
-typedef int (*mmbackend_process_fd)(int fd, void** impl);
+typedef struct _backend_channel* (*mmbackend_parse_channel)(struct _backend_instance* instance, char* spec);
+typedef int (*mmbackend_configure)(char* option, char* value);
+typedef int (*mmbackend_configure_instance)(struct _backend_instance* instance, char* option, char* value);
+typedef int (*mmbackend_process_fd)(size_t fds, int* fd, void** impl);
typedef int (*mmbackend_shutdown)();
typedef struct _channel_value {
@@ -46,6 +48,7 @@ typedef struct _backend_channel {
void* impl;
} channel;
+//FIXME might be replaced by struct pollfd
typedef struct /*_mm_managed_fd*/ {
int fd;
backend* backend;
@@ -55,3 +58,6 @@ typedef struct /*_mm_managed_fd*/ {
backend* mm_backend_register(backend b);
int mm_manage_fd(int fd, backend* b, int manage, void* impl);
int mm_channel_event(channel* c, channel_value v);
+
+void mm_instance_free(instance* i);
+#endif