00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __SLV2_PLUGINS_H__
00020 #define __SLV2_PLUGINS_H__
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026 #include "slv2/types.h"
00027 #include "slv2/value.h"
00028
00038
00039
00040 #define SLV2_COLLECTION(CollType, ElemType, prefix) \
00041 \
00042 \
00046 void \
00047 prefix ## _free(CollType collection); \
00048 \
00049 \
00050 \
00054 unsigned \
00055 prefix ## _size(CollType collection); \
00056 \
00057 \
00058 \
00069 ElemType \
00070 prefix ## _get_at(CollType collection, \
00071 unsigned index);
00072
00073 SLV2_COLLECTION(SLV2PluginClasses, SLV2PluginClass, slv2_plugin_classes)
00074 SLV2_COLLECTION(SLV2ScalePoints, SLV2ScalePoint, slv2_scale_points)
00075 SLV2_COLLECTION(SLV2Values, SLV2Value, slv2_values)
00076 SLV2_COLLECTION(SLV2UIs, SLV2UI, slv2_uis)
00077
00078
00079
00080
00081
00088 void
00089 slv2_plugins_free(SLV2World world,
00090 SLV2Plugins plugins);
00091
00092
00096 unsigned
00097 slv2_plugins_size(SLV2Plugins plugins);
00098
00099
00109 SLV2Plugin
00110 slv2_plugins_get_by_uri(SLV2Plugins plugins,
00111 SLV2Value uri);
00112
00113
00125 SLV2Plugin
00126 slv2_plugins_get_at(SLV2Plugins plugins,
00127 unsigned index);
00128
00129
00130
00131
00132
00142 SLV2PluginClass
00143 slv2_plugin_classes_get_by_uri(SLV2PluginClasses classes,
00144 SLV2Value uri);
00145
00146
00147
00148
00149
00152 SLV2ScalePoints
00153 slv2_scale_points_new();
00154
00155
00156
00157
00158
00161 SLV2Values
00162 slv2_values_new();
00163
00164
00169 bool
00170 slv2_values_contains(SLV2Values values, SLV2Value value);
00171
00172
00173
00174
00175
00185 SLV2UI
00186 slv2_uis_get_by_uri(SLV2UIs list,
00187 SLV2Value uri);
00188
00189
00192 #ifdef __cplusplus
00193 }
00194 #endif
00195
00196 #endif