aboutsummaryrefslogtreecommitdiffstats
path: root/src/SongPrint.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-07-12SongPrint: use DetachedSong::GetDuration()Max Kellermann1-1/+5
Fixes the bogus duration of the last track in a CUE sheet.
2014-03-01command: add command "listfiles"Max Kellermann1-19/+25
Lists files and directories. Supports storage plugins.
2014-02-07StoragePlugin: add method MapToRelativeUTF8()Max Kellermann1-3/+11
Replaces map_to_relative_path() from Mapper.cxx.
2014-01-24Database*: move to db/Max Kellermann1-1/+1
2014-01-24Client*: move to client/Max Kellermann1-1/+1
2014-01-22LightDirectory: new struct replacing Directory in the DB APIMax Kellermann1-1/+0
2014-01-19LightSong: new class to be used by DatabasePlugin callbacksMax Kellermann1-6/+8
Detach the Song class completely from the public API, only to be used by SimpleDatabase and the update thread.
2014-01-19Song: embed the Tag object statically into class SongMax Kellermann1-2/+1
Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%.
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-09DetachedSong: fork of struct SongMax Kellermann1-9/+45
From now on, struct Song will be used by the database only, and DetachedSong will be used by everybody else. DetachedSong is easier to use, but Song has lower overhead.
2013-10-23UriUtil: uri_remove_auth() returns std::stringMax Kellermann1-10/+4
2013-10-19*: use references instead of pointersMax Kellermann1-18/+18
2013-07-30tag: convert to C++Max Kellermann1-2/+2
2013-07-28song: convert header to C++Max Kellermann1-4/+4
2013-04-08uri: convert to C++Max Kellermann1-4/+1
2013-01-30TagPool, ...: include cleanupMax Kellermann1-0/+2
2013-01-03Client: rename the struct client to class ClientMax Kellermann1-2/+2
2013-01-03client: convert to C++Max Kellermann1-1/+1
2013-01-02Directory: turn functions to methodsMax Kellermann1-2/+2
2013-01-02Directory: make the header C++ onlyMax Kellermann1-1/+1
2013-01-02mapper: convert to C++Max Kellermann1-1/+1
2013-01-02*_print: convert to C++Max Kellermann1-4/+7
2012-08-08time_print: new library, function time_print()Max Kellermann1-26/+3
Implements error checking for the gmtime_r() call, which was missing in two code locations.
2012-01-24directory: replace songvec with doubly linked listMax Kellermann1-1/+0
2011-09-13db_print: move code to function db_selection_print()Max Kellermann1-15/+0
Use it in handle_lsinfo(), and eliminate some duplicate code.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-07-25{queue,song}_print: print relative paths if possibleMax Kellermann1-1/+3
If a song with an absolute path points inside the music directory, print only the relative part. This happens when partial songs from a playlist file were loaded.
2010-06-25song_print: simplified start_ms/end_ms checkMax Kellermann1-12/+10
2010-05-18command: fallback strftime() formats on WIN32Max Kellermann1-1/+7
On WIN32, "%F" and "%T" are not implemented.
2010-02-08song_print: song_print() returns voidMax Kellermann1-6/+7
The only "return" statement always returns 0.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-27song: added support for selecting a time rangeMax Kellermann1-0/+13
Added attributes start_ms, end_ms. This allows us to address a portion of a song file (important for CUE support). There is no support yet for storing these attributes in the state file.
2009-11-12include config.h in all sourcesMax Kellermann1-0/+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.
2009-10-13song: renamed attribute "url" to "uri"Max Kellermann1-5/+5
2009-07-06song_print: check gmtime_r()'s return valueMax Kellermann1-7/+11
When song->mtime was not initialized properly, it was revealed that strftime() might crash when gmtime_r() returns NULL due to an invalid time_t input value.
2009-07-05song_print: send song modification time to clientMax Kellermann1-0/+17
Added the response line "Last-Modified", which sends the modification time in ISO 8601. The same was already implemented for playlists.
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-27song_print: hide HTTP password in playlistMax Kellermann1-1/+11
Added the uri_remove_auth() library function which strips username and password from a HTTP URI, and use it in song_print_url(). This allows you to add HTTP URIs to the playlist including secret username and password, without disclosing it to all MPD clients.
2009-01-04directory: added directory_is_root()Max Kellermann1-1/+1
directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
2008-10-08directory: fix update in root directoryMax Kellermann1-1/+1
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-1/+1
CamelCase is ugly, rename the functions.
2008-10-08song: removed CamelCaseMax Kellermann1-2/+2
CamelCase is ugly... rename all functions.
2008-10-08song: converted typedef Song to struct songMax Kellermann1-3/+6
Again, a data type which can be forward-declared.
2008-10-07song: use songvec_for_each() in songvec_print() / songvec_save()Max Kellermann1-8/+8
songvec_for_each() has locking, use it instead of manually iterating over the songvec items.
2008-10-07song: replace printSong* with song_print_*Eric Wong1-4/+4
This make argument order more consistent for iterators. Additionally, these now return ssize_t results for error checking.
2008-09-23Replace SongList with struct songvecEric Wong1-6/+7
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-07pass "struct client" to dbUtils.c, song.c, tag_print.cMax Kellermann1-10/+10
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-07song: moved code to song_print.c, song_save.cMax Kellermann1-16/+24
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-07tag: moved code to tag_print.cMax Kellermann1-16/+22
Move everything which dumps a tag to a file descriptor to tag_print.c. This relaxes dependencies and splits the code into smaller parts.
2008-08-26added inline function audio_format_time_to_size()Max Kellermann1-0/+5
Make the code more readable by hiding big formulas in an inline function with a nice name.