aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins/simple/Song.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-08-28db/simple/Song: use std::chrono::duration for start_ms and end_msMax Kellermann1-5/+6
2014-08-28db/LightSong: use std::chrono::duration for start_ms and end_msMax Kellermann1-2/+2
2014-08-28DetachedSong: use std::chrono::duration for start_ms and end_msMax Kellermann1-2/+2
2014-02-26db/simple: create dedicated directoryMax Kellermann1-1/+1
2014-02-04db/LightSong: make "real_uri" a pointerMax Kellermann1-0/+1
Reduce overhead. LightSong can always point to the "real" allocated string.
2014-01-24Database*: move to db/Max Kellermann1-0/+0
2014-01-19Song: make the "parent" attribute mandatoryMax Kellermann1-6/+6
The Song class is only used for database songs now. A Song without a Directory is not possible anymore.
2014-01-19LightSong: new class to be used by DatabasePlugin callbacksMax Kellermann1-9/+12
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-5/+4
Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%.
2014-01-18Song: use the VarSize libraryMax Kellermann1-13/+16
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-09DetachedSong: fork of struct SongMax Kellermann1-87/+9
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.
2014-01-07util/Alloc: new library replacing GLib's g_malloc()Max Kellermann1-5/+5
2013-10-30*: update copyright year to 2013Max Kellermann1-1/+1
2013-10-21Song: add method ReplaceTag()Max Kellermann1-0/+8
2013-10-21Song: pass reference to song_equals()Max Kellermann1-11/+8
2013-10-17Song: GetURI() returns std::stringMax Kellermann1-14/+17
2013-09-05Tag, ...: move to libtag.aMax Kellermann1-1/+1
2013-07-30tag: convert to C++Max Kellermann1-4/+4
2013-07-28song: convert header to C++Max Kellermann1-50/+47
2013-01-07decoder_api.h, ...: add "extern C"Max Kellermann1-3/+0
2013-01-03Directory: rename struct directory to DirectoryMax Kellermann1-5/+5
2013-01-02Directory: turn functions to methodsMax Kellermann1-2/+2
2013-01-02Directory: make the header C++ onlyMax Kellermann1-1/+1
2012-08-15ProxyDatabase: pass "detached" objects to visitorsMax Kellermann1-1/+9
Fixes wrong object URIs with duplicate base names.
2012-08-15Song: add function song_dup_detached()Max Kellermann1-0/+36
Initial support for "detached" songs that come from the database, but are private copies.
2012-08-15Song: add function song_equals()Max Kellermann1-0/+27
decoder_is_current_song() now recognizes different instances of the same physical song.
2012-08-08song: use C++ compilerMax Kellermann1-8/+12
2012-08-08song: include cleanupMax Kellermann1-1/+0
2012-02-12song: add function song_replace_uri()Max Kellermann1-0/+12
2011-01-29copyright year 2011Max Kellermann1-1/+1
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-27song: added support for selecting a time rangeMax Kellermann1-1/+5
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-12-26song: added function song_get_duration()Max Kellermann1-0/+9
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-12/+12
2009-10-12song: moved code to song_update.cMax Kellermann1-147/+0
Moved all the code which depends on the decoder plugins to a separate source. That allows leaner test programs.
2009-07-06song: initialize mtime in song_alloc()Max Kellermann1-0/+1
2009-07-06song: initialize mtime in song_alloc()Max Kellermann1-0/+1
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-28tag: moved APE code to tag_ape.cMax Kellermann1-0/+1
2009-02-25ls: moved generic URI utilities to uri.cMax Kellermann1-1/+1
"ls" is a bad name for a library which parses URIs. We'll move the rest of the "ls" library later.
2009-02-15decoder_api: moved struct decoder_plugin to decoder_plugin.hMax Kellermann1-1/+3
The decoder_plugin struct is used by both the MPD core and the decoder plugin implementations. Move it to a shared header file, to minimize header dependencies.
2009-01-23song: include cleanupMax Kellermann1-2/+0
Removed unused includes.
2009-01-17song: skip archive check for non-musicdir filesMax Kellermann1-1/+1
If a song is not within the music directory ("file:///..."), it has no "parent directory". The archive code nonetheless dereferences the parent pointer, causing a segmentation fault. Check parent!=NULL.
2009-01-17moved fallback APE/ID3 tag loader to song.cMax Kellermann1-0/+36
Some plugins used the APE or ID3 tag loader as a fallback when their own methods of loading tags did not work. Move this code out of all decoder plugins, into song_file_update().
2009-01-04song: allocate the result of song_get_url()Max Kellermann1-6/+4
2009-01-04directory: added directory_is_root()Max Kellermann1-1/+1
directory_is_root() is cheaper than isRootDirectory(directory_get_path()).
2009-01-04ls: renamed functions, no CamelCaseMax Kellermann1-2/+2
2009-01-04ls: removed hasMusicSuffix() and get_archive_by_suffix()Max Kellermann1-16/+31
Determine the suffix manually, and use decoder_plugin_from_suffix() and archive_plugin_from_suffix() instead. This way, song_file_update_inarchive() can be optimized: it does not have to translate its path.