aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder: fall back to next pluginMax Kellermann2008-11-101-4/+16
| | | | When a plugin is unable to decode a song, try the other plugins.
* decoder: wrapper functions for methods stream_decode() and file_decode()Max Kellermann2008-11-101-5/+66
| | | | Added lots of assertions to the wrapper functions.
* decoder: added more assertionsMax Kellermann2008-11-101-0/+10
| | | | Added a lot of assertions checking the state of the decoder plugin.
* flac: call flac_process_metadata() for ogg filesMax Kellermann2008-11-101-4/+5
| | | | | | | The flac plugin wasn't initialized properly when an OGG file was being decoded. For some reason, flac_process_metadata() was explicitly not called for OGG files. Since that seems to fix the issue, make it always call flac_process_metadata().
* flac: enable the oggflac plugin with older libflac versionsMax Kellermann2008-11-101-3/+14
| | | | | | | | | Since decoder_list.c does not include the libflac headers, it cannot know whether to add the oggflac plugin to the decoder list. Solve this by always enabling the oggflac sub-plugin, even with older libflac versions. When the libflac API cannot support oggflac, disable the plugin at runtime by returning "false" from its init() method.
* flac: enable oggflac with libflacMax Kellermann2008-11-101-1/+1
| | | | | | | The "oggflac" plugin was enabled only if HAVE_FLAC_COMMON was defined. HAVE_FLAC_COMMON however is only an automake variable, and is never available in decoder_list.c. Make decoder_list.c depend on HAVE_FLAC||HAVE_OGGFLAC instead.
* log: properly check log_thresholdDaniel Schömer2008-11-091-1/+1
|
* decoder: updated API documentationMax Kellermann2008-11-091-2/+6
| | | | | Updated documentation on the stream_decode() and file_decode() return values.
* wavpack: removed try_decode() methodMax Kellermann2008-11-091-23/+0
| | | | | | Wavpack's try_decode() implementation does nothing useful, it only duplicates code already in stream_decode() / file_decode(), and slows down MPD.
* flac: make the init() method check for oggflac supportMax Kellermann2008-11-091-2/+8
| | | | | Disable flac's "oggflac" sub-plugin when libflac does not support ogg-flac files.
* decoder: converted dc.error to a dc.state valueMax Kellermann2008-11-084-30/+44
| | | | | | The player did not care about the exact error value, it only checked whether an error has occured. This could fit well into decoder_control.state - introduce a new state "DECODE_STATE_ERROR".
* decoder: removed "plugin" from the decoder structMax Kellermann2008-11-082-6/+0
| | | | decoder.plugin was a write-only attribute.
* wavpack: make 24-bit samples available for mpdLaszlo Ashin2008-11-081-47/+46
| | | | | | | | | This patch makes 24-bit samples available for mpd. I tested with the WavPack Test Suite found on wavpack.com: http://www.rarewares.org/wavpack/test_suite.zip Every test file worked fine.
* wavpack: check last_byte in push_back_byte() methodLaszlo Ashin2008-11-081-2/+6
| | | | | | | | | At this moment the wavpack lib doesn't use the return value of the push_back function, which has an equivalent meaning of the return value of ungetc(). This is a lucky situation, because so far it simply returned with 1 as a hard coded value. From now on the function will return EOF on error. (This function makes exactly one byte pushable back.)
* wavpack: wrapper for converting void* to struct wavpack_input*Laszlo Ashin2008-11-081-13/+20
| | | | | A new function has been added to do a cast and a little check in the wavpack-mpd input stream wrapper.
* wavpack: put braces around one line code blocksLaszlo Ashin2008-11-081-15/+27
| | | | | I think this makes the code more easily modifiable and prevents some annoying mistakes.
* wavpack: added prefix to local function namesLaszlo Ashin2008-11-081-14/+14
| | | | | | There are some functions in the wavpack-mpd input streams wrapper which had too commonly used names (especially can_seek). I prefixed these with "wavpack_input_".
* wavpack: unified code styleLaszlo Ashin2008-11-081-16/+28
| | | | | Not every function header has its return type in a distinct line. This patch corrects that. This way there is more space for the arguments.
* listen: fix namespace collision on OpenSolarisTom Servo2008-11-071-6/+6
| | | | | | | | | The listen.c module breaks the build because the variable name used ("sun") for the Unix domain socket part collides with something else on an OpenSolaris system, likely Sun specific. Renaming it to _sun (or something else of choice) fixes the build. [mk: renamed to "s_un"]
* wavpack: check wvc seekabilityLaszlo Ashin2008-11-061-2/+5
| | | | | Using wvc streams the seekableness depends on the seekability of the wvc stream as well.
* wavpack: close wvc stream on errorLaszlo Ashin2008-11-061-1/+3
| | | | | The input stream opened for wvc is not closed in an if branch. A close call has been added.
* wavpack: enable seekingLaszlo Ashin2008-11-061-1/+1
| | | | | Somehow seeking is disabled on all kinds of wavpack playbacks now in the git version. This patch corrects that.
* input_curl: retrieve error message from ERRORBUFFERMax Kellermann2008-11-061-2/+5
| | | | | libcurl provides better error messages than curl_multi_strerror() when you set the ERRORBUFFER option.
* input_curl: return 0 on error from read()Max Kellermann2008-11-061-1/+2
| | | | | | The read() method must not return a negative value. Make it return 0 on error, just like the file input stream. Also set the "error" attribute to -1.
* input_curl: enable FAILONERRORMax Kellermann2008-11-061-0/+1
| | | | | | | I had this option enabled during development, but at some point, it must have gotten lost. FAILONERROR makes the curl stream fail when the server returns a status code 400 or higher. We are not interested in the server's error document.
* path: removed superfluous error check in path_set_fs_charset()Max Kellermann2008-11-051-8/+0
| | | | The code which had a possible error condition had been removed.
* log: check if log_charset is setMax Kellermann2008-11-051-5/+8
| | | | | When logging to a file, log_charset would be NULL and g_convert() would abort.
* Makefile.am: distribute input_curl.hMax Kellermann2008-11-051-0/+1
| | | | | input_curl.h was missing in the tarball because it was not listed in $(mpd_headers).
* main: print usage to stdoutMax Kellermann2008-11-051-26/+25
| | | | Using the logging library here is inappropriate.
* log: convert messages to system charsetMax Kellermann2008-11-051-0/+14
| | | | | When logging to the terminal, we should print messages in the system character set. Convert all messages in this case.
* log: use boolMax Kellermann2008-11-052-8/+10
| | | | Use the bool data type for flags.
* 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-051-0/+3
| | | | | 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.
* 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.