aboutsummaryrefslogtreecommitdiffstats
path: root/src/SongPrint.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-11-25{Tag,Song}Print, PlayerCommands: report song duration with milliseconds ↵Max Kellermann1-1/+4
precision
2014-10-01storage/Interface: include cleanupMax Kellermann1-0/+1
2014-08-29Tag: use SignedSongTime for the song durationMax Kellermann1-3/+3
2014-08-28db/LightSong: use std::chrono::duration for start_ms and end_msMax Kellermann1-8/+11
2014-08-28DetachedSong: use std::chrono::duration for start_ms and end_msMax Kellermann1-2/+2
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.