🐶 Sync 2025-11-02 14:26:26

This commit is contained in:
actions-user
2025-11-02 14:26:26 +08:00
parent 64bcc56c2a
commit ac011db799
1557 changed files with 746465 additions and 0 deletions

62
airconnect/Makefile Normal file
View File

@@ -0,0 +1,62 @@
#
# Copyright (C) 2015-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v3.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=airconnect
PKG_VERSION:=1.9.2
PKG_RELEASE=1
PKG_SOURCE:=AirConnect-$(PKG_VERSION).zip
PKG_SOURCE_URL:=https://github.com/philippe44/AirConnect/releases/download/$(PKG_VERSION)/
PKG_HASH:=9f59e980333e2971111a3a2dadb1672ae92d9e9ef910bb3151aea5c315b0305a
PKG_BUILD_DIR:=$(BUILD_DIR)/airconnect-$(PKG_VERSION)
PKG_LICENSE:=MIT
PKG_LICENSE_FILE:=LICENSE
PKG_MAINTAINER:=sbwml <admin@cooluc.com>
ifeq ($(ARCH),arm)
ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE))))
ifeq ($(ARM_CPU_FEATURES),)
ARCH:=armv6
endif
endif
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=multimedia
CATEGORY:=Multimedia
TITLE:=AirConnect
URL:=https://github.com/philippe44/AirConnect
endef
define Package/$(PKG_NAME)/description
Use AirPlay to stream to UPnP/Sonos & Chromecast devices
endef
define Package/$(PKG_NAME)/conffiles
/etc/config/airconnect
endef
define Build/Prepare
unzip -q -d $(PKG_BUILD_DIR) $(DL_DIR)/AirConnect-$(PKG_VERSION).zip
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) ./files/airconnect.init $(1)/etc/init.d/airconnect
$(INSTALL_CONF) ./files/airconnect.config $(1)/etc/config/airconnect
$(INSTALL_BIN) $(PKG_BUILD_DIR)/aircast-linux-$(ARCH)-static $(1)/usr/bin/aircast
$(INSTALL_BIN) $(PKG_BUILD_DIR)/airupnp-linux-$(ARCH)-static $(1)/usr/bin/airupnp
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View File

@@ -0,0 +1,7 @@
config airconnect 'config'
option 'enabled' '0'
option 'interface' 'br-lan'
option 'aircast' '1'
option 'airupnp' '1'

View File

@@ -0,0 +1,55 @@
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
PROG_AIRCAST=/usr/bin/aircast
PROG_AIRUPNP=/usr/bin/airupnp
get_config() {
config_get enabled $1 enabled "0"
config_get interface $1 interface "br-lan"
config_get aircast $1 aircast "1"
config_get airupnp $1 airupnp "1"
}
start_service() {
config_load "airconnect"
config_foreach get_config "airconnect"
[ $enabled -eq 0 ] && return 0
# UPnP/Sonos
if [ "$airupnp" -eq 1 ]; then
procd_open_instance airupnp
procd_set_param command $PROG_AIRUPNP
procd_append_param command -l 1000:2000
procd_append_param command -Z
procd_append_param command -b $interface
procd_set_param stdout 0
procd_set_param stderr 0
procd_set_param respawn
procd_close_instance airupnp
fi
# Chromecast
if [ "$aircast" -eq 1 ]; then
procd_open_instance aircast
procd_set_param command $PROG_AIRCAST
procd_append_param command -l 1000:2000
procd_append_param command -Z
procd_append_param command -b $interface
procd_set_param stdout 0
procd_set_param stderr 0
procd_set_param respawn
procd_close_instance aircast
fi
}
service_triggers() {
procd_add_reload_trigger "airconnect"
}
reload_service() {
stop
sleep 1
start
}