diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2010-05-17 12:34:05 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2010-05-17 12:34:05 +0000 |
commit | fcf36dd4f9879a82342e5606535d2dcf46d1de2a (patch) | |
tree | 21ed249c7a6f9d0bd7e2049c7a9f9e0708ba28f8 /firmware/export/general.h | |
parent | 9fde12676b382a31a10c58e2473edfde460e4d73 (diff) | |
download | rockbox-fcf36dd4f9879a82342e5606535d2dcf46d1de2a.tar.gz rockbox-fcf36dd4f9879a82342e5606535d2dcf46d1de2a.zip |
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
Diffstat (limited to 'firmware/export/general.h')
-rw-r--r-- | firmware/export/general.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/firmware/export/general.h b/firmware/export/general.h index 8da4a0ad59..16c824086b 100644 --- a/firmware/export/general.h +++ b/firmware/export/general.h @@ -72,4 +72,19 @@ char *create_datetime_filename(char *buffer, const char *path, bool unique_time); #endif /* CONFIG_RTC */ +/*** + ** Compacted pointer lists + ** + ** N-length list requires N+1 elements to ensure NULL-termination. + **/ + +/* Find a pointer in a pointer array. Returns the addess of the element if + found or the address of the terminating NULL otherwise. This can be used + to bounds check and add items. */ +void ** find_array_ptr(void **arr, void *ptr); + +/* Remove a pointer from a pointer array if it exists. Compacts it so that + no gaps exist. Returns 0 on success and -1 if the element wasn't found. */ +int remove_array_ptr(void **arr, void *ptr); + #endif /* GENERAL_H */ |