aboutsummaryrefslogtreecommitdiffstats
path: root/src/SongUpdate.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
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
2013-04-08uri: convert to C++Max Kellermann1-1/+1
2013-02-02SongUpdate.cxx: use StatFileDenis Krjuchkov1-1/+2
2013-01-30decoder_list: convert to C++Max Kellermann1-2/+2
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann1-14/+2
2013-01-22Path: move to fs subdirectoryDenis Krjuchkov1-1/+1
2013-01-18Path: new class "Path" wraps filesystem path stringsMax Kellermann1-9/+9
2013-01-18Playlist, Song: clarify parameter encodingMax Kellermann1-5/+5
2013-01-07decoder_api.h, ...: add "extern C"Max Kellermann1-2/+2
2013-01-03Directory: rename struct directory to DirectoryMax Kellermann1-1/+1
2013-01-02Directory: make the header C++ onlyMax Kellermann1-1/+1
2013-01-02mapper: convert to C++Max Kellermann1-1/+1
2013-01-02song_update: convert to C++Max Kellermann1-2/+9
2012-03-01song_update, udp_server: workarounds for gcc 4.1 warningsMax Kellermann1-0/+5
Annoying false positives.
2012-02-12song_update: update the "has_playlist" flagMax Kellermann1-3/+3
2012-02-12tag_{ape,id3}: remove the _load() functionsMax Kellermann1-27/+6
Use _scan() instead, to have more control.
2012-02-11decoder_plugin: scan tags with callback tableMax Kellermann1-6/+15
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object.
2011-09-16input_stream: non-blocking I/OMax Kellermann1-3/+15
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.