Denis Krjuchkov
e98e2a0b07
Path::FromUTF8() returns nulled instance on error, add error handling where required
2013-01-28 00:13:46 +06:00
Denis Krjuchkov
943064bb51
Path: convert remaining funcs to methods, keep fs_charset as std::string
2013-01-28 00:13:46 +06:00
Denis Krjuchkov
7149a8ae4f
Path: merge utf8_to_fs_charset() into Path::FromUTF8()
2013-01-28 00:13:45 +06:00
Denis Krjuchkov
3c7cf94643
Path: convert fs_charset_to_utf8() to static method Path::ToUTF8()
2013-01-28 00:13:45 +06:00
Denis Krjuchkov
3bd35d1883
Path: introduce MPD_PATH_MAX_UTF8
2013-01-28 00:13:45 +06:00
Max Kellermann
6f3d70b5e2
DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond
2013-01-27 18:39:32 +01:00
Max Kellermann
257a0dee75
playlist/*: convert to C++
2013-01-27 17:38:09 +01:00
Denis Krjuchkov
e995cd928c
Path: define MPD_PATH_MAX to 260 on Windows
2013-01-26 11:18:12 +06:00
Denis Krjuchkov
292d7c3fdf
Path: ToUTF() returns std::string
2013-01-26 11:16:12 +06:00
Max Kellermann
0273cd44b0
input_stream: forward-declare the struct
...
Hide the definition from C code, to prepare the transition to C++.
2013-01-26 01:24:01 +01:00
Max Kellermann
3203a7dd8c
tag_file: convert to C++
2013-01-26 01:23:02 +01:00
Max Kellermann
86b0adc82c
playlist/*: convert to C++
2013-01-26 01:17:43 +01:00
Max Kellermann
ba49f20f68
decoder/ffmpeg: convert to C++
2013-01-26 01:17:43 +01:00
Denis Krjuchkov
a3ee26da64
Mapper: improve usage of Path class
2013-01-26 01:14:13 +01:00
Max Kellermann
a9b62a2ece
PlayerControl: add second Cond object
...
This fixes a deadlock bug introduced by 18076ac9
. After all, the
second Cond was necessary.
The problem: two threads can wait for a signal at the same time. The
player thread waits for the output thread to finish playback. The
main thread waits for the player thread to complete a command. The
output thread finishes playback, and sends a signal, which
unfortunately does not wake up the player thread, but the main
thread. The main thread sees that the command is still not finished,
and waits again. The signal is lost forever, and MPD is deadlocked.
2013-01-25 23:53:43 +01:00
Max Kellermann
49567f1f3e
input_{internal,plugin}: convert to C++
2013-01-25 22:43:01 +01:00
Max Kellermann
94fffb332b
archive/*: convert to C++
2013-01-24 19:18:58 +01:00
Max Kellermann
dc2e64c92b
DecoderControl: fix typo in assertion check
2013-01-23 18:02:40 +01:00
Denis Krjuchkov
06fb7c671b
Makefile.am: introduce libfs
2013-01-22 01:31:29 +06:00
Denis Krjuchkov
ef93cdf4a8
Path: move to fs subdirectory
2013-01-22 01:24:53 +06:00
Denis Krjuchkov
4ad90e2d52
FileSystem: extract DirectoryReader, improve the rest
...
- DirectoryReader is extracted to separate header
- FileSystem.cxx/FileSystem.hxx/DirectoryReader.hxx moved to fs/ subdir
- Functions return true on success, instead of 0 (where applicable)
- ReadLink return result instead of out parameter
- UnlinkFile is renamed to RemoveFile
- CheckExists/CheckIsRegular/CheckIsDirectory are renamed
to PathExists/FileExists/DirectoryExists
2013-01-22 01:05:30 +06:00
Max Kellermann
7c0e4dfb56
input/archive: fix memory leak in error handler
2013-01-21 19:08:35 +01:00
Max Kellermann
9ec069104f
input,playlist/despotify: convert to C++
2013-01-21 19:01:10 +01:00
Max Kellermann
7d21d60dba
despotify_utils: fix indent
2013-01-21 19:00:50 +01:00
Max Kellermann
ed8562c300
despotify_utils: include cleanup
2013-01-21 19:00:01 +01:00
Max Kellermann
22ec1c3498
despotify_utils: add missing copyright header
2013-01-21 18:59:37 +01:00
Max Kellermann
9cc90b1fbe
input/cdio_paranoia: convert to C++
2013-01-21 17:58:30 +01:00
Max Kellermann
0c9f22507f
input/ffmpeg: convert to C++
2013-01-21 17:50:43 +01:00
Max Kellermann
9c870e4276
input/rewind: convert to C++
2013-01-21 17:36:19 +01:00
Max Kellermann
5cffe693b0
input/file,mms: convert to C++
2013-01-21 10:52:40 +01:00
Max Kellermann
e01615fd1e
input_internal.h: add extern "C"
2013-01-21 10:52:19 +01:00
Max Kellermann
c1daa857a5
test/run_tcp_connect: delete obsolete source file
2013-01-21 10:47:38 +01:00
Max Kellermann
3928c4e9ae
UpdateRemove: Mutex/Cond instead of GMutex/GCond
2013-01-21 10:42:47 +01:00
Max Kellermann
32799fef5c
DecoderControl: move functions into the class
2013-01-21 10:13:29 +01:00
Max Kellermann
e1b03b4a71
PlayerControl: move functions into the class
2013-01-20 17:48:23 +01:00
Denis Krjuchkov
e6ed592b8a
FileSystem: new library for Path-friendly file system routines
2013-01-20 19:08:36 +06:00
Denis Krjuchkov
6f4560184c
dummy.cxx: remove unused file
...
This file was used previously to force C++ linkage.
It's no longer required because most of the code is C++ anyway.
2013-01-19 12:45:50 +06:00
Max Kellermann
e5039c478a
Path: new class "Path" wraps filesystem path strings
2013-01-18 15:34:01 +01:00
Max Kellermann
8901514506
Playlist, Song: clarify parameter encoding
2013-01-18 15:34:01 +01:00
Max Kellermann
21fe376d1d
path: convert to C++
2013-01-17 00:43:27 +01:00
Max Kellermann
e22ef6c481
output/roar: convert to C++
2013-01-16 23:29:56 +01:00
Max Kellermann
2bb01093c0
Idle: don't wake up event loop on duplicate event
2013-01-16 23:27:17 +01:00
Max Kellermann
36c814d26e
Idle: use std::atomic instead of GMutex
2013-01-16 23:23:47 +01:00
Max Kellermann
d769b74d61
Main: fix comment typo
2013-01-16 23:23:47 +01:00
Max Kellermann
601495fa0f
ClientList: convert to a class
2013-01-16 23:00:13 +01:00
Max Kellermann
1998633739
ClientGlobal: move client_close_all() to ClientList.cxx
2013-01-16 22:56:52 +01:00
Max Kellermann
0194217f9d
Revert "ClientList: allow deleting clients in client_list_foreach() callback"
...
This reverts commit f56c6a18c1
. This
fix is not necessary anymore because clients are now being deleted by
the timer callback.
2013-01-16 22:49:51 +01:00
Max Kellermann
b0bbb8b693
Client: use TimeoutMonitor to track connection timeout
...
Don't use a global loop over the whole client list.
2013-01-16 21:51:08 +01:00
Max Kellermann
cab84af72e
Client: move "idle" functions into the class
2013-01-16 21:46:13 +01:00
Max Kellermann
74500eacca
Merge branch 'v0.17.x'
2013-01-16 20:05:26 +01:00