aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* decoder: enable decoders even if they have no init() methodMax Kellermann2008-11-021-1/+1
| | | | | | Commit 1a4a3e1f moved decoders into a static array, but failed to enable those plugins who did not have an init() method at all. This patch corrects the "enabled" check.
* decoder: make the suffixes and mime_types arrays really constMax Kellermann2008-11-0111-32/+41
| | | | | The strings were constant, but the pointers weren't. C syntax is somewhat tricky..
* decoder: make all decoder_plugin structs constMax Kellermann2008-11-0112-23/+23
| | | | | All decoder_plugin structs are initialized at compile time, and must never change.
* decoder: manage decoder list in a static arrayMax Kellermann2008-11-014-109/+78
| | | | | Currently, there is no way to dynamically load decoder plugins, thus we don't need a dynamic list to manage them.
* decoder: return const decoder_plugin structsMax Kellermann2008-11-017-20/+24
| | | | | The decoder_plugin structs must never change. Don't work with non-const pointers.
* permission: store passwords in GHashTableMax Kellermann2008-11-011-17/+20
| | | | Eliminating the deprecated linked list library.
* tag: use GLib instead of utils.hMax Kellermann2008-11-011-8/+10
| | | | Don't use the deprecated functions from utils.h.
* utils: use GUINT32_FROM_LE() instead of readLEuint32()Max Kellermann2008-11-013-17/+8
| | | | Eliminate code already provided by GLib.
* tag: don't return const string from fix_utf8()Max Kellermann2008-11-011-13/+13
| | | | | 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.
* alsa, jack: no const pointers for allocated stringsMax Kellermann2008-11-012-26/+42
| | | | | Make the pointers "device" and "name" non-const, so we don't need the xfree() hack. The default value is expressed as NULL.
* path: removed sanitizePathDup()Max Kellermann2008-10-313-47/+2
| | | | | We don't need to sanitize the path, because the mapper already checks for malformed paths.
* mapper: check for "." and ".."Max Kellermann2008-10-311-0/+5
| | | | | | 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).
* update: check return valuesMax Kellermann2008-10-314-16/+28
| | | | | Nearly all mapper functions can fail and will then return NULL. Add checks to all callers.
* path: moved playlist_dir to mapper.cMax Kellermann2008-10-317-58/+81
| | | | | Added the function map_spl_utf8_to_fs() which replaces utf8_to_fs_playlist_path().
* mapper: use g_warning() for loggingMax Kellermann2008-10-311-5/+5
| | | | | g_error() is fatal by default. Use g_warning() for non-fatal initialization errors.
* decoder: eliminate gotos in decodeStart()Max Kellermann2008-10-311-7/+12
| | | | http://xkcd.com/292/
* decoder: don't wake up player when command==NONEMax Kellermann2008-10-311-1/+0
| | | | | If nobody sent a command, the player isn't waiting for the decoder. Don't wake it up.
* decoder: notify player after stopMax Kellermann2008-10-311-0/+1
| | | | The player should always be woken up when the decoder quits.
* decoder: reset state and command in decoder_task()Max Kellermann2008-10-311-4/+4
| | | | | Eliminate one goto in decodeStart() by moving some cleanup to decoder_task().
* decoder: introduce switch statement in decoder_task()Max Kellermann2008-10-311-4/+10
| | | | | switch looks much nicer than if/elseif/... and gcc generates nice warnings when a new command is added to the enum.
* decoder_api: pass constant path pointersMax Kellermann2008-10-3112-29/+43
|
* input_stream: pass const url to input_stream_open()Max Kellermann2008-10-312-2/+2
|
* client: use boolMax Kellermann2008-10-312-2/+2
| | | | Return bool instead of int.
* removed UTF-8 library, use GLib insteadMax Kellermann2008-10-315-199/+12
| | | | Removed duplicated code.
* update mpdconf.example that shout ouput encoding and protocol settings are ↵Alam Arias2008-10-311-2/+2
| | | | optional
* removed unneed check for protocol in shout plugin, will assume icecast2 ↵Alam Arias2008-10-311-2/+0
| | | | protocol if not exist in config
* replace tabs with space in shout audio_output exampleAlam Arias2008-10-311-1/+1
|
* path: free GLib error in fs_charset_to_utf8()Max Kellermann2008-10-311-1/+3
| | | | g_error_free() was missing in case g_convert() failed.
* directory: directory_free() frees childrenMax Kellermann2008-10-311-0/+7
| | | | | directory_free() should free all of its children (subdirectories and songs). This way, db_finish() properly frees all allocated memory.
* added prefix to header macrosMax Kellermann2008-10-3175-150/+150
| | | | | | | "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.
* client: don't try again after partial writeMax Kellermann2008-10-311-0/+1
| | | | | After a partial write, chances are vanishing that another write() will succeed. Don't try immediately.
* removed the sllist libraryMax Kellermann2008-10-313-127/+0
| | | | | The "simple singly-linked-list" library has been replaced with GLib's GList and GQueue.
* client: use GQueue instead of sllist.h for deferred_sendMax Kellermann2008-10-311-34/+42
| | | | Another custom data structore converted to GLib.
* client: use GSList instead of struct strnode for command listsMax Kellermann2008-10-313-50/+23
| | | | Replace a custom data structure with a GLib one.
* client: removed list_cacheMax Kellermann2008-10-311-34/+1
| | | | | | 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.
* ogg: don't include _flac_common.hMax Kellermann2008-10-311-1/+0
| | | | | | 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.
* oggflac: adapt to new APIMax Kellermann2008-10-311-6/+6
| | | | | Again, I forgot to adapt oggflac to the new API (struct input_stream, bool return values).
* ffmpeg: pass input_stream pointer to decoder_data()Max Kellermann2008-10-301-3/+5
| | | | | decoder_data() uses wait times to let the input stream continue its transfer.
* ffmpeg: use return value of decoder_data()Max Kellermann2008-10-301-18/+20
| | | | | decoder_data() always returns the current command. If we use this, we can save a lot of decoder_get_command() calls.
* ffmpeg: output buffer size cannot be negativeMax Kellermann2008-10-301-5/+7
| | | | Converted the runtime check to an assertion.
* ffmpeg: break immediately after av_read_frame()Max Kellermann2008-10-301-9/+8
| | | | Remove one indent level.
* ffmpeg: moved code to ffmpeg_send_frame()Max Kellermann2008-10-301-27/+34
| | | | | Move code from ffmpeg_decode_internal() to make it smaller and more readable.
* ffmpeg: report seek errors to MPDMax Kellermann2008-10-301-5/+4
| | | | | The decoder API provides the function decoder_seek_error() to report seek errors. Use this function instead of logging the error.
* ffmpeg: simplified mpdurl_read()Max Kellermann2008-10-301-13/+11
| | | | | The function mpdurl_read() is too complicated, and uses the wrong data types.
* ffmpeg: call tag_free() instead of free()Max Kellermann2008-10-301-1/+1
| | | | | tag objects must be freed with tag_free() to ensure that all resources are freed.
* ffmpeg: eliminated local variable "tag"Max Kellermann2008-10-301-7/+4
| | | | | The function ffmpeg_tag() already has the variable base.tag, which can be used for this.
* ffmpeg: make ffmpeg_helper() return boolMax Kellermann2008-10-301-24/+21
| | | | | ffmpeg_try_decode() did not interpret ffmpeg_helper()'s return value properly; migrate everything to bool to make it consistent.
* ffmpeg: removed debug messagesMax Kellermann2008-10-301-35/+5
| | | | We don't need those anymore, they just fill the log.
* ffmpeg: initialize base.decoderMax Kellermann2008-10-301-0/+1
| | | | | ffmpeg_tag() did not initialize base.decoder, which made valgrind unhappy, and can lead to a egmentation fault.
* listen: set file mode 666 on the unix socketMax Kellermann2008-10-301-0/+4
| | | | | | Depending on MPD's umask, the file permissions of the unix socket were too restrictive, and many clients were not able to connect. Do a chmod(0666) on the socket, to allow everybody to connect.