aboutsummaryrefslogtreecommitdiffstats
path: root/src/dbUtils.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-01-02dbUtils: return empty tag value only if no value was foundMax Kellermann1-1/+4
This fixes a regression in the patch "return multiple tag values per song": even when the song has values for the specified tag type, the empty string gets added to the set, because the "return" was removed. This patch adds a flag which remembers whether at least one value was found.
2009-12-27dbUtils: return multiple tag values per songMax Kellermann1-1/+0
When collecting tag values for the result set, add all of a song's tag values of the searched type. This affects the "list" command. Previously, "list" only considered the first tag value of a song.
2009-03-15dbUtils: removed printSavedMemoryFromFilenames()Max Kellermann1-35/+0
The function is unused.
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-02-27tag: no CamelCaseMax Kellermann1-3/+3
Renamed numOfItems to num_items.
2009-02-04playlist: renamed global "playlist" variable to "g_playlist"Max Kellermann1-1/+1
Export the "g_playlist" variable, and pass it to all playlist functions. This way, we can split playlist.c easier into separate parts. The code which initializes the singleton variable is moved to playlist_global.c.
2009-01-25use g_free() instead of free()Max Kellermann1-1/+1
On some platforms, g_free() must be used for memory allocated by GLib. This patch intends to correct a lot of occurrences, but is probably not complete.
2009-01-24locate: added locate_item_list_casefold()Max Kellermann1-6/+2
Merged casefolding code from two locations into this one library function.
2009-01-24queue_print, dbUtils: use struct locate_item_listMax Kellermann1-39/+21
Changed the function prototypes to get locate_item_list objects instead of num_items/items.
2009-01-24locate: added struct locate_item_listMax Kellermann1-5/+6
Instead of passing two parameters around (number of items, array of items), combine both in a variable size struct.
2009-01-24locate: no CamelCaseMax Kellermann1-7/+7
Renamed functions and variables.
2009-01-24locate: renamed LocateTagItem to "struct locate_item"Max Kellermann1-14/+18
No CamelCase and no typedefs.
2009-01-22locate: use const pointersMax Kellermann1-20/+13
Pass const pointers where no writes are performed.
2009-01-18stats: use one db_walk() to obtain statsMax Kellermann1-41/+0
Don't use dbUtils.h functions. This reduces 4 full database walks to just one.
2009-01-04directory: added directory_is_root()Max Kellermann1-3/+4
directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
2009-01-03dbUtils: use GLib instead of utils.hMax Kellermann1-3/+4
2008-11-24dbUtils.c: replaced mpd_unused by G_GNUC_UNUSEDThomas Jansen1-2/+2
2008-10-22stored_playlist: no CamelCaseMax Kellermann1-1/+1
Renamed all public functions, prefix is "spl_".
2008-10-22renamed storedPlaylist.c to stored_playlist.cMax Kellermann1-1/+1
No CamelCase in file names.
2008-10-15locate: use g_utf8_casefold() instead of string_toupper()Max Kellermann1-2/+4
string_toupper() and strDupToUpper() were not able to deal with character sets other than US-ASCII. Use GLib's g_utf8_casefold() for strings.
2008-10-08directory: fix update in root directoryMax Kellermann1-2/+2
Commit 0bfe7802 broke update for new files in the root directory, because music_root->path was an empty string and not NULL. There were some NULL tests missing. Change them to !isRootDirectory(path) instead of path!=NULL.
2008-10-08directory: eliminate CamelCaseMax Kellermann1-2/+2
CamelCase is ugly, rename the functions.
2008-10-08database: renamed functions, "db_" prefix and no CamelCaseMax Kellermann1-15/+13
Yet another CamelCase removal patch.
2008-10-08directory: moved code to database.cMax Kellermann1-0/+1
Taming the directory.c monster, part II: move the database management stuff to database. directory.c should only contain code which works on directory objects.
2008-10-08song: converted typedef Song to struct songMax Kellermann1-12/+23
Again, a data type which can be forward-declared.
2008-10-08directory: converted typedef Directory to struct directoryMax Kellermann1-6/+8
The struct can be forward-declared by other headers, which relaxes the header dependencies.
2008-10-07dbUtils/directory: traverseAllIn forEachSong returns -1 on errorEric Wong1-2/+2
Being consistent with most UNIX functions...
2008-10-07song: replace printSong* with song_print_*Eric Wong1-6/+6
This make argument order more consistent for iterators. Additionally, these now return ssize_t results for error checking.
2008-09-29Switch to C99 types (retaining compat with old compilers)Eric Wong1-1/+1
Seeing the "mpd_" prefix _everywhere_ is mind-numbing as the mind needs to retrain itself to skip over the first 4 tokens of a type to get to its meaning. So avoid having extra characters on my terminal to make it easier to follow code at 2:30 am in the morning. Please report any new issues you may come across on Free toolchains. I realize how difficult it can be to build/maintain cross-compiling toolchains and I have no intention of forcing people to upgrade their toolchains to build mpd. Tested with gcc 2.95.4 and and gcc 4.3.1 on x86-32.
2008-09-29allow searching for albums with an empty tagEric Wong1-0/+2
tfing wrote: > I have quite some files with an empty album tag as they do not come > from a particular album. > > If I want to look for those files and browse them, this happens: > :: nc localhost 6600 > OK MPD 0.12.0 > find album "" > ACK [2@0] {find} too few arguments for "find" > > I'd like to be able to browse those files in a client like gmpc. > So these 2 items would have to be developed: > - list album should report that some files have an empty tag > - it should be possible to search for an empty tag with the find command Patch-by: Marc Pavot ref: http://musicpd.org/mantis/view.php?id=464
2008-09-23Replace SongList with struct songvecEric Wong1-2/+2
Our linked-list implementation is wasteful and the SongList isn't modified enough to benefit from being a linked list. So use a more compact array of song pointers which saves ~200K on a library with ~9K songs (on x86-32).
2008-09-08use strset.h instead of tagTracker.hMax Kellermann1-6/+17
With a large music database, the linear string collection in tagTracker.c becomes very slow. We implemented that in a quick'n'dirty fashion when we removed tree.c, and now we rewrite it using the fast hashed string set.
2008-09-07tag: don't pass "fd" to printVisitedInTagTracker()Max Kellermann1-1/+1
Pass the client struct instead of the raw file descriptor.
2008-09-07pass "struct client" to dbUtils.c, song.c, tag_print.cMax Kellermann1-34/+33
Don't pass the raw file descriptor around. This migration patch is rather large, because all of the sources have inter dependencies - we have to change all of them at the same time.
2008-09-07directory: don't pass fd to traverseAllIn()Max Kellermann1-15/+15
This patch continues the work of the previous patch: don't pass a file descriptor at all to traverseAllIn(). Since this fd was only used to report "directory not found" errors, we can easily move that check to the caller. This is a great relief, since it removes the dependency on a client connection from a lot of enumeration functions.
2008-09-07directory: don't pass fd to traverseAllIn() callbacksMax Kellermann1-36/+67
Database traversal should be generic, and not bound to a client connection. This is the first step: no file descriptor for the callback functions forEachSong() and forEachDir(). If a callback needs the file descriptor, it has to be passed in the void*data pointer somehow; some callbacks might need a new struct for passing more than one parameter. This might look a bit cumbersome right now, but our goal is to have a clean API.
2008-09-07playlist: don't pass "fd" to storedPlaylist.c functionsMax Kellermann1-4/+3
Return an "enum playlist_result" value instead of calling commandError() in storedPlaylist.c.
2008-09-07playlist: don't pass "fd" to playlist.c functionsMax Kellermann1-2/+2
The playlist library shouldn't talk to the client if possible. Introduce the "enum playlist_result" type which the caller (i.e. command.c) may use to generate an error message.
2008-09-07song: moved code to song_print.c, song_save.cMax Kellermann1-0/+1
Move everything which dumps song information (via tag_print.c) to a separate source file. song_print.c gets code which writes song data to the client; song_save.c is responsible for serializing songs from the tag cache.
2008-09-06dbUtils, playlist, directory: pass constant pointersMax Kellermann1-9/+10
The usual bunch of const pointer conversions.
2008-08-29tag: converted MpdTag.items to a pointer listMax Kellermann1-2/+2
This prepares the following patches, which aim to reduce MPD's memory usage: we plan to share tag_item instances, instead of just their values.
2008-08-29tag: renamed MpdTag and MpdTagItem to struct tag, struct mpd_tag_itemMax Kellermann1-1/+1
Getting rid of CamelCase; not having typedefs also allows us to forward-declare the structures.
2008-08-26converted MpdTagItem.type to an enumMax Kellermann1-1/+1
Don't use CPP macros when you can use C enum... this also allows better type checking.
2008-08-26enable -Wpointer-arith, -Wstrict-prototypesMax Kellermann1-9/+13
Also enable -Wunused-parameter - this forces us to add the gcc "unused" attribute to a lot of parameters (mostly library callback functions), but it's worth it during code refactorizations.
2008-03-26eliminated duplicate initializationMax Kellermann1-1/+1
Local variables which are never read before the first assignment don't need initialization. Saves a few bytes of text. Also don't reset variables which are never read until function return. git-svn-id: https://svn.musicpd.org/mpd/trunk@7199 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-01-26addToPlaylist/addSongToPlaylist: printId argument changed to added_idEric Wong1-1/+1
Instead of printing out the Id from playlist.c, instead set the integer that added_id poitns to if added_id is non-NULL. This makes the API cleaner and will allow us to use additional commands to manipulate the newly-added song_id. Callers (handleAddId) that relied on printId to print it to the given fd have now been modified to print the ID at a higher-level; making playlist.c less-dependent on protocol details. git-svn-id: https://svn.musicpd.org/mpd/trunk@7149 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2008-01-26fixed -Wshadow warningsMax Kellermann1-2/+2
Signed-off-by: Eric Wong <normalperson@yhbt.net> git-svn-id: https://svn.musicpd.org/mpd/trunk@7143 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-16Committing pat's rewrite of the stored playlist code. This also adds twoJ. Alexander Treuman1-1/+4
new commands: playlistmove and playlistdelete. git-svn-id: https://svn.musicpd.org/mpd/trunk@6116 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-26Forgot to change the associated fdprintf format to %li.J. Alexander Treuman1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@5952 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-26Changing SearchStats.playTime from int to unsigned long.J. Alexander Treuman1-1/+1
git-svn-id: https://svn.musicpd.org/mpd/trunk@5951 09075e82-0dd4-0310-85a5-a0d7c8717e4f