Commit Graph

160 Commits

Author SHA1 Message Date
Max Kellermann
8d822ebdb4 PlaylistMapper: pass the Storage::MapUTF() result to playlist_open_remote()
Finally allows loading playlist files on a storage plugin.  Commit
297e2747 attempted to implement this, but failed due to this bug.
2014-08-30 01:02:24 +02:00
Max Kellermann
b373c53ce4 *: add missing Compiler.h includes
Necessary for "final" on gcc 4.6.
2014-08-30 00:46:52 +02:00
Max Kellermann
7c25d83f1c Tag: use SignedSongTime for the song duration 2014-08-29 13:20:58 +02:00
Max Kellermann
6ad933982f DetachedSong: use std::chrono::duration for start_ms and end_ms 2014-08-28 13:03:18 +02:00
Max Kellermann
1ca8d7ad45 TextInputStream: don't strip
Let the caller decide whether to strip.  Only remove \n and \r
(end-of-line markers).
2014-08-07 16:45:43 +02:00
Max Kellermann
87bcf739ee util/StringUtil: rename strchug_fast() to StripLeft() 2014-08-07 16:08:02 +02:00
Max Kellermann
69ae879c58 input/TextInputStream: return char*
Revert to the old API before commit e9e55b08, removing unnecessary
bloat.
2014-08-07 00:06:02 +02:00
Max Kellermann
d79b6cd8dc playlist/extm3u: use nullptr instead of NULL 2014-07-30 18:44:03 +02:00
Max Kellermann
74e95e88d8 PlaylistSong: always merge tags and LastModified 2014-07-12 19:41:04 +02:00
Max Kellermann
5ca6e2910a PlaylistSong, CueParser: don't override Tag::time
Now that Song::GetDuration() is used (which considers start_ms and
end_ms), we don't need to override the Tag's duration value.
2014-07-12 18:54:20 +02:00
Max Kellermann
913064d6cc Merge branch 'v0.18.x' 2014-07-09 20:02:07 +02:00
Gustavo Zacarias
fb45b8a5c9 playlist/plugins/DespotifyPlaylistPlugin: fix build failure due to missing stdio.h include
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
2014-07-09 19:54:35 +02:00
Gustavo Zacarias
d4bd947bf5 playlist/PlsPlaylistPlugin: fix build failure due to missing stdio.h include
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
2014-07-09 17:41:31 +02:00
Max Kellermann
0b4fa41aff InputStream: "protect" attributes 2014-05-12 18:59:46 +02:00
Max Kellermann
82337dec44 InputStream: add virtual destructor
Replaces the method Close().
2014-05-11 17:12:50 +02:00
Max Kellermann
6773adc771 InputStream: convert to class 2014-05-11 15:34:48 +02:00
Max Kellermann
fc1664d9fc PlaylistMapper: use map_spl_utf8_to_fs()
Eliminates some overhead and some duplicate code, and fixes a serious
bug: the old code did not append the ".m3u" suffix, and thus the
"load" command was completely broken for stored playlists.  D'oh!
2014-05-10 19:00:46 +02:00
Max Kellermann
1c772ef699 Playlist: use the Error library to return errors 2014-02-27 17:27:23 +01:00
Max Kellermann
809b89b5af Playlist*: move to queue/ 2014-02-27 17:12:42 +01:00
Max Kellermann
1cc17bfe7a cue/CueParser: move to playlist/ 2014-02-19 08:56:58 +01:00
Max Kellermann
e10a8d95f6 PlaylistRegistry: disable the "pls" plugin without GLib 2014-02-18 09:18:42 +01:00
Max Kellermann
73b0610d89 PlaylistSong: copy the "real" URI
Playback with some decoder plugins was broken because the Queue's
DetachedSong instances did not have the "real" URI (the mapped path).
2014-02-10 11:00:49 +01:00
Max Kellermann
297e2747f3 PlaylistMapper: use class Storage instead of Mapper.cxx 2014-02-07 21:44:50 +01:00
Max Kellermann
77de233117 Playlist{Any,Registry,Mapper}: move functions to PlaylistStream.cxx 2014-02-07 21:30:49 +01:00
Max Kellermann
02b67edaf5 PlaylistSong: include cleanup 2014-02-07 21:30:03 +01:00
Max Kellermann
8549ccfd8c playlist/CloseSongEnumerator: new wrapper class
Simplifies a lot of code, because we don't need to return both the
SongEnumerator and the InputStream.
2014-02-07 20:27:24 +01:00
Max Kellermann
ca36ac2ba1 SongLoader: new class that merges duplicate code
There was quite a lot of duplicate code for loading DetachedSong
objects, with different semantics for "securely" loading local files.
2014-02-03 23:32:10 +01:00
Max Kellermann
4465e2c46b db: add compile-time option to disable database 2014-01-30 20:39:40 +01:00
Max Kellermann
9b1fbdbca6 ConfigGlobal: add config_find_block()
Merge duplicate code.
2014-01-24 16:55:17 +01:00
Max Kellermann
97391fd4b9 DespotifyUtils, Expat: move to lib/ 2014-01-24 16:44:36 +01:00
Max Kellermann
9d34fc394c Database*: move to db/ 2014-01-24 16:38:44 +01:00
Max Kellermann
f8bfea8bae Input*: move to input/ 2014-01-24 16:33:33 +01:00
Max Kellermann
197b503f3e Config*: move to config/ 2014-01-24 00:20:01 +01:00
Max Kellermann
f1f19841bd playlist/*: move to playlist/plugins/ 2014-01-23 23:30:12 +01:00
Max Kellermann
f5ae1ce00b LightSong: new class to be used by DatabasePlugin callbacks
Detach the Song class completely from the public API, only to be used
by SimpleDatabase and the update thread.
2014-01-19 17:04:51 +01:00
Max Kellermann
1f90e3ce7f playlist/extm3u: allocate Tag instance on the stack
Automate the life cycle, making the code safer.
2014-01-14 22:33:31 +01:00
Max Kellermann
4f83c60296 copyright year 2014 2014-01-13 22:31:55 +01:00
Max Kellermann
dd82370a80 playlist/{asx,rss,xspf}: use Expat instead of GLib to parse XML 2014-01-09 12:19:52 +01:00
Max Kellermann
dab052e53d playlist/asx: make variables more local 2014-01-09 12:18:13 +01:00
Max Kellermann
322b061632 DetachedSong: fork of struct Song
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-09 09:05:58 +01:00
Max Kellermann
139122c57f Merge branch 'v0.18.x' 2014-01-08 22:14:12 +01:00
Max Kellermann
e490e5d0ab playlist/pls: don't free stack buffer 2014-01-08 19:50:44 +01:00
Max Kellermann
3b568b0943 playlist/pls: make variables more local 2014-01-08 19:50:10 +01:00
Max Kellermann
b2e1b38864 playlist/pls: convert "while" loop to "for" loop 2014-01-08 19:50:05 +01:00
Max Kellermann
5c6fe97b35 playlist/pls: simplify error handler
Don't pass a GError** to g_key_file_get_X().  We don't need to dispose
something we didn't request in the first place.
2014-01-08 19:49:34 +01:00
Max Kellermann
2071070f39 DespotifyUtils: return Tag, not pointer 2014-01-08 19:49:27 +01:00
Max Kellermann
89a78a5f3c DespotifyUtils: pass const ds_track reference 2014-01-08 19:49:21 +01:00
Max Kellermann
ac1983eae3 tag/TagBuilder: rename Commit() to CommitNew() 2014-01-08 19:48:55 +01:00
Max Kellermann
0f99410ba1 playlist/soundcloud: parse URI without copying it 2014-01-07 10:21:42 +01:00
Max Kellermann
442dadd6fe playlist/soundcloud: change scheme check to assertion
The MPD core takes care for checking the scheme.
2014-01-07 09:40:31 +01:00