| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
There is only one valid error condition for setsid(): when the current
process is already the process group leader. This is non-critical.
|
|
|
|
|
| |
To detach from the parent process, fork once and make the old process
exit. No need to do that twice.
|
|
|
|
|
|
|
|
| |
MPD's shuffling algorithm was not implemented well: it considers songs
which were already swapped, making it somewhat non-random.
Fix the Fisher-Yates shuffle algorithm by passing the proper bounds to
the PRNG.
|
|
|
|
|
|
|
| |
When decoder_run_song() (decoder_thread.c) waits for the input stream
to become ready, it did that in a busy loop. Add a select() call to
input_curl_buffer() during connect/handshake (i.e. before the first
chunk of body data was received), to let the CPU relax.
|
|
|
|
|
|
| |
When the decoder thread is waiting for free chunks in the music pipe,
don't ignore the STOP command. Just return dc.command without further
checks.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
mixer (passing parameters)
|
|
|
|
|
| |
If a range is "-1", display the whole list. This behavior is
undocumented, but some clients rely on it.
|
| |
|
| |
|
|
|
|
| |
Free memory before exiting.
|
|
|
|
| |
Free memory before exiting.
|
|
|
|
|
| |
Make the listen socket an object, allowing us to add more fields
later. Convert listenSockets into a simple linked list.
|
| |
|
|
|
|
|
| |
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
|
|
|
|
|
| |
A song index cannot be negative. Also require the second parameter to
be valid.
|
|
|
|
|
| |
In a range "start:end", "end" itself should not be included. Use the
same semantics as other languages implementing ranges, e.g. Python.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Loosely based on a patch provided by lesion in bug #1766. The playlistinfo
command can now retrieve ranges of the playlist. The new argument indicates
which entry is the last one that will be displayed. The number of displayed
entries may be smaller than expected if the end of the playlist is reached.
Previous usage:
playlistinfo [start]
New usage:
playlistinfo [start[:end]]
|
|
|
|
|
| |
A range argument looks like start[:end] and is used to specify the entries
of a list that should be returned (rather than the whole list).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Don't use fixed static buffers. GLib allocates a new string for us
anyway, let's just return this one instead of copying it.
|
|
|
|
|
| |
The archive code was disabled, because config.h was not included and
thus ENABLE_ARCHIVE was not defined.
|
| |
|
|
|
|
| |
Save an empty database, even if the music directory is empty.
|
|
|
|
| |
Use the PCM buffer library for the libsamplerate output buffer.
|
|
|
|
| |
Return a temporary buffer from pcm_resample_*() and pcm_convert().
|
|
|
|
| |
Replace a "static" buffer with the PCM buffer library.
|
|
|
|
| |
Replace a "static" buffer with the PCM buffer library.
|
|
|
|
|
|
| |
This library allocates temporary buffers for storing PCM conversion
results. It should replace all those "static" buffer variables which
are racy and never freed.
|
|
|
|
|
| |
Be sure that the output thread has quite before we start destructing
the output object.
|
|
|
|
|
| |
Free memory allocated by the notify object (GMutex, GCond) when it's
not used by the output object anymore.
|
| |
|
|
|
|
|
| |
Free memory allocated by libsamplerate when the output or the decoder
is closed.
|
|
|
|
|
| |
1024 is 2^10, and allows gcc to use bit shift operations instead of
multiplication / division.
|
|
|
|
|
| |
In generic PCM functions allowing all sample formats, pass a void
pointer instead of a char pointer.
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
| |
The function does not need the full pcm_convert_state struct.
|
|
|
|
| |
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.
|
|
|
|
|
| |
We are going to split the pcm_utils.c library, and pcm_range() will be
useful for several sub libraries.
|
|
|
|
| |
Get rid of the non-portable Linux list library, part III (final).
|
|
|
|
| |
Get rid of the non-portable Linux list library, part II.
|