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