Hash :
0089f8d0
Author :
Thomas de Grivel
Date :
2020-03-23T15:22:20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
/*
* Copyright 2018 Thomas de Grivel <thoxdg@gmail.com> +33614550127
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef RTBUF_LIB_H
#define RTBUF_LIB_H
#include "rtbuf_defs.h"
#define RTBUF_LIB_MAX 1000
#define RTBUF_LIB_VER 0x00010001
struct rtbuf_lib_proc_in {
const char *name;
const char *type;
double def;
double min;
double max;
};
struct rtbuf_lib_proc_out {
const char *name;
const char *type;
};
struct rtbuf_lib_proc {
const char *name;
f_rtbuf_proc *f;
f_rtbuf_proc *start;
f_rtbuf_proc *stop;
s_rtbuf_lib_proc_in *in; /* inputs, end with NULL */
s_rtbuf_lib_proc_out *out; /* outputs, end with NULL */
};
struct rtbuf_lib {
const char *name;
s_rtbuf_proc **proc;
unsigned int proc_n;
void *lib;
const char *path;
};
extern s_data_alloc g_rtbuf_lib_alloc;
extern s_rtbuf_lib *g_rtbuf_lib;
void rtbuf_lib_delete (s_rtbuf_lib *rl);
int rtbuf_lib_find (const char *str);
int rtbuf_lib_find_proc (s_rtbuf_lib *rl, const char *str);
void rtbuf_lib_init_ ();
s_rtbuf_lib * rtbuf_lib_load (const char *path);
s_rtbuf_lib * rtbuf_lib_new ();
void rtbuf_lib_print (const s_rtbuf_lib *lib);
void rtbuf_lib_print_long (unsigned int i);
void rtbuf_lib_proc_var_init_proc (s_rtbuf_proc *proc,
s_rtbuf_lib_proc_in *in);
void rtbuf_lib_proc_out_init_proc (s_rtbuf_proc *proc,
s_rtbuf_lib_proc_out *out);
void rtbuf_lib_proc_init_proc (s_rtbuf_proc *proc, s_rtbuf_lib_proc *x);
#endif