| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This plugin is based on "libmpcdec".
|
|
|
|
| |
This plugin is based on "libmp4ff".
|
|
|
|
| |
This plugin uses libvorbis.
|
|
|
|
| |
A decoder plugin should be named after the library which is used.
|
|
|
|
|
|
| |
The decoder_plugin struct is used by both the MPD core and the decoder
plugin implementations. Move it to a shared header file, to minimize
header dependencies.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a few problems left in this plugin:
- fluidsynth decodes in real time, while MPD prefers to buffer as
quickly as possible; as a workaround, this plugin uses a timer
object to synchronize with real-time playback
- I don't know yet how fluidsynth tells me when the song has ended
- the "soundfont" configuration setting is not yet documented, and it
will likely change soon (in favor of a per-decoder configuration
block)
|
| |
|
|
|
|
|
|
| |
The output_command library provides a command interface to the audio
outputs. It assumes the input comes from an untrusted source
(i.e. the client) and verifies all parameters.
|
|
|
|
|
|
| |
Added audio_format_parse() in a separate library, with a modern
interface: return a GError instead of logging errors. This allows the
caller to deal with the error.
|
|
|
|
|
| |
Moved code which deals with all audio outputs at once into a separate
library.
|
| |
|
| |
|
|
|
|
|
| |
Moved functions for playlist editing (append, delete, shuffle, move)
to playlist_edit.c.
|
|
|
|
|
| |
Moved handlers for control commands (play, stop, next, prev) to
playlist_control.c.
|
|
|
|
|
|
|
| |
Export the "g_playlist" variable, and pass it to all playlist
functions. This way, we can split playlist.c easier into separate
parts. The code which initializes the singleton variable is moved to
playlist_global.c.
|
|
|
|
|
| |
Moved everything related to saving or loading the playlist from/to the
state file to playlist_state.c.
|
|
|
|
|
|
|
| |
This patch implements the MMS protocol, by using libmms. It is quite
experimental: it does not support seeking yet, and it is currently
using synchronous I/O, which causes MPD to hang while waiting for the
server.
|
|
|
|
|
| |
We have two mod plugins now: modplug and mod. Rename the latter to a
more useful name.
|
|
|
|
|
| |
Create a new library which saves/loads the queue to/from the state
file.
|
|
|
|
|
|
| |
PlaylistInfo() (notice the capital 'P') sends a stored playlist to the
client. Move it to a separate library, where all the code which glues
the playlist and the MPD protocol together will live.
|
|
|
|
|
| |
Moved protocol printing functions which operate on the queue to
queue_print.c.
|
|
|
|
|
| |
Attempt to untie the playlist.c knot: moved the playlist storage code
to queue.c, struct queue.
|
|
|
|
|
| |
This is a wrapper for the backend sticker library. It provides
several glue functions which take a song object instead of type/uri.
|
|
|
|
|
|
|
| |
"Stickers" are pieces of information attached to existing MPD objects
(e.g. song files, directories, albums). Clients can create arbitrary
name/value pairs. MPD itself does not assume any special meaning in
them.
|
|
|
|
|
| |
Fetch the configuration variables buffered_chunks and
buffered_before_play just when they are needed.
|
|
|
|
|
|
| |
MPD will (optionall) use sqlite databases in the future. Add a
configure option to enable that. There is no code yet to really use
sqlite, so the practical use of this patch is limited.
|
| |
|
|
|
|
|
| |
This patch tryes to introduce pluggable mixer (struct mixer_plugin) along with some basic infrastructure (mixer_* functions). Instance of mixer (struct mixer) is used in
alsa and oss output plugin
|
| |
|
|
|
|
|
| |
All what's left in pcm_utils.h is the pcm_range() utility function,
which is only used internally by pcm_volume and pcm_mix.
|
|
|
|
| |
Moved all code which converts the sample format to a separate library.
|
|
|
|
|
| |
Moved the software mixing code (used by crossfading) to a separate
library.
|
|
|
|
| |
Moved the software volume code to a separate library.
|
|
|
|
| |
Get rid of the non-portable Linux list library, part III (final).
|
|
|
|
| |
It's unused.
|
|
|
|
| |
The icy_metadata will be used by the curl input_stream implementation.
|
|
|
|
|
| |
Don't use libc's rand() function, because it is slow. Our own trivial
linear congruential generator is good enough for dithering.
|
|
|
|
| |
It's been superseded by GLib's GSList.
|
|
|
|
|
|
| |
Nobody is using the signal_check library anymore.
This patch also removes the SIGUSR1 handler.
|
|
|
|
|
|
| |
We are going to migrate away from the concept of notifying the main
thread. There should be events sent to it instead. This patch starts
a series to implement that.
|
| |
|
|
|
|
|
| |
Other libraries may need to access the main_loop reference, to add or
remove events, or to call g_main_loop_quit().
|
|
|
|
|
|
|
| |
This is a rather huge patch, which unfortunately cannot be splitted.
Instead of using our custom ioops.h library, convert everything to use
the GLib main loop.
|
|
|
|
|
| |
Moved implementation specific code to their own sources, internal
declarations in zeroconf-internal.h.
|
| |
|
|
|
|
|
| |
Only include headers which are really needed. os_compat.h aimed to
make MPD easily portable, but was never actually made portable.
|
| |
|
| |
|
|
|
|
|
| |
When there are no archive plugins, we do not need the archive API at
all. Drop all its overhead.
|