chme
7dd8955a92
[filescanner] Add http stream to the library prior to adding to a
...
persistent playlist
2018-04-15 22:09:28 +02:00
chme
60ebac076b
Refactor adding non library items to the queue
...
Instead of asking a client to first scan the path into a media_file_info
object and afterwards add it to the queue, we now offer a library
function to directly add a path.
The library-source that can handle the given path translates the path
into new queue item(s) and adds them to the queue.
2018-04-15 22:09:28 +02:00
ejurgensen
acd5bd3272
[raop] Always try to get volumes from devices at keep_alive intervals
...
Should be ok, even if the device does not support GET_PARAMETER for
volume, no harm done, we will just stop querying.
2018-04-14 22:19:53 +02:00
ejurgensen
d9a67b6dce
[raop] Use GET_PARAMETER of volume to keep connection alive and get speaker volume
2018-04-11 22:29:07 +02:00
chme
879307f3ac
[smartpl] Support "starts with" operator for string fields
2018-03-17 13:23:48 +01:00
ejurgensen
ea4ea072cd
Merge pull request #499 from chme/jsonapi
...
New endpoints for the JSON api (library, queue)
2018-03-17 09:38:02 +01:00
chme
a78ed20848
[jsonapi] Add new JSON api endpoints
...
Allows
- browsing artists/albums/playlists
- search
- moving a queue item
2018-03-14 19:22:13 +01:00
chme
d1b47465a8
[jsonapi] Disable gzipping response
...
An attempt to improve the performance of the artists and albums
endpoints.
2018-03-14 19:21:57 +01:00
chme
66bdb7c0a9
[db] Add function to get a human readable string for data and media kind
2018-03-14 19:21:57 +01:00
chme
d59e62312a
[httpd] Allow cross origin POST, PUT, DELETE, OPTIONS requests
...
If the web interface is hosted on a different server, this is required
to allow sending e. g. post/put requests to control outputs.
2018-03-14 19:12:20 +01:00
chme
a764fb3c52
[httpd] Serve index.html if requested source is a directory
...
Defaults to an index.html file instead of redirecting to admin.html. It
will not redirect to index.html, but instead serve the file (if exists)
directly. This allows nicer uris in the webinterface.
We will still redirect to admin.html if no index.html is found for
requests to http://ip:port/
2018-03-14 19:12:20 +01:00
ejurgensen
e79beb6877
[httpd_daap] Workaround for Android "Remote for iTunes" requesting playlist 0
...
See issue #505
2018-03-11 22:40:07 +01:00
chme
2b5fa56bf9
[dacp] Add missing call to "db_queue_enum_end" in error case
2018-03-08 21:50:41 +01:00
chme
f47a17e186
[db] Remove unused function "db_queue_get_pos_byfileid"
2018-03-08 21:50:41 +01:00
ejurgensen
50c6d3f272
[db] Silence misleading log error message
...
We were logging a missing lastfm_sk in the admin table as
an error, which it really isn't
2018-03-03 20:13:09 +01:00
ejurgensen
ea6fd1476a
[db] Improve speed of browse queries (issue #478 )
...
Before, we returned either unordered (for RSP, meaning client had to
sort) or ordered by a client selected sort_clause[]. The latter are
multi-purpose and therefore not optimised for browse queries.
To speed up, we predefine the entire set of browse queries, including
order, with matching indices. The predefined queries are used except
if the client explicitly requests a non-default order or query.
As a special bonus, the commit also allows queries with I_SUB that
have an offset but no limit.
2018-03-02 21:11:31 +01:00
ejurgensen
121b812c30
[transcode] Lower log level of "will transcode" messages
2018-03-02 20:51:33 +01:00
chme
cd96ec579a
[db/library] Use "PRAGMA optimize" instead of "ANALYZE"
...
ANALYZE collects and saves statistics even if there were no database
changes and the last collected data is still good.
According to the sqlite3 documentation, it is recommended to use "PRAGMA
optimize" which will call "ANALYZE" if it is necessary. "PRAGMA
optimize" will run "ANALYZE" based on prior queries on the same database
connection. It is recommended to run optimize before closing the
connection.
(see https://www.sqlite.org/lang_analyze.html )
2018-02-26 18:41:28 +01:00
ejurgensen
666af127d5
[raop] Fix gcrypt error handling in raop_verification.c
...
And I learnt that gcrypt doesn't follow the negative-on-error pattern
2018-02-22 22:36:50 +01:00
ejurgensen
c2a563eec7
[main] Remove build date so there will be no complaints about non-producible builds
2018-02-22 22:16:22 +01:00
ejurgensen
f386c13bd9
[pipe] Add forgotten include of config.h
2018-02-22 22:11:42 +01:00
ejurgensen
6a56c19ad5
[pipe] Add forgotten include of pthread
2018-02-22 22:03:37 +01:00
ejurgensen
6c2ee276de
Merge pull request #495 from chme/fixwarnings
...
Fix compiler warnings
2018-02-22 21:52:17 +01:00
ejurgensen
b1c9518a78
[-] Make json-c a required library
...
Already kind of was required, as it was required by Spotify, Chromecast and the web api
2018-02-22 21:49:11 +01:00
chme
30aa4cf525
[db] Fix comments
2018-02-22 21:36:14 +01:00
chme
8b2d40d46f
Initialize local variables to silence OpenWrt compiler warnings
2018-02-22 21:35:38 +01:00
chme
1212723072
[jsonapi] Do not set "DAAP-Server" header in json api response
2018-02-15 19:19:13 +01:00
chme
0e9feac829
[jsonapi] Rework outputs endpoint and strictly match uris by request
...
method
2018-02-15 19:19:13 +01:00
chme
83bb06225b
[misc] Add helper function to check if a key with a given type exists
2018-02-15 19:19:13 +01:00
chme
1379ef235c
[httpd] Support assigning request methods to uri handlers
2018-02-15 19:19:13 +01:00
chme
a98713ba49
[jsonapi] Return proper HTTP status codes
2018-02-11 10:55:11 +01:00
chme
d4b05e98ae
[httpd] Add PUT and DELETE to the allowed http request methods
2018-02-10 10:39:32 +01:00
chme
43887d160f
[mpd] Refactor commands to enable/disable/toggle/volume for outputs
2018-02-10 09:04:18 +01:00
chme
decf9f1329
[player] Add commands to enable/disable output
2018-02-10 09:04:18 +01:00
chme
93879c6f90
[player] Refactor speaker enumerate callback
2018-02-10 09:04:18 +01:00
chme
94fd370df2
[player] Simplify parameter passing to player commands
2018-02-10 09:04:18 +01:00
chme
d36e6ac5ab
[player] Refactor speaker_set/speaker_activate
2018-02-10 09:04:18 +01:00
chme
f2659d995b
[player] Refactor speaker_set/speaker_deactivate
2018-02-07 21:04:47 +01:00
ejurgensen
e70f9623db
[filescanner] Update ffmpeg id3 tag mapping, include grouping tags
2018-01-31 21:46:17 +01:00
ejurgensen
0b3f4dfa15
[transcode] Ignore some errors from avcodec_send_packet(), fixes #483
...
Since the stream can at least in some cases be transcoded anyway
2018-01-26 22:37:28 +01:00
Scott Shambarger
49c88a9cc5
[configure] Fixed make distcheck
2018-01-25 21:52:20 -08:00
ejurgensen
c23f2c01b2
[scan] Fix bugs related to iTunes XML playlists
...
1) They would get disabled after rescan
2) Playlists and playlistitems didn't get cleaned up
2018-01-25 22:26:00 +01:00
ejurgensen
e1fb3607e9
[scan] Treat playlists with mtime==db_timestamp as modified + better virtual_path for iTunes XML playlists
...
Should fix a problem where saving a playlist with gedit was not picked up by forked-daapd as a modification
2018-01-24 21:36:50 +01:00
ejurgensen
4000d15778
[main] Add cmd line options to disable mdns announcements + update man page
2018-01-14 19:46:19 +01:00
chme
18a6372fb1
[dbperf] Use sqlite3_trace_v2 instead of deprecated sqlite3_profile
...
Set log severity depending on how long the query was running and return
early if log level is lower than the current one.
2018-01-13 11:05:58 +01:00
chme
c747456880
[logger] Expose log severity
2018-01-13 10:51:48 +01:00
ejurgensen
4da45bdfab
[httpd] Parser should allow queries that are not key/value
...
E.g. http://prem3.di.fm:80/progressive_hi?my_premium_key
2018-01-08 20:13:05 +01:00
ejurgensen
45d193e56c
[scan] Use open()/close() instead of euidaccess() to support ACL's
...
Fixes #474
2018-01-06 20:10:34 +01:00
ejurgensen
8d043dd9e9
[http] Temporary fix for bug in commit 8f899f2
...
See 8f899f2051 (commitcomment-26433079)
2018-01-02 21:20:28 +01:00
ejurgensen
f71028b25d
Merge pull request #477 from chme/player
...
[player] Check player state in stop and pause commands
2017-12-30 12:53:43 +01:00
ejurgensen
7d66acf0a0
Merge pull request #476 from chme/mpd_check_args
...
[mpd] Refactoring of minimum argument check
2017-12-30 12:53:32 +01:00
chme
981fd3e183
[db] Update queue_version in db_queue_move_byitemid
...
Fixes missing queue updates in MPDroid after moving an item in the
queue. MPDroid moves items with the 'moveid' command and retrieves the
playlist changes with the 'plchanges' command, due to the missing
queue_version update the last command did not return any changes and the
queue in MPDroid did not get updated.
2017-12-30 08:01:07 +01:00
chme
183ac17fd5
[player] Check player state in stop and pause commands
2017-12-28 16:30:38 +01:00
chme
141c4e926b
[mpd] Formatting of channel and sticker handler list
2017-12-28 16:12:56 +01:00
chme
8ad6f75815
[mpd] Refactor minimum argument check
2017-12-28 16:12:56 +01:00
chme
d90b869354
[pipe] Do not rely on the DATABASE event to be triggered during startup
...
to start listening on pipes
2017-12-28 16:05:03 +01:00
ejurgensen
4274653624
[pipe] Allow autostart of pipe even if it interrupts other playback (fix for #465 )
2017-12-28 11:45:59 +01:00
ejurgensen
1646149902
Merge pull request #472 from chme/mmap
...
Add option to enable memory-mapped I/O for sqlite3
2017-12-27 18:56:03 +01:00
ejurgensen
4802823f3c
Revert "[spotify/artwork] Load artwork for spotify through the wep api" and "[spotify] Thread safety for the webapi access"
...
Wait with this until it becomes necessary or we can achieve same performance as libspotify
This reverts commit 997b4da4ad
and 2da993cc7b
2017-12-27 18:51:11 +01:00
chme
56f4b32ef3
Add option to enable memory-mapped I/O
2017-12-26 08:06:38 +01:00
chme
2da993cc7b
[spotify] Thread safety for the webapi access
...
The web api might be accessed from different threads (library, worker,
dacp), therefor protect from concurrently running refresh-token requests
(accessing the globals in spotify_webapi.c)
2017-12-25 19:52:40 +01:00
chme
997b4da4ad
[spotify/artwork] Load artwork for spotify through the wep api
2017-12-25 19:52:40 +01:00
ejurgensen
731106276f
Merge pull request #466 from chme/libspotify_remove_scan
...
[spotify] Remove scanning saved playlist with libspotify
2017-12-25 19:33:41 +01:00
Wolfgang Scherer
a7f9d633a3
[mpd] minimal urlhandlers command
2017-12-24 02:46:40 +01:00
chme
434be28460
[mpd] Support position parameter in command 'addid'
2017-12-22 11:24:43 +01:00
chme
a1372c692e
[mpd] Implement 'playlistfind' and 'playlistsearch'
2017-12-22 11:24:43 +01:00
chme
6f4f7c5b16
[mpd] command 'currentsong': report current item if player is stopped
2017-12-22 11:24:43 +01:00
chme
80e0808b18
[mpd] command 'status': report current/next if player is stopped
2017-12-22 11:24:43 +01:00
chme
4d995c8501
[spotify] Add missing init/destroy of status_lck mutex
2017-12-22 09:53:00 +01:00
chme
210e6228bc
[spotify] Prevent duplicate scan on startup
...
The logged_in callback is called during relogin in the initscan.
Additionally initscan explicitly starts the scan leading to a duplicate
scan run.
To prevent this from happening removed the scan call in the logged_in
callback and split the spotify_login_user function into a private
function (without scan) and a public function (with scan).
2017-12-18 22:46:09 +01:00
chme
4f811ff6e0
[logger] Return early if severity or domain do not match
2017-12-17 12:41:21 +01:00
chme
83d8a55701
[spotify] Make libspotify login synchronous
...
Scanning saved albums/playlists over the webapi requires a logged in
libspotify session. To ensure, that the login process finished before
starting the webapi scan, the login needs to be synchronous.
2017-12-17 09:39:45 +01:00
chme
64f574cd83
[spotify] Fix logdomain in log statements
2017-12-17 09:15:32 +01:00
chme
471eb9db46
[db] Do not trigger a DATABASE event if db_directory_enable_bypath does
...
not change the library
2017-12-17 09:13:09 +01:00
chme
1b8b0b2d83
[spotify] Only scan saved albums and playlist if webapi token is valid
...
and libspotify login succeeded
Each saved track needs to be registered with libspotify otherwise
playback of this track will fail. This makes sure we only add saved
tracks to the library that are playable.
Also attempt a rescan if libspotify login succeeded. With this change it
does not matter if a user first logs into libspotify and then authorizes
the webapi access or the other way around.
2017-12-17 09:12:01 +01:00
chme
418f808d2e
[spotify] Remove scanning playlists with libspotify
2017-12-17 08:08:55 +01:00
ejurgensen
b428760599
[scan] Fix for issue #463 , fname not getting updated on file rename
...
Also modify code style of _enable/_disable functions in db.c
2017-12-16 23:09:29 +01:00
chme
4034582f1a
[mpd] Fix 'noidle' command handling
...
The noidle command did not prevent idle events to be sent to the client
directly when they occured. This resulted e. g. in M.A.L.P. in errors
trying to play an album from the library)
2017-12-16 08:19:45 +01:00
chme
5a57a564a4
[db] Instantly notify about rating changes
2017-12-15 19:08:32 +01:00
chme
e00a4a1995
[cache] Do not rebuild cache on rating change events
2017-12-15 19:08:32 +01:00
chme
e7d6fbb9fc
[listener/etc.] Rename LISTENER_STICKER to LISTENER_RATING
...
Unit there is a real sticker implementation, make it clear, that the
event is only triggered for rating changes.
2017-12-15 19:08:32 +01:00
chme
c00febd8ac
[library] remove initialization of globals to zero
2017-12-15 19:08:32 +01:00
chme
9f1568349b
[mpd] minor cleanup
2017-12-15 19:08:32 +01:00
chme
9165cfc5da
[mpd] Return virtual path to clients in 'sticker find'
2017-12-15 19:08:32 +01:00
chme
dec625ec30
[mpd] Implement 'sticker find' with operator/value parameters
2017-12-15 19:08:32 +01:00
chme
b17e50438c
[db] Comment for DB_FILES_RATING_MAX
2017-12-15 19:08:32 +01:00
chme
7b04787fc1
[mpd] Check upper bound for sticker 'rating'
2017-12-15 19:08:32 +01:00
chme
7a916c84a2
[mpd] Refactor sticker commands
2017-12-15 19:08:32 +01:00
chme
ef52f4ddc0
Rework user rating updates
2017-12-15 19:08:32 +01:00
Wolfgang Scherer
bbc5d3787e
[mpd] rating sticker translator
2017-12-15 19:08:32 +01:00
chme
88f7d4601d
[db] Fix adding urls to the queue that are not in the library
2017-12-13 22:02:38 +01:00
chme
4ebc6da0ee
[ws] Notify about player status, options, volume, queue changes
2017-12-13 21:44:33 +01:00
chme
5cb33189df
[jsonapi] New endpoints for player.html
...
- control playback and retrieve player status
- get current queue
- set shuffle, repeat, consume mode
- set volume
2017-12-13 21:44:33 +01:00
ejurgensen
10233dcad3
[chromecast] Check for null address from getifaddrs() (credit @yantoz, issue #455 )
2017-12-10 19:50:57 +01:00
chme
0b07cff633
[player] Only update queue item in metadata_update_cb on changed
...
metadata. This avoids an unnecessary update query and queue change
notification (leading to clients requesting the unchanged queue).
2017-12-09 11:01:41 +01:00
chme
2ee02d407b
[mpd] Add support for version and ranges to 'plchanges' and
...
'plchangesposid'
2017-12-09 11:01:41 +01:00
chme
912635e737
[db] Update queue_version for changed queue items
2017-12-09 11:01:41 +01:00
chme
91573752d9
[db] Update v19.05 to v19.06
...
- queue table: define id column as AUTOINCREMENT (requires drop+create)
- queue table: add column queue_version
- files table: update http-stream virtual paths (constructing the
virtual path for http-streams changed in pr #449 , this migrates existing
databases to be consistent to the newly created paths)
2017-12-09 11:01:41 +01:00
chme
7083c65314
[main/httpd] Configurable web root directory over cli parameter
2017-12-03 10:46:50 +01:00
chme
8776aa36e2
[player] Trigger SPEAKER event after finishing the command speaker_set
2017-12-03 10:46:03 +01:00
chme
d839e8cabb
[listener/player] Adjust code comment for LISTENER_SPEAKER event
2017-12-03 10:46:03 +01:00
chme
1689182432
[player/raop] Trigger the SPEAKER event if device verification
...
succeeded/failed
2017-12-03 10:46:03 +01:00
chme
eece4ce768
[ws] Listen and notify about output events
2017-12-03 10:46:03 +01:00
chme
80c1ef3114
[jsonapi] New endpoints for outputs and device verification
2017-12-03 10:46:03 +01:00
chme
f696229fff
[player/dacp/mpd] Pass additional information to speaker enum callback
2017-12-03 10:46:03 +01:00
Wolfgang Scherer
b363c0dac2
[mpd] Consistent playlist name setup ( #450 )
2017-12-02 16:45:11 +01:00
Wolfgang Scherer
bb451802d2
[db] Queue notification when metadata changes ( #448 )
2017-12-02 16:44:29 +01:00
Wolfgang Scherer
0d006904da
[scan] Consistent HTTP virtual paths ( #449 )
2017-12-02 16:44:01 +01:00
ejurgensen
617a0992d0
[http] Align indentation with the rest of the code
2017-11-27 17:53:59 +01:00
Wolfgang Scherer
8f899f2051
[http] .pls playlists ( #447 )
2017-11-27 09:48:17 +01:00
Wolfgang Scherer
dcc6fcf206
[mpd] Close connection for close command ( #444 )
2017-11-21 19:29:17 +01:00
chme
4800f9943b
[db] Rename 'ADMIN_*' defines to 'DB_ADMIN_*'
2017-11-19 22:08:23 +01:00
chme
96bcaa9102
[mpd] Fix noidle command returning an error; fix format error in stats
...
command
2017-11-19 22:08:23 +01:00
chme
65444bba47
[mpd] Fix missing free for query_params.filter (mostly in case an error
...
occured)
2017-11-19 22:08:23 +01:00
chme
360439f448
[mpd] Cosmetic changes: fix indentation, use bool instead of int
2017-11-19 22:08:23 +01:00
chme
a0a6b7d473
[mpd] Send correct value for uptime in 'stats' command
2017-11-19 22:08:23 +01:00
chme
f49a3c888a
[db] Store start time in admin table
2017-11-19 22:08:23 +01:00
chme
38ab4b9676
[db] Functions to read/store int in the admin table and introduce
...
constants for admin table keys
2017-11-19 22:08:23 +01:00
ejurgensen
5315bdf83e
[raop] Make sure to set requires_auth if we get RTSP_FORBIDDEN
2017-11-19 20:11:42 +01:00
Wolfgang Scherer
fa76b6380c
[mpd] correct handling of noidle
command
2017-11-18 07:15:45 +01:00
chme
8d130cdc7c
[listener] Support passing multiple events in a single notify call
2017-11-18 07:15:45 +01:00
chme
1e24b3656a
[mpd] Fix idle command (idle events got lost if they happened while the
...
client was not in idle mode)
2017-11-18 07:15:45 +01:00
chme
4fe4bee809
[db] Only trigger the library update callback, if a query changed at
...
least one row
2017-11-17 19:40:04 +01:00
chme
1cdb9f450d
[library/mpd] Store db update time in admin table and trigger DATABASE
...
event on init/rescan only if an update/insert occurred
2017-11-17 19:40:04 +01:00
chme
ea0cc64aa3
[db] Add functions to read/store int64 values in admin table
2017-11-17 18:12:03 +01:00
Wolfgang Scherer
37aaf73f6a
[library] Deferrable library update time with persistence (TBD)
2017-11-17 18:12:03 +01:00
Wolfgang Scherer
e7e2b2c9a6
[library] Decrease library update delay and clarify purpose
2017-11-17 18:12:03 +01:00
Wolfgang Scherer
9f11a69c79
[mpd] enable database and update events for idle clients
2017-11-17 18:12:03 +01:00
ejurgensen
a6fab4ac0d
[httpd/mpd] Adjustments to commit #69ff42f
2017-11-15 23:13:20 +01:00
Wolfgang Scherer
69ff42fc6a
[mpd] apply trusted_networks to MPD
2017-11-15 22:29:22 +01:00
Wolfgang Scherer
ef767a08a4
[db] Report directory names that end in spaces
2017-11-15 22:25:12 +01:00
Wolfgang Scherer
3d43721cd0
[scan] After rescan, fullrescan inotify must be enabled
2017-11-13 19:52:17 +01:00
ejurgensen
3d5aeda7aa
[httpd] Implement "trusted_networks" option
...
Some clients aren't really capable of authenticating + some users probably
don't want to enter a password for the web interface. This option allows
clients on for instance the local network to connect without authentication.
2017-11-12 21:29:57 +01:00
ejurgensen
6d937469f5
[httpd] Decrease log level of stream complete messages
2017-11-11 22:20:09 +01:00
ejurgensen
473a29ef8a
[httpd] More refactoring, reduce code duplication in the httpd_xxx modules
2017-11-11 22:20:09 +01:00
ejurgensen
9ed810d9df
[httpd] Refactor httpd.c
...
- move stuff around and clean up
- put oauth out in own module like the other modules
2017-11-11 22:20:09 +01:00
ejurgensen
709d99d4c4
[httpd] Major refactor of the httpd request handling
...
Make it easier to add new parameters later, get rid of redundant code, clean
up, align between httpd_xxx modules and introduce new bugs. Yes, the refactor
got a bit out of hand.
2017-11-11 22:20:09 +01:00
ejurgensen
0ebdd89715
[httpd_dacp] Log unrecognised requests
2017-11-11 22:20:09 +01:00
ejurgensen
d9f6097886
[httpd_dacp] Update to align with master
2017-11-11 22:20:09 +01:00
ejurgensen
20937ea4c9
[httpd_daap] Try to use revision as it is supposed to be used
2017-11-11 22:20:09 +01:00
ejurgensen
725319789e
[httpd_dacp] Add debug logging of our playstatusupdates
...
Might help trace why some remotes sometimes show incorrect status
2017-11-11 22:20:09 +01:00
ejurgensen
fdc9054890
[httpd_daap] Improve code clarity a bit
2017-11-11 22:20:09 +01:00
ejurgensen
7b97503f04
[spotify] Protect against weird artwork data size from libspotify
...
For some reason libspotify sometimes returns >1GB sizes?
2017-11-11 22:20:09 +01:00
ejurgensen
eff9e6ebeb
[httpd] Add promiscuous mode option, i.e. no auth requirements
...
For people who want to avoid the web login, or want to get around pairing
problems. This is also added because commit #e59a1a1 means that all
Remotes are now subject to auth, not just those with a user-agent name that
starts with "Remote".
2017-11-11 22:20:09 +01:00
ejurgensen
8e7c47cce9
[httpd_daapd] Refactor daap
2017-11-11 22:20:09 +01:00
ejurgensen
50638223ac
[dmap] Add a function able to make generate dmap errors without also sending them
2017-11-11 22:20:09 +01:00
ejurgensen
b710d728f8
[db] Add a free_query_params function
2017-11-11 22:20:09 +01:00
ejurgensen
75b14b85e9
Merge pull request #435 from wolfmanx/mpd-argument-unquoting
...
[mpd] Quoted argument unescaping fixed
2017-11-11 10:04:57 +01:00
ejurgensen
430d3f9f41
Merge pull request #437 from wolfmanx/mpd-password
...
[mpd] password command
2017-11-11 08:25:02 +01:00
Wolfgang Scherer
c48b819170
[mpd] password command
2017-11-10 09:55:44 +01:00
ejurgensen
5c3f1e9263
[filescanner] Fixup code style
2017-11-10 00:09:31 +01:00
Wolfgang Scherer
16fa1e77b2
[scan] Configuration option to follow symlinks
2017-11-09 01:16:44 +01:00
Wolfgang Scherer
5a960a3450
[mpd] Quoted argument unescaping fixed
2017-11-08 23:03:32 +01:00
Wolfgang Scherer
540d771648
[pulseaudio] allow specification of pulseaudio server
2017-11-05 19:33:14 +01:00
ejurgensen
04dc5956ed
[mpd] Fix crash-on-exit because evconnlistener_free() doesn't ignore NULL pointers (issue #430 )
2017-10-30 23:07:10 +01:00
ejurgensen
b7f5070ad3
[httpd_dacp] New fix attempt for issue #423 - revision number handling
...
Commit 190e37e
was wrong, we can't just update revision number every time, we
should not do it when we are called with 0 or 1 as revision-number. In those
cases we must return the revision number the client should use, which should
either be the current pending (if other clients are waiting) or the number
following what was used last time we were called with > 1 rev num.
Hopefully this fixes Hyperfine issues.
2017-10-30 20:16:34 +01:00
ejurgensen
79b2cf4fd7
[db] Log path to db on error, so it's easier to debug
2017-10-29 22:07:58 +01:00
ejurgensen
0c9a23e8d2
[pairing] Better log messages for failed pairing attempts
2017-10-28 21:23:21 +02:00
chme
f82b22042f
[lastfm/jsonapi/ws/main] New JSON-API-endpoints for Last.fm integration
...
In preparation for the new endpoints the following refactorings where
done in lastfm.c:
- Initialize lastfm.c in main.c instead of on first scrobble attempt
(necessary to retrieve the correct lastfm status)
- Return error messages if login attempt failed
- Add api function for status and logout
- Notify about Last.fm status changes
Unrelated changes in lastfm.c are:
- Refactoring of request_post
- Add request parameters sorted alphabetically and remove calling the
sort method in request_post
2017-10-28 12:22:45 +02:00
ejurgensen
b64d282f32
[artwork] Fix for issue #427 , some embedded file artwork not showing
...
Artwork in embedded files not showing up in non-legacy mode if the artwork does
not require rescaling. The bug is that we are by mistake sending a chunk of the
embedded file, not the artwork in it.
2017-10-27 19:51:37 +02:00
ejurgensen
66a46173fa
[httpd_daap.c] Improve user_agent_filter() code
...
E.g. remove hardcoded values of DATA_KIND_x
2017-10-21 19:19:51 +02:00
ejurgensen
2beb2fc4cf
[httpd_dacp] Fixup temp log line
2017-10-20 22:46:00 +02:00
ejurgensen
190e37e537
[httpd_dacp] Fix bug where not always increasing revision number (issue #423 )
...
The bug affected Hyperfine Remote, which would not call back with a playstatusupdate
when it got a cmsr which had the same value as the previous (a value of 2)
2017-10-20 22:28:31 +02:00
ejurgensen
a94fda38cc
[mpd] Some minor fixup
2017-10-20 19:49:17 +02:00
ejurgensen
64dd6b93da
[filescanner] Add missing timestamp update in itunes scanner
2017-10-17 23:12:30 +02:00
ejurgensen
e9e8567e8c
[filescanner] Make sure to split in transactions even when playlist tracks are unknown
2017-10-17 23:12:30 +02:00
ejurgensen
2d54d0d8fe
[filescanner] More alignment of iTunes scanner with the playlist scanner
...
I.e. use transactions and don't scan unmodified files
2017-10-17 23:11:31 +02:00
ejurgensen
bf8fa1c3f0
[db] Remove poorly performing and now unused _bymatch() functions
2017-10-17 23:11:31 +02:00
ejurgensen
322abb8274
[filescanner] Copy playlist scan optimisations to itunes scanner
2017-10-17 23:11:31 +02:00
ejurgensen
3520ab030e
[filescanner] Fix wrong param in filescanner_playlist.c
2017-10-17 23:11:31 +02:00
ejurgensen
a57f7fc188
[httpd_dacp] Clean up code, remove dead stores
2017-10-17 23:11:31 +02:00
ejurgensen
1070f507a2
[filescanner] Add some const's and various fixup
2017-10-17 23:11:31 +02:00
ejurgensen
78dd8c89b6
[filescanner] Log message modifications
2017-10-17 23:11:31 +02:00
ejurgensen
00b7b97382
[db] Make I_FNAME index case insensitive and search fname using COLLATE NOCASE
...
Also some cleaning up
2017-10-17 23:11:31 +02:00
ejurgensen
88a565ea2c
[db] Replace sqlite3_xxx() calls outside db.c/cache.c so they are abstracted
2017-10-17 23:11:31 +02:00
ejurgensen
659b5c70c4
[db] Faster size check in db.c's db_snprintf()
2017-10-17 23:11:31 +02:00
ejurgensen
47585d0d03
[db] Add methods db_mprintf() and db_snprintf() which wrap sqlite
2017-10-17 23:11:31 +02:00
ejurgensen
4d47307a02
[db/filescanner] Add index on fname, change playlist matching (wip)
2017-10-17 23:11:31 +02:00
ejurgensen
45bd2d6cc8
[filescanner] Protect URL items in playlists from purge after scan
2017-10-17 23:11:31 +02:00
ejurgensen
65b4c579f3
[db] Add method db_pl_ping_items_bymatch()
2017-10-17 23:10:21 +02:00
ejurgensen
b9621102f4
[db] Remove db_file_stamp_bypath(), not required any more
2017-10-17 23:10:21 +02:00
ejurgensen
4928d2c155
[spotify] Replace db_file_stamp_bypath with db_file_ping
2017-10-17 23:10:21 +02:00
ejurgensen
d6b30f5a64
[spotify] Add MEDIA_KIND_MUSIC and move DATA_KIND_SPOTIFY
2017-10-17 23:10:21 +02:00
ejurgensen
c8edd2ff64
[spotify] Use db_file_ping_bypath() + refactor + fix small memleak
...
Align with other scanners to use 1-query db_file_ping_bypath(). Also refactor to
reduce indent level and fix memleak of mfi->album + mfi->album_artist.
2017-10-17 23:10:21 +02:00
ejurgensen
10bd30c036
[filescanner] Update playlist scanner to use db_file_ping_bypath() to save queries
2017-10-17 23:10:21 +02:00
ejurgensen
fa2b4b810f
[filescanner] Reduce number of queries during scan
...
Instead of SELECT'ing timestamp and then UPDATE'ing with a ping if file is
unchanged, skip the SELECT and just do a conditional UPDATE.
2017-10-17 23:10:21 +02:00
ejurgensen
fe731c0993
[db] Add new method db_file_ping_bypath() + cleanup malloc->calloc and char->const char
2017-10-17 23:10:21 +02:00
ejurgensen
95121e7157
[filescanner] Improve playlist scan speed with transactions (WIP - not working for URL's)
2017-10-17 23:10:21 +02:00
ejurgensen
0c2773039b
[-] Fix alsa.c null pointer deref + some minor bugs and do some housekeeping
...
Thanks to Denis Denisov and cppcheck for notifying about the below. The leaks
are edge cases, but the warning of dereference of avail in alsa.c points at
a bug that could probably cause actual crashes.
[src/evrtsp/rtsp.c:1352]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/httpd_daap.c:228]: (error) Memory leak: s
[src/library.c:280]: (warning) %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int'.
[src/library.c:284]: (warning) %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int'.
[src/library/filescanner_playlist.c:251]: (error) Resource leak: fp
[src/library/filescanner_playlist.c:273]: (error) Resource leak: fp
[src/outputs/alsa.c:143]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/outputs/alsa.c:657]: (warning) Possible null pointer dereference: avail
[src/outputs/dummy.c:75]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/outputs/fifo.c:245]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/outputs/raop.c:1806]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/outputs/raop.c:1371]: (warning) %u in format string (no. 1) requires 'unsigned int' but the argument type is 'signed int'.
[src/outputs/raop.c:1471]: (warning) %u in format string (no. 1) requires 'unsigned int' but the argument type is 'signed int'.
[src/outputs/raop_verification.c:705] -> [src/outputs/raop_verification.c:667]: (warning) Either the condition 'if(len_M)' is redundant or there is possible null pointer dereference: len_M.
2017-10-05 22:13:01 +02:00
ejurgensen
1c377035f1
[raop] Restore ATV4/tvOS11 support by removing needless requirement for timing_port ( closes #422 )
2017-09-26 21:41:53 +02:00
ejurgensen
c75097b02e
[transcode] Log pix_fmt by name instead of enum
2017-09-17 00:00:24 +02:00
ejurgensen
eec98e3b7e
[main/transcode] Fix some libav compability + log what ffmpeg/libav we are using
2017-09-16 23:01:42 +02:00
ejurgensen
7cc9a8b02b
[httpd] Fix unused label when compiling without libwebsockets
2017-09-16 17:01:51 +02:00
chme
6c45b808c0
[httpd/jsonapi] Fix unused variables when compiling without ( #421 )
...
--enable-spotify
2017-09-16 12:37:32 +02:00
ejurgensen
507bec8b8e
[-] Fixup ifdef WEBSOCKET->HAVE_LIBWEBSOCKETS that I missed
2017-09-16 01:25:47 +02:00
ejurgensen
ef6f465aa8
[httpd_jsonapi] Add missing include
2017-09-16 00:10:26 +02:00
ejurgensen
f8c442ba38
[configure] Change so we enable/disable websockets based on libwebsockets >= 2.0.2 presence
2017-09-16 00:05:50 +02:00
ejurgensen
546362980b
Merge pull request #408 from chme/web
...
Add a web api and a webinterface
2017-09-15 23:15:49 +02:00
chme
da2e998c8d
[listener] fix typo in comment for stored playlists
2017-09-15 18:49:04 +02:00
chme
ecfea82234
[httpd/spotify] Redirect to admin.html, remove old oauth interface
2017-09-15 18:49:04 +02:00
chme
2c51c6571a
[misc] Add websocket to buildopts
2017-09-15 07:16:41 +02:00
chme
75eb5420fd
[httpd/websocket/conf] Initial websocket implementation
...
If enabled (default) requires libwebsockets >= 2.0.2, can be disabled
with configure option --disable-websocket.
2017-09-15 07:14:08 +02:00
chme
0abf195347
[httpd/json] Add json api to httpd
2017-09-15 07:07:17 +02:00
chme
42b644020d
[conf] Add "websocket_port" to config file
2017-09-15 07:04:18 +02:00
chme
f1e706ee8f
[httpd] Allow browsers to cache static files
...
Setting the response headers "Cache-Control" and "Last-Modified" results
in clients being able to cache the response. For a subsequent request
for the same file, the browser sets the request header
"If-Modified-Since" with the value from "Last-Modified" from the last
response. The server (httpd.c) checks if the file has been modified and
if not returns HTTP 304 Not Modified.
2017-09-15 07:01:53 +02:00
chme
5d5ed42749
[main/misc] Add misc-function to retrieve enabled buildoptions
2017-09-15 07:01:53 +02:00
chme
a04604f693
[logger] New logdomain L_WEB for websocket/jsonapi implementation
2017-09-15 06:56:24 +02:00
chme
9275f7a938
[httpd] Expose function for authenticating admin requests
2017-09-15 06:56:24 +02:00
chme
1d49413070
[httpd/conf] Fix serving files from WEB_ROOT folder and enforce setting
...
the admin password
Changes the default for the admin password to be unset, by default only
allowing access to the WEB_ROOT files if accessed from localhost.
2017-09-15 06:56:24 +02:00
chme
9b84150f6e
[misc_json] New function jparse_obj_from_evbuffer
2017-09-15 06:42:21 +02:00
chme
89fc1fa5b8
[misc/spotify] Move json helper functions into its own file
2017-09-15 06:42:21 +02:00
chme
a832e40bea
[spotify] Add function spotify_login_user
2017-09-15 06:42:21 +02:00
chme
29c0264444
[spotify] Add spotify status info and notify about status changes
2017-09-15 06:42:21 +02:00
chme
7bf6aec3a6
[listener] New event type for spotify status changes
2017-09-15 06:42:21 +02:00
chme
f449204ea2
[spotify] Add support for calling sp_session_user_name
2017-09-15 06:42:21 +02:00
chme
4b49ce69e2
[pairing/listener] Add function to retrieve name of remote and notify
...
about start and finish of remote pairing requests
2017-09-15 06:42:21 +02:00
ejurgensen
400f4ef3ee
[main] Fix typo
2017-09-08 08:19:49 +02:00
ejurgensen
c27448418c
[httpd/mpd] Make sure daemons listen on both ipv4 and ipv6 if enabled
...
Before setting ipv6 = enabled on FreeBSD would make the daemon not listen on ipv4
2017-09-07 23:14:18 +02:00
chme
ae446046f5
[mpd] Notify mpd clients on library update events
2017-08-27 11:54:32 +02:00
chme
f81d33701b
[listener/library] Notify listeners about start/finish of library update
2017-08-27 11:54:32 +02:00
chme
0b2ee5a9eb
[db/mpd] Simplify getting file count from db
2017-08-27 11:54:32 +02:00
ejurgensen
c45a85d143
[dacp] Fix issue where Hyperfine Remote provides speaker ids as decimal
...
Also align a bit on how we handle hex/dec parameters
2017-08-27 00:02:39 +02:00
ejurgensen
1b8adc11ed
[dmap] Use a wrapper for dmap_find_field()
...
Avoids the need to have definition of dmap_find_field in dmap_common.h that
must be kept in sync with the definition that gperf generates.
Also should fix compilation problems when gperf is not present, ref pr #390
2017-08-25 19:27:41 +02:00
ejurgensen
43abb18e4e
[transcode] Fix illegal write when *icy_timer is null (fixes issue #412 )
2017-08-20 23:08:36 +02:00
ejurgensen
2d3d641f41
Merge pull request #413 from chme/realpath
...
[misc] Replace m_realpath with realpath from stdlib.h
2017-08-12 21:52:30 +02:00
chme
14877a49e0
[misc] Replace m_realpath with realpath from stdlib.h
2017-08-12 13:35:22 +02:00
chme
d477294809
[filescanner] Guard against modifying files outside the library and
...
guard against creating m3u playlists with the same virtual path like pls
playlists
2017-08-12 10:22:18 +02:00
chme
8f49a6fb45
[mpd/conf] Add config option to enable modifying stored playlists
2017-08-12 10:16:07 +02:00
chme
dc3f9443e7
[mpd/conf] Add support for stored playlist commands (add/save/delete)
...
This also introduces a new config option to define a default playlist
folder. The default playlist folder is used by forked-daapd if the
playlist is not a full virtual path (simpifies creation of playlists
with mpd clients).
2017-08-09 21:41:32 +02:00
chme
d10c3672c6
[filescanner] Add support to save/add/delete local stored playlists
...
Allows creating/modifying of playlists in one of the configured library
directories.
2017-08-09 21:41:32 +02:00
chme
f84e87913c
[library] Allow save/add/delete of playlists if source supports it
2017-08-09 21:30:23 +02:00
chme
ff4b388d26
[db] Use db_get_one_int in db_pl_id_bypath
2017-08-07 20:13:46 +02:00
ejurgensen
a975dabded
[artwork] Re-apply commit ef13abe
to artwork_legacy.c
2017-08-07 00:09:27 +02:00
ejurgensen
e489f1a6a9
[configure] Use avcodec_parameters_from_context as check for codecpar
2017-08-06 22:31:43 +02:00
ejurgensen
394dee2a86
[raop] Log src and dst ip addresses (checking for ipv6, not sure it is allowed)
2017-08-06 22:31:43 +02:00
ejurgensen
548d9ada2e
[transcode] Fixup dead assignment
2017-08-06 22:31:43 +02:00
ejurgensen
c13ed8761a
[trancode/artwork] Put back compability with older versions of ffmpeg/libav
2017-08-06 22:31:43 +02:00
ejurgensen
f9375ef915
[transcode] More adjustments for libav 12
2017-08-06 22:31:43 +02:00
ejurgensen
6951639d24
[transcode] Adjustments for libav 12
2017-08-06 22:31:43 +02:00
ejurgensen
441ad006a6
[artwork/transcode] Also let transcode.c handle rescaling of non-file Spotify artwork
2017-08-06 22:31:43 +02:00
ejurgensen
e7f888645f
[artwork/transcode] Adjust transcode.c so it can take care of artwork
...
rescaling, meaning we can do without parallel ffmpeg interfaces.
This also moves artwork rescaling from libswscale to libavfilter, which
seems to fix a problem with PNG rescaling.
2017-08-06 22:31:43 +02:00
ejurgensen
d933e171d4
[filescanner_ffmpeg] Update to use ffmpeg's new stream->codecpar
...
- keep some compability with older ffmpeg/libav, but also remove some
2017-08-06 22:20:44 +02:00
ejurgensen
1e180b5ce8
[transcode] Call av_write_trailer before cleanup so that any flushed data
...
will be written to encode_ctx->obuf, where it can be passed to the caller
2017-08-06 22:20:44 +02:00
ejurgensen
e96b9500db
[transcode] Implement new ffmpeg decoding methods: avcodec_send_packet/avcodec_receive_frame
2017-08-06 22:20:44 +02:00
ejurgensen
5afed60a42
[transcode] Implement new ffmpeg encoding methods: avcodec_send_frame/avcodec_receive_packet
2017-08-06 22:20:44 +02:00
ejurgensen
7c8eba74bb
[transcode] Remove unused param to open_filter()
2017-08-06 22:20:44 +02:00
ejurgensen
25c1795af2
[transcode] Update to new ffmpeg api - part 1
...
- no more use of AVStream.codec
- ditch some backwards compability
- move closer to being able do video, at least for artwork
2017-08-06 22:20:44 +02:00
ejurgensen
b71b32438b
[player] Don't log single tick overruns
2017-07-23 16:58:18 +02:00
ejurgensen
b19553811c
[main] Respect the configure check for libevent_pthreads
2017-07-22 00:04:35 +02:00
ejurgensen
3f2ad41094
[alsa] Fix missing cleanup of failed ALSA sessions
2017-07-14 23:20:53 +02:00
ejurgensen
b803c30dcd
[player] Check volume range when called for volume change + some adjustments in pipe input
2017-07-14 20:04:35 +02:00
ejurgensen
4085161e9a
Merge pull request #403 from jkellerer/pipe_metadata_volume
...
Add support for instant volume changes when using metadata pipe (pvol)
2017-07-14 19:43:40 +02:00
chme
b6807a24aa
[filescanner] Add missing break statement in process_file
2017-07-14 17:21:08 +02:00
juergen kellerer
93e4886993
[pipe] Added instant volume support (pvol) to named metadata pipe.
2017-07-13 21:53:35 +02:00
ejurgensen
072c940426
Merge branch 'playback_resilience'
2017-07-09 22:06:01 +02:00
chme
e136c726c1
[raop] Add device name to log message for retransmit requests
2017-07-09 11:44:05 +02:00
chme
ecb41eccca
[player] Use false/true for boolean field
2017-07-09 11:43:10 +02:00
chme
3048817c0b
[player] Add warning log message if overrun is detected but player is
...
still able to catch up
2017-07-09 11:43:05 +02:00
ejurgensen
074b4e773d
[input] Increase input buffer size to two seconds
2017-07-08 23:37:12 +02:00
ejurgensen
1549d0d4b5
[pipe] Fix crash if pipe is deleted after being written to (caused by double free)
2017-07-08 01:41:12 +02:00
ejurgensen
6295f2d79a
[player] Make the player resilient in cases where an output blocks
...
(due to e.g. network problems) and also make sure that all devices
have called back before restarting after a suspend. Also a whole
lot of tidying up while I am at it.
2017-07-06 22:13:04 +02:00
ejurgensen
a23bb0b7e2
[raop] Clear auth_key for device verification if verify request to device is denied
...
- should make it easier for user to setup a new pin
2017-07-01 08:33:11 +02:00
ejurgensen
2068794b7f
[pairing] Make log message more helpful
2017-06-30 19:35:33 +02:00
ejurgensen
467b652da0
[rtsp] Silence event_del warnings
2017-06-27 22:15:53 +02:00
ejurgensen
81a93bbec1
[player] Add config option high_resolution_clock
2017-06-26 23:32:24 +02:00
ejurgensen
c2b1706855
[raop] Send correct volume as keep-alive for ATV's (fix for #368 )
2017-06-26 20:11:31 +02:00
ejurgensen
f4e171db75
[raop] Save verification key to db immediately after verification
2017-06-24 23:59:02 +02:00
ejurgensen
01308f7f83
Misc fixup to keep scan-build happy
2017-06-20 22:07:49 +02:00
ejurgensen
20128e2235
[raop] Raise log level of verification setup complete message
2017-06-20 21:36:21 +02:00
ejurgensen
9369e97753
[raop] Lower log level of verification success slightly
2017-06-20 21:17:17 +02:00
ejurgensen
299a8f9e4b
[mpd] Add support for "mpc sendmessage verification [pincode]"
2017-06-20 21:01:55 +02:00
ejurgensen
5e48a68525
[player] device_restart_cb() should also handle failures due to device verification
2017-06-20 20:58:46 +02:00
ejurgensen
7626b6c535
[raop] Fix bad enum
2017-06-20 20:00:05 +02:00
ejurgensen
f63d103753
[raop] Add support for Apple TV device verification, required by tvOS 10.2 (fix for issue #377 )
...
- also change how speakers are saved/retrieved from the db
- add generic authorization methods in outputs.c and player.c
- let filescanner read *.verification files (containing PIN)
- configure options to enable and disable, since libsodium is required
2017-06-19 21:52:01 +02:00
ejurgensen
736979a9a2
[evrtsp] Add POST rtsp method - used for device verification
2017-06-18 01:31:23 +02:00
ejurgensen
0e9bca9e3d
[db] Add column for auth key to speakers table (incl methods for saving/retrieving)
2017-06-18 01:29:40 +02:00
ejurgensen
0642171de0
[mpd] Adjust so "sendmessage pairing" now gives an arglist to remote_pairing_kickoff()
2017-06-15 00:00:05 +02:00
ejurgensen
283df8aa72
[misc] Consolidate control file reader (e.g. for pairing credentials) into misc.c
...
- also remove requirement to enter device name in .remote file
2017-06-14 23:49:18 +02:00
Gergan Penkov
08d25154e5
fix the compilation problem because of gperf changes in 3.1
2017-05-27 12:28:00 +02:00
ejurgensen
3fe3c71ea7
[lastfm] Remove obsolete include of curl.h
2017-05-18 22:55:04 +02:00
ejurgensen
1aa8072e68
[misc] Change name of string_printf to safe_asprintf
2017-05-05 20:00:51 +02:00
ejurgensen
dcf75f59eb
Merge branch 'string_printf' of git://github.com/chme/forked-daapd into chme-string_printf
2017-05-05 19:43:17 +02:00
ejurgensen
497ffc2f43
[misc] Add __attribute__((__noreturn__)) to our abort functions so
...
scan-build doesn't complain about logic errors after abort
2017-05-05 19:41:17 +02:00
ejurgensen
f465f6a77d
[raop] Fix possible incorrect address family in SDP
2017-05-04 19:31:26 +02:00
ejurgensen
544791ef59
[player] Prevent crash if output is failed and triggers a playback_abort
...
when a pause or seek is requested
2017-05-04 18:06:18 +02:00
ejurgensen
b9e069939e
[mdns] Also handle devices being switched on/off without Avahi service removal notices
2017-05-02 23:13:53 +02:00
ejurgensen
e2f65debc8
[mdns] Keep Avahi resolvers alive so we get IP changes from e.g. Airplay devices (fix for issue #378 )
2017-05-02 19:27:35 +02:00
chme
2f1124d4dc
[mpd] Use string_printf instead of asprintf
2017-05-01 10:28:41 +02:00
chme
6887ff9d7b
[spotify] Use string_printf instead of asprintf
2017-05-01 10:21:58 +02:00
chme
4e6b78ca29
[misc] Add string_printf function
2017-05-01 10:21:57 +02:00
chme
6b9878490e
[mpd] Add missing free in channel_outputvolume
2017-04-30 19:27:44 +02:00
chme
989b44c8dc
[mpd] Implement 'channels' command (returns the special forked-daapd
...
channes like 'pairing')
2017-04-30 19:27:44 +02:00
chme
eeef65f951
[mpd] Add support to change output volume through sendmessage command
...
Output volume can be set by sending a message to the channel
'outputvolume' by passing a message with the output id and the volume
separated by a colon.
2017-04-30 19:27:44 +02:00
chme
d8b5951e40
[mpd] Move function mpd_command_outputvolume and split into two
...
functions
2017-04-30 19:27:44 +02:00
chme
9d72dc9176
[pairing] Only require the pin for kicking off the remote pairing
2017-04-29 23:36:11 +02:00
chme
170e4aaf75
[pairing] Only keep last remote pairing request from mdsn
2017-04-29 23:36:11 +02:00
chme
6f60006edb
[mpd] Support pairing remotes over mpd 'sendmessage' command
...
Adds a basic structure for supporting sendmessage and implements the
first message handler for the channel 'pairing'.
Pairing can be achieved by passing a message to channel 'pairing' in the
format "devicename:pin". With mpc this looks like 'mpc pairing
"devicename:1234"
2017-04-29 23:36:11 +02:00
chme
fd2c77cb9f
[pairing] Add public function to pair by devicename and pin
2017-04-29 23:36:11 +02:00
chme
8ed1c9c0ec
[pairing] Rename 'remote_pairing_read_pin' to
...
'remote_pairing_kickoff_byfile'
2017-04-29 23:36:11 +02:00
chme
3f10dac2f7
[dacp] Start playback from selected song in shuffle mode ( #379 )
2017-04-17 10:46:24 +02:00