MycroftOS: Addition of Snapcast; Both client and server.
- Configuration opts are in /etc/snapcast/ - Server configuration in /etc/snapcast.conf - NOT enabled by default, can be started/enabled by; sudo systemctl start/enable snapclient.service sudo systemctl start/emable snapserver.service
This commit is contained in:
parent
34ab4ad2b3
commit
73ffd6fd6e
|
@ -10,6 +10,7 @@ menu "Additional drivers, libraries and/or applications"
|
|||
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/btspeaker/Config.in"
|
||||
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/fann/Config.in"
|
||||
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/respeaker/Config.in"
|
||||
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/snapcast/Config.in"
|
||||
source "$BR2_EXTERNAL_MYCROFTOS_PATH/package/spotifyd/Config.in"
|
||||
endmenu
|
||||
menu "Additional external python modules"
|
||||
|
|
|
@ -61,7 +61,6 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y
|
|||
BR2_PACKAGE_FFMPEG_FFPROBE=y
|
||||
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
|
||||
BR2_PACKAGE_FFMPEG_POSTPROC=y
|
||||
BR2_PACKAGE_FLAC=y
|
||||
BR2_PACKAGE_MIMIC=y
|
||||
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA=y
|
||||
BR2_PACKAGE_MPG123=y
|
||||
|
@ -250,8 +249,6 @@ BR2_PACKAGE_PCRE_16=y
|
|||
BR2_PACKAGE_PCRE_32=y
|
||||
BR2_PACKAGE_PCRE2_16=y
|
||||
BR2_PACKAGE_PCRE2_32=y
|
||||
BR2_PACKAGE_AVAHI=y
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ_TOOLS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
|
@ -322,6 +319,8 @@ BR2_PACKAGE_ALSA_PLUGINS=y
|
|||
BR2_PACKAGE_BTSPEAKER=y
|
||||
BR2_PACKAGE_FANN=y
|
||||
BR2_PACKAGE_RESPEAKER=y
|
||||
BR2_PACKAGE_SNAPCAST=y
|
||||
BR2_PACKAGE_SNAPCAST_SERVER=y
|
||||
BR2_PACKAGE_SPOTIFYD=y
|
||||
BR2_PACKAGE_PYTHON_ADAPT_PARSER=y
|
||||
BR2_PACKAGE_PYTHON_COLORZERO=y
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
config BR2_PACKAGE_SNAPCAST
|
||||
bool "snapcast"
|
||||
depends on BR2_USE_MMU # avahi
|
||||
depends on !BR2_STATIC_LIBS # avahi
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_PACKAGE_AVAHI
|
||||
select BR2_PACKAGE_AVAHI_DAEMON
|
||||
select BR2_PACKAGE_BOOST
|
||||
select BR2_PACKAGE_DBUS
|
||||
select BR2_PACKAGE_FLAC
|
||||
select BR2_PACKAGE_LIBVORBIS
|
||||
select BR2_PACKAGE_OPUS
|
||||
help
|
||||
Synchronous multi-room audio player
|
||||
|
||||
https://github.com/badaix/snapcast
|
||||
|
||||
if BR2_PACKAGE_SNAPCAST
|
||||
|
||||
config BR2_PACKAGE_SNAPCAST_CLIENT
|
||||
bool "Snapclient"
|
||||
default y
|
||||
help
|
||||
Snapcast client
|
||||
|
||||
config BR2_PACKAGE_SNAPCAST_SERVER
|
||||
bool "Snapserver"
|
||||
help
|
||||
Snapcast server
|
||||
|
||||
endif
|
||||
|
||||
comment "Snapcast needs a toolchain w/ C++, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| BR2_STATIC_LIBS
|
|
@ -0,0 +1,69 @@
|
|||
################################################################################
|
||||
#
|
||||
# snapcast
|
||||
#
|
||||
################################################################################
|
||||
|
||||
SNAPCAST_VERSION = v0.17.1
|
||||
SNAPCAST_SITE = $(call github,badaix,snapcast,$(SNAPCAST_VERSION))
|
||||
SNAPCAST_DEPENDENCIES = libogg alsa-lib avahi # libstdcpp libatomic libflac libvorbisidec
|
||||
SNAPCAST_LICENSE = GPL-3.0+
|
||||
SNAPCAST_LICENSE_FILES = LICENSE
|
||||
|
||||
define SNAPCLIENT_INSTALL_CONFIG
|
||||
mkdir -p $(TARGET_DIR)/etc/snapcast
|
||||
$(INSTALL) -m 0755 -D $(@D)/debian/snapclient.default $(TARGET_DIR)/etc/snapcast/snapclient
|
||||
endef
|
||||
|
||||
|
||||
define SNAPSERVER_INSTALL_CONFIG
|
||||
mkdir -p $(TARGET_DIR)/etc/snapcast
|
||||
$(INSTALL) -m 0755 -D $(@D)/debian/snapserver.default $(TARGET_DIR)/etc/snapcast/snapserver
|
||||
$(INSTALL) -m 0755 -D $(@D)/server/etc/snapserver.conf $(TARGET_DIR)/etc/
|
||||
endef
|
||||
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SNAPCAST_CLIENT),y)
|
||||
SNAPCAST_POST_INSTALL_TARGET_HOOKS += SNAPCLIENT_INSTALL_CONFIG
|
||||
|
||||
define SNAPCLIENT_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -m 0755 -D $(SNAPCAST_PKGDIR)/S99snapclient $(TARGET_DIR)/etc/init.d/S99snapclient
|
||||
endef
|
||||
|
||||
define SNAPCLIENT_INSTALL_INIT_SYSTEMD
|
||||
$(INSTALL) -D -m 0644 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/snapcast/snapclient.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/snapclient.service
|
||||
endef
|
||||
else # !BR2_PACKAGE_SNAPCAST_CLIENT
|
||||
SNAPCAST_CONF_OPTS += -DBUILD_CLIENT=OFF
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SNAPCAST_SERVER),y)
|
||||
SNAPCAST_POST_INSTALL_TARGET_HOOKS += SNAPSERVER_INSTALL_CONFIG
|
||||
|
||||
define SNAPSERVER_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -m 0755 -D $(SNAPCAST_PKGDIR)/S99snapserver $(TARGET_DIR)/etc/init.d/S99snapserver
|
||||
endef
|
||||
|
||||
define SNAPSERVER_INSTALL_INIT_SYSTEMD
|
||||
$(INSTALL) -D -m 0644 $(BR2_EXTERNAL_MYCROFTOS_PATH)/package/snapcast/snapserver.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/snapserver.service
|
||||
endef
|
||||
else # !BR2_PACKAGE_SNAPCAST_SERVER
|
||||
SNAPCAST_CONF_OPTS += -DBUILD_SERVER=OFF
|
||||
endif
|
||||
|
||||
|
||||
define SNAPCAST_INSTALL_INIT_SYSTEMD
|
||||
$(SNAPCLIENT_INSTALL_INIT_SYSTEMD)
|
||||
$(SNAPSERVER_INSTALL_INIT_SYSTEMD)
|
||||
endef
|
||||
|
||||
define SNAPCAST_INSTALL_INIT_SYSV
|
||||
$(SNAPCLIENT_INSTALL_INIT_SYSV)
|
||||
$(SNAPSERVER_INSTALL_INIT_SYSV)
|
||||
endef
|
||||
|
||||
|
||||
$(eval $(cmake-package))
|
|
@ -0,0 +1,15 @@
|
|||
[Unit]
|
||||
Description=Snapcast client
|
||||
Documentation=man:snapclient(1)
|
||||
Wants=avahi-daemon.service
|
||||
After=network.target time-sync.target sound.target avahi-daemon.service
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/snapcast/snapclient
|
||||
ExecStart=/usr/bin/snapclient $SNAPCLIENT_OPTS
|
||||
# very noisy on stdout
|
||||
StandardOutput=null
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1,13 @@
|
|||
[Unit]
|
||||
Description=Snapcast server
|
||||
Documentation=man:snapserver(1)
|
||||
Wants=avahi-daemon.service
|
||||
After=network.target time-sync.target avahi-daemon.service
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=-/etc/snapcast/snapserver
|
||||
ExecStart=/usr/bin/snapserver $SNAPSERVER_OPTS
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in New Issue