205 Commits

Author SHA1 Message Date
Julien BLACHE
718d1e9487 Migrate file metadata encoding to DMAP common code 2011-04-09 10:11:35 +02:00
Julien BLACHE
07df6bb4aa Move dmap_add_field() to DMAP common code 2011-04-09 10:11:35 +02:00
Julien BLACHE
39542aee27 Move DMAP fields list and hash table to DMAP common code 2011-04-09 10:11:34 +02:00
Julien BLACHE
52691d6c4d Rename dmap_helpers.[ch] to dmap_common.[ch] 2011-04-09 10:11:34 +02:00
Julien BLACHE
e23f02c7c0 Replace AVL tree in DAAP by a static hash using gperf 2011-04-02 09:52:19 +02:00
Julien BLACHE
303a3329eb Replace AVL tree in DAAP query by a static hash using gperf 2011-04-02 09:52:19 +02:00
Julien BLACHE
204c9681ca Enable and handle JPEG artwork in DAAP 2011-04-01 22:02:51 +02:00
Julien BLACHE
c7209ab699 Add support for JPEG as a valid artwork output format
Reduce CPU usage by avoiding unneeded JPEG -> PNG conversions; it appears
all the clients we care about support JPEG as well as PNG.
2011-03-30 21:50:29 +02:00
Julien BLACHE
f5b167080b Use title_sort for DAAP sort headers 2011-03-21 18:48:00 +01:00
Kai Elwert
4dce6390ea Switch to using db_query_fetch_string_sort() in daap_reply_browse() 2011-03-21 18:48:00 +01:00
Kai Elwert
bf86cf45bd Always include sort tags in songlist 2011-03-21 18:47:59 +01:00
Julien BLACHE
c70caad87e Disable session expiration
Auto-logout currently doesn't work as expected and breaks streaming etc once
the timeout occurs. Disable it until we can make it work as expected.

Maybe we'll need to upgrade the DAAP version.
2010-11-11 10:44:57 +01:00
Kai Elwert
e5af78fe9f Implement sort=artist for DAAP queries 2010-10-09 16:06:00 +02:00
Kai Elwert
ee7b976eeb Advertise DAAP updates support in server-info
We don't send out DAAP updates, but Remote requires this to work.
2010-10-09 15:54:53 +02:00
Julien BLACHE
f7c2bf756a Remove duplicate mstm tag in server-info reply 2010-09-18 22:50:26 +02:00
Julien BLACHE
535d691a4a Fix full_uri memory leak in error path 2010-09-10 18:47:42 +02:00
Kai Elwert
de8884c8df Add sort-headers support to DAAP song lists 2010-09-04 10:58:25 +02:00
Kai Elwert
ee294753e1 Add sort-headers support to DAAP groups query 2010-08-29 12:07:08 +02:00
Kai Elwert
8a2d76895c Add sort-headers support to DAAP browse query 2010-08-29 12:07:08 +02:00
Kai Elwert
eaaaec91a1 Introduce DAAP sort-headers helpers 2010-08-29 12:07:07 +02:00
Kai Elwert
d4f341aff0 Handle include-sort-headers parameter in DAAP queries 2010-08-29 12:07:07 +02:00
Julien BLACHE
471f750a8c Rework error handling where an oom variable was used
The oom-specific message was actually never used as it was hidden by
ret being < 0 and that condition was tested before oom.
2010-08-29 12:05:02 +02:00
Julien BLACHE
1d35afbe62 Fixup file modes 2010-08-06 17:27:56 +02:00
Kai Elwert
ca72ee5926 Handle sort parameter in DAAP queries
This is used by Remote for the Title view.
2010-08-05 18:28:02 +02:00
Kai Elwert
4347731133 Add mpco to playlists, hardcode to 0 for now 2010-07-31 10:40:39 +02:00
Kai Elwert
931c0aac29 Map mper to playlist id for playlists 2010-07-31 10:39:41 +02:00
Julien BLACHE
25ee24d2be Properly deinit DAAP sessions
Call event_del() before freeing the session when clearing the AVL tree. Caused
an infinite loop in event_base_free() in httpd_deinit().
2010-07-30 21:52:04 +02:00
Julien BLACHE
f6a9e1f7f4 Kill update request connections during deinit
Avoid leaving active requests on the HTTP server before shutting it down.
2010-07-30 21:42:53 +02:00
Julien BLACHE
81d09ed234 Account for new evhttp behaviour on failed incoming connections
The evcon associated with a request is freed by evhttp when the connection
fails. Protect against a NULL evcon when handling the connection failure.
2010-07-23 18:28:29 +02:00
Julien BLACHE
548cd2a150 Use httpd_send_reply() instead of evhttp_send_reply() where pertinent
gzip replies where useful; artwork should not be compressed, as PNGs are
already compressed and that would be a waste of time.
2010-05-03 19:11:55 +02:00
Julien BLACHE
dc95a04562 Add optional sorting clause to Q_ITEMS 2010-05-02 11:44:43 +02:00
Julien BLACHE
bccc6da87f Set closecb to NULL on update requests' connections at deinit
Otherwise the closecb is called when the connection is closed/freed during
deinit, and this happens in the HTTP cleanup after the DAAP and DACP cleanups
have run, leading to spurious "struct update_request not found" messages.
2010-05-02 11:21:07 +02:00
Julien BLACHE
17b1e1a7bf Fix size_t in snprintf() 2010-05-02 10:17:22 +02:00
Julien BLACHE
1df0258055 Demote "could not find requested meta field" message to E_WARN 2010-04-10 09:46:48 +02:00
Julien BLACHE
19b6780a3c Remove provisions for multi-library support
It is now clear that multi-library support will not happen, so remove whatever
provisions were in the code for that.

It comes with a small change to the configuration file, too.

With this, DB schema version went to 9.
2010-03-19 19:09:18 +01:00
Julien BLACHE
ece7c0d071 Handle DAAP extra_data requests for groups/items artwork 2010-03-07 15:45:52 +01:00
Julien BLACHE
641e5462cc Rename pl_id member of struct query_params 2010-03-07 15:23:40 +01:00
Julien BLACHE
224ef48137 Make album groups persistent
Store groups (only album groups supported at the moment) in the DB,
so their ids are persistent for the duration of the forked-daapd session.

Those ids are used to, among other things, retrieve artwork, so we must
provide ourselves some persistence here.

This brings us to schema version 8.
2010-03-06 19:02:49 +01:00
Julien BLACHE
748cca63be Maintain songalbumid inside the files table
songalbumid is used a lot in queries from Remote; computing the hash for
each row is a major waste of time on big libraries and slow machines, so
let's store the hash in the table.

This brings us to schema version 7.
2010-03-06 17:29:37 +01:00
Julien BLACHE
20c57d5289 Implement DAAP auto-logout
And advertise it.
2010-03-06 10:30:59 +01:00
Julien BLACHE
8c2def5ef5 Move daap_session_kill() higher up
No functional changes.
2010-03-06 10:29:53 +01:00
Julien BLACHE
18abda3a97 Use evhttp_connection's closecb instead of our fail_cb extension
The closecb callback of evhttp_connection does what we need, so no need
to use that extension anymore.
2010-02-14 09:34:29 +01:00
Ace Jones
a92dc076e8 Add a test facility for DMAP
Add a /dmap-test handler that sends back a list containing test values
for all standard DMAP types (string + all integer types).
2010-02-10 18:29:26 +01:00
Julien BLACHE
056f4b6997 Reindent dmap_add_field()
Fix indentation in dmap_add_field(), no functional changes.
2010-02-10 18:29:26 +01:00
Julien BLACHE
3280fd5cf9 Get rid of magic hash values for filtering query parameters
Some metadata were filtered out from the reply by directly checking
for their hash, including the hash value in the code. Remove the magic
values and compare dfm->field against the relevant dmap_* field as for
other special cases.
2010-02-10 18:29:26 +01:00
Julien BLACHE
2524eb0f8f Rework special cases in daap_reply_songlist_generic()
Use a pointer comparison instead of strcmp(), now that the fields
have been separated out from the field map.
2010-02-10 18:29:26 +01:00
Julien BLACHE
3df34fe9a8 Remove mper special case in daap_reply_groups()
mper was so far the only LONG we really cared about, but dmap_add_field()
now has proper support all DMAP types. This special case can go.
2010-02-10 18:29:26 +01:00
Ace Jones
cfabc9a456 Update DMAP fields
Update field types, add new fields (commented out). This fixes a number
of mis-assigned types. Update generated from the result of a /content-codes
request.
2010-02-10 18:29:26 +01:00
Ace Jones
b4b89dd937 Break out the dmap_field_map struct into two structs
Introduce struct dmap_field holding the field tag, description and
DMAP type and use it in struct dmap_field_map to replace the tag,
desc and type fields.

This enables semi-automated updates of the DMAP fields information
from the output of a /content-codes request.
2010-02-10 18:29:20 +01:00
Julien BLACHE
d8bd8e5381 Rewrite dmap_add_field() to handle properly all DMAP types 2010-02-10 18:21:32 +01:00