Max Kellermann
a2ce2447a6
Merge branch 'v0.17.x'
2013-10-01 17:20:38 +02:00
Max Kellermann
9a1076256d
mixer/alsa: handle ENODEV
...
Fixes busy loop when USB sound device gets unplugged (Mantis bug
#3824 ).
2013-10-01 16:35:27 +02:00
Max Kellermann
72ef38d4a7
mixer/alsa: log snd_mixer_handle_events() errors
2013-10-01 16:30:20 +02:00
Max Kellermann
d397ce68dc
prepare 0.17.6
2013-10-01 16:29:54 +02:00
Max Kellermann
5e20b7976f
DecoderControl: lock the mutex in Seek()
...
Use LockSynchronousCommand() instead of SynchronousCommandLocked().
Fixes regression from commit ef663810
(dead lock due to cond_wait with
unlocked mutex).
2013-09-30 16:20:35 +02:00
Max Kellermann
36f712b949
tag/{riff,aiff}: convert to C++
2013-09-28 14:14:13 +02:00
Max Kellermann
a446775d80
playlist/lastfm: remove defunct Last.fm support
...
This plugin has been defunct ever since Last.fm changed their
protocol. Since there is no volunteer willing to fix the plugin, I'm
removing it now.
2013-09-28 14:01:51 +02:00
Max Kellermann
ccd7f0825a
DecoderControl: use GLib forward declarations
2013-09-27 23:00:23 +02:00
Max Kellermann
d0896ea7c4
PlayerThread: convert struct player to a class
2013-09-27 22:22:11 +02:00
Max Kellermann
a73d1e4b1c
PlayerThread: use strictly typed enum
2013-09-27 22:19:26 +02:00
Max Kellermann
d05bb2a0af
PlayerControl: use strictly typed enums
2013-09-27 22:07:20 +02:00
Max Kellermann
6765901687
DecoderControl: convert "enum decoder_state" to strictly-typed enum
2013-09-27 12:27:33 +02:00
Max Kellermann
c5d05ac0cf
DecoderCommand: convert to strictly-typed enum
2013-09-27 12:11:37 +02:00
Max Kellermann
939003c1f1
OutputAll: add pure/const attributes
2013-09-27 09:38:47 +02:00
Max Kellermann
a10f3a8aec
PlayerControl: convert functions to methods
2013-09-27 09:30:19 +02:00
Max Kellermann
ef663810a2
DecoderControl: convert functions to methods
2013-09-27 09:18:03 +02:00
Max Kellermann
ada67a6a4f
PlayerThread: move code to player_control::CommandFinished()
2013-09-27 07:58:48 +02:00
Max Kellermann
b6a5d1ad5a
PlayerThread: use nullptr instead of NULL
2013-09-27 00:03:22 +02:00
Max Kellermann
d8c5a63bc2
PlayerThread: unlock/lock in player_task()
2013-09-26 23:58:41 +02:00
Max Kellermann
bcb2db62c9
PlayerThread: move code into the player class
2013-09-26 23:57:31 +02:00
Max Kellermann
079ef93121
PlayerThread: use player references
2013-09-26 23:27:47 +02:00
Max Kellermann
b2789c598e
PlayerThread: use {decoder,player}_control references
2013-09-26 22:53:40 +02:00
Max Kellermann
92a93c1217
PlayerThread: allocate decoder_control on the stack
2013-09-26 22:48:55 +02:00
Max Kellermann
96b70835f9
PlayerThread: move global MusicBuffer variable into the player object
2013-09-26 22:45:49 +02:00
Max Kellermann
7fa3b7a267
PlayerThread: simplify "buffer empty" assertion
2013-09-26 22:41:07 +02:00
Max Kellermann
f3fc76e3c8
MusicChunk: remove obsolete prototypes
2013-09-26 22:34:43 +02:00
Max Kellermann
3216f4b257
MusicBuffer: expose the C++ API
2013-09-26 22:21:56 +02:00
Max Kellermann
ce1d897575
MusicPipe: expose the C++ API
2013-09-26 21:51:45 +02:00
Max Kellermann
17e108a10a
MusicChunk: use constexpr for CHUNK_SIZE
2013-09-26 21:49:26 +02:00
Max Kellermann
5bc4ab899f
*Plugin: remove redundant "line %i" from error messages
...
The MPD core will add this as a prefeix.
2013-09-26 20:59:40 +02:00
Max Kellermann
44faf1080c
SongFilter: search for album artist falls back to the artist tag
...
Implement Mantis ticket 0003646.
2013-09-26 19:25:13 +02:00
Max Kellermann
e354c5c2a8
IdTable, SongFilter: use std::fill_n() instead of std::fill()
2013-09-26 18:25:28 +02:00
Max Kellermann
04bc9005ae
TagType: reduce the enum size to 1 byte
...
Reduce the TagItem overhead.
2013-09-26 18:14:58 +02:00
Max Kellermann
3c92c69bc7
Tag: add "pure" attributes
2013-09-26 18:11:00 +02:00
Max Kellermann
52ee132d92
TagHandler: use a TagBuilder internally
...
Reduce heap allocator overhead.
2013-09-26 17:35:08 +02:00
Max Kellermann
7ca0aedcfc
Main: fix crash if no database was configured
...
Add nullptr check, and return early from glue_db_init_and_load().
2013-09-26 17:33:46 +02:00
Max Kellermann
a2c4037a24
Main: use nullptr instead of NULL
2013-09-26 17:31:50 +02:00
Max Kellermann
d7b0073ce1
decoder/modplug: fix include directory
...
Since Debian package 1:0.8.8.4-4, the pkg-config file does not contain
-I/usr/include/libmodplug anymore, and we need to add the
"libmodplug/" prefix to the #include line.
2013-09-26 17:27:35 +02:00
Artem Savkov
585b68d2ae
input/curl: fix EventLoop stall after curl_easy_pause
...
When playing finite http streams, e.g. something from soundcloud,
eventloop stalls after pausing writefunc. TimeoutMonitor is cancelled
by the time resume happens, so when enough data is consumed writefunc
is called only once. Calling InvalidateSockets() from
input_curl_resume() seems to fix the issue.
2013-09-26 17:27:35 +02:00
Max Kellermann
89d2d648cc
ConfigPath: return early on "~"
...
Previously, the pointer was moved to undefined memory.
2013-09-12 11:05:59 +02:00
Max Kellermann
7532f24d58
ConfigPath: skip the slash of "~/"
...
Increment the "path" earlier.
2013-09-12 11:05:41 +02:00
Max Kellermann
69a5df2f98
ConfigPath: remove the "~/" from the constructed path
...
This was building broken paths like "/home/foo/~/bar". Bug found by
Maarten de Vries.
2013-09-12 10:54:45 +02:00
Max Kellermann
1c65908cdb
ConfigPath: simplify the duplicate tilde check
2013-09-12 10:49:57 +02:00
Max Kellermann
3aaf013dd1
ConfigPath: convert "home" variable to Path object
...
Use Path::FromUTF8() for the g_get_home_dir() return value instead of
assuming it's already FS charset.
2013-09-12 10:35:40 +02:00
Max Kellermann
5f2705ab07
ConfigPath: move code to GetHome()
2013-09-12 10:30:00 +02:00
Max Kellermann
9af620982c
ConfigPath: include cleanup
2013-09-12 10:17:41 +02:00
Max Kellermann
1ee6a78cb7
Path: add FromUTF8() overload that returns an Error
2013-09-12 10:17:41 +02:00
Max Kellermann
bf4ee48efa
ConfigPath: move path_domain to system/Path.cxx
2013-09-12 10:03:37 +02:00
Maarten de Vries
08e6d222a2
Listen: Allow tilde paths for socket.
2013-09-12 08:55:45 +02:00
Max Kellermann
cf98b0e261
test/dump_rva2: remove fake Tag symbols
2013-09-05 19:25:50 +02:00