Linux/FreeBSD DAAP (iTunes) and MPD media server with support for AirPlay 1 and 2 speakers (multiroom), Apple Remote (and compatibles), Chromecast, Spotify and internet radio.
Go to file
gd e1628ff1a9 [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.
2024-09-16 21:17:32 +02:00
.github [ci] Streamline macOS pipelines 2024-06-09 11:10:22 +02:00
build-aux [config] Just use an empty config.rpath as it's only used by iconv 2017-01-07 13:27:17 -08:00
docs [doc] Fix notes style 2024-07-20 23:05:35 +02:00
htdocs [web] Rebuild web interface 2024-08-22 20:06:59 +00:00
m4 [daap/smartpl] Add new bison/flex parsers 2022-01-29 17:46:40 +01:00
scripts [docs] Change mxml to libxml2 2024-05-31 23:47:46 +02:00
sqlext [db] Use custom LIKE operator adapted from sqlite's icu.c (closes #1390) 2022-02-13 20:52:40 +01:00
src [mpd,db] MPD protocol fixes to handling of idle/noidle command and command list. 2024-09-16 21:17:32 +02:00
web-src [web] Remove text "No results." at the end of Spotify album list 2024-08-22 22:06:28 +02:00
.gitignore Stop ignoring changes to debian dir 2023-03-05 20:46:34 +01:00
.travis.yml Fix for Travis build stopping on tzdata install prompt 2020-05-12 23:21:35 +02:00
AUTHORS [docs] Name change of forked-daapd to OwnTone 2021-04-24 23:54:12 +02:00
COPYING Add GPLv2 license text 2009-06-12 13:00:40 +02:00
ChangeLog ChangeLog for OwnTone 28.10 2024-09-12 17:21:51 +02:00
INSTALL.md [docs] Delete "old" README*.md files 2022-05-08 07:20:04 +02:00
Makefile.am [spotify] Remove old libspotify integration 2022-05-25 22:49:35 +02:00
NEWS Add NEWS file again for automake 2013-12-25 08:56:59 +01:00
README.md Revert "[docs] Add note to README about Spotify being broken" 2024-09-06 17:06:14 +02:00
UPGRADING [docs] Name change of forked-daapd to OwnTone 2021-04-24 23:54:12 +02:00
_config.yml Set theme jekyll-theme-slate 2017-02-26 00:51:07 +01:00
configure.ac Bump to version 28.10 2024-09-12 17:23:08 +02:00
mkdocs.sh [docs] Split docs into multiple files and publish with gh-actions 2022-05-08 07:22:48 +02:00
mkdocs.yml [doc] Add configuration documentation in the menu 2024-04-27 21:53:01 +02:00
owntone.8 [-] Rename source and target names from forked-daapd to owntone 2021-04-24 23:54:20 +02:00
owntone.conf.in [mpd,db] MPD protocol fixes to handling of idle/noidle command and command list. 2024-09-16 21:17:32 +02:00
owntone.service.in [config] Replace network.target with network-online.target in owntone.service 2023-08-05 23:51:27 +02:00
owntone.spec.in [docs] Change mxml to libxml2 2024-05-31 23:47:46 +02:00
owntone@.service.in Add a SystemD template service for owntone (issue #1353) 2021-11-25 22:11:59 +01:00

README.md

OwnTone

OwnTone is a media server that lets you play audio sources such as local files, Spotify, pipe input or internet radio to AirPlay 1 and 2 receivers, Chromecast receivers, Roku Soundbridge, a browser or the servers own sound system. Or you can listen to your music via any client that supports mp3 streaming.

You control the server via a web interface, Apple Remote, an Android remote (e.g. Retune), an MPD client, json API or DACP.

OwnTone also serves local files via the Digital Audio Access Protocol (DAAP) to iTunes (Windows), Apple Music (macOS) and Rhythmbox (Linux), and via the Roku Server Protocol (RSP) to Roku devices.

Runs on Linux, BSD and macOS.

OwnTone was previously called forked-daapd, which again was a rewrite of mt-daapd (Firefly Media Server).

Looking for help?

Visit the OwnTone documentation for usage and set up instructions, API documentation, etc.

If you are looking for information on how to get and install OwnTone, then see the Installation instructions.