aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* playlist_queue: resolve relative URIs, database lookupMax Kellermann2009-12-272-18/+118
| | | | | | Prepend the playlist's base URI to relative song URIs. Look up songs in the database (if the URI refers to a local song file). Merge existing database metadata with metadata from the playlist plugin.
* song: added support for selecting a time rangeMax Kellermann2009-12-274-1/+38
| | | | | | Added attributes start_ms, end_ms. This allows us to address a portion of a song file (important for CUE support). There is no support yet for storing these attributes in the state file.
* playlist_queue: load playlists from music directoryMax Kellermann2009-12-271-4/+36
| | | | | Try the playlist directory first, and if that file does not exist, try the same relative path within the music directory.
* uri: added function uri_safe_local()Max Kellermann2009-12-272-0/+42
|
* playlist/cue: return the original song URIMax Kellermann2009-12-271-10/+1
| | | | The caller should be responsible for building the absolute URI.
* playlist_queue: pass const string to playlist_open_path_into_queue()Max Kellermann2009-12-271-1/+1
|
* song: added function song_get_duration()Max Kellermann2009-12-264-4/+14
|
* playlist_queue: try open by URI firstMax Kellermann2009-12-261-10/+21
| | | | If that fails, try opening the file as a stream.
* playlist_list: use uri_get_suffix()Max Kellermann2009-12-261-4/+2
|
* uri: check presence of slash in suffixMax Kellermann2009-12-261-2/+9
| | | | | If there's a slash in the uri_get_suffix() return value, then it's malformed. Return NULL in this case.
* decoder_api: added function decoder_timestamp()Max Kellermann2009-12-2622-83/+73
| | | | | | Remove the data_time parameter from decoder_data(). This patch eliminates the timestamp counting in most decoder plugins, because the MPD core will do it automatically by default.
* output_init: use the normalize filter pluginMax Kellermann2009-12-258-113/+22
| | | | | | Use the plugin instead of the glue code in normalize.c. This is used wrapped inside a "autoconv" filter, to enable normalization for all input file formats.
* filter: added the "autoconvert" filter pluginMax Kellermann2009-12-253-0/+205
|
* filter_plugin: allow open() to force an input formatMax Kellermann2009-12-258-40/+64
| | | | | | | Make the audio_format argument non-const. Allow the open() method to modify it, to indicate that it wants a different input audio format than the one specified. Check that condition in chain_filter_open(), and fail.
* filter/volume: support 32 bit samplesMax Kellermann2009-12-251-8/+0
| | | | | The pcm_volume library supports 32 bit samples, there's no reason to disallow it in the filter plugin.
* filter/route: check configured channel count in method init()Max Kellermann2009-12-251-8/+9
| | | | Detect misconfiguration during MPD startup, not when playback begins.
* filter/route: route_filter_parse() returns boolMax Kellermann2009-12-251-3/+6
| | | | Indicate success and error.
* filter_registry: removed the "chain" plugin from filter_pluginsMax Kellermann2009-12-251-1/+0
| | | | This plugin cannot be configured.
* filter/chain: return NULL if a filter() method has failedMax Kellermann2009-12-251-1/+1
| | | | Don't close child filters in the filter() method.
* playlist: added CUE playlist pluginMax Kellermann2009-12-164-0/+177
| | | | | | This plugin is the groundwork for MPD's future generic CUE sheet support. That's not complete yet, e.g. there is no way for a playlist plugin to address an arbitrary position within a music file.
* playlist_list: support URI suffix matchMax Kellermann2009-12-161-2/+54
| | | | When no plugin matches the URI scheme, try the file name suffix.
* playlist_list: check if open method is presentMax Kellermann2009-12-161-2/+6
| | | | | Use open_uri() / open_stream() only after checking that they are implemented.
* cue_tag: added song duration supportMax Kellermann2009-12-161-2/+10
| | | | | Get duration from track_get_length().
* cue_tag: check cd_get_track()!=NULLMax Kellermann2009-12-161-3/+5
|
* cue_tag: added function cue_tag()Max Kellermann2009-12-162-17/+29
| | | | Merge code from cue_tag_file() and cue_tag_string().
* cue_tag: merged code into cue_tag_merge()Max Kellermann2009-12-161-22/+18
|
* cue_tag: pass "const" string to cue_tag_string()Max Kellermann2009-12-162-2/+2
|
* cue_tag: changed runtime checks to assertionsMax Kellermann2009-12-161-14/+9
| | | | It's illegal to pass NULL here. This should not be ignored silently.
* cue_tag: fixed indent and code styleMax Kellermann2009-12-162-78/+43
|
* cue_tag: tag_new() cannot failMax Kellermann2009-12-161-22/+10
| | | | Removed the NULL check.
* cue_tag: include cleanupMax Kellermann2009-12-162-2/+5
|
* archive_plugin: use GError in the open() methodMax Kellermann2009-12-167-14/+23
|
* input/archive: check for archive_file_open() errorsMax Kellermann2009-12-161-0/+2
| | | | | This fixes a NULL pointer dereference in case of archive plugin failure.
* archive_plugin: wrap method callsMax Kellermann2009-12-169-12/+133
| | | | | Make archive_file a "real" struct, extended by all plugins. Add the plugin pointer to it. Wrap all method calls in functions.
* archive_plugin: pass const string to method open()Max Kellermann2009-12-164-4/+4
|
* archive: added a C header for each pluginMax Kellermann2009-12-168-4/+84
| | | | | Moved the archive plugin "extern" declarations into each plugin header.
* archive/bz2: removed the bz2_context typedefMax Kellermann2009-12-161-13/+13
| | | | Use the raw struct name instead.
* archive/bz2: renamed archive sources and plugin variablesMax Kellermann2009-12-163-4/+4
|
* archive/iso: renamed plugin to "iso9660"Max Kellermann2009-12-165-41/+52
| | | | Based on libiso9660.
* archive/bz2: use g_path_get_basename()Max Kellermann2009-12-161-10/+1
| | | | | Use g_path_get_basename() instead of manually filtering the path name. Big advantage: g_path_get_basename() cannot fail.
* updated mp4ff decoder about input_stream_seekAlam Arias2009-12-161-2/+2
|
* input_stream: return errors with GErrorMax Kellermann2009-12-1536-174/+421
|
* encoder/flac: fix write callback prototype for libFLAC 1.1.2Max Kellermann2009-12-151-1/+7
|
* Makefile.am: link test/run_decoder with timer.cMax Kellermann2009-12-151-0/+2
| | | | For the fluidsynth plugin.
* decoder_internal: decoder_input_buffer() returns boolMax Kellermann2009-12-151-4/+4
| | | | | | This fixes a regression: a boolean value was returned from decoder_input_buffer(), but the caller chose to do a "<= 0" comparison.
* input/archive: use g_path_is_absolute()Max Kellermann2009-12-151-1/+1
| | | | | .. instead of manually checking pathname[0]=='/'. g_path_is_absolute() is portable.
* archive/bz2: simplified error handling, short readMax Kellermann2009-12-151-34/+23
| | | | | Don't attempt to fill the whole buffer in the read() method, return whatever libbz2 provides with the first successful BZ2_bzDecompress().
* archive/bz2: no CamelCaseMax Kellermann2009-12-151-11/+10
|
* archive/zzip: removed the "zip_context" typedefMax Kellermann2009-12-151-11/+11
| | | | Use the raw struct name.
* archive/zip: renamed plugin to "zzip"Max Kellermann2009-12-155-43/+45
| | | | This plugin is based on libzzip.