Max Kellermann 
							
						 
					 
					
						
						
							
						
						cd61f6570f 
					 
					
						
						
							
							music_pipe: moved code to music_chunk_append()  
						
						
						
						
					 
					
						2008-11-02 16:56:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e9e9d2bc2d 
					 
					
						
						
							
							music_pipe: renamed "ob" to "music_pipe"  
						
						... 
						
						
						
						Last music_pipe rename patch: renamed the global variable (singleton). 
						
						
					 
					
						2008-11-02 16:56:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d430b1dc54 
					 
					
						
						
							
							music_pipe: more wrapper functions  
						
						... 
						
						
						
						Replace all direct music_pipe struct accesses with wrapper functions.
The compiled machine code is the same, but this way, we can change
struct internals more easily. 
						
						
					 
					
						2008-11-02 16:55:53 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						260a0cc33c 
					 
					
						
						
							
							music_pipe: use GLib instead of utils.h  
						
						... 
						
						
						
						Eliminate the deprecated utils.h memory allocation functions. 
						
						
					 
					
						2008-11-02 16:55:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8b1f6ff3c8 
					 
					
						
						
							
							decoder: replaced music_pipe.audioFormat with dc.out_audio_format  
						
						... 
						
						
						
						.. and rename dc.audioFormat to dc.in_audio_format.  The music pipe
does not need to know the audio format, and its former "audioFormat"
property indicated the format of the most recently added chunk, which
might be confusing when you are reading the oldest chunks. 
						
						
					 
					
						2008-11-02 16:55:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						30fca5e5a9 
					 
					
						
						
							
							music_pipe: pass frame size to tail_chunk()  
						
						... 
						
						
						
						Don't make tail_chunk() calculate the frame size again. 
						
						
					 
					
						2008-11-02 14:18:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fd0f195bb7 
					 
					
						
						
							
							music_pipe: renamed ob_* functions to music_pipe_*  
						
						... 
						
						
						
						Rename all functions to the new prefix. 
						
						
					 
					
						2008-11-02 14:18:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8964c69a64 
					 
					
						
						
							
							music_pipe: renamed struct output_buffer to struct music_pipe  
						
						... 
						
						
						
						.. and rename ob_chunk to struct music_chunk. 
						
						
					 
					
						2008-11-02 14:15:47 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						767b4c95bd 
					 
					
						
						
							
							renamed outputBuffer.[ch] to pipe.[ch]  
						
						... 
						
						
						
						No CamelCase in the file name.  The output_buffer struct is going to
be renamed to music_pipe.  There are so many buffer levels in MPD, and
calling this one "output buffer" is wrong, because it's not the last
buffer before the music reaches the output devices. 
						
						
					 
					
						2008-11-02 14:12:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b48ae8c26f 
					 
					
						
						
							
							decoder: enable decoders even if they have no init() method  
						
						... 
						
						
						
						Commit 1a4a3e1f 
						
						
					 
					
						2008-11-02 13:30:26 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4c1b96c307 
					 
					
						
						
							
							decoder: make the suffixes and mime_types arrays really const  
						
						... 
						
						
						
						The strings were constant, but the pointers weren't.  C syntax is
somewhat tricky.. 
						
						
					 
					
						2008-11-01 14:55:23 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0b614fbaae 
					 
					
						
						
							
							decoder: make all decoder_plugin structs const  
						
						... 
						
						
						
						All decoder_plugin structs are initialized at compile time, and must
never change. 
						
						
					 
					
						2008-11-01 14:54:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1a4a3e1f1f 
					 
					
						
						
							
							decoder: manage decoder list in a static array  
						
						... 
						
						
						
						Currently, there is no way to dynamically load decoder plugins, thus
we don't need a dynamic list to manage them. 
						
						
					 
					
						2008-11-01 14:53:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5036368f54 
					 
					
						
						
							
							decoder: return const decoder_plugin structs  
						
						... 
						
						
						
						The decoder_plugin structs must never change.  Don't work with
non-const pointers. 
						
						
					 
					
						2008-11-01 14:51:41 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						83f6222ae7 
					 
					
						
						
							
							permission: store passwords in GHashTable  
						
						... 
						
						
						
						Eliminating the deprecated linked list library. 
						
						
					 
					
						2008-11-01 14:33:25 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						aa772ebc02 
					 
					
						
						
							
							tag: use GLib instead of utils.h  
						
						... 
						
						
						
						Don't use the deprecated functions from utils.h. 
						
						
					 
					
						2008-11-01 14:33:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						35710a81ea 
					 
					
						
						
							
							utils: use GUINT32_FROM_LE() instead of readLEuint32()  
						
						... 
						
						
						
						Eliminate code already provided by GLib. 
						
						
					 
					
						2008-11-01 14:11:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b996108675 
					 
					
						
						
							
							tag: don't return const string from fix_utf8()  
						
						... 
						
						
						
						Return NULL instead of the input value if there is nothing to fix.
This way, the caller doesn't have to use the xfree() hack. 
						
						
					 
					
						2008-11-01 14:04:15 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						aa33422de6 
					 
					
						
						
							
							alsa, jack: no const pointers for allocated strings  
						
						... 
						
						
						
						Make the pointers "device" and "name" non-const, so we don't need the
xfree() hack.  The default value is expressed as NULL. 
						
						
					 
					
						2008-11-01 14:04:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9fdac529b4 
					 
					
						
						
							
							path: removed sanitizePathDup()  
						
						... 
						
						
						
						We don't need to sanitize the path, because the mapper already checks
for malformed paths. 
						
						
					 
					
						2008-10-31 16:50:51 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f291876772 
					 
					
						
						
							
							mapper: check for "." and ".."  
						
						... 
						
						
						
						Make map_directory_child_fs() refuse the names "." and "..".  This is
currently the interface where an attacker may inject a manipulated
path (through the "update" command). 
						
						
					 
					
						2008-10-31 16:48:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a5f8d4386c 
					 
					
						
						
							
							update: check return values  
						
						... 
						
						
						
						Nearly all mapper functions can fail and will then return NULL.  Add
checks to all callers. 
						
						
					 
					
						2008-10-31 16:47:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d8e877e335 
					 
					
						
						
							
							path: moved playlist_dir to mapper.c  
						
						... 
						
						
						
						Added the function map_spl_utf8_to_fs() which replaces
utf8_to_fs_playlist_path(). 
						
						
					 
					
						2008-10-31 16:47:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ef54271619 
					 
					
						
						
							
							mapper: use g_warning() for logging  
						
						... 
						
						
						
						g_error() is fatal by default.  Use g_warning() for non-fatal
initialization errors. 
						
						
					 
					
						2008-10-31 16:46:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f098db149e 
					 
					
						
						
							
							decoder: eliminate gotos in decodeStart()  
						
						... 
						
						
						
						http://xkcd.com/292/  
					
						2008-10-31 16:29:45 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a1ca32168c 
					 
					
						
						
							
							decoder: don't wake up player when command==NONE  
						
						... 
						
						
						
						If nobody sent a command, the player isn't waiting for the decoder.
Don't wake it up. 
						
						
					 
					
						2008-10-31 16:29:39 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						63682eb1b8 
					 
					
						
						
							
							decoder: notify player after stop  
						
						... 
						
						
						
						The player should always be woken up when the decoder quits. 
						
						
					 
					
						2008-10-31 16:29:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						347e816247 
					 
					
						
						
							
							decoder: reset state and command in decoder_task()  
						
						... 
						
						
						
						Eliminate one goto in decodeStart() by moving some cleanup to
decoder_task(). 
						
						
					 
					
						2008-10-31 16:29:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						86fbac54fd 
					 
					
						
						
							
							decoder: introduce switch statement in decoder_task()  
						
						... 
						
						
						
						switch looks much nicer than if/elseif/... and gcc generates nice
warnings when a new command is added to the enum. 
						
						
					 
					
						2008-10-31 16:29:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						78448fe1a5 
					 
					
						
						
							
							decoder_api: pass constant path pointers  
						
						
						
						
					 
					
						2008-10-31 15:56:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6d6e615825 
					 
					
						
						
							
							input_stream: pass const url to input_stream_open()  
						
						
						
						
					 
					
						2008-10-31 15:50:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a92903983d 
					 
					
						
						
							
							client: use bool  
						
						... 
						
						
						
						Return bool instead of int. 
						
						
					 
					
						2008-10-31 13:58:00 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6757c17689 
					 
					
						
						
							
							removed UTF-8 library, use GLib instead  
						
						... 
						
						
						
						Removed duplicated code. 
						
						
					 
					
						2008-10-31 13:57:10 +01:00 
						 
				 
			
				
					
						
							
							
								Alam Arias 
							
						 
					 
					
						
						
							
						
						f61bb4c8cf 
					 
					
						
						
							
							update mpdconf.example that shout ouput encoding and protocol settings are optional  
						
						
						
						
					 
					
						2008-10-31 13:54:46 +01:00 
						 
				 
			
				
					
						
							
							
								Alam Arias 
							
						 
					 
					
						
						
							
						
						78f60c9c6d 
					 
					
						
						
							
							removed unneed check for protocol in shout plugin, will assume icecast2 protocol if not exist in config  
						
						
						
						
					 
					
						2008-10-31 12:20:49 +01:00 
						 
				 
			
				
					
						
							
							
								Alam Arias 
							
						 
					 
					
						
						
							
						
						0c43f78b11 
					 
					
						
						
							
							replace tabs with space in shout audio_output example  
						
						
						
						
					 
					
						2008-10-31 12:20:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						71fe7ad81a 
					 
					
						
						
							
							path: free GLib error in fs_charset_to_utf8()  
						
						... 
						
						
						
						g_error_free() was missing in case g_convert() failed. 
						
						
					 
					
						2008-10-31 12:20:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8f9d9cc042 
					 
					
						
						
							
							directory: directory_free() frees children  
						
						... 
						
						
						
						directory_free() should free all of its children (subdirectories and
songs).  This way, db_finish() properly frees all allocated memory. 
						
						
					 
					
						2008-10-31 09:20:02 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ea515494cb 
					 
					
						
						
							
							added prefix to header macros  
						
						... 
						
						
						
						"LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
ffmpeg's fault, because short macros should be reserved for
applications, but since it's always a good idea to choose prefixed
macro names, even for applications, we are going to do that in MPD. 
						
						
					 
					
						2008-10-31 09:19:53 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5ef17ac1aa 
					 
					
						
						
							
							client: don't try again after partial write  
						
						... 
						
						
						
						After a partial write, chances are vanishing that another write() will
succeed.  Don't try immediately. 
						
						
					 
					
						2008-10-31 09:19:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b7ee6febaa 
					 
					
						
						
							
							removed the sllist library  
						
						... 
						
						
						
						The "simple singly-linked-list" library has been replaced with GLib's
GList and GQueue. 
						
						
					 
					
						2008-10-31 09:19:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						94cbdffb72 
					 
					
						
						
							
							client: use GQueue instead of sllist.h for deferred_send  
						
						... 
						
						
						
						Another custom data structore converted to GLib. 
						
						
					 
					
						2008-10-31 09:18:11 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90e9079142 
					 
					
						
						
							
							client: use GSList instead of struct strnode for command lists  
						
						... 
						
						
						
						Replace a custom data structure with a GLib one. 
						
						
					 
					
						2008-10-31 09:17:56 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e5ef2d8a37 
					 
					
						
						
							
							client: removed list_cache  
						
						... 
						
						
						
						The list cache aims to save memory allocations, and complicates the
code a bit.  We should rather use GLib slices later, which are easy to
use. 
						
						
					 
					
						2008-10-31 09:17:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8f37f7c838 
					 
					
						
						
							
							ogg: don't include _flac_common.h  
						
						... 
						
						
						
						The source _ogg_common.c does not need any symbols from
_flac_common.h, but including it leads to compiler errors when libflac
isn't available. 
						
						
					 
					
						2008-10-31 08:52:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d65d6548a3 
					 
					
						
						
							
							oggflac: adapt to new API  
						
						... 
						
						
						
						Again, I forgot to adapt oggflac to the new API (struct input_stream,
bool return values). 
						
						
					 
					
						2008-10-31 08:52:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5024f0b6cc 
					 
					
						
						
							
							ffmpeg: pass input_stream pointer to decoder_data()  
						
						... 
						
						
						
						decoder_data() uses wait times to let the input stream continue its
transfer. 
						
						
					 
					
						2008-10-30 19:09:20 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b15c4cdeb5 
					 
					
						
						
							
							ffmpeg: use return value of decoder_data()  
						
						... 
						
						
						
						decoder_data() always returns the current command.  If we use this, we
can save a lot of decoder_get_command() calls. 
						
						
					 
					
						2008-10-30 19:03:41 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3b4a28518 
					 
					
						
						
							
							ffmpeg: output buffer size cannot be negative  
						
						... 
						
						
						
						Converted the runtime check to an assertion. 
						
						
					 
					
						2008-10-30 19:03:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						130fc58b36 
					 
					
						
						
							
							ffmpeg: break immediately after av_read_frame()  
						
						... 
						
						
						
						Remove one indent level. 
						
						
					 
					
						2008-10-30 19:03:31 +01:00