aboutsummaryrefslogtreecommitdiffstats
path: root/src/directory.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* directory: require the caller to lock the db_mutexMax Kellermann2012-02-021-0/+21
| | | | | Reduce the number of lock/unlock cycles, and make database handling safer.
* directory: replace songvec with doubly linked listMax Kellermann2012-01-241-3/+15
|
* directory: add function directory_get_song(), ...Max Kellermann2012-01-241-0/+22
| | | | Wrap songvec_find() and other songvec methods.
* directory: replace dirvec with doubly linked listMax Kellermann2012-01-241-8/+33
| | | | | Random access is not needed, and a linked list is easier to manage: we don't need to (re-)allocate the pointer array.
* directory: simplify constructors and clarify API documentationMax Kellermann2012-01-241-4/+45
| | | | | Pass only the "name" to a directory, instead of the full (relative) path.
* Merge branch 'v0.16.x'Max Kellermann2011-11-281-1/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: Makefile.am NEWS configure.ac src/encoder/flac_encoder.c src/log.c src/pcm_buffer.c
| * directory: rename attribute "stat" to "have_stat"Max Kellermann2011-11-271-1/+1
| | | | | | | | | | "stat" is a macro on mingw32, which is a pretty stupid thing, and this commit works around this build failure.
| * directory: convert "stat" to a boolMax Kellermann2011-11-271-1/+1
| |
* | db_plugin: add method visit()Max Kellermann2011-09-131-1/+1
| |
* | database: add struct db_visitorMax Kellermann2011-09-131-4/+6
| | | | | | | | Use this struct for db_walk().
* | Merge branch 'v0.16.x'Max Kellermann2011-06-031-1/+2
|\| | | | | | | | | Conflicts: src/decoder/ffmpeg_decoder_plugin.c
| * directory: allow directories with just playlistsMax Kellermann2011-05-091-1/+2
| | | | | | | | | | Keep those when scanning for empty directories. The check in playlist_vector_is_empty() was missing.
* | copyright year 2011Max Kellermann2011-01-291-1/+1
|/
* Merge branch 'v0.15.x' into v0.16.xMax Kellermann2011-01-071-2/+2
|\ | | | | | | | | | | | | Conflicts: NEWS configure.ac src/directory.h
| * directory: fix warning "comparison between signed and unsigned"Max Kellermann2010-12-211-2/+2
| | | | | | | | Cast the constant to dev_t, not to unsigned.
* | directory: cast DEVICE_INARCHIVE, DEVICE_CONTAINER to dev_tMax Kellermann2010-09-231-2/+2
| | | | | | | | Fix gcc warning.
* | update: store playlist files in databaseMax Kellermann2010-07-211-0/+4
| | | | | | | | | | Don't open the music directory for each "lsinfo" call. Get the list of playlist files from the memory database.
* | Update copyright notices.Avuton Olrich2009-12-311-1/+1
| |
* | include config.h in all sourcesMax Kellermann2009-11-121-1/+1
| | | | | | | | | | | | After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
* | directory: include config.hMax Kellermann2009-11-111-0/+1
|/ | | | | *sigh* another Large File breakage. ino_t/dev_t this time. We need to include config.h in directory.h to get this straight.
* directory: added directory_lookup_song()Max Kellermann2009-04-011-0/+10
| | | | Moved code from db_get_song().
* directory: renamed directory_get_directory()Max Kellermann2009-04-011-1/+8
| | | | | Renamed directory_get_directory() to directory_lookup_directory(). Added API documentation.
* all: Update copyright header.Avuton Olrich2009-03-131-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.
* decoder_plugin: added method container_scan()Jochen Keil2009-03-091-0/+1
| | | | | [mk: fixed whitespace errors; use delete_song() instead of songvec_delete()]
* directory: added "mtime" propertyMax Kellermann2009-02-281-0/+1
| | | | | | Remember the modification time of each directory. This is important for archives (which are virtual directories right now), but may also be useful for an automatic update mechanism.
* directory: moved DIRECTORY_* string constantsMax Kellermann2009-02-271-7/+0
| | | | Moved some of them to to directory_save.c, and others to database.c.
* directory: added directory_is_root()Max Kellermann2009-01-041-0/+9
| | | | | directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
* song: adding support for songs in archivesViliam Mateicka2008-12-161-0/+2
|
* added prefix to header macrosMax Kellermann2008-10-311-2/+2
| | | | | | | "LOG_H" is a macro which is also used by ffmpeg/log.h. This is ffmpeg's fault, because short macros should be reserved for applications, but since it's always a good idea to choose prefixed macro names, even for applications, we are going to do that in MPD.
* directory: added directory_get_name()Max Kellermann2008-10-131-0/+6
| | | | directory_get_name() returns the base name of the directory.
* directory: pass const pointers to inline functionsMax Kellermann2008-10-131-2/+2
| | | | | The inline functions directory_is_empty() and directory_get_path() don't modify the object - pass constant object pointers to them.
* directory: use mpd_sizeof_str_flex_array for path, tooEric Wong2008-10-131-1/+1
| | | | This way we avoid unnecessary heap allocations.
* directory: added inline wrappers for accessing childrenMax Kellermann2008-10-091-0/+14
| | | | | Some tiny utilities... wrappers like these may become helpful when we introduce locking.
* directory: moved dirvec struct declaration to dirvec.hMax Kellermann2008-10-091-5/+1
| | | | | No idea why it was created in directory.h, but it should be in dirvec.h.
* diretory: moved code to directory_save.c, directory_print.cMax Kellermann2008-10-091-13/+0
| | | | | | Remove clutter from directory.c. Everything which saves or loads to/from the hard disk goes to directory_save.c, and code which sends directory information to the client is moved into directory_print.c.
* directory: include sys/types.hMax Kellermann2008-10-081-1/+1
| | | | ino_t and dev_t are declared in sys/types.h, not sys/stat.h.
* directory: path must not be NULLMax Kellermann2008-10-081-2/+0
| | | | | For the root directory, let's set path to an empty string. This saves a few checks.
* directory: directory_get_path(NULL) is not allowedMax Kellermann2008-10-081-2/+8
| | | | | Also convert directory_get_path() to an inline function, which returns a constant string.
* directory: eliminate CamelCaseMax Kellermann2008-10-081-12/+13
| | | | CamelCase is ugly, rename the functions.
* directory: moved code to database.cMax Kellermann2008-10-081-23/+26
| | | | | | 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.
* directory: converted isRootDirectory() to an inline functionMax Kellermann2008-10-081-1/+5
| | | | | The function isRootDirectory() is tiny and can be converted to an inline function. Don't allow name==NULL.
* don't include os_compat.hMax Kellermann2008-10-081-0/+1
| | | | | When there are standardized headers, use these instead of the bloated os_compat.h.
* song: converted typedef Song to struct songMax Kellermann2008-10-081-3/+5
| | | | Again, a data type which can be forward-declared.
* directory: converted typedef Directory to struct directoryMax Kellermann2008-10-081-12/+12
| | | | | The struct can be forward-declared by other headers, which relaxes the header dependencies.
* directory: added directory_is_empty()Max Kellermann2008-10-081-0/+8
| | | | | directory_is_empty() is a tiny inline function which determine if a directory has any child objects (sub directories or songs).
* directory: moved code to update.cMax Kellermann2008-10-081-11/+15
| | | | | | The source directory.c mixes several libraries: directory object management, database management and database update, resulting in a 1000+ line monster. Move the whole database update code to update.c.
* directory: simplify list update handling logicEric Wong2008-10-061-5/+5
| | | | | | | | | | | | | | Now the "update" command can be issued multiple times regardless of whether the client is in list mode or not. We serialize the update tasks to prevent updates from trampling over each other and will spawn another update task once the current one is finished updating and reaped. Right now we cap the queue size to 32 which is probably enough (I bet most people usually run update with no argument anyways); but we can make it grow/shrink dynamically if needed. There'll still be a hard-coded limit to prevent DoS attacks, though.
* directory: remove "Mp3" referencesEric Wong2008-09-291-2/+2
| | | | | MPD has supported more audio formats than just MP3 for over five years...
* directory.h: remove directory_sigChldHandler declEric Wong2008-09-291-2/+0
| | | | | We no longer fork for directory updates, so we no longer have children to reap.
* directory: replace DirectoryList with dirvecEric Wong2008-09-291-2/+5
| | | | | Small memory reduction compared to songvec since most users have much fewer dirs than songs, but still nice to have.