aboutsummaryrefslogtreecommitdiffstats
path: root/src/SongUpdate.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-03-01SongUpdate: use OpenArchiveInputStream() to open archive fileMax Kellermann1-1/+5
Don't pass Path::c_str() to tag_stream_scan() which requires a UTF-8 string.
2015-03-01db/simple: eliminate UpdateFileInArchive() if archive API is disabledMax Kellermann1-2/+10
Reduce some unnecessary overhead.
2015-02-28fs/FileInfo: new library providing GetFileInfo()Max Kellermann1-4/+4
Replaces StatFile(), with a portable data object.
2015-02-28storage/FileInfo: rename to StorageFileInfoMax Kellermann1-1/+1
2015-01-01Copyright year 2015Max Kellermann1-1/+1
2014-02-26db/simple: create dedicated directoryMax Kellermann1-2/+2
2014-02-07SongUpdate: pass Storage to UpdateFileInArchive()Max Kellermann1-4/+5
2014-02-06SongUpdate: use the Storage interface, support remote filesMax Kellermann1-14/+26
This commit finally allows the database update to scan remote files, e.g. using the smbclient storage plugin. However, it is not yet possible to configure that, therefore the feature is not accessible yet.
2014-02-06SongUpdate: make variables more localMax Kellermann1-10/+5
2014-01-30db: add compile-time option to disable databaseMax Kellermann1-0/+8
2014-01-24Database*: move to db/Max Kellermann1-2/+2
2014-01-24decoder/*: move to decoder/plugins/Max Kellermann1-1/+1
2014-01-21DetachedSong: add attribute "real_uri"Max Kellermann1-1/+1
Prepare for UPnP songs that retain there database identity.
2014-01-19Song: make the "parent" attribute mandatoryMax Kellermann1-3/+2
The Song class is only used for database songs now. A Song without a Directory is not possible anymore.
2014-01-19Song: embed the Tag object statically into class SongMax Kellermann1-4/+2
Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%.
2014-01-15DetachedSong: add method Update()Max Kellermann1-0/+37
Don't create an intermediate Song instance when all we want is a DetachedSong.
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-09DetachedSong: fork of struct SongMax Kellermann1-7/+1
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-08SongUpdate: move code to handle_lsinfo()Max Kellermann1-14/+0
Don't create a temporary Song object in handle_lsinfo(). Instead, print all tags while parsing the remote file.
2014-01-08tag/TagBuilder: rename Commit() to CommitNew()Max Kellermann1-3/+3
2013-12-29command: "lsinfo" and "readcomments" allowed for remote filesMax Kellermann1-0/+14
2013-12-29SongUpdate: read tags from songs in an archiveMax Kellermann1-5/+9
Add the TagStream.cxx library, similar to TagFile.cxx, and use it to load tags from song files inside archives.
2013-12-29DecoderList: add function decoder_plugins_supports_suffix()Max Kellermann1-3/+1
Replaces decoder_plugin_from_suffix().
2013-12-29TagFile: pass reference instead of pointerMax Kellermann1-1/+1
2013-12-10SongUpdate: accept files without metadatamobidyc1-2/+1
If the file was recognized by a decoder plugin, accept it - don't require metadata.
2013-12-05fs/Traits: split PathTraits type into PathTraitsFS and PathTraitsUTF8Denis Krjuchkov1-1/+1
2013-11-28include cleanup using iwyuMax Kellermann1-6/+0
2013-10-26TagFile: use Path instead of const char *Max Kellermann1-3/+3
2013-10-21SongUpdate: use tag_file_scan()Max Kellermann1-63/+9
Eliminate duplicate code.
2013-10-21decoder_plugin: rename struct to DecoderPluginMax Kellermann1-2/+2
2013-10-19*: use references instead of pointersMax Kellermann1-3/+3
2013-10-19*: use nullptr instead of NULLMax Kellermann1-16/+16
2013-10-17fs/Path: rename to AllocatedPathMax Kellermann1-2/+2
The new class Path only holds a string pointer without being responsible for allocation/deallocation. The FileSystem.hxx library accepts Path arguments instead of AllocatedPath, to avoid forcing callers to allocate another string object.
2013-10-17fs/Path: move definitions to struct PathTraitsMax Kellermann1-1/+2
2013-10-17fs/Path: include cleanupMax Kellermann1-0/+1
2013-10-17thread/{Cond,Mutex}: use "class" instead of "typedef"Max Kellermann1-0/+1
Allows forward-declaration.
2013-10-15Client, ...: remove unnecessary glib.h includeMax Kellermann1-2/+0
2013-10-14fs/Path: add method IsAbsolute()Max Kellermann1-1/+1
2013-09-26TagHandler: use a TagBuilder internallyMax Kellermann1-11/+15
Reduce heap allocator overhead.
2013-09-05Tag, ...: move to libtag.aMax Kellermann1-2/+2
2013-09-05InputLegacy: move functions to the input_stream classMax Kellermann1-10/+7
2013-09-04Tag*: move libtag.a sources to src/tag/Max Kellermann1-2/+2
2013-09-04util/Error: new error passing libraryMax Kellermann1-2/+5
Replaces GLib's GError.
2013-09-03input_stream.h: rename to InputLegacy.hxxMax Kellermann1-1/+1
2013-07-30tag: convert to C++Max Kellermann1-13/+10
2013-07-29tag_handler: convert to C++Max Kellermann1-4/+1
2013-07-29ape: convert to C++Max Kellermann1-1/+1
2013-07-28tag_id3: convert to C++Max Kellermann1-1/+1
2013-07-28song: convert header to C++Max Kellermann1-38/+33
2013-07-28decoder_api: convert to C++Max Kellermann1-1/+1