aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* log: provide a GLib logging handlerMax Kellermann2008-11-051-0/+15
| | | | | Install a default handler which writes to stdout or stderr, and prepends a time stamp. This looks just like the 0.13.x logger.
* log: use GLib message loggingMax Kellermann2008-11-052-24/+15
| | | | | | The logging functions from log.h are deprecated, and the code should use GLib logging instead. Make ERROR(), WARNING() etc. call g_logv() internally.
* log: no CamelCaseMax Kellermann2008-11-051-6/+8
| | | | Renamed the variable "logLevel" to "log_threshold".
* log: removed warning bufferMax Kellermann2008-11-053-79/+2
| | | | | The warning buffer is a complex piece of code for no good reason. Remove it and find a better solution, e.g. open the log file earlier.
* main: initialize locale (LC_CTYPE)Max Kellermann2008-11-051-0/+9
| | | | | | Initialize libc's locale functions. Currently, we are only interested in LC_CTYPE (character classification), because this is what is used by GLib's g_get_charset().
* path: don't allocate charset twiceMax Kellermann2008-11-051-5/+3
| | | | | Make the local variable "charset" const, and don't duplicate its value. It is already duplicated by path_set_fs_charset().
* path: get filesystem charset from GLibMax Kellermann2008-11-051-39/+6
| | | | | | GLib provides the function g_get_filename_charsets() which determines the file system character set. This changes MPD's fallback: GLib prefers UTF-8 as a fallback. MPD used to fall back to ISO Latin 1.
* path: no CamelCaseMax Kellermann2008-11-054-30/+27
| | | | Rename variables and functions.
* enable GLib threadingMax Kellermann2008-11-052-1/+4
| | | | | Call g_thread_init() from main() to enable the GLib features which make it thread safe.
* main: don't close all file descriptors on startupMax Kellermann2008-11-051-11/+0
| | | | | Removed closeAllFDs(). The caller is responsible for closing all file handles.
* pulse: removed reconnect intervalMax Kellermann2008-11-051-19/+2
| | | | | The output thread automatically waits some time before retrying to open the device. Don't duplicate this check in the pulse plugin.
* pulse: check if connection is open in pulse_cancel()Max Kellermann2008-11-051-0/+3
| | | | | The pulse plugin crashed with a segmentation fault when the pulse server was killed.
* wavpack: read_bytes() should not return after partial readsMax Kellermann2008-11-051-1/+16
| | | | | | | libwavpack expects the read_bytes() stream method to fill the whole buffer, and fails badly when we return a partial read (i.e. not enough data available yet). This caused wavpack streams to break. Re-implement the buffer filling loop.
* wavpack: don't close the streamMax Kellermann2008-11-051-1/+0
| | | | The input_stream object is opened and closed by the caller.
* configure.ac: check for avcodec_decode_audio2()Max Kellermann2008-11-041-0/+8
| | | | | Disable the ffmpeg decoder plugin if avcodec_decode_audio2() is not available.
* decoder: removed stream_typesMax Kellermann2008-11-0413-28/+0
| | | | | Instead of checking the stream_types bit set, we can simply check whether the methods stream_decode() and file_decode() are implemented.
* wavpack: removed NULL element from tagtypesMax Kellermann2008-11-041-3/+2
| | | | | The number of tag types is known at compile time. Use the GLib macro G_N_ELEMENTS instead of having a NULL element at the end.
* wavpack: use enum tag_typeMax Kellermann2008-11-041-1/+1
| | | | Don't store tag type values in a plain integer, use the proper enum.
* wavpack: use GLib instead of utils.h / log.hMax Kellermann2008-11-041-28/+12
| | | | Replace deprecated code with GLib.
* wavpack: read first byte from wvc streamMax Kellermann2008-11-041-25/+13
| | | | | | | | | Instead of manually waiting for the input stream to become ready (to catch server errors), just read the first byte. Since the wavpack_input has the capability to push back one byte, we can simply re-feed it. Advantage is: decoder_read() handles everything for us, i.e. waiting for the stream, polling for decoder commands and error handling.
* wavpack: use the bool data typeMax Kellermann2008-11-041-12/+12
| | | | Use boolean true/false instead of 1/0.
* wavpack: no CamelCaseMax Kellermann2008-11-042-44/+46
| | | | Renamed functions and variables.
* wavpack: fix indentMax Kellermann2008-11-041-47/+47
| | | | Fixed the indent of the switch statement in format_samples_int().
* mp4: get decoder command from decoder_data()Max Kellermann2008-11-041-7/+8
| | | | | Eliminate a superfluous decoder_get_command() call. decoder_data() already returns the command.
* mp4: initialize audio_format before decoder_initialized()Max Kellermann2008-11-041-6/+5
| | | | Removed the duplicate audio_format initialization.
* mp4: use decoder_read() instead of input_stream_read()Max Kellermann2008-11-041-1/+4
| | | | | decoder_read() handles decoder commands, and should be used in decoder plugins.
* mp4: pass struct mp4_context to the mp4ff_callback_t methodsMax Kellermann2008-11-041-10/+18
| | | | | | We need the decoder object, so we have to begin passing a new struct to these callbacks, instead of only the pointer to the input_stream object.
* mp4: use GLib instead of utils.h / log.hMax Kellermann2008-11-041-13/+14
| | | | Replace deprecated code with GLib.
* mp4: use tag_is_empty() instead of passing the tag_is_found flagMax Kellermann2008-11-041-13/+3
| | | | | | | | The API of mp4_load_tag() was strange: it always returned a tag object, no matter if a tag was found in the file; the existence of a tag was indicated with the tag_found integer reference. This flag is superfluous, since we can simply check whether the tag is empty or not.
* mp4: static mp4ff_callback_t variablesMax Kellermann2008-11-041-22/+15
| | | | | | Allocate the mp4ff_callback_t object on the stack. This is easier to handle, since we don't have to free it. Incidentally, this fixes a memory leak in mp4_load_tag().
* mp4: no CamelCaseeMax Kellermann2008-11-042-106/+111
| | | | Renamed functions and variables.
* ffmpeg: removed loop from mpd_ffmpeg_read()Max Kellermann2008-11-041-15/+2
| | | | | | The function decoder_read() already cares about the decoder command, and loops until data is available. Reduced mpd_ffmpeg_read() to no more than the decoder_read() call.
* ffmpeg: removed ffmpeg_context.codecMax Kellermann2008-11-041-2/+0
| | | | | That variable is never used except during initialization in ffmpeg_helper().
* ffmpeg: moved code to ffmpeg_find_audio_stream()Max Kellermann2008-11-041-9/+12
|
* ffmpeg: no CamelCaseMax Kellermann2008-11-042-102/+103
| | | | Renamed variables.
* tag: added tag_is_empty()Max Kellermann2008-11-041-0/+10
|
* osx: fix gcc warningsMax Kellermann2008-11-041-7/+8
| | | | Fix prototypes and unused variables.
* osx: adapt to new output plugin APIMax Kellermann2008-11-041-19/+15
| | | | | The OS X output plugin wasn't adapted to the new output plugin yet, because I had no Mac to test...
* configure.ac: unset MP4FF_LIBS when MP4 support is disabledMax Kellermann2008-11-041-0/+1
| | | | | Although there is no AC_SUBST when $enable_mp4=no, autoconf substitutes its value in Makefile.am. Clear it in this case.
* decoder: update dc.error after input stream failureMax Kellermann2008-11-031-0/+1
| | | | dc.error wasn't updated when the input stream failed to initialize.
* input_curl: use curl_multi_info_read()Max Kellermann2008-11-031-1/+32
| | | | | The function curl_multi_info_read() provides access to errors from the curl easy interface.
* player: converted PLAYER_ERROR_* to enumMax Kellermann2008-11-032-9/+14
|
* player: removed "volatile" attributesMax Kellermann2008-11-031-6/+6
| | | | | Removed the "volatile" attributes from several variables which are not important for synchronization.
* player: no CamelCaseMax Kellermann2008-11-033-45/+45
| | | | | Renamed variables and internal functions. Most of the player_control.h API remains in CamelCase for now.
* decoder: converted DECODE_ERROR_* to enumMax Kellermann2008-11-031-4/+6
|
* decoder: removed "volatile" modifierMax Kellermann2008-11-031-2/+2
| | | | | | The variable "next_song" is already protected by a memory barrier. "total_time" is not important for synchronization, and we don't need "volatile" here.
* decoder: no CamelCaseMax Kellermann2008-11-035-31/+31
| | | | Renamed variables and functions.
* decoder_api: send song tag in decoder_data()Max Kellermann2008-11-031-8/+26
| | | | | Before passing the first chunk to the audio output device, send the current song's tag.
* decoder_api: automatically send stream tagMax Kellermann2008-11-035-51/+60
| | | | | | | | | | If an input stream provides tags (e.g. from an icecast server), send them in the decoder_data() and decoder_tag() methods. Removed the according code from the mp3 and oggvorbis plugins - decoders shouldn't have to care about stream tags. This patch also adds the missing decoder_tag() invocation to the mp3 plugin.
* tag: added function tag_has_type()Max Kellermann2008-11-032-0/+19
| | | | | tag_has_type() checks whether the tag contains one or more items with the specified type.