6767 Commits

Author SHA1 Message Date
ejurgensen
e43afc853a [docs] Update Makefile.am with updated doc sources 2025-01-22 20:26:06 +01:00
ejurgensen
fba51fb93b [docs] Brush up the documentation
* Try to organize after expected user need
* Update mkdocs stuff and fix a broken link
* Move web building info to building.md
* Add info about Roku Soundbridge
* Add note about Google Nest not working
2025-01-22 20:26:06 +01:00
ejurgensen
72ef58d853 [mpd] Add getvol, bump version to 0.23.0 2025-01-22 20:26:06 +01:00
ejurgensen
5571fa628d [mpc] Support for readpicture and albumart 2025-01-22 20:26:06 +01:00
ejurgensen
2619f45ab5 [gh-actions] Add FreeBSD build workflow using vmactions 2025-01-22 20:26:06 +01:00
ejurgensen
df86df02dc [daap] Fix for Apple Music/iTunes not working on Airplay host (attempt 2)
OwnTone selects ALAC for daap streaming because it thinks the client is an Airplay speaker.

Regression in 28.10 coming from PR #1698.

Fixes #1816
2025-01-22 20:26:06 +01:00
ejurgensen
04bca06805 Revert "[daap] Fix for Apple Music/iTunes not working on Airplay host"
This reverts commit 73864e82cd267da65b7245430bd1a2060d8bec81.
2025-01-22 20:26:06 +01:00
ejurgensen
7ed66079f2 [daap] Fix for Apple Music/iTunes not working on Airplay host
OwnTone selects ALAC for daap streaming because it thinks the client is an Airplay speaker.

Regression in 28.10 coming from PR #1698.

Fixes #1816
2025-01-22 20:26:06 +01:00
ejurgensen
3999449c89 [httpd/daap] Improve logging of speaker profile selection 2025-01-22 20:26:06 +01:00
ejurgensen
0483aad095 [mpd] Fix outputs enable/disable/toggle not working in v28.10
Also simplify code by using new speaker index from player and remove some code
duplication.

Regression from PR #1779. Fixes #1814.
2025-01-22 20:26:06 +01:00
ejurgensen
269aed632f [player] Add a index attribute to struct player_speaker_info + a getter 2025-01-22 20:26:06 +01:00
github-actions[bot]
6eb5667b4a [web] Rebuild web interface 2025-01-22 20:26:06 +01:00
Fabian Groffen
1019b777c3 [mpd] outputs: drop invalid outputsvolume key
This key confuses some clients, and it isn't emitted by MPD, nor
documented to exist:
9ff8e02e54/src/output/Print.cxx

It was added in bdb2c7493, but without explanation why it was added to
outputs command.

Signed-off-by: Fabian Groffen <grobian@gentoo.org>
2025-01-22 20:22:10 +01:00
ejurgensen
d57b7565da [mpd] Add Bison/Flex parser for complex mpd commands + misc
Some of the misc:
* Initialize query_params from the start of each function
* Reduce code duplication by consolidating the handler's integer conversion
* Go back to classic int return types for handlers
* Change list grouping to respond like mpd
* Sanitize all user string output
2025-01-22 20:22:10 +01:00
ejurgensen
08b1b74ddd [mpd] Make protocol version a #define 2025-01-22 20:22:10 +01:00
ejurgensen
40f2bb5d81 [db] free_query_params should also free qp->group
Plus honor qp->order in queue_enum_start() if set by caller
2025-01-22 20:22:10 +01:00
ejurgensen
ed526f7fe3 [mpd] Refactor commit 9962c743 and other stuff in mpd.c 2025-01-22 20:22:10 +01:00
gd
277e5001a0 [mpd] Fix: allow password command when not authenticated 2025-01-22 20:22:10 +01:00
gd
b46a035a2f [mpd,db] MPD protocol fixes to handling of idle/noidle command and command list.
Command handling:
1. Changed mpd_read_cb() to delegate to mpd_process_line() for each received
command line.
2. mpd_process_line() handles idle state and command list state and delegates
to mpd_process_command() to handle each command line.
If the command was successful it sends OK to the client according the the
command list state.
Error responses are sent by mpd_process_command().
3. mpd_process_command() parses the args and delegates to the individual
command handler.

mpd_input_filter:
1. Removed handling of command lists. They are handled by mpd_process_line().
2. Return BEV_OK if there's at least one complete line of input even if there's
more data in the input buffer.

Idle/noidle:
1. Changed mpd_command_idle() to never write OK to the output buffer.
Instead it is the responsibility of the caller to decide on the response.

2. Removed mpd_command_noidle() instead it is handled in mpd_process_line().
If the client is not in idle state noidle is ignored (no response sent)
If the client is in idle state then it changes idle state to false and sends
OK as the response to the idle command.

Command lists:
1. Added command list state to the client context so commands in the list are
buffered and only executed after receiving command_list_end.

Connection state:
1. Added is_closing flag in the client context to ignore messages received
after freeing the events buffer in intent to close the client connection.

Command arguments parsing:
1. Updated COMMAND_ARGV_MAX to 70 to match current MPD.
2. Changed mpd_pars_range_arg to handle open-ended range.

Command pause:
1. pause is ignored in stopped state instead returning error.

Command move:
1. Changed mpd_command_move() to support moving a range.
2. Added db_queue_move_bypos_range() to support moving a range.

Command password:
1. Password authentication flag set in handler mpd_command_password() instead
of in command processor.

Config:
1. Added config value: "max_command_list_size".
   The maximum allowed size of buffered commands in command list.
2025-01-22 20:22:10 +01:00
ejurgensen
1e0fffc624 Bump to version 28.10 2025-01-22 20:22:10 +01:00
ejurgensen
3093bfca62 ChangeLog for OwnTone 28.10 2025-01-22 20:22:10 +01:00
ejurgensen
f1b4ff8cc7 [mpd] Set protocol version back 0.20.0
Announcing 0.22.4 without supporting the newer protocol's filters breaks Rigelian
2025-01-22 20:22:10 +01:00
Alain Nussbaumer
289e7dcdce [web] Set new version for the web UI 2025-01-04 04:57:54 +01:00
Alain Nussbaumer
6ee5911729 [web] Fix option menu opening 2025-01-03 21:12:11 +01:00
Alain Nussbaumer
fde798d5f5 [web] Set new version for the web UI 2025-01-03 21:11:43 +01:00
Alain Nussbaumer
b922a6a1a1 [web] Align items in volume menu 2025-01-01 22:10:13 +01:00
Alain Nussbaumer
44896d82f4 [web] Simplify the display of lists 2025-01-01 21:28:30 +01:00
Alain Nussbaumer
0e3490e589 [web] Remove the non-standard heading class 2025-01-01 21:13:48 +01:00
Alain Nussbaumer
a415e619af [web] Lint source code 2025-01-01 17:36:24 +01:00
Alain Nussbaumer
2d0747dbe9 [web] Fix spacing in lists of items 2025-01-01 17:36:09 +01:00
Alain Nussbaumer
02307e86cd [web] Move styles in the components 2025-01-01 17:22:17 +01:00
Alain Nussbaumer
16a76fdc58 [web] Increment version of the web interface 2024-12-31 10:55:38 +01:00
Alain Nussbaumer
7c8b787afb [web] Add ability to access the server externally 2024-12-31 10:41:18 +01:00
Alain Nussbaumer
e891b5d24c [web] Fix page "Now Playing" progress update when pausing 2024-12-31 10:39:03 +01:00
Alain Nussbaumer
cdbce17731 [web] Remove useless app div element 2024-12-30 07:41:31 +01:00
Alain Nussbaumer
d1c2f0f9fd [web] Fix attribute order 2024-12-30 07:41:03 +01:00
Alain Nussbaumer
66b11c96e2 [web] Update libraries 2024-12-28 05:01:08 +01:00
Alain Nussbaumer
861a18f4e3 [web] Update library versions 2024-12-05 01:02:42 +01:00
Alain Nussbaumer
a79ce01ae1 [web] Use newer versions of libraries 2024-11-14 10:44:21 +01:00
Alain Nussbaumer
4748e6adb5 [web] Remove background color 2024-11-14 10:42:51 +01:00
Alain Nussbaumer
66c2873d32 [web] Migrate to Bulma 1.0.2 2024-09-24 20:31:51 +02:00
Alain Nussbaumer
87ec17c243 [web] Fix top navigation bar on small screens 2024-09-10 21:46:50 +02:00
Alain Nussbaumer
3127da51b1 [web] Update versions of libraries 2024-09-10 21:08:21 +02:00
Alain Nussbaumer
5c19d7d579 [web] Order of attributes 2024-09-10 21:07:02 +02:00
Alain Nussbaumer
c8e4862245 [web] Avoid the scrollable page behind all modal dialogs 2024-09-10 21:05:12 +02:00
Alain Nussbaumer
8f627f1df0 [web] Avoid scrollable page behind the modal dialog 2024-09-09 21:03:59 +02:00
Alain Nussbaumer
c377ae3a64 [web] Change about page 2024-09-09 21:02:00 +02:00
Alain Nussbaumer
3d9cec4ded [web] Change navigation bars 2024-09-09 21:00:35 +02:00
Alain Nussbaumer
e0a2ab159e [web] Replace switch control 2024-09-09 20:55:41 +02:00
Alain Nussbaumer
e12ab3dd08 [web] Remove useless style elements 2024-09-08 22:01:04 +02:00