aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2008-10-20path: replaced parent_path() with g_path_get_dirname()Max Kellermann3-42/+7
Again, GLib's version is more robust than ours.
2008-10-20path: replaced mpd_basename() with g_path_get_basename()Max Kellermann6-29/+30
GLib's g_path_get_basename() is much more reliable than mpd_basename(). The latter could be tricked into an assertion failure.
2008-10-20signal_check.c: don't use leading underscoresMax Kellermann1-8/+8
Identifiers with two leading underscores are reserved for the C compiler's internal use. Don't use them in the source.
2008-10-19mapper: don't return database path with leading slashMax Kellermann1-1/+1
Due to an off-by-one bug in map_fs_to_utf8(), the function returned database paths with a leading slash.
2008-10-18listen: fix "struct ucred" checkAndrzej Rybczak1-3/+3
The macro name is HAVE_STRUCT_UCRED, not HAVE_UCRED.
2008-10-18input_stream: don't declare method typedefsMax Kellermann1-14/+8
The typedefs aren't using by anybody but struct input_stream. Remove them and declare the method type within struct input_stream.
2008-10-18ffmpeg: make internal functions staticMax Kellermann1-22/+12
The mpdurl_* code is internal, don't expose them. Also don't initialize struct members with NULL.
2008-10-17client: converted permissions to unsignedMax Kellermann5-22/+22
client->permission is a bit set, and should be unsigned.
2008-10-17client: eliminate variable "left" in client_write()Max Kellermann1-5/+5
Reduce two temporary variables to only one.
2008-10-17client: fixed send bufferMax Kellermann1-49/+4
There is no sense in using the kernel's send buffer size (SO_SNDBUF) for MPD's send buffer. Convert it into a static buffer of 4 kB.
2008-10-17client: removed CLIENT_MAX_BUFFER_LENGTHMax Kellermann1-3/+2
Use a literal in the struct declaration, and sizeof(client->buffer) everywhere else. Also shrink the buffer from 40 kB to 4 kB. The buffer must only be large enough to hold one line of input, and 4 kB is still more than enough.
2008-10-17client: added assertions on the buffer pointersMax Kellermann1-0/+6
The buffer pointers must not exceed the buffer size.
2008-10-17client: read() return value is ssize_tMax Kellermann1-2/+2
Use ssize_t instead of int.
2008-10-17client: handle partial lines correctlyMax Kellermann1-2/+2
Commit 6eb62e47 didn't obey partial lines correctly: when a line wasn't finished in one read, the first part was ignored when the rest arrived.
2008-10-17ffmpeg: new decoder pluginViliam Mateicka3-0/+426
[mk: fixed indent, changed copyright statement, added autoconf test, fixed includes paths, fixed 2 gcc warnings, don't close input stream twice]
2008-10-17Makefile.am: don't compile disabled decoder pluginsMax Kellermann16-159/+83
Don't compile the sources of disabled decoder plugins at all, and don't attempt to register these.
2008-10-17Makefile.am: don't compile disabled sourcesMax Kellermann4-28/+21
If a feature is disabled, don't compile the source file at all, disable it completely in Makefile.am instead.
2008-10-17input_stream: removed nmemb argumentMax Kellermann8-16/+12
The nmemb argument isn't actually useful, and one of nmemb and size was always passed as 1. Remove it.
2008-10-17input: declare struct input_streamMax Kellermann7-43/+50
Provide a struct type which can be forward-declared. The typedef InputStream is deprecated now.
2008-10-17decoder: notify player after entering decodeStart()Max Kellermann1-0/+1
Wake up the player as soon as the decoder thread has entered its loop. This fixes a dead lock when the input is blocking.
2008-10-17command: expect "file:///" url for local filesMax Kellermann1-4/+7
When adding a local file, clients have to use the "file" URI schema described in RFC 1738 3.10. By adding this schema to "urlhandlers", a client can detect whether this feature is available.
2008-10-17listen: fixed unused variable warning without HAVE_UCREDMax Kellermann1-0/+2
The local variable "passcred" was only used by ucred code.
2008-10-16configure.ac: check if "struct ucred" is availableMax Kellermann1-2/+2
By default, glibc 2.8 hides struct ucred behind the _GNU_SOURCE macro. I don't want to enable that globally, because it may encourage the use of non-portable functions. Test if "struct ucred" is available, and enable _GNU_SOURCE if required. For details about that issue, see glib's bug database: http://sources.redhat.com/bugzilla/show_bug.cgi?id=6545
2008-10-16configure.ac: find more libraries with pkg-configMax Kellermann1-0/+6
Detect the following libraries with pkg-config: libshout, libid3tag, libmad.
2008-10-16command: special case for "add /"Max Kellermann1-1/+1
The undocumented command "add /" adds the full music database to the playlist. Don't interpret this special path as a local file path.
2008-10-15playlist: also allow world-readable local filesMax Kellermann1-1/+1
Allow a local user to not only add his own files, but also all world-readable files (mode 0444).
2008-10-15song: check file type in song_file_update()Max Kellermann1-1/+1
Don't load non-regular files.
2008-10-15playlist: added support for adding songs not in the music databaseMax Kellermann6-6/+59
Clients which have authenticated via unix socket may add local files to the MPD playlist, provided that they own the file.
2008-10-15command: print error message on "addid" failureMax Kellermann1-1/+1
Returning the playlist_result value from a command handler does not make sense. Call print_playlist_result() there, and forward its return value.
2008-10-15playlist: moved code to song_by_url()Max Kellermann1-4/+17
Replace some complicated checks from addToPlaylist() to the simpler function song_by_url().
2008-10-15song: added song_in_database()Max Kellermann2-9/+14
Some functions assume that a song is not in the database when it is a remote song. Based on that, they decide whether they are responsible for freeing the song struct. Add a special function which checks whether a song is in the database (currently equal to song_is_file()).
2008-10-15listen, client: enable SO_PASSCRED, get client's uidMax Kellermann3-3/+41
Enable authentication over unix sockets. Store the client's uid in the client struct.
2008-10-15update: don't skip hidden filesMax Kellermann1-3/+5
Skip only the special directory entries "." and "..", don't skip all other "hidden" files.
2008-10-15shout: check for vorbisenc libraryMax Kellermann1-2/+2
The switch from ogg.m4 to pkg-config intentionally disabled libvorbisenc. Enable it when shout_ogg is used.
2008-10-15fixing several imports to work via pkg-configEnrico Weigelt1-3/+10
This patch fixes several imports to use pkg-config instead of certain esoteric tests.
2008-10-15locate: use g_utf8_casefold() instead of string_toupper()Max Kellermann5-30/+16
string_toupper() and strDupToUpper() were not able to deal with character sets other than US-ASCII. Use GLib's g_utf8_casefold() for strings.
2008-10-15mapper: moved musicDir initialization from path.cMax Kellermann5-31/+52
Moved the musicDir variable and its initialization code from path.c to mapper.c.
2008-10-15path: allow starting MPD with non-existing music directoryMax Kellermann1-6/+6
When the music directory is not mounted yet, let MPD start anyway.
2008-10-15path, tag_id3: use g_convert() instead of charConv.cMax Kellermann5-234/+40
GLib provides an easier API for character set conversion than iconv(). Use g_convert() / g_convert_with_fallback() for all character conversions. We should optimize the path.h API later to return a newly allocated buffer, so we can just pass GLib's return value.
2008-10-15use GLibMax Kellermann1-1/+4
GLib is a nice and portable utility library. We are going to use it from now on, and eliminate a lot of duplicated code from MPD. Why invent the wheel again and again?
2008-10-15tag_id3: fix indentationMax Kellermann1-28/+28
Indentation was broken in tag_id3.c: it used 4 spaces instead of tabs.
2008-10-15idle: client command "noidle" aborts idleMax Kellermann1-3/+21
2008-10-15client: optimized client_input_received()Max Kellermann1-38/+44
Use memchr() instead of manually traversing the input buffer. Update the client's properties after all commands have been processed. Check for buffer overflow once.
2008-10-15listen: pass protocol family to establishListen()Max Kellermann1-27/+8
The caller already knows the protocol family, and we can eliminate the complicated switch statement in establishListen() if we just pass this information. This seems more robust.
2008-10-15listen: use getaddrinfo() instead of gethostbyname()Max Kellermann1-31/+22
getaddrinfo() is more robust and has proper IPv6 support. The new code tries to bind to all IP addresses returned by getaddrinfo().
2008-10-14command: added command "idle"Max Kellermann13-3/+284
"idle" waits until something noteworthy happens on the server, e.g. song change, playlist modified, database updated. This allows clients to keep up to date without polling.
2008-10-14alsa: added #ifdefs around SND_PCM_NO_AUTO_xxxMax Kellermann1-0/+6
These macros are not available in older libasound versions (1.0.13 fails, 1.0.16 is ok). Ignore the configuration if the constants are not defined.
2008-10-14playlist: don't use uninitialized local variable (typo)Max Kellermann1-1/+1
Instead of the uninitialized local variable "s", I should have used "uri".
2008-10-14oss: use unsigned integer for ioctl constantsMax Kellermann1-12/+12
The OSS constants overflow a signed integer, use unsigned instead.
2008-10-14oss: convert several macros to enumMax Kellermann1-19/+25
C enums are nicer than CPP macros.