Max Kellermann
2362ee4a48
use config_get_positive() instead of manual parsing
...
Simplify some code by using config_get_positive(), instead of doing
manual parsing and validation each time.
2009-01-21 08:48:02 +01:00
Max Kellermann
f11eb14c8a
conf: added config_get_positive()
...
This convenience function parses a configuration value into a positive
integer. It aborts if parsing fails.
2009-01-21 08:46:59 +01:00
Viliam Mateicka
17222e9561
archiveapi: adding seeking support in zip archives
2009-01-21 06:44:57 +01:00
Max Kellermann
1379db379d
player_thread: eliminated duplicate PLAYLIST event
...
player_wait_for_decoder() emits the PLAYLIST event on success, remove
the duplicate PLAYLIST event in its caller.
2009-01-20 23:11:01 +01:00
Max Kellermann
06bd9ad88f
event_pipe: added "TAG" event
...
The "TAG" event is emitted by the player thread when the current
song's tag has changed. Split this event from "PLAYLIST" and make it
a separate callback, which is more efficient.
2009-01-20 22:49:19 +01:00
Qball Cow
d10910cc90
Add space after sticker: to make it consistent.
2009-01-20 13:55:21 +01:00
Rasmus Steinke
dc7d70ee26
sticker: added guidelines for sticker names
2009-01-19 19:13:55 +01:00
Max Kellermann
f9c693e602
command: added "sticker" command
...
The "sticker" command allows clients to query or manipulate the
sticker database. This patch implements the sub-commands "get" and
"set"; more will follow soon (enumeration), as well as extended
"lsinfo" / "playlistinfo" versions.
2009-01-19 19:09:49 +01:00
Max Kellermann
2934585d5a
update: delete stickers of deleted songs
...
When a song is deleted from the database, remove its sticker, too.
What's still missing is some sort of garbage collector after a fresh
database create (--create-db).
2009-01-19 19:01:34 +01:00
Max Kellermann
638f95aa15
sticker: added song sticker library
...
This is a wrapper for the backend sticker library. It provides
several glue functions which take a song object instead of type/uri.
2009-01-19 18:54:04 +01:00
Max Kellermann
145ab84d51
sticker: new library for storing dynamic information about songs
...
"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.
2009-01-19 18:51:57 +01:00
Max Kellermann
fbed96dcea
flac: include config.h
...
The plugin queries build-time configuration variables, and should
include config.h.
2009-01-19 09:54:47 +01:00
Max Kellermann
33e44fbde8
output: don't include conf.h from output_control.h
...
Minimize header dependencies.
2009-01-18 19:48:31 +01:00
Max Kellermann
65f2386b39
conf: added config_get_block_unsigned()
...
Eliminate some more getBlockParam() invocations.
2009-01-18 19:45:51 +01:00
Max Kellermann
a531a1e650
conf: added config_get_block_string()
...
This replaces lots of getBlockParam() invocations.
2009-01-18 19:37:27 +01:00
Max Kellermann
73e466cfef
jack: parse "ports" setting with g_strsplit()
...
Don't modify the configured string.
2009-01-18 19:24:14 +01:00
Max Kellermann
86f6233f46
jack: use audio_output_get_name()
...
Determine the audio output name with audio_output_get_name() instead
of obtaining the name from the configuration again.
2009-01-18 19:17:52 +01:00
Max Kellermann
70c6cc33f0
conf: removed parseConfigFilePath()
...
Use config_get_path() instead in mapper.c.
2009-01-18 18:59:10 +01:00
Max Kellermann
a0603d8897
mixer: don't check for NULL before g_free()
...
The g_free() function includes a NULL check. We don't have to do it
twice.
2009-01-18 18:55:51 +01:00
Max Kellermann
5ba43e4ac2
daemon: removed unused variable "userpwd"
...
This causes a segmentation fault...
2009-01-18 18:42:44 +01:00
Max Kellermann
9c93249412
daemon: pass "detach" flag to daemonize()
...
This way, we don't have to pass the full "Options" object to
daemonize().
2009-01-18 18:29:30 +01:00
Max Kellermann
bfcaecabbd
daemon: added daemonize_init(), daemonize_finish()
...
The constructor/destructor functions parse and free the configuration
properly. This way, we don't have to load the pid file path more than
once.
2009-01-18 18:29:27 +01:00
Max Kellermann
0dd2dfff9d
main: moved the save_state timer to state_file.c
...
The state_file library should manage its own regular saves.
2009-01-18 18:10:15 +01:00
Max Kellermann
84de45afba
state_file: added state_file_init() and state_file_finish()
...
The constructor/destructor interface should hide the functions
read_state_file() and write_state_file().
2009-01-18 18:09:50 +01:00
Max Kellermann
1482b22351
state_file: include cleanup
2009-01-18 17:54:50 +01:00
Max Kellermann
9c6b2a32f5
conf: added config_get_path()
...
config_get_path() is an simpler interface than parseConfigFilePath().
2009-01-18 17:54:46 +01:00
Max Kellermann
a3f03f3ccd
removed playerData.c
...
Fetch the configuration variables buffered_chunks and
buffered_before_play just when they are needed.
2009-01-18 17:32:43 +01:00
Max Kellermann
90b34f8e6f
main: moved code to daemon.c
...
Moved changeToUser(), cleanUpPidFile(), killFromPidFile() to
daemon.c. These are daemonization functions.
2009-01-18 17:15:34 +01:00
Max Kellermann
1f0dfb4407
mapper: make the music_directory optional
...
Without a music_directory, MPD is an excellent streaming client.
2009-01-18 16:56:07 +01:00
Max Kellermann
9933144de7
mapper: make the playlist directory optional
2009-01-18 16:15:45 +01:00
Max Kellermann
c2cc3b4923
database: pass database file name to db_init()
...
Don't include conf.h in database.c.
2009-01-18 16:09:01 +01:00
Max Kellermann
004dfddca3
stats: use GTimer instead of time(NULL)
...
time(NULL) shows the wrong results when the machine's clock is
changed.
2009-01-18 15:40:53 +01:00
Max Kellermann
14ca99b224
stats: use one db_walk() to obtain stats
...
Don't use dbUtils.h functions. This reduces 4 full database walks to
just one.
2009-01-18 15:40:50 +01:00
Max Kellermann
91fb2a29de
stats: added num_artists, num_albums
...
Don't recalculate the number of artists and albums each time a client
requests statistics. Calculate that once in stats_update().
2009-01-18 15:40:28 +01:00
Max Kellermann
0d449d8df7
stats: no CamelCase
...
Renamed functions and types.
2009-01-18 15:22:26 +01:00
Avuton Olrich
e8c148ab02
mpd version 0.14.1
2009-01-18 14:08:42 +01:00
Max Kellermann
0b29a22c08
conf: replaced getConfigParamValue() with config_get_string()
...
Don't return a writable pointer.
2009-01-17 20:23:58 +01:00
Max Kellermann
7acc62366c
conf: replaced getBoolBlockParam() with config_get_block_bool()
...
No "force" parameter, pass a default value instead.
2009-01-17 20:23:56 +01:00
Max Kellermann
a1a97cc048
conf: use config_get_bool() instead of getBoolConfigParam()
2009-01-17 20:23:33 +01:00
Max Kellermann
4d472c265e
conf: no CamelCase, part I
...
Renamed functions, types, variables.
2009-01-17 20:23:27 +01:00
Max Kellermann
2bbf378dd8
song: skip archive check for non-musicdir files
...
If a song is not within the music directory ("file:///..."), it has no
"parent directory". The archive code nonetheless dereferences the
parent pointer, causing a segmentation fault. Check parent!=NULL.
2009-01-17 19:56:36 +01:00
Max Kellermann
7f3be96efa
decoder_api: always notify_wait() for free chunks
...
One of the previous patches made MPD consume 100% CPU in a busy wait:
when the music_pipe was full, it did not wait (with notify_wait()) for
free chunks, because a variable has a different meaning now. Always
pass "true" as the "wait" parameter.
2009-01-17 15:23:57 +01:00
Max Kellermann
5395f5f6b3
moved fallback APE/ID3 tag loader to song.c
...
Some plugins used the APE or ID3 tag loader as a fallback when their
own methods of loading tags did not work. Move this code out of all
decoder plugins, into song_file_update().
2009-01-17 13:23:42 +01:00
Max Kellermann
43eefe9c41
decoder_api: pass const pointer to decoder_data()
2009-01-17 13:23:12 +01:00
Max Kellermann
356526457c
pcm_convert: return PCM buffer from pcm_convert()
...
Removed yet another superfluous buffer layer: return the PCM buffer
from pcm_convert() instead of copying PCM data into the
caller-supplied buffer.
2009-01-17 13:11:16 +01:00
Max Kellermann
e726e2a004
music_pipe: removed music_pipe_append()
...
The function is unused, since decoder_api() uses music_pipe_write() /
music_pipe_expand() now.
2009-01-17 13:11:11 +01:00
Max Kellermann
610e79500e
decoder_api: use music_pipe_write() instead of music_pipe_append()
...
Copy PCM data to the music_pipe_write() buffer, and apply replay gain
/ normalization to it, instead of manipulating the source buffer.
2009-01-17 13:11:10 +01:00
Max Kellermann
fd948571f8
music_pipe: added functions music_pipe_write() and music_pipe_expand()
...
This new API gives the caller a writable buffer to the music pipe
chunk. This may allow the caller to eliminate several buffer copies,
because it may manipulate the returned buffer, until it calls
music_pipe_expand().
2009-01-17 13:09:29 +01:00
Max Kellermann
d83eff80a5
oggvorbis: disable seeking on remote songs
...
When libvorbis knows that a song is seekable, it seeks around like
crazy in the file before starting to decode it. This is very
expensive on remote HTTP resources, and delays MPD for 10 or 20
seconds.
This patch disables seeking on remote songs, because the advantages of
quickly playing a song seem to weigh more than the theoretical ability
of seeking for most MPD users. If users feel this feature is needed,
we will make a configuration option for that.
2009-01-17 11:46:31 +01:00
Max Kellermann
da6f8c270a
decoder_api: added assertion on partial frames
...
Decoder plugins must not send partial frames.
2009-01-16 18:53:32 +01:00