Max Kellermann
6233de0546
encoder/twolame: new encoder plugin based on libtwolame
...
This encoder plugin is a replacement for the LAME encoder plugin for
those who prefer a "free" (non-patent encumbered) encoder library.
Most of the plugin source code is copied from the LAME encoder plugin,
since the LAME and TwoLAME APIs are nearly the same.
2009-07-14 23:07:41 +02:00
Max Kellermann
b1afa40fc1
configure.ac: use more MPD_AUTO_PKG()
...
Fail when a feature is enabled, but the library is not found.
2009-07-14 21:38:49 +02:00
Max Kellermann
a620e936cc
Makefile.am: use WAVPACK_CFLAGS and WAVPACK_LIBS
...
Don't append these to MPD_CFLAGS and MPD_LIBS.
2009-07-14 21:29:01 +02:00
Max Kellermann
d897170455
playlist: no CamelCase
2009-07-14 21:28:36 +02:00
Max Kellermann
5a886da93b
playlist: removed {save,read}PlaylistState()
...
Those were only wrappers for playlist_state_{save,restore}(). Since
sf_callbacks has been removed, we can call the latter functions
directly.
2009-07-14 21:28:26 +02:00
Max Kellermann
9206f54979
state_file: eliminated the sf_callbacks array
...
There are very few callbacks, and they are not meant to be pluggable.
Let's eliminate the array and call the load/save functions manually.
2009-07-14 21:15:12 +02:00
Max Kellermann
966a886ef5
NEWS: fixed typo
2009-07-14 14:24:02 +02:00
Max Kellermann
0c1c753e23
configure.ac: fail when ffmpeg is enabled, but not found
2009-07-14 14:23:49 +02:00
Max Kellermann
58dd6eee5d
output/httpd: removed duplicate sys/types.h include
...
The first patch by Patrick didn't work, because his "#ifdef HAVE_OSX"
line would have required config.h.
2009-07-14 14:23:44 +02:00
Serge Ziryukin
75c0a33ec5
flac: load external cue sheet when no internal one
...
External cue sheet file for "file.flac" should be named as "file.flac.cue".
2009-07-09 19:01:24 +02:00
Bart Nagel
8ae9b45da0
Implement ArtistSort tag
2009-07-09 19:00:41 +02:00
Max Kellermann
1eebbc746f
decoder/sndfile: new decoder plugin based on libsndfile
2009-07-07 08:58:51 +02:00
Max Kellermann
adb2f66ced
tag_id3: revised "performer" tag support
...
According to the ID3 2.4 documentation, "TOPE" is "Original
artist/performer", not "performer". Removed "TOPE" support. Instead,
map TPE3 ("Conductor/performer refinement") and TPE4 ("Interpreted,
remixed, or otherwise modified by") to "performer".
2009-07-07 08:00:21 +02:00
Max Kellermann
7246d67263
tag: added tag "AlbumArtistSort"
...
The tag_id3.c library supports both the documented "TSO2" tag, and the
inofficial TXXX/ALBUMARTISTSORT.
The Vorbis/FLAC decoder automatically supports the new tag, without
further change.
2009-07-07 07:36:25 +02:00
Max Kellermann
971fbe5d8e
Makefile.am: disable test/run_encoder without plugins
...
If the encoder plugin API is disabled at compile time, don't compile
test/run_encoder.c.
2009-07-06 22:50:07 +02:00
Max Kellermann
45df3e5e54
main: fix "unused local variable" warning
...
The variables "success" and "error" are only used if SQLite support is
enabled.
2009-07-06 22:48:34 +02:00
Sébastien Houzé
468b7d3aea
player_thread: log played song in "default" log mode
...
Very few lines to log a song URI when it has been entirely played.
Then mpd logs can be parsed to do statistics.
2009-07-06 22:29:58 +02:00
Max Kellermann
ce517ad5d8
doc: documented the "shout" output plugin settings
2009-07-06 22:25:28 +02:00
Max Kellermann
0e383fbec2
doc: documented the "pulse" output plugin settings
2009-07-06 22:17:27 +02:00
Max Kellermann
47cf647ef6
doc: documented the "command" setting of the "pipe" output plugin
2009-07-06 22:15:36 +02:00
Max Kellermann
c0c5119788
decoder/flac: fix assertion failure in tag_free() call
...
Initialize flac_data.tag right after flac_data_init(). This way, the
"goto fail" won't jump to the point where tag_free(NULL) can be
called.
2009-07-06 22:09:30 +02:00
Max Kellermann
0275690b5c
output: use the software mixer plugin
...
Do all the software volume stuff inside each output thread, not in the
player thread. This allows one software mixer per output device, and
also allows the user to configure the mixer type (hardware or
software) for each audio output.
This moves the global "mixer_type" setting into the "audio_output"
section, deprecating the "mixer_enabled" flag.
2009-07-06 22:00:50 +02:00
Max Kellermann
da8095db54
mixer_all: added mixer_all_set_software_volume()
...
The special-purpose function is used for saving/restore the software
volume control to the state file.
2009-07-06 21:52:29 +02:00
Max Kellermann
5d74b1efef
mixer/software: new mixer which controls filter/volume
...
This mixer plugin may be used instead of the traditional global
software mixer. It integrates with the "volume" filter plugin, and
can control the software volume of an audio output which has no
hardware mixer.
2009-07-06 21:52:15 +02:00
Max Kellermann
d3b5574d7a
volume: moved range check to handle_setvol()
...
Converted the range checks in volume_level_change() to assertions.
Changed all volume types to "unsigned", expect for those which must be
able to indicate error (-1).
2009-07-06 21:52:10 +02:00
Max Kellermann
90472526e0
volume, mixer: removed the "relative" parameter
...
Since the "volume" command has been removed, nobody uses relative
volumes anymore.
2009-07-06 21:51:24 +02:00
Max Kellermann
206392ad1a
command: removed the "volume" command
...
This command has been deprecated more than 5 years ago (0.10.0). Its
implementation is a kludge, let's remove it now.
2009-07-06 21:51:00 +02:00
Max Kellermann
171a9ee291
output_init: moved the "convert" filter at the end
...
The "convert" filter must be the last filter in the chain. Ensure
that by doing its initialization at the very end of
audio_output_init().
2009-07-06 21:50:25 +02:00
Max Kellermann
13e725ab09
output_init: merge two local string variables
2009-07-06 21:50:13 +02:00
Max Kellermann
f5c2acf1d4
output_init: parse audio format earlier
2009-07-06 21:40:43 +02:00
Max Kellermann
64ca94c910
output/httpd: include sys/types.h
...
On Mac OS X, the httpd plugin cannot be compiled, because OS X's
system headers do nto include sys/types.h, although they use
u_int32_t.
2009-07-06 14:40:06 +02:00
Max Kellermann
00eea0e615
song: initialize mtime in song_alloc()
2009-07-06 11:50:05 +02:00
Max Kellermann
17e3054399
song_print: check gmtime_r()'s return value
...
When song->mtime was not initialized properly, it was revealed that
strftime() might crash when gmtime_r() returns NULL due to an invalid
time_t input value.
2009-07-06 11:48:21 +02:00
Max Kellermann
09aadffe9b
song: initialize mtime in song_alloc()
2009-07-06 11:32:31 +02:00
Max Kellermann
e47bdfe8e6
output: attach a filter chain to each audio_output
...
This patch adds initial filter support for audio outputs. Each audio
output gets a "filter" attribute, which is used by ao_play_chunk().
The PCM conversion is now performed by convert_filter_plugin.
audio_output.convert_state has been removed.
2009-07-06 10:01:47 +02:00
Max Kellermann
cd9c0a6b3e
filter/convert: new filter which calls pcm_convert() on demand
2009-07-06 10:01:02 +02:00
Max Kellermann
c372c3756b
filter/chain: new library for creating a chain of filters
2009-07-06 10:01:02 +02:00
Max Kellermann
78fa3f06f9
output: added command REOPEN
...
REOPEN is called when the input audio format changes. The output
thread may be reconfigure the PCM converter.
2009-07-06 10:01:02 +02:00
Max Kellermann
1350cd0e42
output_thread: moved OPEN handler to ao_open()
2009-07-06 08:04:18 +02:00
Max Kellermann
89d4f438c0
mixer_type: moved volume_mixer_type from volume.c
2009-07-06 07:37:37 +02:00
Max Kellermann
8bd7b5b607
conf: use bp->value, not param->value
...
A recent change to the boolean parser introduced a bug: instead of
using the block_param's value with get_bool(), we passed param->value
(which is always NULL in this case).
2009-07-06 07:37:32 +02:00
Max Kellermann
d78be1ab49
output_init: moved mixer instantiation to separate function
2009-07-05 18:44:37 +02:00
Max Kellermann
86e279f886
filter/volume: don't use volume_level_get()
...
Added public methods to get and set the current volume.
2009-07-05 16:31:47 +02:00
Max Kellermann
d4914fc9ef
idle: added "update" event
...
Some clients have visual feedback for "database update is running".
Using the "database" idle event is unreliable, because it is only
emitted when the database was actually modified. This patch adds the
"update" event, which is emitted when the update is started, and again
when the update is finished, disregarding whether it has been
modified.
2009-07-05 08:46:53 +02:00
Max Kellermann
46c19b8249
song_print: send song modification time to client
...
Added the response line "Last-Modified", which sends the modification
time in ISO 8601. The same was already implemented for playlists.
2009-07-05 08:40:29 +02:00
Max Kellermann
077b24d62d
configure.ac: increased protocol version to 0.16.0
...
We're going to extend the protocol now. Update the protocol version.
2009-07-05 08:40:26 +02:00
Max Kellermann
111c4dac63
song_save: use GError for error handling
2009-07-05 08:29:52 +02:00
Max Kellermann
69ff9d757f
song_save: no CamelCase
...
Renamed functions.
2009-07-05 08:29:50 +02:00
Max Kellermann
0c2ab17e91
sticker: use GError for error handling
2009-07-05 08:29:47 +02:00
Max Kellermann
badb827712
log: fix double free() bug during shutdown
...
Don't free an internal configuration value in log_init(). Call
config_get_path() instead of manually calling parsePath().
2009-07-05 07:14:24 +02:00