CONF_BASE_URL,
CONF_ENABLE_LEGACY_AUTH,
CONF_ENABLE_PODCASTS,
+ CONF_OVERRIDE_OFFSET,
OpenSonicProvider,
)
description='Enable OpenSubsonic "legacy" auth support',
default_value=False,
),
+ ConfigEntry(
+ key=CONF_OVERRIDE_OFFSET,
+ type=ConfigEntryType.BOOLEAN,
+ label="Force player provider seek",
+ required=True,
+ description="Some Subsonic implementations advertise that they support seeking when "
+ "they do not always. If seeking does not work for you, enable this.",
+ default_value=False,
+ ),
)
CONF_BASE_URL = "baseURL"
CONF_ENABLE_PODCASTS = "enable_podcasts"
CONF_ENABLE_LEGACY_AUTH = "enable_legacy_auth"
+CONF_OVERRIDE_OFFSET = "override_transcode_offest"
UNKNOWN_ARTIST_ID = "fake_artist_unknown"
_conn: SonicConnection = None
_enable_podcasts: bool = True
_seek_support: bool = False
+ _ignore_offset: bool = False
async def handle_async_init(self) -> None:
"""Set up the music provider and test the connection."""
)
raise LoginFailed(msg) from e
self._enable_podcasts = self.config.get_value(CONF_ENABLE_PODCASTS)
+ self._ignore_offset = self.config.get_value(CONF_OVERRIDE_OFFSET)
try:
ret = await self._run_async(self._conn.getOpenSubsonicExtensions)
extensions = ret["openSubsonicExtensions"]
for entry in extensions:
- if entry["name"] == "transcodeOffset":
+ if entry["name"] == "transcodeOffset" and not self._ignore_offset:
self._seek_support = True
break
except OSError: