Commit Graph

3400 Commits

Author SHA1 Message Date
ejurgensen 4fffc057b6 Change queue_remove() to fix segfault because source_head/shuffle_head could become invalid, and to protect against invalid input in general (ref issue #160).
Also try to failsafe source_position() and implement next_ps() all around.
2015-06-08 00:21:49 +02:00
ejurgensen 3dde23e060 Include terminating null in u8_normalize - not necessary now, but just to be safe 2015-06-06 14:47:54 +02:00
ejurgensen 6224fdb025 UTF-8 conversion was returning string without null termination (thank you @stephan-01010011, ref pr #168) 2015-06-06 14:22:24 +02:00
ejurgensen a9437acc1a Rework pr #162 to avoid mem leaks and string termination problems 2015-06-05 23:55:57 +02:00
ejurgensen 7d231b992b Fix typo 2015-06-04 22:17:49 +02:00
ejurgensen cd14522915 Swap misplaced args in db.c 2015-06-04 22:10:30 +02:00
ejurgensen ac34ffabec Merge branch 'chme-mpd' 2015-06-04 21:59:06 +02:00
ejurgensen 271c5ff344 Change DB upgrade from v18->v19 to v18->v18.01 2015-06-04 21:58:01 +02:00
chme 7cd96690c0 Remove file extension for playlists from virtual_path during scan and
update db to v19 removing the file extensions from the stored playlists

An existing file extension in the virtual path leads to wrong entries in
MPDroid (and mpd does also not return the file extension).
2015-06-04 08:11:46 +02:00
ejurgensen 3655e26703 Code style 2015-06-02 23:10:04 +02:00
ejurgensen 64ef66f030 Merge pull request #162 from stephan-01010011/master
Fixed bug that caused icy header metadata to be not correctly encoded
2015-06-03 00:05:56 +03:00
ejurgensen 7a0dfef136 Add sub-sorting when sort=artists, because otherwise Tunesremote SE will not play the artist's tracks in proper order 2015-06-01 23:36:16 +02:00
stephan-01010011 32727bd296 Fixed bug that caused icy header metadata to be not correctly
encoded/converted. Characters above x7F were replaced by '?' character
although the rfc defines a ISO−8859−1 encoding for descriptive
field-content.

According to rfc2616 the field-content is defined as follows:
<the OCTETs making up the field-value and consisting of either *TEXT or
combinations of token, separators, and quoted-string>
The TEXT rule is only used for descriptive field contents and values
that are not intended to be interpreted by the message parser. Words of
*TEXT MAY contain characters from character sets other than ISO- 8859-1
only when encoded according to the rules of RFC 2047.

In the previous implementation the icy metadata was converted based on
fromcode "ascii".

Following incoming icy header field-values should be encoded as
"ISO−8859−1" before adding them to the metadata structure.

- misc.c unicode_fixup_string enhanced by an additional parameter to
define the fromcode
- misc.h unicode_fixup_string prototype updated
- filescanner.c function fixup_tags updated to stay compatible to the
previous implementation using fromcode "ascii"
- db.c function unicode_fixup_mfi updated to stay compatible to the
previous implementation using fromcode "ascii"
- http.c function metadata_header_get enhanced to encode the header
field-content as "ISO−8859−1" to comply with rfc2616
2015-05-31 14:05:31 +01:00
ejurgensen 70fea7e459 Merge pull request #161 from chme/mpdplchanges
Support for mpd command plchanges
2015-05-30 20:33:46 +03:00
chme 7f09438621 [mpd] support "date" argument in find and search commands 2015-05-30 05:56:53 +02:00
chme 2a04740ca2 [mpd] support "file" argument in list command 2015-05-30 05:56:52 +02:00
chme 4299de5ac7 [mpd] implement plchanges to report all songs in the queue as changed
(ignores the playlist version parameter).

This is necessary in order to get mpd clients (e. g. sonata) relying on
this command to display the queue.
2015-05-30 05:33:32 +02:00
ejurgensen 4a50a7a326 [spotify] Improve Spotify loading efficiency and set time_added so smart playlists will work 2015-05-29 19:47:53 +02:00
ejurgensen 40d7d044be Lower log severity of message in spotify.c 2015-05-27 20:32:27 +02:00
ejurgensen a1e417c571 Rename count_info to fix issue #157 2015-05-26 21:24:10 +02:00
ejurgensen 8dd1e0fde2 Fix problem introduced with commit 475d5db where genres and composers don't get sorted 2015-05-26 21:10:28 +02:00
ejurgensen 79cdfebf34 Merge pull request #150 from chme/mpdidle
Add support for mpd idle command
2015-05-21 22:31:03 +02:00
ejurgensen d6828b90fc Merge pull request #149 from chme/mpdcommands
Add support for additional mpd commands
2015-05-21 22:30:49 +02:00
ejurgensen 75ded12d7f Bump version to 23.1 2015-05-21 22:26:33 +02:00
chme 8c12929b91 Added source code comments, return error value if adding/removing a
listener failed
2015-05-21 07:57:18 +02:00
chme 0b73233197 [mpd] remove libevent1 support 2015-05-21 07:15:05 +02:00
ejurgensen 349372c7b9 Merge pull request #155 from chme/smartpl-grouping
[smartpl] add "grouping" field to smart playlist grammar
2015-05-21 07:14:45 +02:00
chme 1cde19b5b6 [smartpl] add "grouping" field to smart playlist grammar 2015-05-21 06:22:55 +02:00
ejurgensen 6176f7f4a2 Fix bug where files being copied into library with eg. Samba will get scanned
before writing has finished, which may result in no metadata for the file
2015-05-20 22:38:26 +02:00
ejurgensen 727a5b23f3 Some Remote troubleshooting info for the README 2015-05-19 22:02:45 +02:00
chme 41a08d1931 [mpd] rework listener events to use a bit map 2015-05-18 20:12:18 +02:00
chme baffe49887 refactor use for loop to remove item from linked list 2015-05-13 11:37:09 +02:00
ejurgensen e4354cb173 README update 2 2015-05-10 14:55:59 +02:00
ejurgensen f833bb93b4 README update 2015-05-10 14:54:22 +02:00
chme 3886ec6638 Add version number for playlist (queue)
This is necessary to return a valid playlist id for mpd status command.
2015-05-09 07:46:33 +02:00
chme aa4a12cabe add events for playlist (queue), volume, speaker, options
(random/shuffle) changes
2015-05-09 07:46:33 +02:00
chme d2c7c87191 use listener logic to send dacp update requests 2015-05-09 07:46:33 +02:00
chme 7097dd15eb allow removing of listeners 2015-05-09 07:46:33 +02:00
chme 1714f3dee4 [mpd] move include of libevent from mpd.h to mpd.c 2015-05-09 07:46:33 +02:00
chme 36499f4997 [player] added some source code comments 2015-05-09 07:46:33 +02:00
chme e156181121 [mpd] remove idle client if an eof or error occurred on the event buffer
(fixes segfault after closing the connection of an mpd client)
2015-05-09 07:46:33 +02:00
chme 600e48842f [mpd] idle command 2015-05-09 07:46:33 +02:00
chme 864315eaef [mpd] fix wrong log message 2015-05-09 07:35:15 +02:00
chme 68c392eb9e [mpd] ignore requests for client to client commands "subscribe",
"unsubscribe", "readmessages", "sendmessages"
2015-05-09 07:35:15 +02:00
chme decc482e2c [mpd] only return "id" attribute if song information is requested for
the current playlist

mpd does not expose a persistent song id, instead the id returned in
playlistinfo is a unique id for the song in the queue. The same song has
different ids if it occurs more than once in the queue.
2015-05-09 07:35:15 +02:00
chme 5d22d74dba [mpd] ignore requests for "sticker" 2015-05-09 07:35:15 +02:00
chme 91338c8548 [mpd] ignore requests for "channels" 2015-05-09 07:35:15 +02:00
chme fefd91fabc [mpd] support "track" parameter in commands "list", "find", "search" 2015-05-09 07:35:15 +02:00
chme ed8b69c118 [mpd] return proper error type if playlist does not exist 2015-05-09 07:35:15 +02:00
chme 1300b2f018 [mpd] support "disc" parameter in commands "list", "find", "search" 2015-05-09 07:35:15 +02:00