Max Kellermann 
							
						 
					 
					
						
						
							
						
						1800bde303 
					 
					
						
						
							
							player_thread: reinitialize music_buffer in !NDEBUG  
						
						... 
						
						
						
						To check for leaked music_chunk objects, free the music buffer on
CLOSE_AUDIO.  This invokes an assertion check which ensures that all
chunks have been returned to the buffer. 
						
						
					 
					
						2009-05-29 23:34:51 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a90c4e5184 
					 
					
						
						
							
							output_all: explicitly return "true" from audio_output_all_play()  
						
						... 
						
						
						
						Instead of returning the local variable "ret" which is always true at
this point, hard-code the "true" return value, because that might be
more readable. 
						
						
					 
					
						2009-05-29 23:04:45 +02:00 
						 
				 
			
				
					
						
							
							
								Mathieu Rochette 
							
						 
					 
					
						
						
							
						
						0dedfe7ddc 
					 
					
						
						
							
							input/file: log message on error  
						
						... 
						
						
						
						If a file is removed the library, next time mpd will try to play it it
will result in an error 'ERROR: problems decoding some/file.ogg'.
Nothing is written in log files (verbose mode or not)
[mk: append strerror(errno)] 
						
						
					 
					
						2009-05-28 23:46:19 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						535da8b797 
					 
					
						
						
							
							volume: changed "default" to "DISABLED" in switch statement  
						
						... 
						
						
						
						Make gcc warn us if we add a new mixer type, and forget to add a new
"case" line. 
						
						
					 
					
						2009-05-28 23:39:51 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						68f1aed452 
					 
					
						
						
							
							volume: converted volume_mixer_type to an enum  
						
						... 
						
						
						
						Don't use CPP macros when you can use C enums. 
						
						
					 
					
						2009-05-28 23:37:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a54f14f31d 
					 
					
						
						
							
							volume: removed unused macro "VOLUME_MIXER_SOFTWARE_DEFAULT"  
						
						
						
						
					 
					
						2009-05-28 23:34:45 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4e8208717b 
					 
					
						
						
							
							playlist: reset "current song" when playlist ends  
						
						... 
						
						
						
						Commit f78cddb4 
						
						
					 
					
						2009-05-28 23:23:32 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d8ef153729 
					 
					
						
						
							
							music_chunk: added more audio_format_valid() assertions  
						
						... 
						
						
						
						Check the validity of the audio_format during write operations. 
						
						
					 
					
						2009-05-11 17:25:34 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1a9a65b23b 
					 
					
						
						
							
							music_pipe: added assertion on chunk->audio_format  
						
						... 
						
						
						
						Always assert that the audio format of the new chunk is valid. 
						
						
					 
					
						2009-05-11 16:33:48 +02:00 
						 
				 
			
				
					
						
							
							
								Patrik Weiskircher 
							
						 
					 
					
						
						
							
						
						7e678d2ba9 
					 
					
						
						
							
							latest git, httpd_output_plugin compile fix, mac os x  
						
						... 
						
						
						
						Hello,
While compiling latest git I've received a compile error in the
httpd_output_plugin.
Small patch attached.
Patrik 
						
						
					 
					
						2009-05-10 21:15:53 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7c13249b59 
					 
					
						
						
							
							pcm_resample: fixed typo in libsamplerate runtime check  
						
						... 
						
						
						
						The string comparison should be "!= 0", not "== 0".  Ouch. 
						
						
					 
					
						2009-05-07 12:19:01 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a4c59943d1 
					 
					
						
						
							
							player_control: assert that pc.next_song is NULL after seeking  
						
						... 
						
						
						
						The player thread must reset pc.next_song after seeking, even if that
operation has failed.  This patch adds an assertion. 
						
						
					 
					
						2009-05-06 18:46:59 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						438f3547cc 
					 
					
						
						
							
							player_control: removed pc.error check from pc_seek()  
						
						... 
						
						
						
						The only pc_seek() caller clears the error, rendering the check
useless.  Even if the previous PLAY command resulted in a player
error, this check is not very useful. 
						
						
					 
					
						2009-05-06 18:46:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3083df5a5f 
					 
					
						
						
							
							player_control: renamed playerSeek(), return bool  
						
						... 
						
						
						
						Renamed playerSeek() to pc_seek() to get rid of CamelCase.  Convert
the return value to bool. 
						
						
					 
					
						2009-05-06 18:35:22 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0935d85c69 
					 
					
						
						
							
							tag_id3: added support for the UFID frame  
						
						... 
						
						
						
						If the UFID frame's owner is "http://musicbrainz.org ", assume its
value is the MusicBrainz track id. 
						
						
					 
					
						2009-05-06 14:42:07 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4818d38677 
					 
					
						
						
							
							httpd_output: save the page generated by encoder_tag()  
						
						... 
						
						
						
						Flush the encoder before calling encoder_tag().  The first page
generated by the encoder after sending the tag will be the new
"header" page, which is sent to all HTTP clients when they connect.
This is a little bit specific to the vorbis encoder, but there are no
other encoders which support tags (yet). 
						
						
					 
					
						2009-05-05 22:51:17 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e55e560d4e 
					 
					
						
						
							
							httpd_output: moved code to httpd_output_encoder_to_clients()  
						
						... 
						
						
						
						Moved some code from httpd_output_encode_and_play() into separate
functions httpd_output_broadcast_page() and
httpd_output_encoder_to_clients(). 
						
						
					 
					
						2009-05-05 22:43:28 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9080797025 
					 
					
						
						
							
							httpd_output: disable Icy-Metadata when encoder supports tags  
						
						... 
						
						
						
						There's no reason to send both encoder tags and Icy-Metadata to the
client.  Let's disable Icy-Metadata when the encoder supports embedded
tags. 
						
						
					 
					
						2009-05-05 22:41:36 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ebc1d3516c 
					 
					
						
						
							
							vorbis_encoder: start a new stream in tag()  
						
						... 
						
						
						
						When a new tag is set, end the current stream and begin a new one.
Use vorbis_analysis_headerout() to write a full ogg header.  This
fixes a problem with icecast: after a song change in MPD, icecast
stops forwarding ogg packets to its clients. 
						
						
					 
					
						2009-05-05 22:40:51 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7875072d38 
					 
					
						
						
							
							vorbis_encoder: moved code to vorbis_encoder_headerout()  
						
						
						
						
					 
					
						2009-05-05 22:37:13 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						795569208a 
					 
					
						
						
							
							httpd_output: assert that tag!=NULL  
						
						... 
						
						
						
						In the tag() method, MPD guarantees that it does not pass tag==NULL.
Converted the runtime check to an assertion. 
						
						
					 
					
						2009-05-05 22:36:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7dcdb2ce39 
					 
					
						
						
							
							archive/zip: pass NULL instead of 0 to zzip_dir_open()  
						
						... 
						
						
						
						The second parameter of zzip_dir_open() is a pointer.  Pass the NULL
pointer instead of 0 (with implicit conversion at compile time). 
						
						
					 
					
						2009-05-04 09:46:15 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e710037760 
					 
					
						
						
							
							output_init: added option to disable the hardware mixer  
						
						... 
						
						
						
						Added the per-device option "mixer_enabled" which allows users to
disable the hardware mixer of an audio output. 
						
						
					 
					
						2009-04-28 20:33:06 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						61b0835512 
					 
					
						
						
							
							command: added "sticker delete" command  
						
						
						
						
					 
					
						2009-04-28 20:25:07 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						610940a06d 
					 
					
						
						
							
							sticker: added sticker_delete_value()  
						
						... 
						
						
						
						sticker_delete_value() deletes only one value in a sticker, while
the old function sticker_delete() deletes all values. 
						
						
					 
					
						2009-04-28 20:23:27 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7d9316a52d 
					 
					
						
						
							
							song_save: don't call tag_free(NULL)  
						
						... 
						
						
						
						When a song was in the database twice (which shouldn't happen), and
the first song had no tag items, MPD calledd tag_free(NULL).  Add a
check to that source location, and an assertion to tag_free(). 
						
						
					 
					
						2009-04-28 19:57:49 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fd81e7e3b6 
					 
					
						
						
							
							libsamplerate: use g_ascii_strncasecmp() instead of strncasecmp()  
						
						... 
						
						
						
						strncasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:42:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3db834f6b3 
					 
					
						
						
							
							command: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:34:03 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b546cf65bc 
					 
					
						
						
							
							utils: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:33:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d3c93c1c77 
					 
					
						
						
							
							tag: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:32:38 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b2924405ae 
					 
					
						
						
							
							conf: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:32:09 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b1c177528f 
					 
					
						
						
							
							locate: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:31:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0edfbc8a5f 
					 
					
						
						
							
							input_curl: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:30:12 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c434379d79 
					 
					
						
						
							
							mad_decoder: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:29:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d5b3dd36fd 
					 
					
						
						
							
							mp4ff_decoder: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:29:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9038882d95 
					 
					
						
						
							
							alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp()  
						
						... 
						
						
						
						strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons. 
						
						
					 
					
						2009-04-28 09:28:16 +02:00 
						 
				 
			
				
					
						
							
							
								Daniel Kahn Gillmor 
							
						 
					 
					
						
						
							
						
						05dfdfdb39 
					 
					
						
						
							
							alsa_mixer: add mixer_index option  
						
						... 
						
						
						
						This allows you to select controls with duplicate names. 
						
						
					 
					
						2009-04-28 09:15:48 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f4966ba42c 
					 
					
						
						
							
							decoder_api: removed dc.pipe assertion from decoder_read()  
						
						... 
						
						
						
						Database update was broken due to the dc.pipe!=NULL assertion.  This
assertion is only valid while MPD decodes a song, not during database
update. 
						
						
					 
					
						2009-04-26 10:57:02 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ecb7f24b01 
					 
					
						
						
							
							vorbis_encoder: reinitialize vorbis_dsp_state after flush  
						
						... 
						
						
						
						libvorbis goes into a very long loop if we try to add data after a
flush was invoked by vorbis_analysis_wrote(0).  This seems to be a
problem with the internal end-of-stream marker.  Thus, we cannot reuse
the vorbis_dsp_state object. 
						
						
					 
					
						2009-04-25 18:27:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3888ef2f55 
					 
					
						
						
							
							decoder_control: properly cancel an existing command in dc_stop()  
						
						... 
						
						
						
						When the decoder thread has a pending command, send the STOP command
to cancel this command.  Send STOP again if the decoder thread is
still running after that, just in case the decoder thread has executed
the previous command (which was overwritten). 
						
						
					 
					
						2009-04-25 15:19:01 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ceb00f787e 
					 
					
						
						
							
							decoder: added assertions on dc.pipe  
						
						... 
						
						
						
						dc.pipe must be non-NULL while the decoder thread is running.  Ensure
that with a load of assertions. 
						
						
					 
					
						2009-04-25 15:07:22 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d01d1ccad2 
					 
					
						
						
							
							client: use GTimer to track timeouts  
						
						
						
						
					 
					
						2009-04-25 14:16:24 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						616dc9d465 
					 
					
						
						
							
							playlist_control: use GTimer in previousSongInPlaylist()  
						
						... 
						
						
						
						To determine whether to rewind the current song or to go to the
previous song, use a GTimer instead of manually diffing time(NULL). 
						
						
					 
					
						2009-04-25 14:08:31 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d2010c0289 
					 
					
						
						
							
							pulse_mixer: use PULSE's mainloop lock instead of GMutex  
						
						... 
						
						
						
						Using two different kinds of locks may result in a race condition with
a deadlock.  The libpulse callbacks need no locks at all, because the
mainloop object can be assumed to be already locked. 
						
						
					 
					
						2009-04-25 13:53:15 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						11bcd7f013 
					 
					
						
						
							
							curl: moved proxy settings to "input" block  
						
						... 
						
						
						
						The old global settings "http_proxy_host", "http_proxy_port",
"http_proxy_user" and "http_proxy_password" continue to work. 
						
						
					 
					
						2009-04-25 13:35:04 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						80de8fb93b 
					 
					
						
						
							
							fluidsynth: added "experimental" comments in the source file  
						
						
						
						
					 
					
						2009-04-25 12:32:22 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						472b994779 
					 
					
						
						
							
							player_thread: pause when all audio outputs fail to play  
						
						... 
						
						
						
						When all audio outputs have been closed due to failures, pause the
playback instead of stopping it.  This way, the user may resume
at the current position after the problem has been dealt with. 
						
						
					 
					
						2009-04-25 11:55:36 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						70faf59275 
					 
					
						
						
							
							player_thread: pause when output fails while seeking  
						
						... 
						
						
						
						When no audio outputs could be opened while seeking, leave MPD seeked
at that position and pause playback.  The user may continue from this
point at any time, as soon as the audio outputs are fixed.  The old
behaviour triggered an assertion failure: the failure wasn't passed
properly to the do_play() function, which attempted to play audio
chunks. 
						
						
					 
					
						2009-04-25 11:36:45 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5ce625ea97 
					 
					
						
						
							
							stored_playlist: don't close NULL file on error  
						
						... 
						
						
						
						spl_append_song() can crash when fopen() fails, because it attempts to
close the invalid file handle (NULL) in the error handler. 
						
						
					 
					
						2009-04-24 08:57:01 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						85658965c9 
					 
					
						
						
							
							alsa_output: don't use atexit() to clean up the ALSA library  
						
						... 
						
						
						
						Call snd_config_update_free_global() manually in our finish() method,
don't use atexit(). 
						
						
					 
					
						2009-04-21 22:47:12 +02:00