diff options
Diffstat (limited to 'slv2/collections.h')
-rw-r--r-- | slv2/collections.h | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/slv2/collections.h b/slv2/collections.h deleted file mode 100644 index ef2c35d..0000000 --- a/slv2/collections.h +++ /dev/null @@ -1,163 +0,0 @@ -/* SLV2 - * Copyright (C) 2008-2011 David Robillard <http://drobilla.net> - * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This library 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 General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifndef __SLV2_COLLECTIONS_H__ -#define __SLV2_COLLECTIONS_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "slv2/types.h" -#include "slv2/value.h" - -/** @defgroup slv2_collections Collections of values/objects. - * - * Ordered collections of typed values which are fast for random - * access by index (i.e. a fancy array). - * - * @{ - */ - -/* **** GENERIC COLLECTION FUNCTIONS **** */ - -#define SLV2_COLLECTION(CollType, ElemType, prefix) \ -\ -/** Free a collection. - */ \ -SLV2_API \ -void \ -prefix ## _free(CollType collection); \ -\ -\ -/** Get the number of elements in the collection. - */ \ -SLV2_API \ -unsigned \ -prefix ## _size(CollType collection); \ -\ -\ -/** Get an element from the collection by index. - * @a index has no significance other than as an index into this collection. - * Any @a index not less than the size of the collection will return NULL, - * so all elements in a collection can be enumerated by repeated calls - * to this function starting with @a index = 0. - * @return NULL if @a index is out of range. - */ \ -SLV2_API \ -ElemType \ -prefix ## _get_at(CollType collection, \ - unsigned index); - -SLV2_COLLECTION(SLV2PluginClasses, SLV2PluginClass, slv2_plugin_classes) -SLV2_COLLECTION(SLV2ScalePoints, SLV2ScalePoint, slv2_scale_points) -SLV2_COLLECTION(SLV2Values, SLV2Value, slv2_values) -SLV2_COLLECTION(SLV2UIs, SLV2UI, slv2_uis) - -/* **** PLUGINS **** */ - -/** Free a plugin collection. - * Freeing a plugin collection does not destroy the plugins it contains - * (plugins are owned by the world). @a plugins is invalid after this call. - */ -SLV2_API -void -slv2_plugins_free(SLV2World world, - SLV2Plugins plugins); - -/** Get the number of plugins in the collection. - */ -SLV2_API -unsigned -slv2_plugins_size(SLV2Plugins plugins); - -/** Get a plugin from @a plugins by URI. - * Return value is shared (stored in @a plugins) and must not be freed or - * modified by the caller in any way. - * @return NULL if no plugin with @a uri is found in @a plugins. - */ -SLV2_API -SLV2Plugin -slv2_plugins_get_by_uri(SLV2Plugins plugins, - SLV2Value uri); - -/** Get a plugin from @a plugins by index. - * @a index has no significance other than as an index into this plugins. - * Any @a index not less than slv2_plugins_get_length(plugins) will return NULL, - * so all plugins in a plugins can be enumerated by repeated calls - * to this function starting with @a index = 0. - * @return NULL if @a index out of range. - */ -SLV2_API -SLV2Plugin -slv2_plugins_get_at(SLV2Plugins plugins, - unsigned index); - -/* **** PLUGIN CLASSES **** */ - -/** Get a plugin class from @a classes by URI. - * Return value is shared (stored in @a classes) and must not be freed or - * modified by the caller in any way. - * @return NULL if no plugin class with @a uri is found in @a classes. - */ -SLV2_API -SLV2PluginClass -slv2_plugin_classes_get_by_uri(SLV2PluginClasses classes, - SLV2Value uri); - -/* **** SCALE POINTS **** */ - -/** Allocate a new, empty SLV2ScalePoints. - */ -SLV2_API -SLV2ScalePoints -slv2_scale_points_new(void); - -/* **** VALUES **** */ - -/** Allocate a new, empty SLV2Values. - */ -SLV2_API -SLV2Values -slv2_values_new(void); - -/** Return whether @a values contains @a value. - */ -SLV2_API -bool -slv2_values_contains(SLV2Values values, SLV2Value value); - -/* **** PLUGIN UIS **** */ - -/** Get a UI from @a uis by URI. - * Return value is shared (stored in @a uis) and must not be freed or - * modified by the caller in any way. - * @return NULL if no UI with @a uri is found in @a list. - */ -SLV2_API -SLV2UI -slv2_uis_get_by_uri(SLV2UIs uis, - SLV2Value uri); - -/** @} */ - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* __SLV2_COLLECTIONS_H__ */ |