aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-01-25alsa: fix option parsing and restore default period_timeDan McGee1-3/+6
Two bugs here led to a large number of interrupts being generated on the sound card when ALSA output is being used. Because we specify no default period_time, the sound card gives us 3000 interrupts/sec rather than a more sane 20 or 30. This completes the revert of dd7711 already started by 4ca24f. The larger bug was in the change to config_get_block_unsigned() and using 0 as the default value for both 'buffer_time' and 'period_time'. This means any pre-setting of these options in newAlsaData() gets wiped out. Add a new default for period_time, and ensure default values for buffer_time and period_time are used if none are provided by the user. Signed-off-by: Dan McGee <dan@archlinux.org> [mk: set defaults in newAlsaData() to fix auto-configuration; renamed "_MS" back to "_US" because ALSA expects microseconds, not milliseconds] Signed-off-by: Max Kellermann <max@duempel.org>
2009-01-25Fix tag not being set when casefolding the locate_item_listQball Cow1-1/+3
2009-01-24renamed the "mod" decoder plugin to "mikmod"Max Kellermann3-5/+5
We have two mod plugins now: modplug and mod. Rename the latter to a more useful name.
2009-01-24tag_id3: added MusicBrainz tag supportMax Kellermann1-0/+79
Added support for the MusicBrainz TXXX tags, documented on: http://musicbrainz.org/doc/MusicBrainzTag
2009-01-24tag_id3: always allocate tag objectMax Kellermann1-30/+27
Save some code: always allocate the tag object, and free it when it turns out to be empty.
2009-01-24tag: added support for MusicBrainz tagsMax Kellermann2-1/+13
Added all important id tags from the MusicBrainz wiki: http://musicbrainz.org/doc/MusicBrainzTag This should automatically enable its suport in the vorbis and flac decoder plugins.
2009-01-24modplug: removed EOF check from the while loopMax Kellermann1-2/+4
EOF is checked by input_stream_read() (decoder_read() here). Don't do it twice. The check was wrong anyway, it was reversed.
2009-01-24modplug: check for input_stream errorsMax Kellermann1-2/+8
When input_stream_read() returns 0, and input_stream_eof() returns false, an I/O error has occured. Skip this song.
2009-01-24modplug: use size_t instead of int for buffer sizesMax Kellermann1-1/+1
2009-01-24modplug: check size limit before appending new bufferMax Kellermann1-4/+4
Don't enlarge the GByteArray when the size limit may overflow in this operation; check the size limit first.
2009-01-24modplug: use GByteArray.len, remove total_lenMax Kellermann1-4/+2
The local variable "total_len" is superfluous because GByteArray always knows its size.
2009-01-24modplug: unknown size is -1; check for empty fileMax Kellermann1-5/+12
The input_stream API sets size to -1 when the size of the resource is not known. The modplug decoder checked for size==0, which would be an empty file.
2009-01-24modplug: header cleanupMax Kellermann1-2/+0
Don't include utils.h and log.h, they are relics from the past.
2009-01-24modplug: define G_LOG_DOMAINMax Kellermann1-0/+3
Make sure that log messages are decorated correctly.
2009-01-24modplug: declare constants as enumMax Kellermann1-4/+6
Don't write CPP if you can write C.
2009-01-24modplug: use only decoder_read(), not input_stream_read()Max Kellermann1-5/+1
You are allowed to call decoder_read() with decoder==NULL. It is a convenience function provided by the decoder API. Don't manually fall back to input_stream_read().
2009-01-24locate: added locate_item_list_casefold()Max Kellermann4-11/+22
Merged casefolding code from two locations into this one library function.
2009-01-24queue_print, dbUtils: use struct locate_item_listMax Kellermann7-74/+58
Changed the function prototypes to get locate_item_list objects instead of num_items/items.
2009-01-24locate: added struct locate_item_listMax Kellermann5-87/+111
Instead of passing two parameters around (number of items, array of items), combine both in a variable size struct.
2009-01-24locate: initialize the whole visited_types arrayMax Kellermann1-2/+6
The declaration initialized only the first element. Initialize the whole array with memset() instead.
2009-01-24locate: use bool instead of intMax Kellermann2-33/+33
Use the C99 bool type instead of integer values (1/0 or 0/-1).
2009-01-24locate: no CamelCaseMax Kellermann5-89/+76
Renamed functions and variables.
2009-01-24queue_print: use new_items instead of itemsMax Kellermann1-1/+1
Fix a typo in one of the previous patches.
2009-01-24playlist: removed locate functions to queue_print.cMax Kellermann5-46/+45
Now playlist.c does not contain any protocol specific code anymore.
2009-01-24locate: renamed LocateTagItem to "struct locate_item"Max Kellermann7-60/+70
No CamelCase and no typedefs.
2009-01-24command: use queue_print_*()Max Kellermann4-82/+51
Replaced several wrapper functions from playlist.c, and make command.c use the queue print functions directly.
2009-01-24playlist: added playlist_get_queue()Max Kellermann2-0/+12
To allow code outside playlist.c to access the "queue" object, provide a function which returns a const pointer.
2009-01-24playlist: renamed the Playlist typedef to "struct playlist"Max Kellermann2-3/+3
No typedefs.
2009-01-24playlist: moved stopOnError and errorCount into struct playlistMax Kellermann2-11/+23
Moved the 2 remaining global variables into the playlist struct.
2009-01-24modplug: change settings before loading a fileAndrzej Rybczak1-6/+8
alternative settings must be set before the file is loaded, otherwise they won't be respected.
2009-01-24command: eliminate gcc warningLaszlo Ashin1-1/+1
Argument cmd of function command_available() is not used if mpd was configured without sqlite.
2009-01-23commands: don't advertise "sticker" unless configuredMax Kellermann1-1/+13
In the return value of the "commands" command, don't list the "sticker" command if no sticker file is configured.
2009-01-23playlist: restore random mode after playlist is loadedMax Kellermann1-8/+6
When the playlist was loaded from the state file, the order numbers were the same as the positions. In random mode, we need to shuffle the queue order. To accomplish that, call setPlaylistRandomStatus() at the end of readPlaylistState(), and do a fresh shuffle.
2009-01-23playlist: removed song_id_to_position()Max Kellermann1-12/+7
song_id_to_position() is only a wrapper for queue_id_to_position().
2009-01-23playlist: fix "clear" crash in random modeMax Kellermann1-0/+5
When MPD is not playing while in random mode, and the client issues the "clear" command, MPD crashes in stopPlaylist(), or more exactly, in queue_order_to_position(-1). Exit from stopPlaylist() if MPD isn't playing.
2009-01-23song: include cleanupMax Kellermann1-2/+0
Removed unused includes.
2009-01-23playlist: moved saving/loading code to queue_save.cMax Kellermann4-26/+125
Create a new library which saves/loads the queue to/from the state file.
2009-01-23playlist: moved PlaylistInfo() to playlist_print.cMax Kellermann6-32/+86
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.
2009-01-23playlist: moved some printing code to queue_print.cMax Kellermann4-32/+142
Moved protocol printing functions which operate on the queue to queue_print.c.
2009-01-23playlist: pass const pointers to search functionsMax Kellermann2-19/+17
The LocateTagItem objects are not modified.
2009-01-23playlist: removed swapSongs()Max Kellermann1-8/+4
swapSongs() is only a wrapper for queue_swap().
2009-01-23playlist: don't unpause on deleteMax Kellermann1-1/+3
When you delete a song from the playlist which was paused, MPD forgot that it was paused and started playing the next song.
2009-01-23queue: update moved song versionsMax Kellermann1-0/+1
This patch fixes a regression introduced by commit aa9ffc.
2009-01-23playlist: added source commentsMax Kellermann2-5/+147
The playlist.c source is currently quite hard to understand. I have managed to wrap my head around it, and this patch attempts to explain it to the next guy.
2009-01-23playlist: assert in playPlaylistIfPlayerStopped()Max Kellermann1-15/+15
The function playPlaylistIfPlayerStopped() is only called when the player thread is stopped. Converted that runtime check into an assertion, and remove one indent level.
2009-01-23playlist: don't shuffle if not in random modeMax Kellermann1-1/+1
One of the previous patches removed the "random" mode check from nextSongInPlaylist(), which caused a shuffle whenever MPD wrapped to the first song in "repeat" mode. Re-add that "random" check.
2009-01-23playlist: removed unreachable "playing" checkMax Kellermann1-11/+7
In playPlaylist(), the second "song==-1 && playing" check can never be reached, because at this point, the function has already returned (after unpausing).
2009-01-23playlist: removed stopOnError flag from playPlaylist()Max Kellermann3-10/+10
All callers pass false. Don't bother to collect that parameter.
2009-01-23playlist: restart playing in deleteFromPlaylist()Max Kellermann1-22/+9
When a song is deleted, start playing the next song immediately, within deleteFromPlaylist(). This allows us to remove the ugly playlist_noGoToNext flag, and the currentSongInPlaylist() function.
2009-01-23playlist: calculate next song before deleting the current oneMax Kellermann1-11/+5
By calling queue_next_order() before playlist.current is invalidated (by the deletion of a song), we get more robust results, and the code becomes a little bit easier. incrPlaylistCurrent() is unused now, and can be removed.