/usr/include/weed/weed.h is in libweed-dev 2.2.0~ds0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /* WEED is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
Weed is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this source code; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
Weed is developed by:
Gabriel "Salsaman" Finch - http://lives.sourceforge.net
mainly based on LiViDO, which is developed by:
Niels Elburg - http://veejay.sf.net
Gabriel "Salsaman" Finch - http://lives.sourceforge.net
Denis "Jaromil" Rojo - http://freej.dyne.org
Tom Schouten - http://zwizwa.fartit.com
Andraz Tori - http://cvs.cinelerra.org
reviewed with suggestions and contributions from:
Silvano "Kysucix" Galliani - http://freej.dyne.org
Kentaro Fukuchi - http://megaui.net/fukuchi
Jun Iio - http://www.malib.net
Carlo Prelz - http://www2.fluido.as:8080/
*/
/* (C) Gabriel "Salsaman" Finch, 2005 - 2007 */
#ifndef __WEED_H__
#define __WEED_H__
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
#define __need_size_t
#define __need_NULL
#include <stddef.h>
#include <inttypes.h>
#define WEED_TRUE 1
#define WEED_FALSE 0
/* Leaf flags */
#define WEED_LEAF_READONLY_PLUGIN (1<<0)
#define WEED_LEAF_READONLY_HOST (1<<1)
/* Weed errors */
/* Core errors */
#define WEED_NO_ERROR 0
#define WEED_ERROR_MEMORY_ALLOCATION 1
#define WEED_ERROR_LEAF_READONLY 2
#define WEED_ERROR_NOSUCH_ELEMENT 3
#define WEED_ERROR_NOSUCH_LEAF 4
#define WEED_ERROR_WRONG_SEED_TYPE 5
/* Seed types */
/* Fundamental seeds */
#define WEED_SEED_INT 1
#define WEED_SEED_DOUBLE 2
#define WEED_SEED_BOOLEAN 3
#define WEED_SEED_STRING 4
#define WEED_SEED_INT64 5
/* Pointer seeds */
#define WEED_SEED_VOIDPTR 65
#define WEED_SEED_PLANTPTR 66
// these function types are fixed, and must be defined in the host
typedef void *(*weed_malloc_f) (size_t size);
typedef void (*weed_free_f) (void *ptr);
typedef void *(*weed_memset_f) (void *s, int c, size_t n);
typedef void *(*weed_memcpy_f) (void *dest, const void *src, size_t n);
#ifndef HAVE_WEED_PLANT_T
#define HAVE_WEED_PLANT_T
typedef struct weed_leaf weed_leaf_t;
typedef struct weed_data weed_data_t;
typedef weed_leaf_t weed_plant_t;
typedef size_t weed_size_t; // may be set to uint32_t or uint64_t
/* private data - these fields must NOT be accessed directly ! */
struct weed_leaf {
const char *key;
int seed_type;
int num_elements;
weed_data_t **data;
int flags;
weed_leaf_t *next;
};
struct weed_data {
weed_size_t size;
void *value;
};
#endif
typedef int64_t weed_timecode_t;
/** this is fixed for ever, set in bootstrap_func */
typedef int (*weed_default_getter_f)(weed_plant_t *plant, const char *key, int idx, void *value);
/* host and plugin functions, may be changed depending on API level */
typedef weed_plant_t *(*weed_plant_new_f)(int plant_type);
typedef char **(*weed_plant_list_leaves_f)(weed_plant_t *plant);
typedef int (*weed_leaf_set_f)(weed_plant_t *plant, const char *key, int seed_type, int num_elems, void *value);
typedef int (*weed_leaf_get_f)(weed_plant_t *plant, const char *key, int idx, void *value);
typedef int (*weed_leaf_num_elements_f)(weed_plant_t *plant, const char *key);
typedef size_t (*weed_leaf_element_size_f)(weed_plant_t *plant, const char *key, int idx);
typedef int (*weed_leaf_seed_type_f)(weed_plant_t *plant, const char *key);
typedef int (*weed_leaf_get_flags_f)(weed_plant_t *plant, const char *key);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // #ifndef __WEED_H__
|