Commit Graph

16876 Commits

Author SHA1 Message Date
Max Kellermann d2cdaa041c net/SocketDescriptor: SO_REUSEADDR is portable 2017-08-10 13:23:14 +02:00
Max Kellermann d84dae488e net/SocketUtil: fix -Wunused 2017-08-10 13:22:00 +02:00
Max Kellermann 79e75bfbb9 net/SocketDescriptor: cast setsockopt() value to "const char *" for Windows 2017-08-10 13:21:24 +02:00
Max Kellermann 73b15c1bee net/SocketDescriptor: socketpair() is unavailable on Windows 2017-08-10 13:19:47 +02:00
Max Kellermann b180604422 net/SocketDescriptor: implement SetNonBlocking() on Windows 2017-08-10 13:18:23 +02:00
Max Kellermann fab12ef241 net/SocketDescriptor: call SetNonBlocking() on Linux if SOCK_NONBLOCK unavailable 2017-08-10 13:16:25 +02:00
Max Kellermann 917881aa48 net/SocketDescriptors: IsValid() is not available on Windows 2017-08-10 13:15:57 +02:00
Max Kellermann 9259e989a4 net/SocketDescriptors: fix includes for Windows 2017-08-10 13:13:19 +02:00
Max Kellermann da90f484aa net/SocketUtil: socket_bind_listen() returns UniqueSocketDescriptor 2017-08-10 13:12:13 +02:00
Max Kellermann 817e912025 net/SocketDescriptor: specialization of FileDescriptor for network sockets 2017-08-10 13:12:13 +02:00
Max Kellermann 7f83d38bca net/StaticSocketAddress: add struct sockaddr cast operators 2017-08-10 13:12:13 +02:00
Max Kellermann 54de8b8e77 net/*, ...: use AF_LOCAL instead of AF_UNIX 2017-08-10 13:12:13 +02:00
Max Kellermann 796956970e net/StaticSocketAddress: pass SocketAddress by value to operator!= 2017-08-10 13:12:13 +02:00
Max Kellermann c0020142da net/StaticSocketAddress: add method SetMaxSize() 2017-08-10 13:12:13 +02:00
Max Kellermann ee6eea95af net/StaticSocketAddress: set a valid size in Clear() 2017-08-10 13:12:13 +02:00
Max Kellermann a257504ba4 mixer/Plugin: pass AudioOutput to init()
Fix breakage from commit bea5681fd8
2017-08-10 13:07:36 +02:00
Max Kellermann fb0dbce15b system/EventFD: use class UniqueFileDescriptor 2017-08-10 12:14:56 +02:00
Max Kellermann 8333551331 system/SignalFD: use class UniqueFileDescriptor 2017-08-10 12:13:41 +02:00
Max Kellermann 292d794806 system/UniqueFileDescriptor: new auto-closing FileDescriptor wrapper 2017-08-10 12:01:17 +02:00
Max Kellermann 91ce76af9d system/FileDescriptor: add methods EnableCloseOnExec(), DisableCloseOnExec() 2017-08-10 11:54:26 +02:00
Max Kellermann 33bd9e80bb system/FileDescriptor: add method IsReadyForWriting() 2017-08-10 11:53:43 +02:00
Max Kellermann d310f3e9b7 system/FileDescriptor: add method IsValid() 2017-08-10 11:52:22 +02:00
Max Kellermann 8c832f4c50 system/FileDescriptor: use std::exchange() 2017-08-10 09:55:11 +02:00
Max Kellermann 31bad5f7af output/Interface: convert to abstract class
Yet another C-style vtable replaced with C++.
2017-08-10 09:01:41 +02:00
Max Kellermann 1cf7f3d87c output/Solaris: use class FileDescriptor 2017-08-10 08:56:56 +02:00
Max Kellermann 9c9a9ccd5c output/Interface: convert to class, make attributes private 2017-08-09 17:03:07 +02:00
Max Kellermann 7381236de6 output/Interface: remove unused attribute "parent" 2017-08-09 17:03:00 +02:00
Max Kellermann fe9ffcb9d2 Merge branch 'v0.20.x' 2017-08-08 19:30:30 +02:00
Max Kellermann bea5681fd8 output/Interface: define a new struct AudioOutput
Hide struct FilteredAudioOutput from the plugins, preparing for hiding
MPD's core internals.
2017-08-08 18:58:40 +02:00
Max Kellermann e11229494e output/Filtered: add method NeedFullyDefinedAudioFormat()
Avoid accessing FilteredAudioFormat attributes directly.
2017-08-08 18:57:59 +02:00
Max Kellermann ccc0fcb5b7 output/Shout: move ConfigureShoutAudioInfo() call to Open()
Configure the AudioFormat after opening the encoder, because only now
we know the final format.
2017-08-08 18:56:14 +02:00
Max Kellermann 6e24381962 output/Shout: move code to ShoutSetAudioInfo() 2017-08-08 18:56:12 +02:00
Max Kellermann 3ab905644d output/Shout: open the encoder first, then open connection
This order will be necessary for proper AudioFormat initialization,
because the encoder may change the format.
2017-08-08 18:53:04 +02:00
Max Kellermann f46d545307 output/Shout: pass shout_t* to shout_connect() 2017-08-08 18:52:03 +02:00
Max Kellermann 8134b0073b output/Shout: move write_page() into the struct 2017-08-08 18:47:37 +02:00
Max Kellermann 6ab19c7ef2 output/Shout: pass shout_t* to handle_shout_error() 2017-08-08 18:47:30 +02:00
Max Kellermann d22361f7c7 output/Shout: remove unnecessary nullptr check 2017-08-08 18:47:02 +02:00
Max Kellermann 06c7e55188 output/Filtered: add methods SupportsEnableDisable(), SupportsPause() 2017-08-08 15:54:49 +02:00
Max Kellermann b3eb8489f3 output/Filtered: add a few OutputPlugin method wrappers 2017-08-08 14:27:19 +02:00
Max Kellermann 5431fca99b output/Filtered: add attribute "log_name" 2017-08-08 14:02:58 +02:00
Max Kellermann 47c9d6ac64 output/Internal: rename source to Filtered.cxx 2017-08-07 21:50:13 +02:00
Max Kellermann d0157af13e filter/Internal: rename struct AudioOutput to FilteredAudioOutput
Prepare to add an abstract class AudioOutput, to be implemented by
plugins, to get rid of the C-style vtable.
2017-08-07 18:47:39 +02:00
Max Kellermann fc04620519 output/Internal: move code to ConfigureConvertFilter() 2017-08-07 18:42:10 +02:00
Max Kellermann d4ee165253 output/Thread: move OpenSoftwareMixer() to the end
This call cannot fail, but needs cleanup if others fail.  By moving it
to the end, we eliminate some cleanup.
2017-08-07 18:42:09 +02:00
Max Kellermann 4f7f577a57 output/Internal: add OpenSoftwareMixer()
Moved code from AudioOutputControl::InternalOpen2().
2017-08-07 18:33:07 +02:00
Max Kellermann 612def5c11 output/Internal: rename CloseFilter() to CloseSoftwareMixer() 2017-08-07 18:32:43 +02:00
Max Kellermann 704825be96 mixer/Software: include cleanup 2017-08-07 18:31:11 +02:00
Max Kellermann b8be7ec90e filter/Normalize: add normalize_filter_prepare() 2017-08-07 18:28:52 +02:00
Max Kellermann a3d71f4b91 filter/Convert: add convert_filter_prepare() 2017-08-07 18:27:00 +02:00
Max Kellermann 9250819b75 filter/Volume: add volume_filter_prepare()
Circumvent filter_new() with a fake ConfigBlock.
2017-08-07 18:23:13 +02:00