/usr/include/libvisual-0.4/libvisual/lv_collection.h is in libvisual-0.4-dev 0.4.0-10.
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 | /* Libvisual - The audio visualisation framework.
*
* Copyright (C) 2004, 2005, 2006 Dennis Smit <ds@nerds-incorporated.org>
*
* Authors: Dennis Smit <ds@nerds-incorporated.org>
*
* $Id: lv_collection.h,v 1.7 2006/01/22 13:23:37 synap Exp $
*
* This program 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 2.1
* of the License, or (at your option) any later version.
*
* This program 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 program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _LV_COLLECTION_H
#define _LV_COLLECTION_H
#include <libvisual/lv_common.h>
VISUAL_BEGIN_DECLS
#define VISUAL_COLLECTION(obj) (VISUAL_CHECK_CAST ((obj), VisCollection))
#define VISUAL_COLLECTIONITER(obj) (VISUAL_CHECK_CAST ((obj), VisCollectionIter))
typedef struct _VisCollection VisCollection;
typedef struct _VisCollectionIter VisCollectionIter;
/**
* A VisCollection destroyer function needs this signature, these functions are used
* to destroy data entries within collections.
*
* @arg data The data that was stored in a collection entry and thus can be destroyed.
*
* @return FIXME blah blah blah
*/
typedef int (*VisCollectionDestroyerFunc)(void *data);
/**
*/
typedef int (*VisCollectionDestroyFunc)(VisCollection *collection);
/**
*/
typedef int (*VisCollectionSizeFunc)(VisCollection *collection);
/**
*/
typedef VisCollectionIter *(*VisCollectionIterFunc)(VisCollection *collection);
/**
*/
typedef void (*VisCollectionIterAssignFunc)(VisCollectionIter *iter, VisCollection *collection, VisObject *context,
int index);
/**
*/
typedef void (*VisCollectionIterNextFunc)(VisCollectionIter *iter, VisCollection *collection, VisObject *context);
/**
*/
typedef int (*VisCollectionIterHasMoreFunc)(VisCollectionIter *iter, VisCollection *collection, VisObject *context);
/**
*/
typedef void *(*VisCollectionIterGetDataFunc)(VisCollectionIter *iter, VisCollection *collection, VisObject *context);
/**
*/
struct _VisCollection {
VisObject object; /**< The VisObject data. */
VisCollectionDestroyerFunc destroyer;
VisCollectionDestroyFunc destroyfunc;
VisCollectionSizeFunc sizefunc;
VisCollectionIterFunc iterfunc;
};
/**
*/
struct _VisCollectionIter {
VisObject object;
VisCollectionIterAssignFunc assignfunc;
VisCollectionIterNextFunc nextfunc;
VisCollectionIterHasMoreFunc hasmorefunc;
VisCollectionIterGetDataFunc getdatafunc;
VisCollection *collection;
VisObject *context;
};
/* prototypes */
int visual_collection_set_destroyer (VisCollection *collection, VisCollectionDestroyerFunc destroyer);
VisCollectionDestroyerFunc visual_collection_get_destroyer (VisCollection *collection);
int visual_collection_set_destroy_func (VisCollection *collection, VisCollectionDestroyFunc destroyfunc);
VisCollectionDestroyFunc visual_collection_get_destroy_func (VisCollection *collection);
int visual_collection_set_size_func (VisCollection *collection, VisCollectionSizeFunc sizefunc);
VisCollectionSizeFunc visual_collection_get_size_func (VisCollection *collection);
int visual_collection_set_iter_func (VisCollection *collection, VisCollectionIterFunc iterfunc);
VisCollectionIterFunc visual_collection_get_iter_func (VisCollection *collection);
int visual_collection_dtor (VisObject *object);
int visual_collection_destroy (VisCollection *collection);
int visual_collection_size (VisCollection *collection);
VisCollectionIter *visual_collection_get_iter (VisCollection *collection);
VisCollectionIter *visual_collection_iter_new (
VisCollectionIterAssignFunc assignfunc, VisCollectionIterNextFunc nextfunc,
VisCollectionIterHasMoreFunc hasmorefunc, VisCollectionIterGetDataFunc getdatafunc,
VisCollection *collection, VisObject *context);
int visual_collection_iter_init (VisCollectionIter *iter,
VisCollectionIterAssignFunc assignfunc, VisCollectionIterNextFunc nextfunc,
VisCollectionIterHasMoreFunc hasmorefunc, VisCollectionIterGetDataFunc getdatafunc,
VisCollection *collection, VisObject *context);
void visual_collection_iter_assign (VisCollectionIter *iter, int index);
void visual_collection_iter_next (VisCollectionIter *iter);
int visual_collection_iter_has_more (VisCollectionIter *iter);
void *visual_collection_iter_get_data (VisCollectionIter *iter);
VISUAL_END_DECLS
#endif /* _LV_COLLECTION_H */
|