From fcf36dd4f9879a82342e5606535d2dcf46d1de2a Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Mon, 17 May 2010 12:34:05 +0000 Subject: Simplify mpegplayer a bit and use array-based lists rather than linked lists for stream management. Move a couple useful functions to handle pointer arrays from kernel.c into general.c; mpeglayer now makes use of them. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26101 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/mpegplayer/mpeg_misc.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'apps/plugins/mpegplayer/mpeg_misc.h') diff --git a/apps/plugins/mpegplayer/mpeg_misc.h b/apps/plugins/mpegplayer/mpeg_misc.h index 5f60193d52..c36f4faddc 100644 --- a/apps/plugins/mpegplayer/mpeg_misc.h +++ b/apps/plugins/mpegplayer/mpeg_misc.h @@ -202,4 +202,30 @@ uint32_t muldiv_uint32(uint32_t multiplicand, uint32_t multiplier, uint32_t divisor); + +/** Lists **/ + +/* Does the list have any members? */ +bool list_is_empty(void **list); + +/* Is the item inserted into a particular list? */ +bool list_is_member(void **list, void *item); + +/* Removes an item from a list - returns true if item was found + * and thus removed. */ +bool list_remove_item(void **list, void *item); + +/* Adds a list item, insert last, if not already present. */ +void list_add_item(void **list, void *item); + +/* Clears the entire list. */ +void list_clear_all(void **list); + +/* Enumerate all items in the array. */ +typedef bool (*list_enum_callback_t)(void *item, intptr_t data); + +void list_enum_items(void **list, + list_enum_callback_t callback, + intptr_t data); + #endif /* MPEG_MISC_H */ -- cgit v1.2.3