Commit Graph

2426 Commits

Author SHA1 Message Date
Julien BLACHE 2dde2f180d Revert "Add a fail_cb to evhttp_request for connection failures"
The fail_cb extension was actually never needed; we've migrated away from
it, so let's clean that up now.

This reverts commit 1ffcbdae27.
2010-02-14 09:36:55 +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
Ace Jones 20d08d8a49 Add safe_atou32() and safe_atou64() 2010-02-10 18:21:32 +01:00
Ace Jones 0607e82a42 Add missing DMAP types and correct existing types
Most of the unsigned DMAP types were missing and assignments were incorrect
between signed and unsigned types. Fix all of this, and add (preliminary)
support for the new types.
2010-02-10 18:21:32 +01:00
Julien BLACHE d4fb2091c8 Use an enum for DMAP types 2010-02-10 18:21:32 +01:00
Julien BLACHE 42dd7ddd00 Kill code redundant with dmap_add_field()
This code in daap_reply_songlist_generic() is redundant with code
in (new) dmap_add_field() and can be removed, with a tweak: we must
ensure the val integer is always 0 if not used to override a value in
the transcoding case.
2010-02-10 18:21:32 +01:00
Julien BLACHE a5a46b8a53 Fix lseek() return value handling
lseek() returns an off_t and not an int, using an int to store and
test the return value means we'll error out when the position in the file
gets past INT_MAX.
2010-02-10 18:19:32 +01:00
Julien BLACHE 2b4f07195a Kill leftover includes 2010-02-06 07:25:44 +01:00
Julien BLACHE 71a40c5149 Simplify the iTunes pairing hash using standard MD5
The pairing hash actually uses standard MD5, so let's simplify the
code by using a standard MD5 implementation. Now that function is
readable and understandable by mere mortals.

Thanks to Jeff Sharkey for posting that simplified version.
2010-02-05 18:39:03 +01:00
Julien BLACHE 2f385bff2c Add libgcrypt, check for it and perform global initialization 2010-02-05 18:38:39 +01:00
Julien BLACHE cb4320791b Use eventfd instead of pipes if available
eventfd has less overhead than a pipe, works as a counter and uses a
single fd. Use it on Linux if available (that should be pretty much
always given the glibc and kernel requirements).
2010-02-04 18:52:13 +01:00
Julien BLACHE 274dccf66c Reduce STREAM_CHUNK_SIZE to a more manageable 64k
512k might be a bit too much, as it can take time to read 512k from the
filesystem (and we're using a blocking read) or from the decoder. Going
down to 64k will make this more manageable and improve the response time
when streaming to multiple clients at the same time.
2010-02-02 21:09:56 +01:00
Julien BLACHE 848dd41993 serve_file() is broken due to evbuffer_read()
If we ever need to serve files for a web interface or otherwise, serve_file()
will need to be fixed to not use evbuffer_read().
2010-02-02 21:09:56 +01:00
Julien BLACHE 6e5f49bdf9 Use transcode variable to check for transcoding status 2010-02-02 21:09:56 +01:00
Julien BLACHE 825569dc88 Rework failure path in httpd_stream_file()
Kill code duplication, make it all clearer.
2010-02-02 21:09:56 +01:00
Julien BLACHE f0239951e1 Replace evbuffer_read(); should not be applied to files
evbuffer_read() is really meant to read from sockets and not regular
files. It also looks like evbuffer_read() was causing issues with large
files, locking up a little below 2 GB for an unknown reason (couldn't
reproduce).
2010-02-02 21:09:56 +01:00
Julien BLACHE 1a3620d0a4 Handle DMAP long type properly in dmap_add_field() 2010-02-02 21:09:56 +01:00
Julien BLACHE 58faeaceca Integer types cleanup
Try to be a bit more strict about integer types, use off_t or int64_t for
file size and file offsets.

Replace safe_ato*() by safe_atoi32() and safe_atoi64(), fix integer types
at call sites to match.
2010-02-02 21:09:56 +01:00
Julien BLACHE 5d41d2d99c Move file_size to an int64_t, matching other types (off_t) 2010-02-02 21:09:55 +01:00
Julien BLACHE 516909545b Include config.h in all C files 2010-02-02 21:09:55 +01:00
Julien BLACHE 1df7ec1b7c Use posix_fadvise() to hint the OS when streaming raw file
Hinting the OS about our behaviour shouldn't make a big difference in
performance but it will help the OS manage its disk cache and can reduce
memory pressure on small systems.
2010-02-02 21:09:55 +01:00
Julien BLACHE 8ac5f48fe6 Wire up DACP support 2010-01-30 17:30:22 +01:00
Julien BLACHE a52ff42697 Introduce stub DACP protocol implementation 2010-01-30 17:30:22 +01:00
Julien BLACHE 168144c1e0 Make daap_session_find() non-static so DACP can use it 2010-01-30 17:30:22 +01:00
Julien BLACHE 9f1c849241 Add logdomain for DACP 2010-01-30 17:30:22 +01:00
Julien BLACHE 44bf308701 Waive HTTP authentication on the library for Remote
DAAP queries from Remote won't need HTTP authentication as they all
require a valid session-id; Remote can only obtain a valid session-id
if its pairing-guid is known to us (it did pair successfully with us).
2010-01-30 17:30:22 +01:00
Julien BLACHE e016ced119 Authenticate Remote clients by their pairing-guid
Remote clients have a waiver for HTTP authentication; they are authenticated
by their pairing-guid given during the pairing process.
2010-01-30 17:30:22 +01:00
Julien BLACHE 115d28e24a Parse pairing response and save pairing GUID
The pairing GUID will be used later on to authenticate the Remote
instance when it logs in.
2010-01-30 17:30:22 +01:00
Julien BLACHE b35c4749a2 Maintain a db connection in main.c for Remote pairing agent 2010-01-30 17:30:22 +01:00
Julien BLACHE dfa3db7732 Use struct pairing_info in struct remote_info 2010-01-30 17:30:22 +01:00
Julien BLACHE d384bc13a3 Handle database upgrade v5 -> v6 2010-01-30 17:30:22 +01:00
Julien BLACHE 762d80e0bb Add Remote pairing info storage facility
This brings schema_version to 6.
2010-01-30 17:30:22 +01:00
Julien BLACHE 07a71b4e94 Reorganize httpd_daap
Some code moved around for clarity, no functional changes.
2010-01-30 17:30:22 +01:00
Julien BLACHE 7ec27a30eb Use DMAP routines from dmap_helpers.c 2010-01-30 17:30:22 +01:00
Julien BLACHE eca166feaa Move DMAP routines to a dedicated module 2010-01-30 17:30:22 +01:00
Julien BLACHE 29fb23893d DAAP update request requires a session-id 2010-01-30 17:30:21 +01:00
Julien BLACHE b9a2e10272 Modify DAAP update request debug messages 2010-01-30 17:30:21 +01:00
Julien BLACHE 2924a98f1a Fix pairing_cb() - readd event after pairing 2010-01-30 17:30:21 +01:00
Julien BLACHE 2c6ceac486 Rework code flow in httpd_gen_cb() 2010-01-30 17:30:21 +01:00
Julien BLACHE 78275ae432 Remove useless include 2010-01-30 17:30:21 +01:00
Julien BLACHE 42f39938d5 Start implementing DAAP updates
Stall update requests if revision-number == current revision. This is a
first step that is necessary to get clients to work properly (eg Remote).
2010-01-28 19:20:00 +01:00
Julien BLACHE 7ddd135e2b Extend close detection to incoming connections
Stock evhttp has no means to detect when an incoming connection gets
closed by the client; it will notice the connection has gone down only
when sending back a reply.

For DAAP update requests working as a push mechanism with an HTTP request
stalled by the server until there actually is an update available, we need
to be notified when a connection goes down so we can perform proper cleanup
and not retain memory.

Do so by extending the close detection mechanism used for outgoing connections
and the connection failure callback we already have in place for streaming.
2010-01-28 19:19:31 +01:00
Julien BLACHE f425eddb62 Clean up remote list at deinit 2010-01-28 19:19:16 +01:00
Julien BLACHE 4321cffc87 Make queries on daap.songalbumid:0 a no-op
Remote makes queries with daap.songalbumid:0, which doesn't make sense. Make
that a no-op.
2010-01-27 18:31:13 +01:00
Julien BLACHE 21098d4c89 Fix query and path for playlist #1
The query was erroneously put into the path column; also change the query
for 1 = 1 instead of disabled = 0 which is redundant.
2010-01-27 18:29:59 +01:00
Julien BLACHE b5b9f92d97 Fix HTTP error return in daap_session_find() 2010-01-27 12:18:22 +01:00
Julien BLACHE eae5370c08 Log HTTP (non-DAAP, non-RSP) requests 2010-01-26 18:15:08 +01:00
Julien BLACHE 4701817333 Replace strlcpy() with evutil_snprintf() in evhttp
Get rid of strlcpy() and its implementation entirely, it doesn't buy anything
over snprintf(). Use evutil_snprintf() so as to match the rest of the code.
2010-01-26 17:54:45 +01:00
Julien BLACHE 98cb978b9b Set capability atoms to true in server-info reply
Capability atoms like mslr, msbr and friends should be set to true; it
seems their presence in the reply is actually enough, though.
2010-01-25 18:33:25 +01:00
Julien BLACHE 7e3b6957b2 Move the pairing agent to the main thread
The pairing agent doesn't need a thread of its own, the main thread can host
it. Move it there and save a thread.
2010-01-25 17:55:11 +01:00
Julien BLACHE 854abd8026 Specify field width for pairing hash
No field width was specified when the 128bit hash is converted to a string;
make sure we get 8 hex digits per 32bit hash component.
2010-01-25 17:51:17 +01:00
Julien BLACHE e6234c35ad Fix field width for 64bit library name hash
Was 8 hex digits, should have been 16 hex digits.
2010-01-25 17:47:37 +01:00
Julien BLACHE 672e4697ae Handle database schema upgrade from v4 to v5
Force a library rescan to fixup media_kind for regular videos.
2010-01-24 11:16:31 +01:00
Ace Jones 12e0c9268d Unspecified videos are "movies", media_kind=2
media_kind=2 (Movies) indicates a regular video, that is, a video that
isn't a TV Show (media_kind=64).

Also fix up the system playlist for Movies, and that brings us to DB
schema_version 5.
2010-01-24 11:11:08 +01:00
Julien BLACHE f85fa927c8 Dereference library directories before processing
The filescanner dereferences symlinks as it encounters them, but it did
not dereference the top-level library directories given in the config.

Also the playlist scanner always dereferences the filenames.

As a result, there was a mismatch between the paths in the files table and
the paths in the playlistitems table if the library directory given in the
config contain a symlink somewhere along the way.
2010-01-24 10:54:52 +01:00
Julien BLACHE 022bebe1d9 Send back mslr in server-info reply, indicating login is required
At least FrontRow honours this atom of the server-info reply.
2010-01-24 10:53:49 +01:00
Julien BLACHE 4aa207533e Ignore empty lines in M3U playlists 2010-01-23 18:41:54 +01:00
Julien BLACHE d3fe586d5b Remove a special case for playlist #1
Not needed anymore, now that playlist #1 has been turned into a smart
playlist.
2010-01-22 19:02:29 +01:00
Ace Jones 1af1cf51c7 Return special playlists in playlist list response 2010-01-21 17:56:44 +01:00
Julien BLACHE 67b3a8c2da Handle database schema upgrade from v3 to v4 2010-01-21 17:54:50 +01:00
Ace Jones 3fef4334bb Add support for smart playlists and some default ones
Add system playlists for Music, Movies, TV Shows, equivalent to iTunes.
2010-01-21 17:52:51 +01:00
Julien BLACHE fefdb23409 Simplify DB init routine 2010-01-21 17:51:44 +01:00
Julien BLACHE 944bf3f132 Check database version first, if that fails, try DB init
Doing it the other way around is a guaranteed way to run into issues when
a schema upgrade is needed.
2010-01-21 17:51:00 +01:00
Julien BLACHE 87abc3f432 Avoid useless double attempt at converting string to integer
Fixup dmap_add_field() and one of its callers to avoid making two useless
attempts at converting a string to an integer in some cases.
2010-01-20 18:34:36 +01:00
Julien BLACHE ba251b16ae Start keeping track of DAAP sessions
This will soon be required as we'll need to keep some knowledge about
the session in some cases. This also makes us a bit more compliant.
2010-01-20 18:24:52 +01:00
Julien BLACHE f126b04521 Tell libavl to free() ITML <-> DB mappings
The mappings should be free()d with the standard free() when we are
done with the tree. This fixes a memory leak.
2010-01-20 18:19:51 +01:00
Julien BLACHE 2cb67743fc Add service type to the "ALL FOR NOW" message 2010-01-20 18:17:04 +01:00
Julien BLACHE d47c205452 Feed .remote files to the Remote pairing agent 2010-01-17 10:52:58 +01:00
Julien BLACHE 3c7456f545 Add Remote pairing services start/stop 2010-01-17 10:52:58 +01:00
Julien BLACHE c191aff5cd Add remote_pairing.[ch] to sources 2010-01-17 10:52:58 +01:00
Julien BLACHE 625b8e3177 Add a pairing agent for Remote
Remote is the iPod/iPhone application that can act as a remote control for
iTunes. Remote must be paired with an iTunes instance before it can control
it; this pairing process includes a challenge/response autentication.

This pairing agent makes it possible to pair Remote with a forked-daapd
instance. It is the very first step for Remote support.
2010-01-17 10:52:58 +01:00
Julien BLACHE 04f4622086 Add generic mDNS browsing + resolving facility 2010-01-17 10:52:58 +01:00
Julien BLACHE 2b2ec87e7e Add the "remote" logdomain for Remote pairing 2010-01-17 10:52:58 +01:00
Julien BLACHE 73fa690fd4 Advertise the _touch-able._tcp service
_touch-able._tcp is the service used by Remote.app to discover and identify
libraries it interacts with.
2010-01-17 10:52:58 +01:00
Julien BLACHE d228e0dcb8 Rename servername variable to a more appropriate libname 2010-01-17 10:52:58 +01:00
Julien BLACHE b918d14e38 Fix group_entries list traversal 2010-01-17 10:52:58 +01:00
Julien BLACHE dd1712abdc Use glibc endianness-related headers if available
BSD headers aren't working properly on kFreeBSD, so use the glibc ones.
2010-01-17 10:52:58 +01:00
Julien BLACHE bf2c2b68c0 Revert "Remove default playlist & special case"
This reverts commit af95cee79b.

The default playlist is actually used by iTunes, so revert its removal. I
misremembered it being there for RSP.
2010-01-14 17:39:56 +01:00
Julien BLACHE af95cee79b Remove default playlist & special case
The default playlist (called "Library") doesn't actually have a purpose; I
though it was needed for RSP (SoundBridge) but it doesn't look like it makes
any difference with or without this playlist.
2010-01-13 19:56:15 +01:00
Ace Jones 1b34c9d555 Always set media_kind, for real
The problem is, you can't set INITIAL values for the file scanner, because
the filescanner doesn't fill in values on top of already existing values.
2010-01-13 19:45:04 +01:00
Julien BLACHE ed3dbc1f35 Fill in the watch_info struct only when it's needed 2010-01-12 18:50:04 +01:00
Julien BLACHE 364b22c030 Implement directory rescanning on top of kqueue/kevent for FreeBSD 2010-01-12 18:45:44 +01:00
Julien BLACHE 69bae139bb Make push_dir()/pop_dir() accept a stack as first argument 2010-01-12 18:45:31 +01:00
Julien BLACHE 79cdb4f9aa Make forked-daapd build on GNU/kFreeBSD 2010-01-10 17:49:01 +01:00
Ace Jones d96cdd7400 Add DAAP request handler for databases/###/groups (albums)
As of now we only support album groups, but there may be more than
album groups.
2010-01-10 14:43:23 +01:00
Ace Jones 5cfbe75bae Add database code for groups queries 2010-01-10 14:43:22 +01:00
Ace Jones e033d35195 Rework error handling in daap_reply_playlists()
Kill a bit of code duplication in the error handling.
2010-01-10 14:43:22 +01:00
Ace Jones ac82b176a0 Rework error handling in daap_reply_songlist_generic()
Kill a bit of code duplication in the error handling.
2010-01-10 14:43:22 +01:00
Ace Jones cac2c032f6 Add the daap.songalbumartist DMAP field 2010-01-10 12:11:00 +01:00
Ace Jones e948f69d0d Add safe_atoull() 2010-01-10 12:09:29 +01:00
Julien BLACHE 5b5e142c22 Replace inotify with kqueue on FreeBSD - stub
Start replacing inotify in the filescanner with kqueue. Only a stub at
this point, kqueue/kevent doesn't deliver nearly as much information
as inotify does. This will require some work, and someone willing to
do that work.
2010-01-09 13:48:52 +01:00
Julien BLACHE 9695c11186 Add an opaque pointer to watch_info
Used on FreeBSD to hold a pointer to the kevent struct.
2010-01-09 13:45:33 +01:00
Julien BLACHE 5681793534 Replace signalfd with kqueue for FreeBSD 2010-01-09 13:44:56 +01:00
Julien BLACHE 8d7c566d95 Use m_realpath(path) instead of realpath(path, NULL) 2010-01-09 13:44:10 +01:00
Julien BLACHE b9d8a5880a Introduce m_realpath() to replace realpath(path, NULL) 2010-01-09 13:43:29 +01:00
Julien BLACHE 3724f943b9 Use sys/endian.h on FreeBSD 2010-01-09 13:42:59 +01:00
Julien BLACHE 99df67b53c Include sys/param.h for PATH_MAX 2010-01-09 13:42:23 +01:00
Julien BLACHE 6c38cd2ef5 Add missing sys/types.h & sys/stat.h for stat & friends 2010-01-09 13:41:51 +01:00
Julien BLACHE 6033e29348 Use standard pipe() syscall on non-Linux platforms 2010-01-09 13:41:14 +01:00
Julien BLACHE 2f99797d9a Use sizeof(void *) instead of __WORDSIZE 2010-01-09 13:39:45 +01:00
Julien BLACHE 613717f6b8 Fix a format string mismatch (long vs uint64_t) 2010-01-09 13:38:41 +01:00
Julien BLACHE cdf0e2f9a5 Fix incorrect log domain 2010-01-09 11:14:23 +01:00
Julien BLACHE cefa51b5c6 Fix signal handler - readd event to event loop 2010-01-09 11:03:16 +01:00
Julien BLACHE 11f6b1e78f Kill duplicate fclose() 2010-01-09 11:00:41 +01:00
Julien BLACHE 5887cc2e27 Kill dead variables in signal_cb() 2010-01-08 12:29:13 +01:00
Ace Jones fc971974f0 Fill in media_kind=1 for music
Also move item_kind initialization further up.
2010-01-06 18:41:27 +01:00
Julien BLACHE 974a74a833 Update copyright notices for 2010 2010-01-05 19:34:00 +01:00
Julien BLACHE 60a06dfb0a Change album and album_artist column definitions to be NOT NULL
Unfortunately SQLite doesn't support adding constraints with ALTER TABLE,
so this constraint cannot be added upon upgrade.
2010-01-05 19:23:52 +01:00
Julien BLACHE 26d603aa61 Introduce generic database upgrade function 2010-01-05 19:18:30 +01:00
Julien BLACHE db0bff61c7 Remove -y option, as it doesn't actually exist 2010-01-05 18:32:00 +01:00
Julien BLACHE d273c72a4b Add database upgrade to populate album_artist for every file
Bump schema_version to 3, even though this isn't exactly a schema upgrade.
2010-01-05 18:25:23 +01:00
Ace Jones 67e3739bc2 Allow DMAP queries on daap.songalbumid 2010-01-05 18:25:23 +01:00
Ace Jones f2965f8ac6 Make daap_songalbumid available as a function inside SQLite 2010-01-05 18:25:18 +01:00
Ace Jones d3350713d1 Return daap.songalbumid as a hash of the album_artist + album
iPhone remote will later want to query by album. Instead of doing a
fulltext query, it uses a 64-bit hash of the album + album_artist. It
is not necessary to use the same hash algorithm that iTunes uses. The
important thing is that we can later respond to a query=('daap.songalbumid:xxx')
with this value.
2010-01-04 18:00:05 +01:00
Ace Jones 19a244095a Add daap_songalbumid() to generate the songalbumid hash
Make it an inline function as it's a short function and has only got
2 call sites.
2010-01-04 17:59:21 +01:00
Julien BLACHE 8ef57bbb41 Add the MurmurHash2, 64bit version
Hash algorithm by Austin Appleby, <http://murmurhash.googlepages.com>
2010-01-04 17:58:28 +01:00
Ace Jones e16d8a9747 Use the 'artist' field for 'album_artist' if there is no album artist set 2010-01-04 17:56:20 +01:00
Ace Jones 117ee15e44 Add handler for DMAP extra_data requests
iPhone Remote uses the following requests to get cover art for
songs and albums:

/databases/#/items/#/extra_data/artwork
/databases/#/groups/#/extra_data/artwork

For now, we will return the valid and correct response that we
have "No content".  In the future, the real artwork could be
extracted and returned here.
2010-01-03 18:55:32 +01:00
Julien BLACHE d20fdbda95 Cast pANTLR3_STRING to char * to avoid printf-format warnings 2009-12-31 22:21:56 +01:00
Julien BLACHE 046e3d6d90 Fixup DPRINTF() format strings 2009-12-31 22:21:19 +01:00
Julien BLACHE 5e338b033a Add missing trk_id argument to DPRINTF() calls 2009-12-31 22:20:48 +01:00
Julien BLACHE 61c6627713 Mark DPRINTF() as a printf-like function 2009-12-31 20:39:51 +01:00
Julien BLACHE 207e85c6c0 Regain root privileges to unlink PID file at exit 2009-12-31 20:19:13 +01:00
Julien BLACHE 1ac46983b9 Use setegid/seteuid to be able to regain root privileges 2009-12-31 20:19:13 +01:00
Julien BLACHE 662ba32d35 Fix ret/iret variables usage 2009-12-31 20:12:36 +01:00
Julien BLACHE 8feeecd895 Send a Content-Length header when plainly streaming a whole file
That is, don't send a Content-Length if we're decoding a whole file,
as we do not know the exact size in this case.

Based on a patch by Ace Jones.
2009-12-31 16:50:19 +01:00
Julien BLACHE a91b1ef46e Reindent dmap_query_fields, no code changes. 2009-12-31 16:50:19 +01:00
Ace Jones ddc4c667ea Enable DMAP queries on com.apple.itunes.mediakind
Used by Remote on the iPhone.
2009-12-31 16:41:10 +01:00
Ace Jones 995c212dc7 Support query filter in playlist list query
iTunes uses query filters in DAAP containers requests, so support that here.
2009-12-30 18:53:55 +01:00
Ace Jones 040e760789 Add support for Remote, the iPhone remote control for iTunes
Remote needs the same DAAP query quirk as iTunes and supports the
same codecs.
2009-12-30 18:49:52 +01:00
Ace Jones abbba5cf47 Fix typo in DAAP error message 2009-12-30 18:47:41 +01:00
Ace Jones 76fc069f22 Fix missing argument to debug call 2009-12-30 18:46:41 +01:00
Julien BLACHE ff03c2679d DMAP comparison against empty string needs to check against NULL too
'dmap.foo!:' -> (dmap.foo <> '' AND dmap.foo IS NOT NULL)
'dmap.foo:'  -> (dmap.foo = '' OR dmap.foo IS NULL)
2009-12-29 22:04:49 +01:00
Julien BLACHE 8025db2dc2 Allow negation operator for string comparisons in DMAP queries 2009-12-29 19:10:51 +01:00
Julien BLACHE f56884015f Allow empty values in DMAP queries for string fields 2009-12-29 19:10:22 +01:00
Julien BLACHE 371725b0da Fix segfault in db_file_update
Fix wrong type (%Q instead of %d) for tv_episode_sort and tv_season_num in
the SQL query for db_file_update().
2009-12-27 08:19:16 +01:00
Julien BLACHE a52dcd264c Force a full rescan after DB migration 2009-12-27 08:17:25 +01:00
Julien BLACHE 7cb0eec5d5 Don't increase play count if not streaming at least half of the file
When streaming AAC/MP4 files that aren't stream-optimized (metadata at the
end of the file), clients will seek through the file to grab the metadata
prior to playing the file, causing the play count to increase by 2 or 3.

To counter that, do not increase play count if not streaming at least half
of the file.
2009-12-26 09:57:37 +01:00
Julien BLACHE 403153f64b Reindent the dmap_fields table, no code changes 2009-12-26 09:28:28 +01:00
Ace Jones 000e13b7ee Return TV metadata in DMAP response 2009-12-26 09:23:13 +01:00
Julien BLACHE 66716841ea Handle database schema upgrade from v1 to v2 2009-12-26 09:20:51 +01:00
Julien BLACHE 42a7715c69 Reindent data tables, no code changes 2009-12-26 08:44:55 +01:00
Ace Jones a0ec19ada6 Add TV metadata to the database
With this, we're bumping SCHEMA_VERSION to 2.
2009-12-26 08:39:39 +01:00
Ace Jones 2ae6fcd864 Pick up TV-related metadata in MP4 video files
TV-related metadata as found in TV shows bought on the iTunes store, for
instance.

At the time of writing, ffmpeg doesn't support this yet. Until it does,
contact Ace Jones <ace.jones1@yahoo.com> for patches and instructions.
2009-12-26 08:31:12 +01:00
Ace Jones a0b015f1e4 Accomodate TV meta-data in internal structures
Add new fields for TV-related metadata to struct media_file_info and
struct db_media_file_info.
2009-12-26 08:28:28 +01:00
Ace Jones 30e07abae3 Check chdir() return value to silence a warning 2009-12-24 21:28:41 +01:00
Ace Jones d231faff2d Handle DAAP activity request
Reply to the DAAP /activity request with 204 / No content. Used by iTunes to
ping the server while streaming.
2009-12-20 14:43:28 +01:00
Julien BLACHE 72b1237500 Send a Content-Length header when streaming
Patch by Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 21:46:47 +01:00
Julien BLACHE ff89ce0183 Add support for end offset in Range header
Honor end offset provided in the Range header and do not stream more than
what the client asked for.

Based on a patch by Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 21:42:48 +01:00
Julien BLACHE b9e7df5be3 Return a proper Content-Type when streaming videos
Clients like Front Row expect video/<type> for video streaming, whereas iTunes
likes application/x-dmap-tagged when streaming audio.

Based on a patch by Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 21:04:30 +01:00
Julien BLACHE df2cbea9b2 Add supported codec list for Front Row and QuickTime
Patch from Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 20:45:57 +01:00
Julien BLACHE 38c502cb7e Properly close the raw file that was streamed when cleaning up after streaming
Report & fix by Ace Jones <ace.jones1@yahoo.com>
2009-12-08 19:54:48 +01:00
Julien BLACHE ab760903b1 Use stream_end() to do the cleanup in stream_fail_cb()
Introduce a new 'failed' parameter to stream_end() as some actions shouldn't
be done when cleaning up after a connection failure.
2009-12-08 19:52:51 +01:00
Julien BLACHE 6114c31c61 Hook up iTunes library scanner 2009-11-28 10:55:43 +01:00
Julien BLACHE 3154416415 Integrate iTunes library scanner as an optional component 2009-11-28 10:55:43 +01:00
Julien BLACHE d923e8d73b Add iTunes Music Library XML scanner 2009-11-28 10:55:43 +01:00
Julien BLACHE 3ff067da4e Add itunes_overrides parameter 2009-11-28 10:55:43 +01:00
Julien BLACHE a6cbb2a8ec Introduce db_file_id_byfilebase and db_file_id_byfile
File id lookup by basepath + filename and filename only.
2009-11-28 10:55:43 +01:00
Julien BLACHE 66cd10dc52 Introduce db_file_id_byurl and share code with db_file_id_bypath 2009-11-28 10:55:42 +01:00
Julien BLACHE ecb2991881 Add db_pl_fetch_bytitlepath 2009-11-28 10:55:42 +01:00
Julien BLACHE 04ce09e5be Rename db_pl_add_item -> db_pl_add_item_bypath
For consistency with db_pl_add_item_byid & similar database functions.
2009-11-28 10:55:42 +01:00
Julien BLACHE a45f46f3eb Introduce db_pl_add_item_byid() 2009-11-28 10:55:42 +01:00
Julien BLACHE 1a397ca79b Check that db_pl_fetch_byquery only gets 1 query result 2009-11-28 10:55:42 +01:00
Julien BLACHE 6a1c01fa15 Allow playlists from different files to have the same title 2009-11-28 10:55:42 +01:00
Julien BLACHE 8f07db5c10 Add support for FLAC files with ID3v2 tags.
Patch from Wolfgang Holler <woelfs@googlemail.com>.
2009-11-18 20:14:03 +01:00
Julien BLACHE 946758cec7 Rework iTunes 9 absolute request uri fix 2009-11-14 11:23:03 +01:00
Julien BLACHE f8f183f2f6 Fixup iTunes 9 Request-URI before processing
iTunes 9 sends requests with a Request-URI like
  daap://10.1.1.20:3689/server-info

The DAAP server expected the Request-URI to be just /server-info, and so
couldn't match the request to any handler.

In addition, evhttp would declare this request a proxy request which also
broke keep-alive handling resulting in the server closing the connection
after the reply. iTunes doesn't like that.
2009-11-13 21:53:47 +01:00
Julien BLACHE 6cc9abadbd Skip files that have no audio streams 2009-11-01 12:52:30 +01:00
Julien BLACHE 9b56d51f92 Avoid divide-by-zero for files with duration < AV_TIME_BASE 2009-11-01 12:51:50 +01:00
Julien BLACHE c36b3c360d Fix DAAP request regexps - IDs can (thankfully) be more than 1-digit long 2009-11-01 12:39:11 +01:00
Julien BLACHE 9229f3dff9 Flush log as we go. 2009-10-04 12:08:46 +02:00
Julien BLACHE aa52f1d30b Add license and copyright statement to -v/--version and usage message 2009-09-21 19:52:05 +02:00
Julien BLACHE 11909725e2 Use ffmpeg's memory allocator for transcode buffer
ffmpeg's allocator ensures the allocated memory is properly aligned for
any kind of optimized operation used in ffmpeg.
2009-07-24 08:19:31 +02:00
Julien BLACHE 2323fd302c Fix memory leak (transcode buffer) 2009-07-24 08:18:53 +02:00
Julien BLACHE 1bd3b3a076 Fix paths and rename the project 2009-06-12 13:00:34 +02:00
Julien BLACHE e1c0b6d4b7 Move *_offsetof() macro definitions to db.h 2009-06-11 23:17:17 +02:00
Julien BLACHE 1f92052409 Rename the songs table 2009-06-11 23:03:53 +02:00
Julien BLACHE 3cadbdb1e3 Remove unused db_file_fetch_bypath() 2009-06-11 20:46:11 +02:00
Julien BLACHE 0ad20e5220 Rework process_media_file() and related DB support routines
Avoid pulling all the file info from the DB in process_media_file() as
anything besides the file id and timestamp is not used at all.
2009-06-11 20:44:22 +02:00
Julien BLACHE 0a8c171187 Store playlist items paths instead of resolving to file ids
This allows for more dynamic playlists now that files can move
around while we're running.
2009-06-11 20:27:31 +02:00
Julien BLACHE 3b7ff30c1b Remove useless force_update field in media file info 2009-06-11 19:15:22 +02:00
Julien BLACHE c918c5c689 Always rescan directories to update playlists 2009-06-11 19:11:03 +02:00
Julien BLACHE 538d81b402 Always rescan and update playlists
This is needed to keep relative playlist items up to date in the
database when the playlist file moves around.
2009-06-11 19:04:21 +02:00
Julien BLACHE c589d92b14 Use db_get_count() wherever applicable; simplify db_{pl,files}_get_count() prototypes 2009-06-11 18:41:50 +02:00
Julien BLACHE 2d1c35b855 Count playlist items on the fly 2009-06-11 18:28:01 +02:00
Julien BLACHE 30204cbb76 Remove unused toplevel watch attribute 2009-06-11 17:36:13 +02:00
Julien BLACHE c81b33bd02 Bring db_watch_delete_bywd() prototype back in line with other db_watch_delete_by*() 2009-06-11 17:35:32 +02:00
Julien BLACHE 582f0e6746 Handle inotify events for directories 2009-06-11 17:35:25 +02:00
Julien BLACHE 07e22d8870 Add watch query/enumeration 2009-06-11 16:44:49 +02:00
Julien BLACHE 129ca8dfff Add watch deletion by path/match/cookie routines 2009-06-11 16:15:35 +02:00
Julien BLACHE 267ab7cb1a Rename db_query_get_count() to db_get_count()
Make that a generic helper, given it's used outside queries.
2009-06-11 15:45:49 +02:00
Julien BLACHE cef1636415 Add watch-moving routines 2009-06-11 15:42:51 +02:00
Julien BLACHE 87aa24454d Add watch-marking routines 2009-06-11 15:24:10 +02:00
Julien BLACHE 56127b3ecc Add file and playlist disable-by-match routines 2009-06-11 15:09:10 +02:00
Julien BLACHE 34b0c22e46 Handle symlink-to-directory creation 2009-06-11 13:51:19 +02:00
Julien BLACHE 279fb95979 Watch for IN_CLOSE_WRITE in addition to IN_MODIFY and IN_CREATE
When receiving IN_CREATE or IN_MODIFY, there's no guarantee the file is
in its final state. Similarly, IN_MOVED_TO doesn't guarantee the file is
available when we receive it. And it actually isn't.

Watching for IN_CLOSE_WRITE fixes all that.
2009-06-11 13:45:02 +02:00
Julien BLACHE 467b177c17 Handle IN_DELETE, IN_MOVED_FROM and IN_MOVED_TO for files 2009-06-10 22:28:59 +02:00
Julien BLACHE d63da9f08f Add file and playlist enable/disable routines 2009-06-10 22:28:54 +02:00
Julien BLACHE 9ff8913dd6 Add file and playlist deletion (by path) routines 2009-06-10 22:28:49 +02:00
Julien BLACHE ac96ac6baf Move to the SQL database for storage of inotify watch info 2009-06-10 22:28:49 +02:00
Julien BLACHE a9697eccdf Add storage of inotify watch info 2009-06-10 22:28:43 +02:00
Julien BLACHE bfa2488343 Add support for disabled files and playlists 2009-06-10 19:11:12 +02:00
Julien BLACHE 177fb35d81 Add missing argument to DPRINTF() call 2009-06-10 19:11:12 +02:00
Julien BLACHE 94421b0b1b Handle IN_IGNORED events in inotify callback 2009-06-10 19:10:44 +02:00
Julien BLACHE cbab1f80e0 ie->len is 0 for events reported on the watch subject
ie->len is non-0 only when the event is being reported for a file or
directory inside a watched directory.
2009-06-10 19:10:37 +02:00
Julien BLACHE c8cc6bd603 Run event loop for each directory and each playlist when scanning in bulk mode 2009-06-10 19:04:18 +02:00
Julien BLACHE 4e38d168e1 Set and check database schema version 2009-06-10 19:04:18 +02:00
Julien BLACHE ab1f9db6b3 Remove unused L_LOCK logdomain 2009-06-10 19:04:18 +02:00
Julien BLACHE 7314dd21c7 Purge old files and playlists after bulk scan 2009-06-10 19:04:18 +02:00
Julien BLACHE 4e3b29f502 Remove the old database code 2009-06-10 19:04:18 +02:00
Julien BLACHE a200703393 Switch to the new database code 2009-06-10 19:04:18 +02:00
Julien BLACHE f2c677462b Add new database code 2009-06-10 19:04:12 +02:00
Julien BLACHE 52d3fd1064 Clear evkeyvalq structs before use; fix crasher 2009-06-07 19:06:59 +02:00
Julien BLACHE 149d5432c6 Rework error handling and cleanup 2009-06-07 19:06:59 +02:00
Julien BLACHE 0ff33f12d6 Move mDNS services registration out of main() 2009-06-07 19:06:59 +02:00
Julien BLACHE f3c0145346 Move runas down into daemonize() 2009-06-07 19:06:59 +02:00
Julien BLACHE f39c48b989 Cleanup options and add long options 2009-06-07 19:06:59 +02:00
Julien BLACHE 6e64e54429 General main.c cleanup 2009-06-07 19:06:59 +02:00
Julien BLACHE 64cd2ee383 Factor out RSP query parameters handling 2009-06-07 19:06:59 +02:00
Julien BLACHE c59217f58e Remove the unused L_PARSE logdomain 2009-06-07 19:06:58 +02:00
Julien BLACHE 2cc5f6928e Remove the unused smart parser 2009-06-07 19:06:58 +02:00
Julien BLACHE 8b5a25c972 Remove/disable last users of the smart parser 2009-06-07 19:06:58 +02:00
Julien BLACHE 91e34a77c8 Use the new ANTLR parser for RSP queries 2009-06-07 19:06:58 +02:00
Julien BLACHE f9d9964914 Add new ANTLR parser for RSP queries
This parser actually supports way more than is needed for RSP proper,
as mt-daapd was piggybacking on the RSP queries for its smart playlists.

As I don't have (yet?) the RSP specs, better safe than sorry here. This
will be revisited at some point. Or not.
2009-06-07 19:06:51 +02:00
Julien BLACHE 272d8bca04 Fix error message 2009-06-07 19:06:51 +02:00
Julien BLACHE 68c74e6a88 Replace the mxml RSP root element hack by a better one
There's no proper way to add attributes to the root XML element in mxml;
the best way to do that is to create the root element like we would
create any other element and put the whole "? ... ?" stuff in there.
2009-06-07 19:06:51 +02:00
Julien BLACHE 4872077319 Make the file scanner non-recursive 2009-06-07 19:06:51 +02:00
Julien BLACHE ffb5a2fb06 Make wd2path static 2009-06-07 19:06:51 +02:00
Julien BLACHE 977afbbc5e Add workaround for empty XML tags in RSP replies
The SoundBridge does not support empty XML tags (<foo/>) and treats anything
containing such tags as invalid. Adding an empty string to the element works
around that, in that mxml won't produce empty tags in this case.

Hackish, but dealing with a hackish implementation on the other side :)
2009-06-07 19:06:51 +02:00
Julien BLACHE 28350ae9a6 Look for a query or filter parameter in DAAP queries
The filter is passed in the query parameter if it's a search, but if it's
a browse it's in the filter parameter.
2009-06-07 19:06:51 +02:00
Julien BLACHE 7642b1c6d7 Use the new ANTLR parser for DAAP queries 2009-06-07 19:06:50 +02:00
Julien BLACHE 68db2ae7c2 Add new ANTLR parser for DAAP queries 2009-06-07 19:06:46 +02:00
Julien BLACHE cefd3f3d1d Make dmap_fields_hash static 2009-06-01 18:01:24 +02:00
Julien BLACHE 512731c9dc Turn DPRINTF into a wrapper to a generic logging function
DPRINTF() made a generic logging function taking a va_list called
vlogger() and reimplemented as a wrapper on top of vlogger().
2009-06-01 16:01:47 +02:00
Julien BLACHE c3a5222f84 Log libevent errors through our own logger 2009-05-09 17:14:07 +02:00
Julien BLACHE 11f18eaf6f Remove unneeded log.c from evhttp copy 2009-05-09 17:14:07 +02:00
Julien BLACHE be0ac2b103 Add missing cleanup calls 2009-05-09 17:14:07 +02:00
Julien BLACHE 7b3b538ea6 Rename L_REND to L_MDNS 2009-05-09 17:14:07 +02:00
Julien BLACHE d384f3c395 Rename E_INF to E_INFO 2009-05-09 17:14:07 +02:00
Julien BLACHE b6f23a8273 Remove old error logging facility 2009-05-09 17:14:07 +02:00
Julien BLACHE 11fd038d16 Use new logger facility 2009-05-09 17:14:06 +02:00
Julien BLACHE 3a2a218a0f Introduce new logger 2009-05-09 17:14:01 +02:00
Julien BLACHE 2127aff906 Use a single log domain on DPRINTF() calls 2009-05-05 20:28:40 +02:00
Julien BLACHE 803ca7e59f Rename foreground to background and change logic accordingly 2009-05-05 17:54:20 +02:00
Julien BLACHE 10bb9dec57 Remove useless daapd.h 2009-05-05 16:22:11 +02:00
Julien BLACHE d2999aafec Add missing stdint.h include to ff-dbstruct.h 2009-05-05 16:21:39 +02:00
Julien BLACHE c85f9ed7dd Move main event base extern declaration to mdns_avahi.c where it's used 2009-05-05 16:10:49 +02:00
Julien BLACHE 524bdd3f0d Remove old config framwork include and wrappers 2009-05-05 16:10:44 +02:00
Julien BLACHE 9fce6d7abd Use new config framework in main.c 2009-05-05 15:53:36 +02:00
Julien BLACHE c1a2bf6fcf Remove conf_*() usage in DB module 2009-05-05 15:45:48 +02:00
Julien BLACHE ed0ff0c136 Unlink PID file on exit 2009-05-04 17:51:42 +02:00
Julien BLACHE be4286b2e8 Remove -export-dynamic libtool flag now that we don't have plugins anymore 2009-05-04 17:48:31 +02:00
Julien BLACHE 8e14495bc2 Remove unused struct tag_stats (STATS) 2009-05-03 13:33:16 +02:00
Julien BLACHE d1449a875b Get rid of the global struct tag_config (CONFIG) config 2009-05-03 13:32:00 +02:00
Julien BLACHE 2530c3512b Rename webface_cb() to httpd_gen_cb() 2009-05-03 12:26:01 +02:00
Julien BLACHE cd6f87401a Rename struct stream_chunk to struct stream_ctx 2009-05-03 12:19:04 +02:00
Julien BLACHE ed7c848702 Remove I/O layer 2009-05-03 12:10:17 +02:00
Julien BLACHE 07fb43ca8c Remove I/O layer init/deinit 2009-05-03 12:09:25 +02:00
Julien BLACHE f0ca987d78 Replace io_* routines by standard I/O functions 2009-05-03 12:08:14 +02:00
Julien BLACHE e8843a99aa Remove util.[ch] 2009-05-03 11:38:32 +02:00
Julien BLACHE 1e0ffb6808 Remove use of util_* routines, last user 2009-05-03 11:37:30 +02:00
Julien BLACHE 9ef8acfa28 Remove old webserver 2009-05-03 11:20:12 +02:00
Julien BLACHE 6aca074f82 Remove plugin infrastructure 2009-05-03 11:20:07 +02:00
Julien BLACHE baf529dbf2 Remove plugins directory 2009-05-03 11:20:02 +02:00
Julien BLACHE 2be04db4d2 Remove RSP output plugin 2009-05-03 11:16:58 +02:00
Julien BLACHE ef1c2b2b89 Remove DAAP output plugin 2009-05-03 11:16:58 +02:00
Julien BLACHE 89eead66f6 Remove ssc-ffmpeg plugin 2009-05-03 11:16:58 +02:00
Julien BLACHE 417b5e0ce3 Remove ssc-script plugin 2009-05-03 11:16:58 +02:00
Julien BLACHE 81cb0efa81 Stop loading plugins, we don't need plugins anymore 2009-05-03 11:16:58 +02:00
Julien BLACHE 2fb7537346 Register RSP and DAAP services in main() 2009-05-03 11:16:58 +02:00
Julien BLACHE c76c8165ce Enable httpd on the configured port 2009-05-03 11:16:58 +02:00
Julien BLACHE d46bb295c5 Disable old webserver 2009-05-03 11:16:58 +02:00
Julien BLACHE a1afb0d390 Use evhttp_send_reply_chunk_with_cb() to stream files
This evhttp extension makes it possible to schedule chunks one after
the other when (part of) the previous chunk has been written to the
client.
2009-05-03 11:16:58 +02:00
Julien BLACHE 7a37732658 Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
evhttp_write_buffer() used by evhttp_send_reply_chunk() can take callback
executed when (part of) the buffer has been written. Using this callback to
schedule the next chunk avoids buffering large amounts of data in memory.
2009-05-03 11:16:58 +02:00
Julien BLACHE 1d152decf7 Use evhttp_request->fail_cb to stop streaming if the client closes the connection
This is an extension to evhttp. Without this, we cannot know that the client
closes the connection, and we keep pushing chunks while the underlying
evhttp_request has been freed, leading to a segfault.
2009-05-03 11:16:57 +02:00
Julien BLACHE 1ffcbdae27 Add a fail_cb to evhttp_request for connection failures
The callback will be executed if a failure (timeout, read error) is detected
on an incoming connection.

This can be used to detect a client closing the connection while engaged in a
chunked reply and actively pushing chunks to the client. Without this
notification, it is impossible to know if/when a connection gets closed and
react appropriately (ie. stop pushing chunks) resulting in a segfault.
2009-05-03 11:16:57 +02:00
Julien BLACHE e4fe084619 Use embedded evhttp 2009-05-03 11:16:57 +02:00
Julien BLACHE 6bce4e08ca Import evhttp from libevent 1.4.10 2009-05-03 11:16:57 +02:00
Julien BLACHE c9868175fd Implement URI encoding quirk for iTunes and Roku
iTunes and Roku devices do not encode + as %2B in the query string and
do not encode space as + either in the query string (though at least the
Roku encode space as %20 everywhere). This needs to be worked around or
browse queries fail to parse because + was decoded as space when the query
really needs a + character.
2009-05-03 11:16:57 +02:00
Julien BLACHE 09ef188d90 Add authentication to web interface, RSP and DAAP 2009-05-03 11:16:57 +02:00
Julien BLACHE dc68de86dd Add HTTP Basic auth support 2009-05-03 11:16:57 +02:00
Julien BLACHE cd636cf42d Add base64 decoding routine 2009-05-03 11:16:57 +02:00
Julien BLACHE 7a601d7daa Enable streaming of transcoded content 2009-05-03 11:16:57 +02:00
Julien BLACHE 2c2498b6b4 Add transcoding infrastructure 2009-05-03 11:16:57 +02:00
Julien BLACHE 22092f555b Add L_XCODE log domain
Log domain for anything transcoding-related.
2009-05-03 11:16:57 +02:00
Julien BLACHE e5cc417e96 Add DJB hash function to misc.[ch] and use it 2009-05-03 11:16:51 +02:00
Julien BLACHE 0a1c4545dc Move safe_ato[il]() to misc.[ch] 2009-04-30 14:46:37 +02:00
Julien BLACHE 91414c10d7 Use a hashtable for dmap fields lookup
The hashtable is built around an AVL tree and the DJB hash function;
the AVL tree is built at init time and the init routine checks for
collisions.
2009-04-30 13:57:40 +02:00
Julien BLACHE c071a58c3c Wire up DAAP support 2009-04-30 13:57:40 +02:00
Julien BLACHE 00876facde Introduce DAAP protocol implementation
Same restrictions as RSP at the moment:
 - no transcoding
 - no authentication
2009-04-30 13:57:34 +02:00
Julien BLACHE f332f992aa Document HTTP client quirks known to mt-daapd 2009-04-28 18:00:27 +02:00
Julien BLACHE 651d946cc2 Implement RSP streaming. 2009-04-28 18:00:27 +02:00
Julien BLACHE f05a55e7fc Implement HTTP chunked streaming
Transcoding is not supported yet.

In the current state of affairs, we will crash if the client closes the
connection before the tranfser is done. This is a limitation of evhttp,
it is not possible to detect this condition. This will need to be fixed
in evhttp.
2009-04-28 18:00:21 +02:00
Julien BLACHE 5e8275a998 Wire up RSP support 2009-04-25 23:02:21 +02:00
Julien BLACHE 718631bab5 Introduce RSP protocol implementation
Lacks a couple of things:
 - actual streaming
 - transcoding
 - authentication
2009-04-25 23:02:15 +02:00
Julien BLACHE 21209bd040 Make sp_parse() second argument (term) const
The term (filter) argument is strdup()'d and that copy gets destroyed by
the parsing.
2009-04-25 16:27:59 +02:00
Julien BLACHE 6ed689d1c9 Move FILTER_TYPE_* definitions to smart-parser.h, where they belong 2009-04-25 16:27:59 +02:00
Julien BLACHE 29db6de1bb Fixup prototype for db_enum_fetch_row()
Second argument is actually a pointer to a pointer to a struct
db_media_file_info, and not a simple pointer.

That code sucks. Plain and simple. Will be taken out and shot at the
earliest occasion. Someone badly needs to take "Pointers 101", among
a lot of other 101 courses. Sigh.
2009-04-25 16:27:58 +02:00
Julien BLACHE bdcb5b88dc Rename struct tag_packed_m3ufile and struct tag_packed_mp3file 2009-04-25 16:27:58 +02:00
Julien BLACHE 5fc698c94f Add L_RSP log domain 2009-04-25 16:27:58 +02:00
Julien BLACHE 9d1cd9117f Enable new HTTP server alongside the old webserver 2009-04-25 16:27:58 +02:00
Julien BLACHE 095350e6eb Introduce new evhttp-based HTTP server 2009-04-25 16:27:47 +02:00
Julien BLACHE c9494a898e Add L_HTTPD for new evhttp-based HTTPd implementation 2009-04-24 15:45:44 +02:00
Julien BLACHE 7afc55307d Change prototype and return values for new file scanners 2009-04-24 15:45:44 +02:00
Julien BLACHE 92362068c6 Remove old file scanner (mp3-scanner) 2009-04-24 15:45:43 +02:00
Julien BLACHE 3a38e62f8a Remove/replace mp3-scanner.h include 2009-04-24 15:45:43 +02:00
Julien BLACHE 1a0e1731e4 Remove iTunes XML playlist parsing code 2009-04-24 15:45:43 +02:00
Julien BLACHE 69d6acad37 Remove support for iTunes XML playlist
No plans for OS X nor Windows in the near future, and those are most
probably useless on other platforms.
2009-04-24 15:45:43 +02:00
Julien BLACHE 831016bb05 Use new m3u scanner 2009-04-24 15:45:43 +02:00
Julien BLACHE 1a0f1317e2 Add rewritten scan_static_playlist() as scan_m3u_playlist()
Get rid of the I/O layer, better code.
2009-04-24 15:45:43 +02:00
Julien BLACHE 4a9d89c007 Rename struct tag_m3ufile into struct playlist_info 2009-04-24 15:45:43 +02:00
Julien BLACHE bc5a3db08a Rename scan-url.c to filescanner_urlfile.c 2009-04-24 15:45:43 +02:00
Julien BLACHE 0a61b5a51d Rewrite .pls/.url file parser
Get rid of the I/O layer, ameliorate bitrate parsing, restructure code.
2009-04-24 15:45:33 +02:00
Julien BLACHE 1eaa3979e6 Add missing db_deinit() calls 2009-04-20 16:41:06 +02:00
Julien BLACHE c4f8c7c254 Use new file scanner 2009-04-20 16:41:06 +02:00
Julien BLACHE c0e3c1bc5f Introduce new file scanner
The new file scanner has inotify support and runs in its own thread, including
for performing the initial rescan.
2009-04-20 16:41:01 +02:00
Julien BLACHE 57c698fce9 Export scan_static_playlist() 2009-04-19 19:39:15 +02:00
Julien BLACHE bbab963fe2 Use new conffile code in main.c; remove wrappers 2009-04-19 19:39:15 +02:00
Julien BLACHE bacdddb82f Use -v for version information 2009-04-19 19:39:11 +02:00
Julien BLACHE 5e48a8bb6a Remove -k/kill_server option 2009-04-19 19:38:41 +02:00
Julien BLACHE 362db5003b Remove config file conversion code 2009-04-19 19:37:48 +02:00
Julien BLACHE 8e4b2db99e Export cfg structure 2009-04-19 19:37:47 +02:00
Julien BLACHE e3ab6de328 Replace old config code, remove old code
Activate the new confuse-based config code, add compatibility functions
for the old config code.
2009-04-19 19:37:47 +02:00
Julien BLACHE a17e23010a Introduce new confuse-based conffile support 2009-04-19 19:37:47 +02:00
Julien BLACHE 9f2e088d57 Add more .gitignore stuff 2009-04-19 19:37:47 +02:00
Julien BLACHE e8c9a04376 Remove OS abstraction layer
Migrate daemon startup code in main.c, migrate functions with a single
callsite to that file. Remove setpgrp() usage in favor of setsid(), remove
configure check for setpgrp().
2009-04-19 19:37:42 +02:00
Julien BLACHE 9d026442b2 Remove alternate plugin load paths 2009-04-19 19:37:41 +02:00
Julien BLACHE 3ec2cc0f00 Stop the TXT record encoding madness
Use a proper string array to pass the TXT record fields, get rid of the
encoding stuff.

Changes the plugin API.
2009-04-19 19:37:41 +02:00
Julien BLACHE 2e2dbc6964 Free mDNS group entries in mdns_deinit() 2009-04-19 19:37:41 +02:00
Julien BLACHE b3b66449bc Build the string list for the mDNS TXT record once in mdns_register
Instead of rebuilding the string list at every regitration, build it once
and for all in mdns_register().
2009-04-19 19:37:41 +02:00
Julien BLACHE 8718f856df Remove unused, unfinished, useless UPnP code 2009-04-19 19:37:41 +02:00
Julien BLACHE 6db32640ef Remove no-op os_deinit() 2009-04-19 19:37:41 +02:00
Julien BLACHE 54c01d3b57 Move signal processing to the main loop using signalfd 2009-04-19 19:37:41 +02:00
Julien BLACHE 0292b9c625 Fix memory leak 2009-04-19 19:37:41 +02:00
Julien BLACHE 39e5b11bec Remove old Avahi mDNS backend 2009-04-19 19:37:41 +02:00
Julien BLACHE 97faadf6dd Enable new mDNS backend 2009-04-19 19:37:35 +02:00
Julien BLACHE 97cb82faf7 Add new Avahi mDNS backend with libevent integration. 2009-04-08 14:57:34 +02:00
Julien BLACHE 8a351e5bf8 Manage explicit event bases 2009-04-08 14:57:29 +02:00
Julien BLACHE 02f960b25b Fix Avahi races
Switch from custom thread + SimplePoll to ThreadedPoll, ensuring proper
locking of the polling thread.
2009-04-07 14:03:13 +02:00
Julien BLACHE df0013a166 Introduce libevent for running the main loop
Start the gradual libevent conversion.
2009-04-07 12:53:04 +02:00
Julien BLACHE 3b4e0d8f74 Add missing ; 2009-04-07 11:40:14 +02:00
Julien BLACHE b3cffd491d Add and use io_urlencode() to replace %U format spec for io_open()
Stopgap to replace the %U modifier until something happens with the whole
io_* stuff.
2009-04-05 22:42:03 +02:00
Julien BLACHE 687be1cbb6 Remove compat.[ch] 2009-04-05 19:15:44 +02:00
Julien BLACHE 7098dfbab3 Fix various trivial compiler warnings 2009-04-05 19:03:29 +02:00
Julien BLACHE ea36855793 Fix format specifiers for 64bit integers
Use "%" PRIu64 from inttypes.h instead of "%lld" which is incorrect on 64bit
platforms.
2009-04-05 18:54:59 +02:00
Julien BLACHE f4721a6cec Add explicit -export-dynamic
mt-daapd needs an explicit -export-dynamic so its symbols are made visible
to the plugins at load time.
2009-04-05 18:54:59 +02:00
Julien BLACHE 081a13bbea Fix ffmpeg API breakage
avcodec_audio_decode() has been removed in favor of avcodec_decode_audio2();
output buffer size must be passed to the function.
2009-04-05 18:54:59 +02:00
Julien BLACHE 888bf11d2f Replace %U format by %s
%s format specifier means the string must be URL encoded. Replace it by a
simple %s for the time being until plans about the I/O layer become clearer.
2009-04-05 18:54:59 +02:00
Julien BLACHE e318858d44 Fill in type & codectype for .url/.pls 2009-04-05 18:54:59 +02:00
Julien BLACHE c2ffed5e2b Remove unused iconv-dependent code.
The code was mainly used by the MP3 scanner.
2009-04-05 18:54:59 +02:00
Julien BLACHE d8a9772afc Remove/replace non-gcc compiler-specific defines and pragmas
Remove MSVC-specific defines and pragmas, use __attribute__((packed)) where
needed.
2009-04-05 18:54:58 +02:00
Julien BLACHE 3dd76cf9e9 Remove unneeded prototypes 2009-04-05 18:54:58 +02:00
Julien BLACHE 625ffd2112 Work around ffmpeg bugs in metadata support for some formats
Fall back to the legacy format-specific scanners for WMA, FLAC and Musepack,
as ffmpeg doesn't report metadata for FLAC nor Musepack and has bugs with
some WMA variants.
2009-04-05 18:54:58 +02:00
Julien BLACHE 3a53a068af Initialize ffmpeg in main()
ffmpeg needs to be initialized before scanning songs at startup. As a
consequence, the ffmpeg plugin does not need to call av_register_all()
itself anymore.
2009-04-05 18:54:58 +02:00
Julien BLACHE c9107ed48c Remove unneeded id3tag.h include 2009-04-05 18:54:58 +02:00
Julien BLACHE f14ba228ec Remove Ogg Vorbis file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 056f788c99 Remove MP3 file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 9f45181bb3 Remove AAC file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 84a132d166 Remove WAV file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE 23802f1866 Remove AIFF file scanner 2009-04-05 18:54:58 +02:00
Julien BLACHE a3e83775b3 Enable ffmpeg file scanner
Replace all file scanners with the new ffmpeg file scanner. Keep pls and
url exceptions.
2009-04-05 18:54:49 +02:00
Julien BLACHE 8dce7ee0f3 Add comments pertaining to the type, codectype and description fields
Better document the type, codectype and description fields, noting they
equivalent DAAP fields and usage/restrictions.
2009-04-05 10:24:10 +02:00
Julien BLACHE 10037ff7cf Rename struct tag_mp3file
That struct is badly named, rename it to struct media_file_info and keep
the typedef as-is for now.
2009-04-05 10:10:24 +02:00
Julien BLACHE 0187b5d405 Make ffmpeg mandatory 2009-04-05 10:06:03 +02:00
Julien BLACHE f5dd1bec13 Add an ffmpeg-based file scanner
Use ffmpeg's (starting with SVN 20090301) new metadata API to extract
metadata from virtually all formats supported by ffmpeg. That will allow
to get rid of some dependencies and some open-coded routines that aren't
maintainable.
2009-04-05 09:51:40 +02:00
Julien BLACHE 2cb11e8f42 Fix typos in help output 2009-04-02 13:24:09 +02:00
Julien BLACHE 1b98e3c036 Fix Avahi mDNS backend
Fix Avahi polling:
 - use avahi_simple_poll_loop() in rend-avahi.c:rend_poll() instead
   of reinventing yet another type of wheel;
 - start RendezVous thread after daemonizing, so the thread actually
   runs after we've daemonized.

Also handle Avahi daemon restarts, as it's good practice and easy to do.

 ... And /that/, my friends, is how we do that ...
2009-04-02 13:22:23 +02:00
Julien BLACHE 464bd414a1 Properly guard bytes_written against NULL
ws_copyfile() can be called with bytes_copied == NULL but did not
check for this condition before using bytes_copied after an IO error,
leading to a segfault.
2009-04-02 13:17:16 +02:00
Julien BLACHE 46acba0edb Fix ilst atom parsing
Fix ilst children parsing; when parsing children, we're already 8 bytes
into the ilst atom, so take that into account.
2009-04-02 13:16:07 +02:00
Julien BLACHE 93a97956a0 Change return type to boolean
Use a boolean return type instead of returning -1 with an unsigned return type.
2009-04-02 13:14:54 +02:00
Neil Spring 7565b02229 Properly reset XML scanner state between scans
Fix indexing of multiple XML files by resetting path_found for each
XML file.
2009-04-02 13:10:19 +02:00
Chris Pitchford 54d441f57c Fix handling of URIs in io_open()
Fix io_open()'s handling of options in URI, fixing the "filenames with a
question mark are not scanned" bug.

Patch by Chris Pitchford, cpitchford on the Firefly forum.
2009-04-02 13:07:36 +02:00
Jeremy Kerr 7c1752d871 Fix a bad return value in ws_addarg()
Fix a bad return value in ws_addarg() when updating a header value,
leading the caller to believe an out of memory condition happened.
2009-04-02 13:01:19 +02:00
Nico Golde 567bd3ee03 Fix integer overflow, CVE-2008-1771
Fix integer overflow leading to heap-based buffer overflow causing a
remote Denial of Service and possibly allows to execute arbitrary code.
2009-04-02 12:59:31 +02:00
Nico Golde 5d227e85c5 Fixup taglib_tab_free_strings() invocation
Fixup taglib_tab_free_strings() invocation; the function never took an
argument to start with, so fix that up as it now breaks the build.
2009-04-02 12:29:49 +02:00
Julien BLACHE b80b81adae Don't clobber LIBS with -ldl 2009-04-02 12:18:53 +02:00
Julien BLACHE 3a55c153b8 Move wavstreamer to tools 2009-04-02 12:18:47 +02:00
Julien BLACHE 023e034020 Don't clobber LDFLAGS with iconv 2009-04-02 11:42:39 +02:00
Julien BLACHE 1c97e73351 Remove embedded copy of getopt 2009-04-02 11:08:41 +02:00
Julien BLACHE cfdb37c07c Remove Mac OS conditional code 2009-04-02 11:06:29 +02:00
Julien BLACHE c3fb950737 Remove WIN32 conditional code 2009-04-02 11:04:33 +02:00
Julien BLACHE b59f936390 Remove barely-used bsd-snprintf.[ch] 2009-04-01 19:26:19 +02:00
Julien BLACHE fc8038de6b Get rid of unused restart.[ch] 2009-04-01 19:17:05 +02:00
Julien BLACHE 242d41fd0d Remove unused uici code 2009-04-01 19:16:28 +02:00
Julien BLACHE d3b4d80284 Remove SVN keywords 2009-04-01 19:16:21 +02:00
Julien BLACHE 36a0217199 Use pkg-config for TagLib 2009-04-01 19:16:20 +02:00
Julien BLACHE b4deba68b6 Use pkg-config for libFLAC
Don't use FLAC_CFLAGS because it contains -I/usr/lib/FLAC which breaks
anything using assert(), due to FLAC's own assert.h.
2009-04-01 19:16:20 +02:00
Julien BLACHE 22e646099a Use pkg-config for Ogg/Vorbis 2009-04-01 19:16:20 +02:00
Julien BLACHE 2fd4b744a7 Use pkg-config for id3tag 2009-04-01 19:16:20 +02:00
Julien BLACHE 5f682ca276 Remove unused SSL support
Unused, and anyway OpenSSL is not compatible with the GPL.
2009-04-01 19:16:20 +02:00
Julien BLACHE 7ce2e75859 Use pkg-config to check for libavcodec & libavformat 2009-04-01 19:16:20 +02:00
Julien BLACHE 2daa9835a3 Update includes for newer ffmpeg versions 2009-04-01 19:16:19 +02:00
Julien BLACHE 098ab7d736 Make SQL mandatory and sqlite3 the default (and only) backend 2009-04-01 19:16:19 +02:00
Julien BLACHE c0d395b7f9 Remove unused NSLU2 flag 2009-04-01 19:16:19 +02:00
Julien BLACHE eb5cccca06 Make MDNS mandatory and Avahi the default (and only) backend 2009-04-01 19:16:19 +02:00
Julien BLACHE 185864e799 Remove custom memory debug facility 2009-04-01 19:16:19 +02:00
Julien BLACHE ca1c461419 Remove gdbm database backend 2009-04-01 19:16:19 +02:00
Julien BLACHE 1d71d95332 Remove x bit 2009-04-01 19:16:19 +02:00
Julien BLACHE e2a31b40a2 Remove obsolete sqlite v2 SQL backend 2009-04-01 19:16:19 +02:00
Julien BLACHE a278c5998c Remove non-Avahi mDNS backends 2009-04-01 19:16:13 +02:00
Julien BLACHE 3a8c7b3c41 Get rid of Apple's RendezVous mDNS implementation 2009-04-01 15:36:55 +02:00
Julien BLACHE 1ca30657ac Remove unneeded script 2009-04-01 15:36:55 +02:00
Julien BLACHE b4fe0300b4 Remove test drivers 2009-04-01 15:36:37 +02:00
Julien BLACHE 180cc2eb5a Get rid of win32 code 2009-04-01 14:48:27 +02:00
Ron Pedde f3d1caff93 Fix 3 large memory leaks 2007-10-29 05:48:42 +00:00
Ron Pedde e842f38fce fix windows blocking socket issue, work around problem with temp update table not being seen by fetch thread during db update 2007-10-24 05:44:35 +00:00
Ron Pedde c8d09bc310 Make rsp update session status, to help kick off rescans 2007-10-24 04:06:52 +00:00
Ron Pedde d75e1f8d48 Update playcounts for transcoded files 2007-10-24 03:59:34 +00:00
Ron Pedde a8b6d93c07 Add count value to smart playlists, closing #150 2007-10-23 04:52:25 +00:00
Ron Pedde fffe34e5eb Fix bogus error messages on web config 2007-10-23 04:23:50 +00:00
Ron Pedde 60f8d1299f Fix wav scanning for wav files with more than two blocks (wmp wav files with LIST/INFO blocks) 2007-10-23 03:57:20 +00:00
Ron Pedde ad5718bb9c Add DESCRIPTION tag as an alias for COMMENT in flac files 2007-10-23 03:43:17 +00:00
Ron Pedde 34a4bb998e Fix duration scanning for wav files 2007-10-23 03:37:51 +00:00
Ron Pedde 1292992f6f Fix for format string vulnerability, reported as UnprotectedHex.com advisory UPH-07-03 by nnp (no CVE yet) 2007-10-21 22:51:01 +00:00
Ron Pedde e70f43e1ce Fix for remote DOS, reported as UnprotectedHex.com advisory UPH-07-02 by nnp (no CVE yet) 2007-10-21 22:45:32 +00:00
Ron Pedde eb7b49d848 Fix for remote DOS, reported as UnprotectedHex.com advisory UPH-07-01 by nnp (no CVE yet) 2007-10-21 22:13:37 +00:00
Ron Pedde 31bbea6109 Win32 performance fix (WSAEWOULDBLOCK hack issue) 2007-10-19 03:35:24 +00:00
Ron Pedde 43c234e666 Add per-thread db handles to guard against SQLITE_MISUSE 2007-10-13 22:03:52 +00:00
Ron Pedde 6df87878a5 increased logging to debug wav streaming problem on win32/vista 2007-10-07 04:48:19 +00:00
Ron Pedde aa7b98f214 Fix for iTunes 7 password prompt on movie playback 2007-10-07 04:39:30 +00:00
Ron Pedde 3caf85e221 Fix for crash on os/arch without va_copy 2007-10-02 03:15:21 +00:00
Ron Pedde a921916f30 Tune down logging a bit more 2007-09-25 07:50:48 +00:00
Ron Pedde 208ef6b1f2 minor signed/unsigned cleanups 2007-09-25 06:15:47 +00:00
Ron Pedde 01c7d18758 io.c: Fix rebuffering issue on win32 (fixing #235)
webserver.c: Fix write error log messages.  Possible fix for crash on mipsel (uninitialized heap issue).
2007-09-23 10:14:51 +00:00
Ron Pedde 4966f4213e Fold the mp4 scanner into the aac scanner, fix the playlist issue, and the aac metadata parsing issue 2007-09-16 02:03:25 +00:00
Ron Pedde 854a99470c Fix problem with password protected libraries 2007-09-13 04:52:18 +00:00
Ron Pedde 5864fd8a15 Fix problem with line endings on m3u files 2007-09-13 04:27:47 +00:00
Ron Pedde b082328a4d This should be the REAL freebsd socklen_t fix 2007-09-11 04:45:59 +00:00
Ron Pedde 196ac7b468 Version the plugins, to stop from loading old versions, plus fix up search paths for ipkg based installs 2007-09-11 04:29:52 +00:00
Ron Pedde 491d1038eb Fix for EOF problem without trailing linefeed as reported by evans02472 on the forums 2007-09-09 06:02:03 +00:00
Ron Pedde 2734480212 Freebsd fix for socklen_t problem reported in forums 2007-09-09 05:56:56 +00:00
Ron Pedde 9d9ce5ba7a fix win32 library loading issues. 2007-09-07 07:51:00 +00:00
Ron Pedde effab02bc1 scan for new plugin path when not specified in config 2007-09-07 06:55:25 +00:00
Ron Pedde 06a107f116 Add debugging to try and find problems with EBADF on Sun Cobalt RaQ 2007-09-07 06:52:23 +00:00
Ron Pedde 64b8eb7e71 don't include iconv.h when building without iconv 2007-09-05 03:28:56 +00:00
Ron Pedde 9d9533a07a Win32 iconv fixes. 2007-09-04 07:34:18 +00:00
Ron Pedde 0be8f98a40 Allow --disable-iconv 2007-09-04 07:26:50 +00:00
Ron Pedde 9246bfe59e iconv fixes for linux 2007-09-04 05:11:43 +00:00
Ron Pedde 5e69ba1a35 add ff-plugin-events.h to dist package 2007-09-04 02:40:22 +00:00
Ron Pedde 9aaff066d3 Add codepage translation for non-utf8 id3v1 tags 2007-09-03 21:39:20 +00:00
Ron Pedde 00cbda5e95 deprecate general/playlist 2007-09-03 17:50:56 +00:00
Ron Pedde 839f500358 Fix re-write of config file by preserving line endings 2007-09-03 17:48:56 +00:00
Ron Pedde cab9a1ecd0 Fix utf-16 problems in win32 and unix. 2007-08-31 05:23:16 +00:00
Ron Pedde 2f83ecb3fc fix stupid pointer bug 2007-08-30 05:42:59 +00:00
Ron Pedde 9d222abd4b Fix sys/time requirement in upnp.c 2007-08-30 05:36:06 +00:00
Ron Pedde 153e874bef Patch from Stephane Moreau to make apache rewrites easier 2007-08-27 00:57:47 +00:00
Ron Pedde f2174b3173 Patch from Ian Burrell to move plugins from sysconfdit to libdir, as it Should Be 2007-08-27 00:55:17 +00:00
Ron Pedde 1ca5cef013 Fix windows open for non-latin files 2007-08-27 00:43:33 +00:00
Ron Pedde d88132f6c9 use iconv for utf8/utf16 conversion, in preparation for codepage id3tags and file system conversion 2007-08-23 03:55:10 +00:00
Ron Pedde f2be31595f add io_ functions for plugins 2007-08-18 01:15:51 +00:00
Ron Pedde 40956ee0f9 fix VA_COPY 2007-08-12 08:43:27 +00:00
Ron Pedde 17afc25676 linux fixes for new plugin arch 2007-08-12 06:30:00 +00:00
Ron Pedde a90bb2ab10 Add io-errors.h and io-plugin.h to make dist 2007-08-11 04:41:21 +00:00
Ron Pedde f40c75773a win32 fixes for new plugin model 2007-08-10 00:48:31 +00:00
Ron Pedde 57dded49f9 oops, forgot the plugin interface 2007-08-09 07:10:35 +00:00
Ron Pedde 0429230d00 remove function backpointers for dll plugins 2007-08-09 06:33:41 +00:00
Ron Pedde 366ae9913c Fix problems with ascii log files, also problems with WSAEWOULDBLOCK on send buffer/receive window full. 2007-08-06 05:18:01 +00:00
Ron Pedde 5cf869342b avoid re-entrant error logging to avoid deadlocks 2007-08-06 03:18:44 +00:00
Ron Pedde a806dde1da Implement ascii line-ending conversion for windows 2007-08-05 04:43:25 +00:00
Ron Pedde b108edbc52 fix excessive logging in mdns, and remove rdar tags 2007-08-05 04:09:12 +00:00
Ron Pedde 4f0b1f24e0 cleanups for io_ on win32. still not quite working right, some read or write errors when streaming files, but a strong "mostly works" 2007-08-01 06:32:15 +00:00
Ron Pedde ca7beedde3 convert scan-wma to io_ functions 2007-08-01 06:21:53 +00:00
Ron Pedde 4b9b1fe177 merge ron-ssl branch back to trunk in preparation for windows cleanups, merge setup tweaks and credits language as well as update rend-posix from stable-aspl-free 2007-07-31 04:34:33 +00:00
Ron Pedde f1cc5ca6fb Fix for missing upnp_uuid() 2007-05-18 02:27:29 +00:00
Ron Pedde 3ac4048b0d Fix wav scanner to allow both 16 and 18 byte 'fmt ' chunks, also allow for out-of-order WAVE chunks 2007-05-10 06:24:50 +00:00
Ron Pedde 7f5e364954 Add enough more UPnP discovery that it shows up on SoundBridge 2007-05-05 04:35:50 +00:00
Ron Pedde 648297e253 Finish (mostly) upnp discovery 2007-05-04 21:31:05 +00:00
Ron Pedde 0eba96d92a More UPnP work. Almost finished with discovery. 2007-05-03 03:30:30 +00:00
Ron Pedde 0115887492 Move split functions from conf to util 2007-05-03 00:28:14 +00:00
Ron Pedde 61f5e96ea7 Force a full rescan when the database version is too new 2007-05-03 00:18:25 +00:00
Ron Pedde f3d5caedb1 Missing header 2007-05-03 00:10:10 +00:00
Ron Pedde 9ba5a51fdd Fix small race in registerhandler 2007-05-02 23:49:42 +00:00
Ron Pedde 360c7f945e Fix for win32 playlist dissapearing issue 2007-04-30 00:18:04 +00:00
Ron Pedde 29c4e25425 Minor auth fixes 2007-04-27 12:31:42 +00:00
Ron Pedde 0ade4784ff Fix stupid password bug 2007-04-19 03:46:40 +00:00
Ron Pedde eedf20f7f2 More password handling 2007-04-19 03:19:57 +00:00
Ron Pedde e9a08a6951 upnp updates, plus some password fixes 2007-04-19 03:00:00 +00:00
Ron Pedde 5be4c9d8a4 More simple upnp updates 2007-04-19 02:58:56 +00:00
Ron Pedde c6a9009550 Oops, thinko on the playlist thing 2007-04-18 03:34:03 +00:00
Ron Pedde a15eabbd76 Crank up debug a bit for handlers to help track down wl500g errors 2007-04-18 03:12:42 +00:00
Ron Pedde 5b38bc6d6c Solve the case of the missing playlists\! D'oh\! 2007-04-18 03:07:25 +00:00
Ron Pedde d8ad7c7ebc Tune down auth logging a bit, increase debugging in ws handler to try and find wl500g problem 2007-04-16 21:31:56 +00:00
Ron Pedde e8ff234550 Minor win32 fixes for S_ISDIR 2007-04-16 05:30:10 +00:00
Ron Pedde fb86538d79 Add centralized auth handler for different user roles (currently admin and user), closing #225 and #220 2007-04-15 23:57:00 +00:00
Ron Pedde 29478fcca1 Remove regex functions from webserver, instead preferring path from root - fixes problems with bad regex in uclibc 2007-04-15 23:27:16 +00:00
Ron Pedde 096975abfe More UPnP work. Still doesn't show up in network neighborhood. Not quite sure why not, though. :) 2007-04-15 23:20:13 +00:00
Ron Pedde a6b9099e01 Use S_ISDIR to determine file directoryishness 2007-04-15 20:36:00 +00:00
Ron Pedde e991d1ec08 logging for bad passwords as suggested by mas 2007-04-13 23:31:57 +00:00
Ron Pedde 69ec57328e ifdef the upnp stuff in main 2007-04-13 23:31:22 +00:00
Ron Pedde 5e9d9a3f20 forgot upnp files 2007-04-13 21:38:05 +00:00
Ron Pedde 1f640234f5 start of UPnP functions 2007-04-13 21:37:42 +00:00
Ron Pedde 9ccc48eac9 uninitialized string error, found by Ron (the *other* ron) on the forums. 2007-04-12 18:34:09 +00:00
Ron Pedde 245e062530 Fix for tzset/putenv in compat, to help build on wl500g 2007-04-11 02:33:47 +00:00
Ron Pedde 914cd2d54d include config guards for headers in plugin.c, remove dynamic-art from vc project. 2007-04-10 01:39:08 +00:00
Ron Pedde 4d323f2729 Fix headers 2007-04-09 06:50:58 +00:00
Ron Pedde 6f1f6d8ece Add always_transcode, first pass at a fix for the hifidelio/olive, something like the one offered by Matthias Schmidt 2007-04-09 04:23:51 +00:00
Ron Pedde 363210ebcc Update Apple's mDNS to 107.6, the Apache/BSD licenced version, to remove aspl taint. This is high in autoconf hackery, though 2007-04-08 04:43:22 +00:00
Ron Pedde 751afbf285 header fixes for fbsd, as reported by oliver in the forums 2007-04-07 22:32:26 +00:00
Ron Pedde 00ded64dab Add a simple config migrator to move config items around at load. I've used it
to move general/process_m3u to scanning/process_playlists, scanning/process_xml
to scanning/process_itunes, and make scanning/process_m3u actually control just
m3u file rather than all playlists.  In addition, scan/correct_order has been
moved to daap/correct_order.  This closes long-standing bug #172.
2007-04-06 05:05:50 +00:00
Ron Pedde e6d550dd49 rename lock_t to ff_lock_t to prevent solaris breakage 2007-04-06 02:57:06 +00:00
Ron Pedde a4dea03121 Try to automatically locate plugins, show loaded plugins on web interface 2007-04-04 20:34:29 +00:00
Ron Pedde ec9ab04b40 xmbc fixes 2007-01-29 06:45:21 +00:00
Ron Pedde 55014d0a71 Fix signal handling on linuxthreads/NSLU2 2007-01-28 05:36:06 +00:00
Ron Pedde c9e70fb47f Add signal handling for nslu2, make -k send SIGTERM, not SIGSTOP 2007-01-20 14:20:59 +00:00
Ron Pedde fb66541657 Use pthread_sigmask over sigprocmask in an attempt to fix signals on linuxthreads machines 2007-01-19 07:11:40 +00:00
Ron Pedde 0d72198594 Get wrong pid when daemonizing 2007-01-19 06:20:12 +00:00
Ron Pedde 5383d1c1ca Fix double-free problems reported in forums 2007-01-18 06:07:26 +00:00
Ron Pedde 14fe9f9c6c Add memory debugging (--enable-mem-debug), find and fix several small (and not so small) memory leaks 2007-01-17 01:06:16 +00:00
Ron Pedde b23f0d226b update usage() to reflect new -k and -V options, as reminded by Steve in the forums 2007-01-11 01:28:18 +00:00
Ron Pedde 1d01c02296 Fix -V to exit after displaying version 2007-01-10 06:19:41 +00:00
Ron Pedde d2e5b45bd9 Move signal handling to parent thread, add -V and -k options, closing #219, and fixing problems with daemontools 2007-01-09 18:12:39 +00:00
Ron Pedde 5f922b44d8 Fix problem with adding playlists as reported in forums 2007-01-09 05:55:41 +00:00
Ron Pedde cc535d234f consolidate mutex locking to better debug deadlocks 2006-12-31 21:28:47 +00:00
Ron Pedde f7b2e3204e Don't delete hand-crafted static playlists (type 0) on full reload 2006-12-31 21:22:46 +00:00
Ron Pedde eb92a4b99b automatically shorten the rendezvous name if it's too long 2006-12-19 05:06:42 +00:00
Ron Pedde a3d3c21b65 try to better detect successful transcoding in order to update play counts - #191 2006-12-19 01:48:27 +00:00
Ron Pedde da77bb850a expand tabs 2006-12-18 06:31:13 +00:00
Ron Pedde c4c823affb add avahi support to trunk 2006-11-28 22:11:18 +00:00
Ron Pedde 23e567a94b Add more logging for duplicate playlist 2006-11-27 00:17:12 +00:00
Ron Pedde 9239e0ad36 Reference iTunes playlist by name hash rather than native playlist id 2006-11-27 00:00:00 +00:00
Ron Pedde e0098e20fa Fix rendezvous registration problem on win32 where sometimes rendezvous names wouldn't get registered. 2006-11-22 06:04:23 +00:00
Ron Pedde 36bc5951e5 include sys/select.h for freebsd, courtesy of Denis 2006-11-22 04:10:29 +00:00
Ron Pedde d5506fc46f Fix db upgrade from 12 -> 13 2006-11-19 18:58:03 +00:00
Ron Pedde 4d8e618f75 iTunes updates, courtesy of Shish 2006-11-16 04:13:57 +00:00
Ron Pedde 758c0c6245 stdint fixes 2006-11-14 05:29:32 +00:00
Ron Pedde 654d0fe685 PATH_MAX vs MAX_PATH fixes. Stupid windows. 2006-11-14 01:40:22 +00:00
Ron Pedde 16b323f024 Make fireflyshell drop a drive mapping ini file, so that the server can convert network drive letters to unc paths. 2006-11-13 00:09:16 +00:00
Ron Pedde c1ac15cd97 win32 cleanups, fixes for 48k flac playing slowly. 2006-11-11 23:15:33 +00:00
Ron Pedde d90fd30a9b Drop version number on startup 2006-11-11 21:47:43 +00:00
Ron Pedde 792fa16f1e Pass mp3struct to ssc plugins so they can take advantage of metainfo 2006-11-06 03:42:38 +00:00
Ron Pedde b5008ded8d reverse default in follow_symlink option, fix some warnings in plugin.c, fix errors in update as result of new db fields 2006-11-05 22:38:12 +00:00
Ron Pedde e02f0774ec add album_artist and bits_per_sample, bumping db version. Collect album_artist from flac, aac, wma, and iTunes xml. Collect sample_count and bits_per_sample for flac 2006-11-04 04:17:24 +00:00
Ron Pedde e33f1a3167 make encrypted wma files wmap/wma rather than wma/wmap 2006-11-02 04:50:31 +00:00
Ron Pedde 137875c23d add general/never_transcode to specify codectypes that shouldn't be transcoded, even if the client suggests it can't play it (amarok, rhythmbox, others that lie about user-agent) 2006-10-31 03:54:10 +00:00
Ron Pedde 69eb216e59 Implement option to skip initial start-up scan, useful for windows machines. Fixes ticket #208 2006-10-27 20:39:39 +00:00
Ron Pedde 3d352427f6 Fix auth problems on passworded shares, fixing ticket #205 2006-10-27 20:26:10 +00:00
Ron Pedde 5db53647d5 Tune down 'short read' errors, closing #207 2006-10-24 05:21:04 +00:00
Ron Pedde 0fa620d4a7 add scanning/follow_symlinks option to close ticket #194 2006-10-24 05:17:36 +00:00
Ron Pedde 40a62f7722 Fix divide by zero error for aac/m4v files < 1 second long (hat tip to arvzb from the forums) 2006-10-17 03:30:13 +00:00
Ron Pedde 325c86073b Add hostname (%h) and version (%v) templates for the servername parameter 2006-10-16 03:52:45 +00:00
Ron Pedde 2f0dafba61 trivial printf formatting bug 2006-10-16 03:24:52 +00:00
Ron Pedde d89220fb5e Byte-endian fixes for wma parsing 2006-10-16 03:19:10 +00:00
Ron Pedde 4e786208ed Fix for null title/artist/album/genre in wma files 2006-10-15 23:19:04 +00:00
Ron Pedde b928966f9b Make DRM-protected wma files have a codectype of WMAP 2006-10-15 23:07:16 +00:00
Ron Pedde 3810a8f0a4 Fix problem with smart playlists returning entire library 2006-10-15 05:00:20 +00:00
Ron Pedde 6d54f3c826 Add database/quick_startup directive to specify that the database should start up quickly -- without vacuum in the case of sqlite 2006-10-12 01:42:15 +00:00
Ron Pedde e0ff0c794e Better logging for broken connections while streaming 2006-10-09 00:16:48 +00:00
Ron Pedde 2193e14c98 Add CCRDudes patches for xhtml compliance 2006-10-09 00:07:59 +00:00
Ron Pedde cb18268049 Autoconf for dirent, rather than win32ing 2006-10-08 23:14:37 +00:00
Ron Pedde f7e3db6861 Load all plugins in plugin dir, rather than relying on a plugins entry 2006-10-08 18:05:31 +00:00
Ron Pedde c90e2394c5 Fix indexing, move updates back into core 2006-10-05 03:58:24 +00:00
Ron Pedde 4a9d8993b3 Various win32 fixes 2006-10-04 04:33:27 +00:00
Ron Pedde 5509a8cffd redist ff-dbstruct.h 2006-10-03 14:41:24 +00:00
Ron Pedde ac561f40dc Fix ld errors for automake 1.5 2006-10-02 05:08:15 +00:00
Ron Pedde 8e23eb9e1d Move daap to an external output module 2006-09-25 03:20:22 +00:00
Ron Pedde 19b8b3719c Make empty_strings dummy up artist, genre, and album 2006-09-10 19:27:55 +00:00
Ron Pedde ccf2cb4a0f Typo in genre 2006-09-10 04:53:17 +00:00
Ron Pedde 5a483a7fe6 Treat m4b files as m4a files. 2006-09-02 20:16:12 +00:00
Ron Pedde c797d64eb1 Better guess of bitrate when tag includes a duration tag 2006-09-01 04:16:51 +00:00
Ron Pedde ad16949d12 Make case-insensitive fs a little less broken 2006-08-31 02:43:13 +00:00
Ron Pedde e878464716 Fix for bad seeks on wma subheaders 2006-08-31 00:37:16 +00:00
Ron Pedde c594cb1ab2 tune down the stat errors 2006-08-29 04:01:30 +00:00
Ron Pedde c5ef4021a3 Support for multiple wma composers 2006-08-29 03:21:19 +00:00
Ron Pedde 0725c9ae13 Fixes for transcoding flacs with leading id3v2 tags 2006-08-28 03:59:04 +00:00
Ron Pedde 55793d6c32 win32 cleanups 2006-08-28 03:58:31 +00:00
Ron Pedde d5b29cd4ef Fix up iTunes metadata before inserting into the database (fixing the concat_compilations bug) 2006-08-27 00:02:09 +00:00
Ron Pedde c7a385b9b1 Add sample rate from wma files, closing #166 2006-08-26 04:14:17 +00:00
Ron Pedde c319c8b090 Move collecting pmp3->file_size in the scanner driver rather than individual scanners. Fixes half of #166 2006-08-26 03:57:35 +00:00
Ron Pedde e00ad47a55 get file info from stat, rather than from scandir, fixing bug #196 2006-08-26 03:44:43 +00:00
Ron Pedde e1fe5d53a1 Fix problem on mac when updating config file through web interface 2006-08-26 03:14:48 +00:00
Ron Pedde 81afc997c7 tune logging 2006-08-25 03:37:03 +00:00
Ron Pedde 9e7de7965a Fixes for traditional chinese file system 2006-08-23 05:02:08 +00:00
Ron Pedde 4163e62934 Bump db version to 12 to force a full rescan 2006-08-20 05:02:27 +00:00
Ron Pedde 231017d571 Make playlist filenames honor filesystem case settings 2006-08-20 05:02:09 +00:00
Ron Pedde 53510607f1 make full rescan rescan playlists as well as songs 2006-08-20 04:51:08 +00:00
Ron Pedde d64fe731eb add handler for case_insensitive 2006-08-20 04:50:19 +00:00
Ron Pedde 8f1c77f4df Fix processing of escaped strings 2006-08-20 03:59:59 +00:00
Ron Pedde 6dfcec0d60 Fix debugging 2006-08-20 03:59:37 +00:00
Ron Pedde 2f2dd3908c fixes for parser testing framework 2006-08-20 03:46:10 +00:00
Ron Pedde e8b1520ffc Change db safety outside transactions 2006-08-17 05:05:48 +00:00
Ron Pedde ddfea4d23d Bump the end-scan message to E_LOG 2006-08-17 02:25:41 +00:00
Ron Pedde 7c34c4ceee Default to case-sensitive fs 2006-08-17 02:22:43 +00:00
Ron Pedde 5e6575a153 wrap playlist scans in transaction 2006-08-14 04:09:45 +00:00
Ron Pedde 6891f3a169 make initial scan faster 2006-08-14 01:24:24 +00:00
Ron Pedde f3fecf593e more fs case fixes 2006-08-14 00:00:54 +00:00
Ron Pedde f9d27a4773 Show scan completion in logs 2006-08-14 00:00:48 +00:00
Ron Pedde bccd2e473f Improve reload perforamnce by skipping db lookups on forced reload 2006-08-12 21:01:37 +00:00
Ron Pedde f7cc8ea470 Make flac and ogg transcode and scan properly for unicode filenames. 2006-08-11 05:33:54 +00:00
Ron Pedde 9defe79e42 make ssc-wma work with unicode file names (bad codepage in multibyte translation) 2006-08-11 03:40:36 +00:00
Ron Pedde 7554aabf90 Make path searches case insensitive 2006-08-09 05:16:06 +00:00
Ron Pedde 6c84e8863e Make RSP honor the correct_order flag 2006-08-07 05:06:23 +00:00
Ron Pedde 5acac92603 Skip background scan if a foreground scan just happened 2006-08-04 01:50:30 +00:00
Ron Pedde d2ba19d8ce Get rid of mangle_rendezvous option 2006-08-03 02:55:57 +00:00
Ron Pedde ca6bcec06e Inverted rendezvous test 2006-08-03 02:55:14 +00:00
Ron Pedde 9ca4ac55ba Fix for crash on empty extension, as reported by Denis in forums 2006-08-02 23:37:08 +00:00
Ron Pedde 287c35d25d disable updates pending implementation of incremental updats 2006-08-01 03:34:51 +00:00
Ron Pedde 7f38e5f6e1 Default correct_order to 1 2006-07-29 06:33:22 +00:00
Ron Pedde 714af4c9ce Minor fixes to limit memory used by wma scanner 2006-07-29 06:31:30 +00:00
Ron Pedde fe4742b026 Fix inverted test on whether or not the db revision was stable 2006-07-29 05:42:34 +00:00
Ron Pedde 90a6a39ce1 Add defensive index creation on startup, fix indexes for ordered query (and update schema), better startup after interrupted shutdown 2006-07-29 00:45:23 +00:00
Ron Pedde e54a8a1d9e Defer updates while db is changing 2006-07-29 00:18:00 +00:00
Ron Pedde 63d6df105f Make sure not to play data_kind 1 songs -- radio stations 2006-07-26 05:44:54 +00:00
Ron Pedde 0e84da1679 -Wall cleanups, fix correct_order flag 2006-07-25 03:49:36 +00:00
Ron Pedde dd5b5acdac Fix crash on TERM signal (unintialized memory) 2006-07-19 05:55:05 +00:00
Ron Pedde 1063187b27 roll back codectype tomfoolery in rsp.c 2006-07-19 05:21:45 +00:00
Ron Pedde ca259e8e12 Fix crash with no location in iTunes xml 2006-07-19 05:13:08 +00:00
Ron Pedde 916ad55eb5 Stat wrapper for os-unix, bring in sync with windows 2006-07-17 22:35:21 +00:00
Ron Pedde 5b18d69d28 Make win32 version file handling use wide character functions (for non-latin filenames) 2006-07-17 04:49:44 +00:00
Ron Pedde 840fe59997 Add -b option to manually set the ffid 2006-07-15 05:56:32 +00:00
Ron Pedde 581b8df5c7 Make server abort when a shutdown signal happens during a playlist or xml scan 2006-07-13 08:29:21 +00:00
Ron Pedde 2ea83c6f2e Fix problem where version wasn't being created properly on initial db 2006-07-13 03:13:24 +00:00
Ron Pedde 8954451434 Win32 fixes and cleanups 2006-07-12 23:07:03 +00:00
Ron Pedde b1a5f93987 Fix tab expansion 2006-07-12 22:52:50 +00:00
Ron Pedde 0d4bd16789 fix select timeout in rend-win32.c 2006-07-12 08:28:38 +00:00
Ron Pedde 26e4259332 split well-used utility functions into util.c 2006-07-12 04:39:11 +00:00
Ron Pedde 7a3a5ce3af Fix memory leak in scan-xml, closing #173 2006-07-12 04:10:21 +00:00
Ron Pedde e0162752d0 Make scanner stop in middle of scan 2006-07-11 05:54:42 +00:00
Ron Pedde d8bdbe234d Fix erroneous startup message 2006-07-09 23:03:20 +00:00
Ron Pedde a574c2f752 Add comment info from iTunes xml file 2006-07-07 22:53:03 +00:00
Ron Pedde d91ac3ff42 Exclude radio station metadata from browse info. Not sure this is entirely correct. Should it be a config option? 2006-07-07 22:24:48 +00:00
Ron Pedde c20b3e52e9 Make config file realpathed, fixing unwritable config file problem on mac 2006-07-07 20:36:24 +00:00
Ron Pedde 328a4861fb Stop using strftime on error logs, as it is defective on win32 -- fixes #158 2006-07-07 20:19:51 +00:00
Ron Pedde 2d7da86e8c Fix thinko in err.c, possibly fixing #165 2006-07-07 20:10:11 +00:00
Ron Pedde 8c0561f144 Fix os_apppath function, closing #185 2006-07-07 20:07:25 +00:00
Ron Pedde 817532fcf5 Add debugging to chase down "out of phandles" error. 2006-07-06 05:18:53 +00:00
Ron Pedde 534005fb70 Fix error messages in smart playlists, and verify updated clauses on edit 2006-06-30 05:33:35 +00:00
Ron Pedde 5873ce9bd7 Fix iTunes xml scanning 2006-06-30 05:17:06 +00:00
Ron Pedde 57d75bc35c Really REALLY fix the transcode playcount update 2006-06-30 05:10:13 +00:00
Ron Pedde 8ba331adae Fix cover art on win32, closing #167 2006-06-29 07:01:06 +00:00
Ron Pedde b3b3f2f39c Suppress errors when dep libs aren't present (wmvcore.dll for ssc-wma, for example). Should close ticket #177 2006-06-29 06:37:28 +00:00
Ron Pedde 554c72e1a6 Add db auto-upgrade back in 2006-06-29 06:21:41 +00:00
Ron Pedde c2ae17e635 Add type and disabled to all browse returns 2006-06-29 05:25:24 +00:00
Ron Pedde f5012295e8 make updates work with art_filename 2006-06-29 02:57:45 +00:00
Ron Pedde 607c4b7e61 Only scan xml files named iTunes music library 2006-06-28 05:57:22 +00:00
Ron Pedde 02664912f6 fix deadlock on smp (fingers crossed) 2006-06-28 05:29:41 +00:00
Ron Pedde 067d252f81 Fix index on path 2006-06-28 05:29:15 +00:00
Ron Pedde 6706895ea5 Minor logging fixes 2006-06-20 03:41:34 +00:00
Ron Pedde e20b851f2d Fix erroneous messages on bad playlists 2006-06-20 03:12:45 +00:00
Ron Pedde 5859bca5ac Fix crash on no user-agent, fixing ticket #164 2006-06-19 05:47:38 +00:00
Ron Pedde c926c05c6e Always log E_LOG or higher to syslog, closing #137 2006-06-19 05:16:32 +00:00
Ron Pedde ebeaed447e Maybe fix for deadlocks on smp 2006-06-19 05:06:25 +00:00
Ron Pedde 57d82a07d5 302 directory requests to the index page, closing ticket #157 2006-06-19 05:02:16 +00:00
Ron Pedde c9c0b4de9a multiple composer support (maybe) fixing #156 2006-06-19 04:45:03 +00:00
Ron Pedde 61d4ddff26 Make empty password not show a lock in iTunes, closing #155 2006-06-19 04:29:27 +00:00
Ron Pedde 5f3a12c351 Import streaming stations form iTunes XML file, closing ticket #130, add scan/correct_order to make static playlists return in correct order closing ticket #159 2006-06-19 04:25:08 +00:00
Ron Pedde ebbbc0acda Add shutdown method, closing ticket #121 2006-06-18 06:16:51 +00:00
Ron Pedde 28a0125a32 serve wma natively to soundbridge over daap 2006-06-17 05:36:03 +00:00
Ron Pedde fcae68c3a5 Fix crash on unknown config options 2006-06-16 06:57:19 +00:00
Ron Pedde cf9281f1e4 Fix bad forward declaration 2006-06-16 05:53:43 +00:00
Ron Pedde ce85c85aa0 win32 header fixes; cleanups. 2006-06-16 05:50:21 +00:00
Ron Pedde 1dc1257f2c add rescan/full rescan methods to xml-rpc for ticket #121 2006-06-15 07:10:05 +00:00
Ron Pedde 603ce10fae Attempt to fix #147 - long song lists hang soundbridge... need grommet to test 2006-06-15 04:26:01 +00:00
Ron Pedde a533430540 Another attempt at #153 2006-06-15 04:16:22 +00:00
Ron Pedde eb403982b8 Fix MAX_PATH/PATH_MAX issue, closing #153 2006-06-15 00:28:58 +00:00
Ron Pedde 97328767d8 Don't do startup scan (unless requested) when scan_interval is set to 0 2006-06-14 04:33:27 +00:00
Ron Pedde 52809bb712 add testing for stdint for uintXX_t 2006-06-14 04:19:17 +00:00
Ron Pedde 042a249c07 scanner framework update to include corefoundation 2006-06-13 08:13:08 +00:00
Ron Pedde 0b9505e63b Win32 cleanups for aiff support. 2006-06-13 05:49:22 +00:00
Ron Pedde 1948eef43d Purge unindexed music files after the song scan, fixing ticket #146. This needs much testing. 2006-06-13 05:48:30 +00:00
Ron Pedde bff6193572 Support for log truncation. 2006-06-13 05:45:58 +00:00
Ron Pedde 57debc0493 add support for POPM in mp3 files, closing ticket #149 2006-06-13 05:30:54 +00:00
Ron Pedde 166d351ad1 fix wm/shareduserrating 2006-06-13 02:57:45 +00:00
Ron Pedde a1e2bc3799 add -a switch for mac .app bundle 2006-06-13 02:27:21 +00:00
Ron Pedde d4b78197b2 Fix typo on art_filename (possibly fixing cover art?) closing #140 and #94 2006-06-12 06:53:56 +00:00
Ron Pedde d05c9ad5c2 Don't transcode alac to iTunes clients 2006-06-12 06:11:34 +00:00
Ron Pedde fc0cea1d49 first pass at aif support. Doesn't honor the ID3 block, but should get merged by the iTunes XML file. Closes #141 2006-06-12 05:41:36 +00:00
Ron Pedde ee5955cb30 logoing changes 2006-06-09 05:06:35 +00:00
Ron Pedde a1c2a47f2b Make event logs register correctly, turn down the select error on windows rendezvous, and fix crash on short mp3 files. 2006-06-08 10:10:23 +00:00
Ron Pedde c6075137bf Add wmav back in, make wma transocing for non-standard bitrates and samplerates. 2006-06-07 05:43:15 +00:00
Ron Pedde 606858a02f stop crash on unknown song_length 2006-06-07 04:38:54 +00:00
Ron Pedde 53125647d6 segv when error not set, thanks to kit from forums 2006-06-07 03:24:39 +00:00
Ron Pedde b36c4a12d6 Disable wma voice pending further debugging. 2006-06-06 05:22:54 +00:00
Ron Pedde 8f8a5a5cb7 Add plugin for wma transcoding based on windows media format 9.5 SDK. 2006-06-05 04:18:33 +00:00
Ron Pedde 15ae458b87 new codectype for wma voice 2006-06-05 03:37:33 +00:00
Ron Pedde 0554045c32 add framework for testing transcoder dlls 2006-06-04 09:31:32 +00:00
Ron Pedde 2ca9a89ccf add wmal and wmap codectypes for wma lossless and wma pro 2006-06-04 08:13:50 +00:00
Ron Pedde 2072b9eaf2 Calculate bitrate without header 2006-06-04 04:51:52 +00:00
Ron Pedde d2bb534ddd Better estimate of bitrate on mp3 files 2006-06-04 04:45:47 +00:00
Ron Pedde 998fdcc9d0 Lower debug load by only event plugining level E_LOG or lower 2006-06-04 03:36:27 +00:00
Ron Pedde 23e5a964d5 Fix sample rate and bitrate for rsp and daap, fixing #134 2006-06-03 09:17:17 +00:00
Ron Pedde 5a9ecc0191 tune logging 2006-06-03 07:47:40 +00:00
Ron Pedde bb9c3fe75b implement password handling for rsp 2006-06-03 06:10:16 +00:00
Ron Pedde 93ef128cfb Add browse type detailed for rsp 2006-06-03 06:02:03 +00:00
Ron Pedde bdc4fdc425 compile first, then commit. even on one-liners. stupid stupid stupid. 2006-06-01 06:27:16 +00:00
Ron Pedde 95dd1048be Don't send scan stopped events if the scan was aborted by service shutdown 2006-06-01 06:20:55 +00:00
Ron Pedde 6fd6a1c9bb Make the no_access page work for blank admin_pw 2006-06-01 06:17:26 +00:00
Ron Pedde b3682a2d11 implement configfile for the no_access page 2006-06-01 05:04:13 +00:00
Ron Pedde 704822faa0 fix debuglevel not being honored in config 2006-06-01 04:21:31 +00:00
Ron Pedde b5e2f92f19 fix crash on web interface when saving config 2006-06-01 04:19:26 +00:00
Ron Pedde c0e5416071 Fix problem with remotely accessing config page 2006-05-31 09:50:27 +00:00
Ron Pedde 7b19b6f533 Fix event dispatching across platforms, clean up icon on win32, update installer template. 2006-05-31 08:34:52 +00:00
Ron Pedde f0434c8c8f win32 cleanups 2006-05-31 08:33:23 +00:00
Ron Pedde 8a6b2ee00a Fix the opportunistic encoding thing -- only transcode to platforms that need it 2006-05-31 06:07:42 +00:00
Ron Pedde 9e5cb8879d turn down debugging info in xml-rpc.c 2006-05-31 05:43:10 +00:00
Ron Pedde ec00f049f1 Make blank admin password disable the admin interface for all but localhost 2006-05-31 04:24:48 +00:00
Ron Pedde b567d86d46 escape commas in multivalued string, closing ticket #128 2006-05-31 04:15:06 +00:00
Ron Pedde f15d1d7d96 Check all parameters before writing them to the config file, send meaningful information to web client on bad update 2006-05-31 02:33:23 +00:00
Ron Pedde 5486e8c76a Logging fixups -- allow multiple log destinations, always syslog fatals (even before config read), honor logging changes via web interface 2006-05-30 23:46:43 +00:00
Ron Pedde 86cc769b2d Fix crash on connect with no plugins 2006-05-30 19:31:55 +00:00
Ron Pedde a159058bf7 Make int/string descriptors interchangeable on wma tags 2006-05-30 19:28:25 +00:00
Ron Pedde 7f84afb786 get rid of mtd-plugins.h in favor of combined plugin header file ff-plugins.h 2006-05-29 11:58:23 +00:00
Ron Pedde ef8ebaf93d get rid of uninitialized value, closing ticket #120 2006-05-29 11:52:28 +00:00
Ron Pedde 770a583dcf Make conf writer write multivalued properties as comma separated 2006-05-29 11:29:51 +00:00
Ron Pedde 920cb31052 force section and key names to not have spaces. Fixes problems in the configurator 2006-05-29 11:25:09 +00:00
Ron Pedde 7f08580a24 Merge from dev-FireflyShell branch 2006-05-29 09:14:04 +00:00
Ron Pedde 0a14704fd9 Maybe fix for frontrow problems? 2006-05-29 07:57:45 +00:00
Ron Pedde bc0f4889ad back out changes to xml-rpc.c 2006-05-29 07:37:31 +00:00
Ron Pedde b9e14d22ed Fix format string problems in rsp.c 2006-05-29 07:37:00 +00:00
Ron Pedde 54be2c1c41 minor syntax fixes 2006-05-28 20:11:15 +00:00
Ron Pedde 1dfb7d0bc0 add ogg metainfo parsing, and ogg playback. fix problems with not recognizing when to transcode on rsp 2006-05-28 08:45:44 +00:00
Ron Pedde e7d04dbd6b Add support for flac metatag reading and playback on win32. 2006-05-28 06:36:28 +00:00
Ron Pedde 89b6af89b3 Fixes to build, install, and run ffmpeg ssc on win32 2006-05-28 06:11:37 +00:00
Ron Pedde 0f64686356 add ffmpeg-based transcoding 2006-05-28 04:06:14 +00:00
Ron Pedde 0285f0bdc0 shorten name mangling on rsp 2006-05-27 10:37:46 +00:00
Ron Pedde b03942bfba Add the ffmpeg transcoding plugin 2006-05-27 10:33:08 +00:00
Ron Pedde 27f4765408 fix for new plugin format 2006-05-27 08:50:09 +00:00
Ron Pedde b3fbb9bbd5 abstract the plugin interface to the db to prepare for db plugins and making daap a plugin 2006-05-27 08:02:39 +00:00
Ron Pedde 9705113b40 add a ffid txt record so rsp and iTunes entries can be correlated 2006-05-24 05:14:58 +00:00
Ron Pedde fb2e9382c5 ephemeral port fixups for win32 2006-05-24 05:04:44 +00:00
Ron Pedde fb1b1f8f1c Make wavstreamer compile under win32 2006-05-24 04:58:46 +00:00
Ron Pedde a9cb506963 Make windows slashed playlists work on unix (and vice versa) 2006-05-24 04:53:44 +00:00
Ron Pedde b0f3a6efb9 Fix double-free in wma parsing causing crash on scan 2006-05-24 04:25:21 +00:00
Ron Pedde 41aabeeab9 Make port optional config value, searching for unused port if necessary. Closes #110 2006-05-24 04:19:44 +00:00
Ron Pedde 88999e7d49 Make bad xml-rpc methods return xml error message rather than http error message, fixing #108 2006-05-24 03:56:06 +00:00
Ron Pedde 80f7c87567 Make default server name based on hostname, fixing #111 2006-05-24 03:53:22 +00:00
Ron Pedde e11f7e2b30 path browse fixes for win32 (update readdir_r to support DT_REG) 2006-05-19 05:28:52 +00:00
Ron Pedde a443cef62e browse enhancement for #98 2006-05-19 05:22:27 +00:00
Ron Pedde 04ed0711a4 Fix problem reported in #7 2006-05-19 05:10:08 +00:00
Ron Pedde 65147d6278 apply VC express 2005 patch from Mike Crowe 2006-05-19 04:55:19 +00:00
Ron Pedde aca2f7701f Make script-based transcoding work on rsp 2006-05-19 04:50:45 +00:00
Ron Pedde 3eef14e1cf add missing web interface files, fix minor memory leak in event handler 2006-05-18 06:30:11 +00:00
Ron Pedde 703221c715 fix for ticket #7 -- empty values delete items 2006-05-18 05:11:07 +00:00
Ron Pedde 1b723bca94 fix crash on scan 2006-05-18 03:02:02 +00:00
Ron Pedde cb9598608b fix error code on xml_return_error 2006-05-17 06:44:56 +00:00
Ron Pedde 64eed880d3 Fix rating on wma 2006-05-17 05:53:02 +00:00
Ron Pedde b48e99dd70 make bulk update of config file work 2006-05-17 05:42:32 +00:00
Ron Pedde f9a3b37583 add helpful error messages for onblur validation 2006-05-17 03:43:44 +00:00
Ron Pedde 1003812ee9 expose the single-key validation 2006-05-16 06:39:09 +00:00
Ron Pedde c99e0c23dc start on validating single items 2006-05-16 06:22:32 +00:00
Ron Pedde 11fa293e41 buffer output on web pages, make safari faster 2006-05-14 04:14:50 +00:00
Ron Pedde c8b10769a2 Oops.. move the wma tags to the right place 2006-05-11 07:06:00 +00:00
Ron Pedde fae19b3b63 wma tag realignments 2006-05-11 06:50:47 +00:00
Ron Pedde eb7d0e7e0d force ie not to cache .xml files 2006-05-11 06:05:50 +00:00
Ron Pedde 08ddf8a24a Fix compile problem on unix 2006-05-11 05:36:35 +00:00
Ron Pedde b780bac291 make iTunes playlists work on win32 2006-05-09 07:17:46 +00:00
Ron Pedde 36f35206dc make browse_path work on win32 -- implement d_type in readdir_r emulation. 2006-05-09 05:51:08 +00:00
Ron Pedde bcdc603b40 Make m3u parser recognize windows path separators, as well as windows drive letters. This fixes both bug #104 and #105. 2006-05-09 05:48:29 +00:00
Ron Pedde e16844dbee Fix logging error that crashes on bad database 2006-05-08 05:36:15 +00:00
Ron Pedde 658bf223f2 fix ticket #97 by only selecting non-empty values 2006-05-08 04:18:22 +00:00
Ron Pedde 75ae3c6d26 tune down debug logging some more 2006-05-08 04:02:55 +00:00
Ron Pedde 97cf6ae2d8 Add browse_path method to xml-rpc, closing ticket #98 2006-05-08 03:40:32 +00:00
Ron Pedde 6db7465303 Fix plugin install path, fixing ticket #102 2006-05-07 04:41:03 +00:00
Ron Pedde d000f503e9 adjust logging spam on gzipped output 2006-05-07 02:58:40 +00:00
Ron Pedde 7c3b08cd53 prefer wma wm/tracknumber over wm/track 2006-05-06 22:34:46 +00:00
Ron Pedde ba1214e0e4 oops... this was already working. 2006-05-06 07:35:29 +00:00
Ron Pedde 6f281d4cfb Fix rend publishing for plugins 2006-05-06 07:32:37 +00:00
Ron Pedde cfaceb8d94 Add fullscan events, make configurator display fullscan items. 2006-05-06 07:22:51 +00:00
Ron Pedde 2350b5a6f5 Serve xml files with a content type of text/xml, closing ticket #100 2006-05-06 03:25:29 +00:00
Ron Pedde 5de59a26aa fix deadlock on event plugin 2006-05-05 07:38:13 +00:00
Ron Pedde 4440ac7013 add event plugin type 2006-05-04 06:20:26 +00:00
Ron Pedde 4fd83e45a9 Fix blindingly obvious utf-16 to utf-8 bug, fixes bug #89 2006-05-03 04:21:28 +00:00
Ron Pedde 00dd561aac Fix bad track parsing on wma 2006-05-03 03:37:31 +00:00
Ron Pedde 713068402a Add missing files to plugin dir 2006-05-02 06:41:20 +00:00
Ron Pedde 757e576537 make empty password same as unspecified password. 2006-05-02 06:12:38 +00:00
Ron Pedde e60d1f75ec invert the sense of the -s switch, default skipping intial scan 2006-05-01 08:06:19 +00:00
Ron Pedde f68f7678fb Fix PATH_MAX too short on win32 2006-05-01 03:59:05 +00:00
Ron Pedde 465b1258a3 Update rsp to latest version, integrate rsp build with standard win32 build 2006-05-01 03:14:15 +00:00
Ron Pedde 553c57ccc1 Add rsp files 2006-04-30 23:02:35 +00:00
Ron Pedde a2ea8c3de0 Consider loopback addresses local (for passwordless access to config page on win32) 2006-04-28 05:31:42 +00:00
Ron Pedde 4a1609cb2d revert u_int32_t changes for solaris -- must autoconfiscate, fixups for debian 2006-04-28 05:10:06 +00:00
Ron Pedde df264d56da oops, put ignore_appledouble in wrong section 2006-04-27 07:18:16 +00:00
Ron Pedde e3ba86f03a add scanning/skip_appledouble and scanning/ignore_dotfiles to close #82 2006-04-27 07:15:05 +00:00
Ron Pedde eba07e1e15 Make iTunes .xml file authoritative for songs outside the mp3_dir, closing #84 2006-04-27 06:59:46 +00:00
Ron Pedde 5ed16bc1ca fix bad seek resync on large tags (covr) 2006-04-27 06:12:43 +00:00
Ron Pedde f6bab734d1 Allow nulls in txt entry for rend registration 2006-04-26 03:29:43 +00:00
Ron Pedde 1ca265d4c5 Let plugins register rendezvous names 2006-04-25 23:13:04 +00:00
Ron Pedde 07857c6eba Update win32 for zlib 1.2.3 2006-04-25 20:46:03 +00:00
Ron Pedde b10762b4d5 Move xml stuff out of plugins 2006-04-25 10:02:43 +00:00
Ron Pedde 1b8244b7f3 Add auth handler to plugin 2006-04-24 08:44:04 +00:00
Ron Pedde e2fd480c78 pass functions to plugins through struct, rather than relying on auto-exported functions from executable 2006-04-23 04:42:18 +00:00
Ron Pedde c2c4bb1542 Add plugin headers 2006-04-23 02:06:05 +00:00
Ron Pedde 15e6302fc0 Bring win32 up to current 2006-04-22 20:03:26 +00:00
Ron Pedde b4bc212f65 Make auth requests for plugins work 2006-04-22 19:45:49 +00:00
Ron Pedde eed9619063 Make auth handers receive connection info 2006-04-22 18:22:41 +00:00
Ron Pedde 2fd2f15d23 Make plugins use reader/writer locks rather than semaphores, that they might be re-entrant 2006-04-22 18:22:24 +00:00
Ron Pedde 433a2ce666 More plugin work 2006-04-21 06:43:41 +00:00
Ron Pedde 1af9e8c08e more plugin work 2006-04-20 06:52:21 +00:00
Ron Pedde ff0491f798 Forgot the most important parts of the last commit 2006-04-20 04:08:12 +00:00
Ron Pedde fd0d5cbbd9 start plugin infrastructure 2006-04-19 08:32:18 +00:00
Ron Pedde e3fc9fa94c Fix errors introduced by r962 on unix side 2006-04-17 04:56:22 +00:00
Ron Pedde 201ab40e73 Fix warnings from bad prototype 2006-04-16 05:14:22 +00:00
Ron Pedde 7b32ce3022 pass hostname to auth functions so auth functions can set passwords based on host. Also, make win32 not require passwords to config page from localhost. Ticket #76 2006-04-16 04:57:04 +00:00
Ron Pedde 882111a52a reopen log and re-read config on sighup -- fixes ticket #73 2006-04-15 23:03:31 +00:00
Ron Pedde 7907540aa5 Bring win32 up to date with compat changes 2006-04-15 22:39:45 +00:00
Ron Pedde 6979a7a67e Fixes for compiling on solaris -- fixes #66 and #5 2006-04-15 08:53:56 +00:00
Ron Pedde ad0455d09a more gdbm 2006-04-13 02:19:56 +00:00
Ron Pedde 267528f070 Make mp3_dir multivalued, closing ticket #16 2006-04-12 05:18:55 +00:00
Ron Pedde 964285cf41 Minor win32 fixes, fix path parsing in conf validation to fix ticket #48 2006-04-10 19:02:39 +00:00
Ron Pedde f83f66130b add config_path and version items to stats xml-rpc. Fixes ticket #33. Take 2. :) 2006-04-10 17:59:10 +00:00
Ron Pedde bb5866fd21 make mtd-update not depend on sqlite 2006-04-10 07:38:26 +00:00
Ron Pedde e0597644b7 finish implementing xml-rpc for config values, closing ticket #33 2006-04-10 06:33:57 +00:00
Ron Pedde f40cf8eb8f make scanner-driver show reslution with millisecond accuracy 2006-04-10 05:26:22 +00:00
Ron Pedde 61d2cd0df1 Fix playlist updating when updating smart playlist but not editing name. Fixes ticket #56 2006-04-10 05:14:43 +00:00
Ron Pedde 86a44ea550 Fix crash on invalid smart playlist 2006-04-10 04:52:14 +00:00
Ron Pedde 8ca978322a fix error messages on bad schema 2006-04-10 04:27:52 +00:00
Ron Pedde c7cc788a1d add external database update program (mtd-update) 2006-04-10 04:18:38 +00:00
Ron Pedde 92e967e78c set default config file location based on prefix 2006-04-09 01:35:10 +00:00
Ron Pedde e6b57ef704 properly implement mtco for indexed operations. Fixes ticket #53 2006-04-08 23:25:30 +00:00
Ron Pedde 5ce3ebbb86 make ogg reading errors non-fatal, fixes bug #51 2006-04-08 06:11:28 +00:00
Ron Pedde 66fa97e8d1 bad first pass at setting config stuff... doesn't work for multivalued config values 2006-04-07 06:55:04 +00:00
Ron Pedde b147348dbd more defensive aac scanning to fix bug #47 2006-04-05 06:31:33 +00:00
Ron Pedde 0028d16aa0 update scanner and parser makefiles. Deps really have to be trimmed 2006-04-05 05:11:28 +00:00
Ron Pedde c5fcb96aed make update support configurable 2006-04-05 04:18:18 +00:00
Ron Pedde 78455709c2 add xml-rpc method for getting config 2006-04-04 06:31:19 +00:00
Ron Pedde 860f853778 Expand tabs 2006-04-04 04:28:07 +00:00
Ron Pedde fa2a3a1005 Make transcoding work for codec types that aren't known 2006-04-03 03:47:11 +00:00
Ron Pedde 5d967ead1e 80 col cleanups 2006-04-03 02:24:58 +00:00
Ron Pedde 96686cd917 Fix errors in null codectype when empty_strings enabled 2006-04-03 02:22:02 +00:00
Ron Pedde 805708da1f retrieve strings from database as blobs rather than strings to stop mangling codepage filenames. Fixes ticket #38 2006-03-31 22:40:38 +00:00
Ron Pedde 43bbf96024 anti-ie defensive anti-caching 2006-03-31 22:23:18 +00:00
Ron Pedde 8fc0ab5272 Kind of a cheesy fix for #26, and not strictly correct, but close enough. Better would be to declare a path separator char in the os stuff. 2006-03-31 09:41:27 +00:00
Ron Pedde 3b31d22c02 Fix bug #9 and #10 -- by making error statuses persistent, the win32 password problem goes away, as does the reprompting on bad password attempts. Nice. 2006-03-31 07:29:51 +00:00
Ron Pedde cbf607fd2e bad fix for ticket #31 -- there is a more elegant way to do this, but this will have to work for now 2006-03-31 06:12:37 +00:00
Ron Pedde 7bace3ab5a Fix for null thread status on a blocked db update thread 2006-03-31 05:02:47 +00:00
Ron Pedde b1ed033d9e rollback r884 and r885, the json mess. Probably cleaner to make an xml-building api that more cleanly maps to json 2006-03-30 04:13:20 +00:00
Ron Pedde a2528eba8c Fix ticket #27 -- make errors in dispatch return dmap/xml errors rather than HTTP errors 2006-03-30 03:53:39 +00:00
Ron Pedde 970a75f00e win32 fixes 2006-03-29 22:02:42 +00:00
Ron Pedde a1a4ba9c1b Fix ticket #28 -- incorrect song duration on wma files. Also update scanner driver for new config, etc 2006-03-29 05:08:57 +00:00
Ron Pedde dfcc54342b fix minor typo in error message 2006-03-29 05:08:13 +00:00
Ron Pedde 8ebc66e5db typo. argh. 2006-03-29 04:42:28 +00:00
Ron Pedde 23e2bab36b Make sure that 'Library' isn't editable 2006-03-29 04:41:57 +00:00
Ron Pedde c67af0fb50 Fix for #23 -- playlist name or query can be null now 2006-03-29 04:40:35 +00:00
Ron Pedde 8d8178b46e almost json on the non-dmap version 2006-03-28 23:36:23 +00:00
Ron Pedde a102c38763 json harder than I thought 2006-03-28 07:49:39 +00:00
Ron Pedde 476ee42faf starting simple gdbm backend 2006-03-27 01:48:43 +00:00
Ron Pedde 96753e59ca Implement subcontainer browsing, closing ticket #3 2006-03-26 23:24:11 +00:00
Ron Pedde 9a396eca29 Make compdirs work again, closing ticket #15 2006-03-26 22:07:33 +00:00
Ron Pedde 1a71d3bdd7 tab exapand 2006-03-26 19:47:30 +00:00
Ron Pedde f1037ae45a tab expand 2006-03-26 19:46:55 +00:00
Ron Pedde abee2d9792 autocreate directories from config file 2006-03-26 04:55:59 +00:00
Ron Pedde e1a1c7f18a oops, forgot headers 2006-03-25 23:27:55 +00:00
Ron Pedde 0b11dc0e39 Make failures in mp3 scanning non-fatal (in case of bad mp3_dir) 2006-03-25 23:21:43 +00:00
Ron Pedde 0eb3160bbc add path verification and creation to config file 2006-03-25 23:21:16 +00:00
Ron Pedde 51a3a6279c -Wall cleanups 2006-03-25 11:15:53 +00:00
Ron Pedde 4d1555ec2b untabify err.c 2006-03-25 10:52:10 +00:00
Ron Pedde 75fab9657d Fix parser crash on empty strings 2006-03-24 22:29:24 +00:00
Ron Pedde 1cca7d3a53 index support, closes ticket #1 2006-03-24 19:23:47 +00:00
Ron Pedde be8eef8384 Fixes for sqlite3 from jlbz on the forums, walk out the thread pooling 2006-03-24 05:10:29 +00:00
Ron Pedde 35d7a9bc61 Fix double-free in logout 2006-03-23 02:57:39 +00:00
Ron Pedde 2fbb744e6f string splitting function 2006-03-20 22:27:56 +00:00
Ron Pedde 5020ed6884 start toward multi-entry terms 2006-03-19 22:03:26 +00:00
Ron Pedde b8c423321a Fix problems with date based queries 2006-03-19 06:43:32 +00:00
Ron Pedde 185f26d240 Fix obvious misorder of L_XML and L_PARSE 2006-03-19 06:42:23 +00:00
Ron Pedde 9612a26af6 only debug parser info 2006-03-19 06:33:53 +00:00
Ron Pedde 2882146e62 Fix for static error lists 2006-03-19 06:33:30 +00:00
Ron Pedde 0b7968d468 Fix browse problem with empty content 2006-03-19 05:26:51 +00:00
Ron Pedde 7fe019693b commit tri's concatination stuff 2006-03-19 00:16:02 +00:00
Ron Pedde 75868e50aa make daap parser emit empty strings when daap/empty_strings is set -- for better xbmc compatibility 2006-03-17 08:50:13 +00:00
Ron Pedde d5da21ae85 warn of null keys in ll 2006-03-17 08:49:22 +00:00
Ron Pedde 779a139c9d Fix up overflows in comment resizing 2006-03-16 23:56:49 +00:00
Ron Pedde 850fd90d45 take out references to query.h, as it is being done now by smart-parser 2006-03-16 23:56:34 +00:00
Ron Pedde ebe7f7a861 Get rid of query.c and query.h, as they are now done via smart-parser.c 2006-03-16 08:02:44 +00:00
Ron Pedde 5163942322 new dmap atoms 2006-03-14 07:28:59 +00:00
Ron Pedde f0ee070937 win32 cleanups 2006-03-14 00:45:33 +00:00
Ron Pedde be7bdfbbfb config file upgrading 2006-03-13 06:33:58 +00:00
Ron Pedde d5bfeba7da working toward comment preservation 2006-03-12 21:25:29 +00:00
Ron Pedde 0cbc4a22d6 Fix double-free in dispatch.c 2006-03-12 11:38:38 +00:00
Ron Pedde 90dc66110a Complete unifying smart playlists and query/filters 2006-03-12 11:30:58 +00:00
Ron Pedde ae22cba1ae fix for type punning warning on gcc 4, thanks to pietu 2006-03-12 00:39:26 +00:00
Ron Pedde 4927155787 Fix string scanning for quoted literals 2006-03-12 00:29:48 +00:00
Ron Pedde 4964fb1374 almost have both query types working 2006-03-10 23:41:13 +00:00
Ron Pedde e1c98c5fda make a translation from daap/dmap items to field names 2006-03-10 05:51:53 +00:00
Ron Pedde 8ba1c68d62 fix smart parsing, now just need to finish the browse/query parsing 2006-03-10 04:00:38 +00:00
Ron Pedde 2b6b8cd208 parser still not quite working on both queries and smart playlists 2006-03-09 23:54:00 +00:00
Ron Pedde 43afe26932 Working toward single smart playlist/query parser 2006-03-07 23:37:42 +00:00
Ron Pedde c635c85e95 fix limits.h 2006-03-07 07:55:36 +00:00
Ron Pedde a6675697be realpath fixes 2006-03-07 07:03:00 +00:00
Ron Pedde 5917ca0cda trivial logging 2006-03-07 07:02:34 +00:00
Ron Pedde ec087d86ec make auth handler take effect on /content-codes, just like iTunes does. 2006-03-07 07:02:03 +00:00
Ron Pedde 942125f271 type fixes 2006-03-07 06:07:34 +00:00
Ron Pedde 8e9d759e05 make sqlite3 thread-safer(?) by using a thread pool 2006-03-07 06:01:59 +00:00
Ron Pedde d53e2f83e4 revert to 1.11 2006-03-06 08:32:43 +00:00
Ron Pedde f79756769a more attempts at sqlite3 fixage 2006-03-06 08:29:58 +00:00
Ron Pedde f037a53452 crazy fixes for sqlite3 2006-03-06 07:48:53 +00:00
Ron Pedde 11650fbf76 fix typo 2006-03-06 06:55:58 +00:00
Ron Pedde 0c05af2610 finalize on error on enum_fetch 2006-03-06 06:55:51 +00:00
Ron Pedde a6248dfc98 Add sqlite3, fix minor compilation problems 2006-03-06 06:29:03 +00:00
Ron Pedde dad6b9e9d5 add debugging code to try and find the sqlite3 double-free bug 2006-03-06 01:35:49 +00:00
Ron Pedde cf59f7dc33 fix up txt records to show password info, mtd-version, and itunes version 2006-03-05 08:09:27 +00:00
Ron Pedde 4b728b899d Fix some races in sqlite3 2006-03-05 05:40:48 +00:00
Ron Pedde 1e48e88215 Add ability to concat title and artist on compilation tracks 2006-03-05 02:03:11 +00:00
Ron Pedde 9e5f21db7f fix for STDERR problem in rend-unix 2006-03-05 02:02:15 +00:00
Ron Pedde ea2eeb24b1 Fix byte order problem on wrong-endian machines 2006-03-05 02:01:46 +00:00
Ron Pedde 58236d00c1 close STDERR on fork 2006-03-05 02:01:22 +00:00
Ron Pedde 97fea2ff84 Fix play count updating 2006-03-04 08:29:57 +00:00
Ron Pedde 90d5e1fa4c Fix problem with relative paths in config file 2006-03-03 06:05:34 +00:00
Ron Pedde e53562943f still need to update atom and type for new metas 2006-03-02 07:03:48 +00:00
Ron Pedde c92b0ed841 Fix configfile errors 2006-03-02 05:17:47 +00:00
Ron Pedde 6a824aa09a Fix for iTunes 6.0.4 2006-03-02 00:39:52 +00:00
Ron Pedde 64415a5c42 fix bug in opendir/readdir emulation 2006-03-01 23:25:50 +00:00
Ron Pedde d44bd674c1 fix wait3 problem on linux 2006-02-28 05:23:59 +00:00
Ron Pedde e5dd11b090 fix errors when using a null default in conf_get_string 2006-02-27 23:39:11 +00:00
Ron Pedde 0918494faf unused variables 2006-02-27 22:55:05 +00:00
Ron Pedde 096a2a4dbc make more ansi-ish 2006-02-27 22:54:40 +00:00
Ron Pedde 940cfed25e fix typo 2006-02-27 22:53:57 +00:00
Ron Pedde 73636a5a4c add ini style config handling 2006-02-27 22:48:42 +00:00
Ron Pedde 9a133dcbdc Merged win32-branch 2006-02-26 08:46:24 +00:00
Ron Pedde 4402588e2d Finish out the config file stuff. Only missing comment preservation now 2006-02-21 23:19:53 +00:00
Ron Pedde 1d0a3c4149 More fixes for new config system 2006-02-21 03:08:14 +00:00
Ron Pedde 87f84ded09 Work on config fetching functions 2006-02-20 03:56:47 +00:00
Ron Pedde 2915c1e9c9 Annoying fprintf 2006-02-20 03:36:57 +00:00
Ron Pedde b5abd3faf9 Minor updates 2006-02-14 06:39:06 +00:00
Ron Pedde 3d27be7405 More incremental config changes 2006-02-08 23:02:43 +00:00
Ron Pedde 49e9b3be32 slowly working on the config changes 2006-02-05 00:22:46 +00:00
Ron Pedde 9bfbfa8615 Herman's web interface fixes 2006-01-26 15:08:11 +00:00
Ron Pedde 593bcda38f just saving my changes 2006-01-25 22:31:53 +00:00
Ron Pedde a6f5be301c More config file changes 2006-01-24 23:41:05 +00:00
Ron Pedde 6efb792704 Implement playcount updating 2006-01-24 04:17:38 +00:00
Ron Pedde 048bef92ed Initial checkin 2006-01-24 00:18:42 +00:00
Ron Pedde b20dece00b Only use transactions on reload to avoid busy errors 2006-01-20 15:55:51 +00:00
Ron Pedde 2967af19ea stop file collissions with sqlite2 2006-01-20 15:52:42 +00:00
Ron Pedde bf9e414169 Fix races in enum 2006-01-17 21:35:39 +00:00
Ron Pedde c7233f0947 bubble parse errors up to the web interface 2006-01-16 22:28:26 +00:00
Ron Pedde 31879fd091 add true/false definitions here 2006-01-16 22:28:08 +00:00
Ron Pedde 4116a68166 fix parse error 2006-01-16 22:27:49 +00:00
Ron Pedde 4b7b5d78fc Add diego's configure patches 2006-01-16 20:23:50 +00:00
Ron Pedde 38ad8000f6 fix typo 2006-01-16 20:13:35 +00:00
Ron Pedde 961f986414 semicolon fix 2006-01-16 10:11:33 +00:00
Ron Pedde 7e65fd67f4 Fix problem with values with % in them 2006-01-13 22:23:42 +00:00
Ron Pedde 8dfea7dee3 Add video support for m4v files 2006-01-12 08:10:48 +00:00
Ron Pedde 7b6560c651 typo 2006-01-12 06:53:25 +00:00
Ron Pedde 40ab6dfb01 Preserve playlists on db upgrades 2006-01-12 06:20:15 +00:00
Ron Pedde 10b5d73ca0 Fix deadlock in updating playlists 2006-01-12 00:39:50 +00:00
Ron Pedde b02eed1195 fix the hidden directory thing 2006-01-12 00:36:05 +00:00
Ron Pedde 01180d60f1 return id from db_add 2006-01-10 23:57:43 +00:00
Ron Pedde 2e00839a36 Fix thinko breaking static playlists 2006-01-10 06:00:21 +00:00
Ron Pedde 55bc7986de Fix problem with blank db_dirs, now that it isn't necessary anymore :) 2006-01-07 08:22:23 +00:00
Ron Pedde c0752c13ac fix playlist fd leak 2006-01-07 08:15:51 +00:00
Ron Pedde 4e6219272a Fix problem with key violations on updates from itunes xml 2006-01-07 07:42:44 +00:00
Ron Pedde f1acc3bc88 Add sqlite3 files 2006-01-06 19:11:01 +00:00
Ron Pedde 3a6ec603a1 add sqlite3 support 2006-01-06 17:43:38 +00:00
Ron Pedde e0ce8f273f add db_type and db_parameters for specifying different backend databases 2006-01-06 00:05:02 +00:00
Ron Pedde 56502cee62 abstract out the db function pointers 2006-01-05 22:43:45 +00:00
Ron Pedde b0c2a64a63 Fix index bug 2006-01-05 18:57:38 +00:00
Ron Pedde 60555d9f8d Fix playlist count problem 2006-01-05 15:35:36 +00:00
Ron Pedde 1418a64dc9 Fix frees for nulled error pointers, other minor problems 2006-01-04 23:46:15 +00:00
Ron Pedde 86b45a028e abstract database somewhat, improve error handling 2006-01-04 20:30:44 +00:00
Ron Pedde 24f40d7956 Fixes for not, add startswith and endswith operators 2005-12-13 20:42:03 +00:00
Ron Pedde 869aa94de4 Finish stats xml-rpc method 2005-11-23 04:11:04 +00:00
Ron Pedde d0d246735e oops 2005-11-21 05:26:12 +00:00
Ron Pedde 3fe312ead6 Support infrastructure for simpler xml handler. 2005-11-20 09:50:50 +00:00
Ron Pedde 3ac71ba469 Add Timo's metacharacter escaping code and codectype passed to scripts 2005-11-20 06:42:03 +00:00
Ron Pedde d4dfc17671 Shell-escape proper metachars before popening 2005-11-19 09:02:13 +00:00
Ron Pedde 6dba7aab41 Bullwinkle: Hey Rocky -- watch me pull a rabbit out of my hat. Rocky: Again? 2005-11-17 07:20:50 +00:00
Ron Pedde 381dc7eade back out the connection persist force 2005-11-17 05:14:52 +00:00
Ron Pedde 0851b29812 *really* fixed the race this time 2005-11-17 05:09:42 +00:00
Ron Pedde 5733445333 fix some more trivial problems 2005-11-16 05:03:17 +00:00
Ron Pedde 51274d7b03 Show idle threads in thread status 2005-11-15 07:41:50 +00:00
Ron Pedde a9e2d3a1b5 close fixes, obvious bug in webserver.c 2005-11-15 07:27:14 +00:00
Ron Pedde 9f5eabdabf fix obvious error in thread enumeration 2005-11-15 06:43:31 +00:00
Ron Pedde c52a0c9986 workaround for client that claim http 1.0 2005-11-14 05:40:54 +00:00
Ron Pedde a57b002243 Fix for races in thread status 2005-11-14 04:30:12 +00:00
Ron Pedde dee22896a8 codectype transcoding 2005-11-11 23:52:42 +00:00
Ron Pedde 230eaa0aba fix xml-rpc for thread status 2005-11-07 06:13:10 +00:00
Ron Pedde a82c564426 move the thread status stuff into the webserver, add status info to xml-rpc 2005-11-07 05:58:05 +00:00
Ron Pedde a35a59af31 Add date parsing and unary negate operator 2005-11-06 21:06:07 +00:00
Ron Pedde f127d8cb58 allow editing of smart playlists 2005-11-03 05:02:17 +00:00
Ron Pedde 88ab086900 musepack fixes by slomo 2005-11-03 03:46:26 +00:00
Ron Pedde 0821b9ce9d musepack support from slomo 2005-11-02 04:45:25 +00:00
Ron Pedde 679f253de8 Build indexes on playlists, comment out the playlist order stuff, until further investigation 2005-10-31 23:44:16 +00:00
Ron Pedde eefb9939b9 Start of date-based playlists 2005-10-29 21:23:43 +00:00
Ron Pedde cb42785a36 xing header alignment problems fix, hat tip to Paul Forgey 2005-10-29 15:49:11 +00:00
Ron Pedde fc2c656317 nslu fix for tag lenth in xml serialization 2005-10-26 07:13:53 +00:00
Ron Pedde 97652ba6fa simpler queries for nslu2... speed up playlist enumeration 2005-10-26 06:23:27 +00:00
Ron Pedde 64e1af83a4 Fixes for mlit to xml translation with string length of 0, suggested by Stefan Bruns 2005-10-26 06:00:54 +00:00
Ron Pedde 4c89c687a6 pidfile patches from Diego Petteno 2005-10-26 05:10:19 +00:00
Ron Pedde 283261585d Fix dist files 2005-10-24 06:14:36 +00:00
Ron Pedde 662795acb6 Add includes keyword 2005-10-24 00:18:08 +00:00
Ron Pedde 1c7c77be1c Check for valid playlist on add 2005-10-24 00:17:56 +00:00
Ron Pedde 8d3d31d119 integrate smart playlist parsing into the database 2005-10-23 07:33:24 +00:00
Ron Pedde 1d0ecad346 Fix string parsing, precedence problems, add more detailed error reporting 2005-10-22 23:05:29 +00:00
Ron Pedde dda666ea8e first pass of sql generation. Some problems in the production rules, I think, but coming along 2005-10-21 07:48:07 +00:00
Ron Pedde b32984abeb parse tree completely built, int and string values appear to be working 2005-10-20 07:33:58 +00:00
Ron Pedde 939db9fcf9 node 2005-10-18 22:35:10 +00:00
Ron Pedde 7e5535d9bd update lexer, first validating parser 2005-10-17 04:57:06 +00:00
Ron Pedde 4740aeded0 start on parsing side 2005-10-16 06:55:42 +00:00
Ron Pedde eba0f2f4fd make wavstreamer take a -l of 0, also remove long opts 2005-10-14 05:42:26 +00:00
Ron Pedde d25c5a53ca really really stupid tokenizer sort of working 2005-10-14 04:11:06 +00:00
Ron Pedde fb7931ad30 slow and steady 2005-10-13 07:38:22 +00:00
Ron Pedde edf3885e0b small changes in parser... I'll eventually get there 2005-10-06 04:48:04 +00:00
Ron Pedde 6dc8b0d29f some work on parser 2005-10-02 22:48:07 +00:00
Ron Pedde 6c15f31476 Phil Packer's m3u playlist-in-order stuff 2005-09-26 02:15:50 +00:00