Commit Graph

2931 Commits

Author SHA1 Message Date
ejurgensen 966a81cc77 [db] Fixup - itemcount not required for finding a playlist 2017-01-06 20:03:02 +01:00
ejurgensen 213b58c012 [db] Forgot to add Q_FIND_PL as a playlist query 2017-01-06 19:58:38 +01:00
ejurgensen 27946a472b [artwork] Add handler for playlist local artwork (for http items)
- ref https://www.raspberrypi.org/forums/viewtopic.php?p=1090166#p1090166
2017-01-06 19:35:05 +01:00
Scott Shambarger ce4ef0aa23 [config] Many updates to configuration and feature checks
- Added custom checks for libraries and pkgconfig modules that test library
 presence with additional checks for use of headers and functions with
 given options.  Also support correct additional feature library checks
 using provided flags.
- Added custom enable/disable feature macros to simplify their use.
- Use custom CFLAGS and LIBS variables for Makefiles to simplify maintenance.
- Update many feature checks from platform to function.
- Streamline many function checks.
- Correctly check gnutls, gcrypt and gpg-error libraries.
- Fix chromecast and spotify config and compile on FreeBSD
- Added inotify, signalfd and kqueue, and byte swap checks.
- Many clarifications of error messages.
- Correct json-c checks to properly use supplied CFLAGS.
- Correct many quoting inconsistencies
- Use __DATE__ in place of BUILDDATE
- Use full path for gperf and antlr3
- Remove unnecessary CFLAGS
- Added tests for pthread_setname_np parameters
- Added tests for clock_gettime and timer_settime
- Added tests for time.h
- Test if pthread, dl and rt libs are required/available.
- Updated checks for libunistring
2017-01-06 00:44:18 -08:00
ejurgensen b7c4256df4 [db] Refactor db_build_query_* to reduce redundancy 2017-01-04 22:29:47 +01:00
Scott Shambarger 8ead7ea3b8 [config] configure.ac checks required features, updated porting
Added a real config.rpath
Fixed build date calc for BSD
Require some needed headers at configure time
Correctly check libav functions using pkg-config flags
Made checks for some Linux features available on other ports
Fixed porting issue with antlr dep files
Added default HOST_NAME_MAX if not defined
Added missing libav header
2016-12-29 16:14:22 -08:00
ejurgensen ce998fb38a [rtsp] Additional logging 2016-12-29 21:30:47 +01:00
ejurgensen 80fe738583 [mdns] Fix for missing HOST_NAME_MAX on FreeBSD 2016-12-29 19:30:04 +01:00
ejurgensen 82470b5168 [filescanner] Ignore spotify/lastfm/remote during startup, they can give DB deadlocks
- see https://www.raspberrypi.org/forums/viewtopic.php?p=1087137#p1087137
2016-12-28 22:53:00 +01:00
Scott Shambarger 8b4b55b748 [config] Make gperf/antlr maintainer tools, support distcheck
Updated configure to allow gperf/antlr to be missing if products are
in distribution (allows option of building w/o those tools)
Removed circular dependency of antlr products on clean
Added missing ffmpeg-compat.h header (correct dist)
Include gperf/antlr products in dist
gperf/antlr products removed with maintainer-clean
Support vpath builds, distcheck passes
Added support for non-verbose builds
2016-12-27 15:32:08 -08:00
Scott Shambarger b38bccc458 [gperf] Renamed products to .h so they aren't built if listed in SOURCES 2016-12-27 15:08:08 -08:00
Scott Shambarger d7f8dea0ec [config] Modernize autotools
Updated AC_OUTPUT to use AC_CONFIG_FILES
Use PACKAGE in install path
Remove automake -Wno-portability, not needed with foreign option
Fixed typo in evrtsp.h path
Autotools commands moved to build-aux directory
Allow CFLAGS and package CFLAGS/LIBS to be updated at build time
2016-12-27 14:51:37 -08:00
ejurgensen e4387fe33e Merge pull request #326 from chme/tx
[filescanner] Fix nested transaction
2016-12-27 22:15:10 +01:00
chme 201f019655 [filescanner] Purge old db entries outside of the transaction in bulk
scan
2016-12-27 21:32:42 +01:00
chme be6b4376e8 [db] wrap db_purge_cruft in a transaction 2016-12-27 21:31:01 +01:00
ejurgensen 3bb6220ce9 [transcode] Make sure transcode_seek() only returns negative on error
- newer ffmpeg seems to give timestamps that give negative got_pts when seeking to 0
2016-12-27 00:02:02 +01:00
chme cf7787dbc2 [filescanner] Fix nested transaction 2016-12-24 07:44:03 +01:00
ejurgensen 1748430c48 [db] Review of cache regeneration triggers 2016-12-18 21:18:15 +01:00
ejurgensen 40d34ed4ad Merge pull request #324 from chme/db3
Remove rebuilding the persistent-ids on startup
2016-12-18 11:20:10 +01:00
chme 7856498951 [db] Remove unused functions db_files_update_songartistid,
db_files_update_songalbumid
2016-12-17 16:17:23 +01:00
chme f5fe1e665a [filescanner] Remove rebuilding of persistent ids (artist, album)
The hash is not portable, therefor this removes the ability to build the
database on a different machine than the one running forked-daapd.
It also removes the clearing of the groups table and replaces it with a
cleanup call (removes unreferenced entries from the groups table).
2016-12-17 07:38:51 +01:00
chme 3d3c27190b [db] Add function to cleanup the 'groups' table (artists and albums)
Allows removing of item no longer referenced from the files table
2016-12-17 07:38:47 +01:00
chme af774ef175 [filescanner] Remove unnecessary query for file id in process_media
The previous query for db_file_stamp_bypath already retrieves the file
id for the given path.
2016-12-17 07:11:51 +01:00
chme 351725c8b2 [db] initialize id parameter with 0 2016-12-17 07:11:43 +01:00
ejurgensen 1ab9151489 [http] Repair broken libevent 2.0 compability 2016-12-11 20:20:27 +01:00
ejurgensen 2ee4988a50 [httpd] Add missing include for event2/keyvalq_struct.h (closes #321) 2016-12-11 19:10:53 +01:00
chme de61a3a851 [db] Remove db_admin_update and rename db_admin_add 2016-12-10 06:15:43 +01:00
chme e29539fa68 [db] add primary key to admin table 2016-12-10 06:15:43 +01:00
ejurgensen ad4cdc2216 [httpd] Silence compiler warning about unused var 2016-12-09 21:49:22 +01:00
ejurgensen d7b63ebc6a Merge pull request #319 from chme/dbgetint
[db] Rename db_get_count
2016-12-09 19:29:01 +01:00
chme c4732b835f [db] Remove unused function db_file_id_byfilebase 2016-12-09 16:20:50 +01:00
chme 588fe120b7 [db] Rename db_get_count to db_get_one_int 2016-12-09 16:20:03 +01:00
chme 1221244eed [mpd] Implement consume command and return consume mode in
status command
2016-12-09 14:48:24 +01:00
chme c3e8568782 [player] Add 'consume' mode
If consume mode is active the current song is removed from the queue at
eof or if the next song action is triggered.
2016-12-09 14:48:24 +01:00
chme 94f450769d [db] Fix upgrade to v19.01 2016-12-09 07:08:14 +01:00
ejurgensen 9ba512a340 Merge pull request #309 from chme/persistentqueue3
Persistent queue
2016-12-08 21:06:17 +01:00
chme 2d1e5f6d60 [player/db] Remove function "db_file_get_seekpos" 2016-12-04 17:48:35 +01:00
chme d339f5bcd2 [db] fixup 2016-12-04 11:34:54 +01:00
chme edc609b531 [db] Queue fetch functions should end the query after start and fetch 2016-12-04 09:32:50 +01:00
chme 09c2e7ca76 [db] Add missing free of query_param.filter 2016-12-04 09:16:49 +01:00
chme fb55960b0a [db] Remove db_queue_enum struct and use generic query_params 2016-12-04 08:18:33 +01:00
chme b9117f9abd [db] Remove unnecessary setting of query param fields to 0 2016-12-04 07:42:38 +01:00
chme d431ace5c4 [db] Use a minor version update for the new queue table (v19.01 instead
of v20.00)
2016-12-04 07:28:06 +01:00
chme fdd85ccf66 [raop/dmap] Build raop metadata from queue item 2016-12-03 20:40:54 +01:00
chme ea56ee91bd [spotify] Add missing virtual path to "Saved Tracks" playlist 2016-12-03 14:53:47 +01:00
chme 6c6f02fdfa Rename "queue_item.item_id" to "queue_item.id" 2016-12-03 11:14:03 +01:00
chme eb896a1085 [db] Fix loglevel 2016-12-03 11:12:19 +01:00
chme 0251f3c514 [db] Rename "queue_add_mediafileinfo" to "queue_add_file" 2016-12-03 11:12:19 +01:00
chme b5bf1928ff [db] Rename "plversion" to "queue_version", add missing init query for
queue_version
2016-12-03 11:12:19 +01:00
chme 6c7df96371 [db] Remove forward declaration of queue_fetch_byitemid 2016-12-03 11:12:19 +01:00
chme cef4fedfb4 Remove unused structs and player arguments 2016-12-03 11:12:19 +01:00
chme 6c66d39d91 [player] Fix segfault if player reaches end of queue, fix repeat single 2016-12-03 11:12:19 +01:00
chme a0590ce548 [db/player] Icy metadata update 2016-12-03 11:12:19 +01:00
chme e08b4f3b01 [rng] Cleanup: remove unused function 'shuffle_ptr' 2016-12-03 11:12:19 +01:00
chme a023595b6f [queue] Remove queue.c/.h 2016-12-03 11:12:19 +01:00
chme c504abe451 Use queue db table instead of in memory queue struct 2016-12-03 11:11:33 +01:00
chme 8ebf2f9307 [db] Add functions to access/modify the queue table 2016-12-03 10:58:26 +01:00
chme 0beb68e1f1 [db] Upgrade db to v20.00
- New table 'queue' for persisting the queue/current playlist
- New entry 'plversion' in admin table for queue version
2016-12-03 10:58:26 +01:00
chme faaeb92ce5 [player] Reading media_file_info is not necessary in source_pause 2016-12-03 10:58:26 +01:00
chme 2d27636644 [rng] Add function to shuffle an int array 2016-12-03 10:57:56 +01:00
ejurgensen 3921cf5732 Merge branch 'spwebapi2' 2016-11-27 22:54:06 +01:00
ejurgensen 7239d39c5f [httpd] UI apology 2016-11-27 22:52:59 +01:00
ejurgensen 51e6008ef6 Merge pull request #305 from chme/streamsetup
Reduce dependency to media file in stream setup methods
2016-11-26 17:43:24 +01:00
ejurgensen 633d297936 Merge pull request #314 from chme/pipeoutputsync
Sync output to fifo
2016-11-20 08:45:15 +01:00
chme 27b9ee16c9 [fifo] Try to keep in sync with airplay speakers 2016-11-20 06:55:55 +01:00
chme fcbd88c56c [fifo] Fix: flush must return the number of pending events 2016-11-20 06:55:55 +01:00
chme 5bc52d7bc7 [rsp] Fix nullpointer dereference found by scan-build 2016-11-20 06:38:53 +01:00
chme a95da7966b Fixes issues found by scan-build in mpd.c and queue.c 2016-11-20 06:27:45 +01:00
ejurgensen 94a55d9fc9 [scan] readdir_r deprecated, use readdir instead 2016-11-19 23:50:14 +01:00
ejurgensen bdd6bab982 [-] Lots of housekeeping thanks to scan-build and input from @acmay 2016-11-19 23:08:50 +01:00
ejurgensen 8525c278ec [http] Fix crash with URLs without any "." chars in the path (issue #311, @credit acmay) 2016-11-17 19:24:55 +01:00
ejurgensen bb2a73ddab [spotify] Keep saved tracks through restarts + misc fixing up 2016-11-13 22:13:35 +01:00
chme 2c801ca6db [db] Small code improvements (avoid hard coded values in query strings) 2016-11-12 12:35:22 +01:00
chme 6690ba32eb [player/transcode/httpd] Pass path, data_kind and song_length to
transcode_decode_setup/transcode_setup
2016-11-12 09:11:40 +01:00
chme 477088a36c [player/pipe] Only pass path to pipe_setup 2016-11-12 09:11:40 +01:00
chme 2db3318ce7 [player/spotify] Only pass spotify-path to spotify_playback_setup 2016-11-12 09:11:40 +01:00
ejurgensen 3040346a65 [spotify] Use Spotify OAuth and web api to get saved tracks/albums 2016-11-05 13:44:23 +01:00
ejurgensen 8c0db10e67 [http] Move Curl https client from lastfm to http so it is available for other modules 2016-11-05 13:43:35 +01:00
ejurgensen 575b6e13a8 [httpd] Hooks for OAuth user interface and callbacks 2016-11-05 13:38:15 +01:00
ejurgensen 807951976c [configure/mdns] Register CNAME forked-daapd.local + generalize CURL detection in configure.ac 2016-11-05 13:33:30 +01:00
ejurgensen 90ecc61ed7 [mdns] CNAME record so we have fixed uri for OAuth redirects
- also refactor mdns_avahi
2016-11-05 13:31:13 +01:00
ejurgensen 33c22a59b9 Merge pull request #304 from chme/cleanup
Minor cleanup of mdns and dacp
2016-11-04 19:17:17 +01:00
chme eddab1f1c0 [dacp] Use correct log domain 2016-11-04 19:10:07 +01:00
chme b75c07625c [mdns] Use %zu for size_t in printf (removes warning about wrong
argument type)
2016-11-04 19:09:59 +01:00
chme f326cae142 [db] Remove duplication of db schema version 2016-11-04 14:31:15 +01:00
chme f7aa3c225b [db] Move initialization of new db into its own file (db_init.c) 2016-11-04 14:31:15 +01:00
ejurgensen 91c3eb622c [mdns] Put the record browser back
We need to browse through all records so that we can filter out link-local that Avahi sometimes gives us
2016-10-31 22:04:27 +01:00
ejurgensen 087bc942ec Merge pull request #299 from chme/pipeoutput
Fifo output
2016-10-31 19:07:37 +01:00
chme 4f2d994151 [outputs] Remove unused old alsa output 2016-10-31 18:47:45 +01:00
chme 65732ccaf6 [outputs] New output type 'fifo' 2016-10-31 18:47:45 +01:00
ejurgensen be6580d23e [mdns] Also ignore ipv4 link-local announcements 2016-10-30 20:04:08 +01:00
chme 60f9c779b6 [mpd] Add new command 'outputvolume' to set volume for a specific output 2016-10-25 22:40:48 +02:00
chme bdb2c74934 [player/dacp/mpd] Pass absolute volume to speaker enumerate callback and
add absolute volume to mpd 'outputs' command
2016-10-25 22:40:48 +02:00
ejurgensen a549f81861 [filescanner] Make for filetypes_ignore work for known file types as well 2016-10-25 09:08:56 +02:00
ejurgensen bc1fb4b385 [mdns] Ignore ipv6 link-local mdns announcements 2016-10-23 23:27:34 +02:00
chme 39314c1560 [mpd] Do not treat playback_start return value > 0 as an error 2016-10-23 08:25:19 +02:00
chme 3981c67e3a [player] Do not execute the bottom half if playback_start is called
while player is already playing (results in s segfault after adding new
items through dacp clients)
2016-10-23 08:25:19 +02:00
chme 16149d5c61 [command] Only execute "bottom half" function if main command function
returns 0
2016-10-23 08:25:19 +02:00
ejurgensen c0d07ae93b [httpd] Allow HEAD for evhttp requests just to be safe 2016-10-21 23:06:00 +02:00
ejurgensen 2ce1c8d28f [httpd] Enable OPTIONS for evhttp (if CORS headers are enabled) 2016-10-19 21:22:14 +02:00