diff --git a/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt b/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt
index a555d00..50b85d8 100644
--- a/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt
+++ b/app/src/main/java/io/bartek/ttsserver/preference/Preference.kt
@@ -5,5 +5,6 @@ object PreferenceKey {
const val PORT = "preference_port"
const val ENABLE_SAY_ENDPOINT = "preference_enable_say_endpoint"
const val ENABLE_WAVE_ENDPOINT = "preference_enable_wave_endpoint"
+ const val ENABLE_SONOS_ENDPOINT = "preference_enable_sonos_endpoint"
const val TTS = "preference_tts"
}
\ No newline at end of file
diff --git a/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt b/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt
index 3456d96..e56391b 100644
--- a/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt
+++ b/app/src/main/java/io/bartek/ttsserver/web/WebServer.kt
@@ -92,6 +92,10 @@ class WebServer(port: Int, private val context: Context) : NanoHTTPD(port),
}
private fun sonos(session: IHTTPSession): Response {
+ if (!preferences.getBoolean(PreferenceKey.ENABLE_SONOS_ENDPOINT, true)) {
+ throw ResponseException(NOT_FOUND, "")
+ }
+
if (session.method != Method.POST) {
throw ResponseException(METHOD_NOT_ALLOWED, "")
}
@@ -108,6 +112,10 @@ class WebServer(port: Int, private val context: Context) : NanoHTTPD(port),
}
private fun sonosCache(session: IHTTPSession): Response {
+ if (!preferences.getBoolean(PreferenceKey.ENABLE_SONOS_ENDPOINT, true)) {
+ throw ResponseException(NOT_FOUND, "")
+ }
+
if (session.method != Method.GET) {
throw ResponseException(METHOD_NOT_ALLOWED, "")
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9b9916f..8b83820 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,6 +21,8 @@
Enable /say endpoint
Allow HTTP clients to use /wave endpoint which enables them to retrieve TTS message as wave file
Enable /wave endpoint
+ Allow HTTP clients to use /sonos endpoint which enables them to send TTS messages directly to Sonos devices
+ Enable /sonos endpoint
Go to platform\'s TTS engine settings and adjust its parameters
TTS engine settings
TTS engine
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 90bae26..5ed76fd 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -24,6 +24,13 @@
android:title="@string/preference_enable_wave_endpoint_title"
app:iconSpaceReserved="false" />
+
+