Max Kellermann
d3c93c1c77
tag: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:32:38 +02:00
Max Kellermann
b2924405ae
conf: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:32:09 +02:00
Max Kellermann
b1c177528f
locate: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:31:44 +02:00
Max Kellermann
0edfbc8a5f
input_curl: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:30:12 +02:00
Max Kellermann
c434379d79
mad_decoder: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:29:39 +02:00
Max Kellermann
d5b3dd36fd
mp4ff_decoder: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:29:11 +02:00
Max Kellermann
9038882d95
alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp()
...
strcasecmp() is locale dependent, making it a bad choice for internal
string comparisons.
2009-04-28 09:28:16 +02:00
Daniel Kahn Gillmor
05dfdfdb39
alsa_mixer: add mixer_index option
...
This allows you to select controls with duplicate names.
2009-04-28 09:15:48 +02:00
Max Kellermann
f4966ba42c
decoder_api: removed dc.pipe assertion from decoder_read()
...
Database update was broken due to the dc.pipe!=NULL assertion. This
assertion is only valid while MPD decodes a song, not during database
update.
2009-04-26 10:57:02 +02:00
Max Kellermann
ecb7f24b01
vorbis_encoder: reinitialize vorbis_dsp_state after flush
...
libvorbis goes into a very long loop if we try to add data after a
flush was invoked by vorbis_analysis_wrote(0). This seems to be a
problem with the internal end-of-stream marker. Thus, we cannot reuse
the vorbis_dsp_state object.
2009-04-25 18:27:39 +02:00
Max Kellermann
3888ef2f55
decoder_control: properly cancel an existing command in dc_stop()
...
When the decoder thread has a pending command, send the STOP command
to cancel this command. Send STOP again if the decoder thread is
still running after that, just in case the decoder thread has executed
the previous command (which was overwritten).
2009-04-25 15:19:01 +02:00
Max Kellermann
ceb00f787e
decoder: added assertions on dc.pipe
...
dc.pipe must be non-NULL while the decoder thread is running. Ensure
that with a load of assertions.
2009-04-25 15:07:22 +02:00
Max Kellermann
d01d1ccad2
client: use GTimer to track timeouts
2009-04-25 14:16:24 +02:00
Max Kellermann
616dc9d465
playlist_control: use GTimer in previousSongInPlaylist()
...
To determine whether to rewind the current song or to go to the
previous song, use a GTimer instead of manually diffing time(NULL).
2009-04-25 14:08:31 +02:00
Max Kellermann
d2010c0289
pulse_mixer: use PULSE's mainloop lock instead of GMutex
...
Using two different kinds of locks may result in a race condition with
a deadlock. The libpulse callbacks need no locks at all, because the
mainloop object can be assumed to be already locked.
2009-04-25 13:53:15 +02:00
Max Kellermann
11bcd7f013
curl: moved proxy settings to "input" block
...
The old global settings "http_proxy_host", "http_proxy_port",
"http_proxy_user" and "http_proxy_password" continue to work.
2009-04-25 13:35:04 +02:00
Max Kellermann
80de8fb93b
fluidsynth: added "experimental" comments in the source file
2009-04-25 12:32:22 +02:00
Max Kellermann
472b994779
player_thread: pause when all audio outputs fail to play
...
When all audio outputs have been closed due to failures, pause the
playback instead of stopping it. This way, the user may resume
at the current position after the problem has been dealt with.
2009-04-25 11:55:36 +02:00
Max Kellermann
70faf59275
player_thread: pause when output fails while seeking
...
When no audio outputs could be opened while seeking, leave MPD seeked
at that position and pause playback. The user may continue from this
point at any time, as soon as the audio outputs are fixed. The old
behaviour triggered an assertion failure: the failure wasn't passed
properly to the do_play() function, which attempted to play audio
chunks.
2009-04-25 11:36:45 +02:00
Max Kellermann
5ce625ea97
stored_playlist: don't close NULL file on error
...
spl_append_song() can crash when fopen() fails, because it attempts to
close the invalid file handle (NULL) in the error handler.
2009-04-24 08:57:01 +02:00
Max Kellermann
85658965c9
alsa_output: don't use atexit() to clean up the ALSA library
...
Call snd_config_update_free_global() manually in our finish() method,
don't use atexit().
2009-04-21 22:47:12 +02:00
Max Kellermann
eb059a789c
alsa_mixer: call snd_config_update_free_global() in finish()
...
snd_config_update_free_global() frees cached ALSA configuration. This
keeps valgrind a little bit more quiet. This patch moves the call
from the open() method into the finish() method, which seems more
natural: it allows the use of the config cache, and improves the
cleanup phase.
2009-04-21 22:47:08 +02:00
Max Kellermann
c7c809ecba
output_control: close mixer on pause
...
For non-global mixers (only "pulse" currently), close the mixer when
MPD playback is paused.
2009-04-21 22:17:52 +02:00
Max Kellermann
c9c0415d65
client: free the fifo buffer
...
This patch fixes a memory leak: the fifo_buffer object was not freed
when the client connection was closed.
2009-04-17 11:37:27 +02:00
Max Kellermann
2cbda895fb
icy_server: don't export icy_server_metadata_string()
...
icy_server_metadata_string() is only called by
icy_server_metadata_page().
2009-04-13 19:39:33 +02:00
Max Kellermann
9919704be3
httpd: use C99 "bool" instead of GLib's gboolean
...
Plain "bool" consumes only one byte instead of four.
2009-04-13 19:39:19 +02:00
Max Kellermann
3f81f5b476
httpd: use g_ascii_strncasecmp() to compare headers
...
In HTTP, header names are case insensitive.
2009-04-13 19:39:16 +02:00
Hagen Schink
92ba754fc6
Implemented basic icy support for the httpd output
...
[mk: folded with patch "Put icy related functions in extra source
files"; moved icy_server.c from HAVE_CURL to ENABLE_HTTPD_OUTPUT;
removed an unused variable]
2009-04-13 19:35:02 +02:00
Max Kellermann
200be26371
decoder_api: submit the song tag to the music pipe
...
When a new song starts playing, send its tag (song->tag) to the music
pipe. This allows output plugins to render tags for all songs, not
only those with embedded tags understood by the decoder plugin.
2009-04-13 19:25:53 +02:00
Max Kellermann
548e842799
log: removed "unused" attribute from log_level parameter
2009-04-10 09:14:21 +02:00
Avuton Olrich
0b36e7d944
decoder: prefer wildmidi over fluidsynth
2009-04-06 11:03:45 +02:00
Avuton Olrich
d38f72b902
vorbis: move #define out of function to top of sources
2009-04-02 16:07:52 -07:00
Avuton Olrich
fd90db35b7
decoder: Rename all main decoder plugins functions to *decoder_plugin.
2009-04-02 15:55:10 -07:00
Max Kellermann
a7685780ed
configure.ac: renamed --enable-mod to --enable-mikmod
2009-04-01 22:48:06 +02:00
Max Kellermann
cd6182862a
httpd: don't pass uninitialized page to httpd_client_check_queue()
...
The httpd_client_check_queue() callback function does not use its
"user_data" argument. Don't pass any, and fix the gcc warning.
2009-04-01 22:45:21 +02:00
Max Kellermann
5242305a90
configure.ac: renamed --enable-oggvorbis to --enable-vorbis
2009-04-01 22:45:17 +02:00
Max Kellermann
e720b5bdf8
command: added command "sticker find"
...
This command allows clients to search for stickers with a specified
name.
2009-04-01 18:53:02 +02:00
Eric Wollesen
c95fa4b441
Move db_get_song into sub-handlers. (FReq 2112)
...
db_get_song was being called once for all sub-handlers, but with the
addition of the find command, we don't have a URI coming in, so doing
db_get_song once won't work anymore.
[mk: fixed initialization order]
2009-04-01 18:44:39 +02:00
Max Kellermann
c51e1bf1c0
song_sticker: added song_sticker_find()
...
This is a wrapper for sticker_find(), which looks up the song object.
2009-04-01 18:44:26 +02:00
Max Kellermann
3a4d20faa2
sticker: added sticker_find()
...
sticker_find() finds stickers with the specified name.
2009-04-01 18:42:06 +02:00
Max Kellermann
7f38c3fc78
directory: added directory_lookup_song()
...
Moved code from db_get_song().
2009-04-01 18:41:37 +02:00
Max Kellermann
36ec2edacf
directory: renamed directory_get_directory()
...
Renamed directory_get_directory() to directory_lookup_directory().
Added API documentation.
2009-04-01 18:41:33 +02:00
Max Kellermann
cb35d6e687
sticker_print: new library for sending stickers to a client
2009-04-01 17:30:56 +02:00
Max Kellermann
efcf40f55b
sticker: pass const sticker to sticker_foreach()
2009-04-01 17:27:59 +02:00
Max Kellermann
8ce2ec7aed
client, event_pipe: explicitly ignore the write() result
...
On both locations, the result of write() can be ignored safely. In
event_pipe_emit_fast(), that can only be "EAGAIN", which means that
the pipe buffer is full - no further notification required. In
client_init(), that would be a fatal connection error, which would be
caught by the next event.
This patch fixes gcc warnings.
2009-04-01 17:14:25 +02:00
Max Kellermann
a96bec3655
socket_util: fixed format warning
...
g_set_error() is a printf-like function, and expects a format string.
Using the return value of gai_strerror() is unsafe.
2009-04-01 16:45:03 +02:00
Max Kellermann
6419cc54ac
flac: fixed "unused variable" warning without libcue
...
Move the declaration of "i" into the "for" loop.
2009-04-01 16:44:27 +02:00
Jochen Keil
4bfbdfe5c5
Tag subtracks according to "cuesheet" vorbis comment value
...
Cuesheets are often saved as vorbis comment
flac files (CUESHEET=.. case doesn't matter).
We can parse this now and use the information to
tag the subtracks (from the embedded cuesheets).
2009-03-31 22:17:56 +02:00
Jochen Keil
d7b0c768b0
track length is computed correctly now
2009-03-31 22:17:56 +02:00
Jochen Keil
6720a0a940
free previously allocated flac metadata object
2009-03-31 22:17:56 +02:00