mod_musicindex  1.4.1
Todo List
File cache-file.c
O P T I M I Z E ! (maybe)
File cache-mysql.c
clean error handler when data corruption happens.
Global error_handler (request_rec *r, const char *const caller)
Many things.
File html.c

still some work on the custom table

Replace text with eye-candy icons wherever possible

reduce the size of this file & optimize functions

Fix search box collide on long path names

File http.c

Test, test, test.

Use cookie for session identifer, and store custom lists on the server.

Store custom list locally, and store only a session reference in the cookie.

Global list_songs (request_rec *r, const mu_pack *const pack, const int customlist)

Sort option for recursive search?

Keep sort conf on userside (using cookie(s)).

We have the basis of doing per file permissions in the Select panel stuff which also needs to be rewritten and simplified

Global make_mp4_entry (request_rec *r, apr_pool_t *pool, FILE *const in, const char *const filename)
handle old AAC files that use id3 tags.
Global make_music_entry (request_rec *, apr_pool_t *, mu_pack *const, mu_ent_names *, unsigned long)
Find a way to not delegate file closing to subsystems (essentially hack vorbis)
Global make_music_entry (request_rec *, apr_pool_t *, mu_pack *const, mu_ent_names *, unsigned long)
Find a way to not delegate file closing to subsystems (essentially hack vorbis)
File mod_musicindex.c

Complete code documentation.

(low pri whishlist) On the fly tag rewriting or metadata support.

prepare the possibility to generate ices/mpd playlists.

enforce strict type policy.

get rid of str*cmp() whenever possible.

review the randomdir implementation.

Check how much overhead a DAAP implementation would bring. The protocol works on top of HTTP (where we are) and could make use of the cache.

Audit the code: in many places we are using a lot of arguments passed to functions that could easily be gotten otherwise by dereferencing a few pointers. Passing too many args increases stack usage.

Decide how long we want to support Apache 1.3. APR provides lots of useful features, and the API compatibility between 1.3 and 2.2 is not certain.

Check whether it'd make sense to abstract Apache's primitives so as to make the module portable to other webservers.

Global mp4_ext_check (const char *const filename)
see if we can just rely on the trackType test.
Global mysql_cache_init (server_rec *s, const char *const setup_string)
add a table prefix, so that all tables with that prefix will be under module's control
Global mysql_cache_opendir (request_rec *r, mu_pack *const pack, const char *const filename, const char *const uri, unsigned long soptions)
uses MI_QUICKPL, API should be fixed.
File output-tarball.c
maybe use apr_file I/O?
File playlist-mp3.c
Find out if we trash "detect by content".
File playlist.c
document the code path as best as possible (especiallly make_music_entry)
File sort.c
review int types