aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Merged release 0.15.5 from branch 'v0.15.x'Max Kellermann2009-10-183-9/+11
|\ | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder/flac_plugin.c src/update.c
| * decoder/flac: fixed two memory leaks in the CUE tag loaderMax Kellermann2009-10-161-2/+3
| | | | | | | | | | | | Don't initialize "vc" and "cs" with FLAC__metadata_object_new(); that value is overwritten by FLAC__metadata_get_tags() and FLAC__metadata_get_cuesheet().
| * update: fixed memory leak during container scanMax Kellermann2009-10-161-3/+6
| | | | | | | | The return value of map_directory_child_fs() must be freed.
| * update: song_file_new() cannot failMax Kellermann2009-10-161-3/+0
| | | | | | | | | | Removed the NULL check. If that NULL check was correct, that would have been a memory leak (vtrack).
| * output_thread: check again if output is open on CANCELMax Kellermann2009-10-161-1/+2
| | | | | | | | | | | | | | | | When the player thread unpauses, it sends CANCEL to the output thread, after having checked that the output is still open. Problem is when the output thread closes the device before it can process the CANCEL command - race condition. This patch adds another "open" check inside the output thread.
* | decoder/vorbis: avoid unused symbol warnings from vorbisfile.hSerge Ziryukin2009-10-181-0/+1
| | | | | | | | | | | | | | | | svn r13289 of libvorbis introduced static callbacks (like OV_CALLBACKS_DEFAULT) defined in "vorbisfile.h" header. First released version with this change is libvorbis-1.2.2. In libversion-1.2.3 OV_EXCLUDE_STATIC_CALLBACKS define was added to avoid warnings about unused static callbacks. Information on the OV_EXCLUDE_STATIC_CALLBACKS can be found in http://svn.xiph.org/trunk/vorbis/CHANGES.
* | command: omitting the range end is possibleMax Kellermann2009-10-181-1/+4
| | | | | | | | | | When the range end is missing, then the maximum possible value is assumed.
* | command: use GLib limit macros in check_range()Max Kellermann2009-10-181-10/+10
| | | | | | | | These are portable and don't require limits.h.
* | command: allow changing replay gain mode on-the-flyMax Kellermann2009-10-173-1/+63
| | | | | | | | | | The new command "replay_gain_mode" allows the user to switch the replay gain mode on-the-fly. No more mpd.conf editing.
* | replay_gain: moved mode parser to replay_gain_set_mode_string()Max Kellermann2009-10-171-6/+19
| |
* | replay_gain: added setting "replaygain off"Max Kellermann2009-10-171-1/+1
| | | | | | | | | | There was no setting for disabling replay gain. It was off when the "replaygain" setting was not there.
* | replay_gain: read configuration even when replay gain is disabledMax Kellermann2009-10-171-4/+3
| | | | | | | | | | | | It will be possible to enable replay gain at runtime even when it is disabled in the configuration file. This patch enables the preamp settings in this case.
* | update: obey .mpdignore filesMax Kellermann2009-10-163-2/+202
| |
* | notify_queue: use g_timeout_add_seconds()A. Klitzing2009-10-151-2/+2
| |
* | player_thread: don't call audio_output_all_check() if pausedMax Kellermann2009-10-151-1/+2
| | | | | | | | | | | | | | When the audio output fails to open, MPD pauses playback, but doesn't reset player.play_audio_format. This leads to an assertion failure in audio_output_all_check() on the next REFRESH command, because no audio output is open.
* | Add PLS ParserQball Cow2009-10-153-0/+242
| |
* | input/lastfm: removed obsolete last.fm input pluginMax Kellermann2009-10-134-502/+0
| | | | | | | | | | | | This has been replaced by the last.fm playlist plugin. The input plugin has never worked well, and was just a playground to experiment with the last.fm radio protocol.
* | command: "load" supports remote playlists (m3u, xspf, lastfm://)Max Kellermann2009-10-133-0/+147
| | | | | | | | | | | | This patch integrates the playlist plugin API to the MPD core. We'll be able to do much more in the future with that API, that's just the beginning.
* | main: initialize playlist pluginsMax Kellermann2009-10-131-0/+3
| |
* | song: renamed attribute "url" to "uri"Max Kellermann2009-10-1312-44/+43
| |
* | queue: no CamelCaseMax Kellermann2009-10-132-17/+17
| | | | | | | | Renamed idToPosition.
* | playlist: added plugin for last.fm radioMax Kellermann2009-10-133-0/+330
| | | | | | | | | | This plugin will replace the last.fm input plugin, once the playlist API is integrated into MPD.
* | playlist: added XSPF pluginMax Kellermann2009-10-133-0/+358
| |
* | Merge branch 'v0.15.x'Max Kellermann2009-10-131-1/+1
|\|
| * input/curl: fixed endless loop during bufferingMax Kellermann2009-10-131-1/+1
| | | | | | | | | | | | | | When the connection is lost while buffering, the CURL input plugin may enter an endless loop, because it does not check the EOF condition. This patch makes fill_buffer() return success only if there's at least one buffer, which is enough of a check.x
* | playlist_list: pass configuration to playlist pluginsMax Kellermann2009-10-133-2/+42
| | | | | | | | This patch completes the configuration support.
* | playlist/m3u: added plugin nameMax Kellermann2009-10-131-0/+2
| |
* | playlist_list: initialize the "playlist" variableMax Kellermann2009-10-131-1/+1
| | | | | | | | Prevent access on uninitialized variable if the plugin list is empty.
* | tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann2009-10-1323-166/+161
| |
* | state_file: use g_timeout_add_seconds()Max Kellermann2009-10-131-2/+3
| |
* | configure.ac: require GLib 2.16Max Kellermann2009-10-135-29/+0
| | | | | | | | | | | | | | Accidently, MPD has been using several GLib 2.16 functions for a while, and nobody noticed yet. To simplify the code base, let's bump the minimum GLib version for MPD to 2.16. That version is old enough, and it's reasonable to expect users to have it.
* | playlist_plugin: new plugin API for playlist parsersMax Kellermann2009-10-125-0/+451
| | | | | | | | | | | | | | | | Based on this API, we will add parsers for EXTM3U, PLS, ASX, last.fm radio and others. There is no integration into the MPD core yet. Right now, we have a command line test program. This is work in progress.
* | text_input_stream: input_stream wrapper for reading text filesMax Kellermann2009-10-122-0/+140
| |
* | song: moved code to song_update.cMax Kellermann2009-10-122-147/+172
| | | | | | | | | | Moved all the code which depends on the decoder plugins to a separate source. That allows leaner test programs.
* | decoder_thread: removed redundant NULL assignmentsMax Kellermann2009-10-111-2/+1
| | | | | | | | | | The while() clause resets the "plugin" variable. We don't need to reset it at the end of the loop body.
* | input_stream: use "goffset" instead of "off_t"Max Kellermann2009-10-1110-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | The "off_t" type may change when you enable or disable large file support on 32 bit platforms. This caused severe ABI problems within MPD when we enabled LFS for the first time: two sources included config.h and sys/types.h in different order, and had different off_t sizes - leading to memory corruption because of ABI incompatibility. This patch attempts to get rid of all public "off_t" uses: it removes "off_t" from the input_stream ABI/API, and switches to GLib's 64 bit "goffset" type. This may hurt 32 bit embedded platforms a tiny bit, but that's not even measurable.
* | Merge branch 'v0.15.x'Max Kellermann2009-10-114-54/+69
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * riff, aiff: fixed "limited range" gcc warningMax Kellermann2009-10-112-10/+10
| | | | | | | | | | | | On 32 bit systems with large file support enabled (i.e. "sizeof(off_t) > sizeof(size_t)") gcc emits a warning because a size_t cast to off_t can never become negative.
| * decoder_thread: change the fallback decoder name to "mad"Max Kellermann2009-10-111-1/+1
| | | | | | | | | | | | When there is no Content-Type response header, try the "mad" decoder plugin. It uesd to be named "mp3", and we forgot to change the fallback name in decoder_thread.c.
| * input/curl: don't abort if a packet has only metadataMax Kellermann2009-10-111-20/+22
| | | | | | | | | | | | | | | | | | When a received chunk of data has only icy-metadata, there was no usable data left for input_curl_read() to return, and thus it returned 0 bytes. "0" however is a special value for "end of file" or "error". This patch makes input_curl_read() read more data from the socket, until the read request can be fulfilled (or until there's really EOF).
| * input/curl: moved code to fill_buffer()Max Kellermann2009-10-111-27/+40
| |
* | player_thread: get "elapsed" from audio outputsMax Kellermann2009-10-085-4/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tracking the "elapsed" time from the chunks which we have sent to the output pipe is very imprecise: since we have implemented the music pipe, we're sending large number of chunks at once, giving the "elapsed" time stamp a resolution of usually more than a second. This patch changes the source of this information to the outputs. If a chunk has been played by all outputs, the "elapsed" time stamp is updated. The new command PLAYER_COMMAND_REFRESH makes the player thread update its status information: it tells the outputs to update the chunk time stamp. After that, player_control.elapsed_time is current.
* | player_thread: always clear player_control.next_song on returnMax Kellermann2009-10-081-5/+3
| | | | | | | | | | | | pc.next_song might be non-NULL even if player.queued==true: when the decoder has started decoding the next song, but the result hasn't been read yet.
* | player_control: eliminate PLAYER_COMMAND_PLAYMax Kellermann2009-10-083-5/+1
| | | | | | | | | | Sending PLAYER_COMMAND_STOP followed by PLAYER_COMMAND_QUEUE does the same. PLAYER_COMMAND_PLAY is redundant.
* | player_control: added several assertions on pc.next_song==NULLMax Kellermann2009-10-081-0/+6
| | | | | | | | | | After some of the commands, the player thread must have reset the pc.next_song attribute.
* | player_control: no CamelCaseMax Kellermann2009-10-089-62/+79
| |
* | player_control: clear errored_song in clearPlayerError()Max Kellermann2009-10-081-1/+2
| | | | | | | | | | Without the player error code, it errored_song variable is not used, and should be cleared, to avoid invalid access in pc_song_deleted().
* | player_control: bundle "get" functions in pc_get_status()Max Kellermann2009-10-084-34/+46
| | | | | | | | | | | | The new player_status struct replaces a bunch of playerGetX() functions. When we add proper locking to the player_control struct, we will only need to lock once for the "status" command.
* | player_control: allocate getPlayerErrorStr() resultMax Kellermann2009-10-083-21/+23
| | | | | | | | This lets us eliminate the static fixed-size buffer.
* | playlist_control: "previous" really plays the previous songMax Kellermann2009-10-083-39/+12
| | | | | | | | | | | | | | No more CD player emulation. The current behaviour of "previous" is difficult for a client to predict, because it does not definitely know the current position within the song. If a client wants to restart the current song, it can always send "playid".