Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | output/raop: merge raopcl_close() into _finish() | Max Kellermann | 2011-08-30 | 1 | -10/+4 |
| | | | | .. and fix a double free bug. | ||||
* | output/raop: free the raop_data object in finish() | Max Kellermann | 2011-08-30 | 1 | -0/+1 |
| | |||||
* | output/raop: remove from the session when opening fails | Max Kellermann | 2011-08-30 | 1 | -2/+6 |
| | |||||
* | output/raop: move code to raop_output_remove() | Max Kellermann | 2011-08-30 | 1 | -3/+14 |
| | |||||
* | rtsp_client: increment "dp" after terminating the string | Max Kellermann | 2011-08-30 | 1 | -2/+3 |
| | | | | This fixes a bug that caused all values to be an empty string. | ||||
* | rtsp_client: simplify whitespace elimination | Max Kellermann | 2011-08-30 | 1 | -4/+6 |
| | | | | Just move a pointer, don't call strlen() in every iteration. | ||||
* | rtsp_client: check "new_kd" instead of "i" | Max Kellermann | 2011-08-30 | 1 | -4/+2 |
| | | | | Eliminate the redundant local variable "i". | ||||
* | rtsp_client: move "new_kd" out of the loop | Max Kellermann | 2011-08-30 | 1 | -1/+1 |
| | | | | This must persist iterations. | ||||
* | ntp_server: move code to udp_server.c | Max Kellermann | 2011-08-30 | 7 | -142/+219 |
| | |||||
* | output/raop: move RTSP client code to rtsp_client.c | Max Kellermann | 2011-08-29 | 5 | -513/+738 |
| | | | | Restore some of the original file structure from from raop_play. | ||||
* | ntp_server: use the I/O thread | Max Kellermann | 2011-08-29 | 6 | -66/+80 |
| | |||||
* | io_thread: add function io_thread_quit() | Max Kellermann | 2011-08-29 | 2 | -2/+17 |
| | |||||
* | test/run_ntp_server: quit on SIGINT or SIGTERM | Max Kellermann | 2011-08-29 | 4 | -1/+104 |
| | | | | Clean up the process before exiting. | ||||
* | ntp_server: check for select() failures | Max Kellermann | 2011-08-29 | 1 | -1/+3 |
| | | | | Fix freeze after signal was handled. | ||||
* | ntp_server: fix socket types | Max Kellermann | 2011-08-29 | 1 | -3/+5 |
| | | | | | | Cast recvfrom(), sendto() buffers to "void*" to avoid "char*" / "unsigned char*" confusion. Use ssize_t for the return value, and socklen_t for the socket address size. | ||||
* | io_thread: add function io_thread_run() | Max Kellermann | 2011-08-29 | 2 | -2/+16 |
| | |||||
* | configure.ac: add OpenSSL check for RAOP output plugin | Max Kellermann | 2011-08-29 | 2 | -3/+7 |
| | | | | Auto-enable the plugin when OpenSSL was found. | ||||
* | ntp_server: add debug program "run_ntp_server" | Max Kellermann | 2011-08-29 | 3 | -0/+145 |
| | |||||
* | output/raop: fallback for g_set_error_literal() | Max Kellermann | 2011-08-29 | 2 | -0/+12 |
| | | | | | This function was added in GLib 2.18. Make the plugin compatible with older GLib versions. | ||||
* | output/raop: move NTP code to separate library | Max Kellermann | 2011-08-28 | 5 | -79/+197 |
| | |||||
* | rename 'Timer' to 'struct timer' | Jonathan Neuschäfer | 2011-08-27 | 7 | -24/+24 |
| | |||||
* | let doxygen find the source code | Jonathan Neuschäfer | 2011-08-27 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | [Unfortunately,] @top_srcdir@ is replaced by the package's top-level directory relative to the directory of the .in file being processed, e.g. if you unpack the MPD source to /usr/src/mpd, and build it in the same directory, @top_srcdir@/src/ in doc/doxygen.conf.in will be re- placed by "../src/", and, as doxygen is invoked from the top directory, is will expect the source code in /usr/src/src/, which is obviously wrong. To work around this problem, this patch changes @top_srcdir@ to @abs_top_srcdir@, which expands to the absolute path of the top source directory[1]. [1] http://www.gnu.org/s/hello/manual/autoconf/Preset-Output-Variables.html | ||||
* | input/curl: use the I/O thread | Max Kellermann | 2011-08-25 | 1 | -222/+653 |
| | | | | | Background buffering and better timeout handling. This patch sort of obsoletes the input_plugin method buffer(). | ||||
* | input/curl: eliminate attribute "eof" | Max Kellermann | 2011-08-25 | 1 | -11/+4 |
| | | | | | | Assume the flag is true when the "easy" CURL handle is NULL. That way, we don't need to keep track if CURL has sent us the "DONE" information yet. | ||||
* | input/curl: release "easy" CURL handle as early as possible | Max Kellermann | 2011-08-25 | 1 | -9/+10 |
| | | | | | | Release it immediately when end-of-file has been reached. We don't need that handle anymore, because the rest is delivered from the buffers. | ||||
* | input/curl: move code to input_curl_flush_buffers() | Max Kellermann | 2011-08-25 | 1 | -3/+9 |
| | | | | Allow closing the handle while preserving the remaining buffers. | ||||
* | input/curl: pass input_curl to fill_buffer() | Max Kellermann | 2011-08-25 | 1 | -4/+3 |
| | | | | Remove a cast. | ||||
* | io_thread: add helper functions | Max Kellermann | 2011-08-25 | 2 | -0/+84 |
| | |||||
* | io_thread: move global variables into a struct | Max Kellermann | 2011-08-25 | 1 | -25/+27 |
| | |||||
* | glib_compat.h: add g_timeout_source_new_seconds() | Max Kellermann | 2011-08-25 | 1 | -0/+6 |
| | |||||
* | input/curl: set GError when init() fails | Max Kellermann | 2011-08-25 | 1 | -2/+3 |
| | | | | Let the caller know what happened, he's responsible for logging. | ||||
* | input/soup: free all resources in method close() | Max Kellermann | 2011-08-24 | 1 | -0/+10 |
| | |||||
* | valgrind.suppressions: suppress g_resolver_get_default() | Max Kellermann | 2011-08-24 | 1 | -0/+8 |
| | |||||
* | valgrind.suppressions: suppress g_data_initialize() | Max Kellermann | 2011-08-24 | 1 | -0/+8 |
| | | | | This function initializes global variables. | ||||
* | valgrind.suppressions: add libsoup suppressions | Max Kellermann | 2011-08-24 | 1 | -0/+40 |
| | |||||
* | valgrind.suppressions: add GType suppressions | Max Kellermann | 2011-08-24 | 1 | -0/+88 |
| | | | | libsoup uses GType. | ||||
* | valgrind.suppressions: suppress g_intern_static_string() | Max Kellermann | 2011-08-24 | 1 | -0/+8 |
| | |||||
* | valgrind.suppressions: use wildcards | Max Kellermann | 2011-08-24 | 1 | -498/+26 |
| | |||||
* | input/soup: new input plugin based on libsoup | Max Kellermann | 2011-08-24 | 12 | -1/+500 |
| | | | | | | | | To demonstrate the new I/O thread. libsoup is well-integrated into the GLib main loop, which made this plugin pretty easy to write. As a side effect, we have to initialize the I/O thread in all debug programs that use the input API. | ||||
* | io_thread: new thread for non-blocking background I/O | Max Kellermann | 2011-08-24 | 4 | -0/+134 |
| | | | | Try to eliminate the remaining blocking I/O. | ||||
* | input/curl: remove obsolete function input_curl_reinit() | Max Kellermann | 2011-08-24 | 3 | -21/+0 |
| | |||||
* | output/raop: use GLib byte order macros | Max Kellermann | 2011-08-24 | 1 | -5/+3 |
| | |||||
* | output/raop: use fill_int() in fill_time_...() | Max Kellermann | 2011-08-24 | 1 | -19/+14 |
| | | | | Eliminate duplicate code. | ||||
* | output/raop: check if the "host" option is present | Max Kellermann | 2011-08-24 | 1 | -1/+8 |
| | | | | Better than dereferencing NULL. | ||||
* | output/raop: remove excessive debug messages | Max Kellermann | 2011-08-24 | 2 | -9/+0 |
| | |||||
* | output/raop: consistently use GError | Max Kellermann | 2011-08-24 | 4 | -81/+157 |
| | |||||
* | output/raop: use GLib heap functions | Max Kellermann | 2011-08-24 | 1 | -30/+22 |
| | |||||
* | output/raop: functions that always succeed return void | Max Kellermann | 2011-08-24 | 1 | -22/+14 |
| | | | | No point in returning true, and checking that. | ||||
* | output/raop: rtspcl_connect() returns false on error | Max Kellermann | 2011-08-24 | 1 | -3/+9 |
| | | | | .. and not -1, which is "true". | ||||
* | output/raop: error checking in send_control_command() | Max Kellermann | 2011-08-24 | 1 | -6/+13 |
| |