feat(adb_client): expose last_dump so consumers can parse the Audio playback section from the same query
This commit is contained in:
1 parent
37164b6f24
commit
4269e233b8
1 file changed
+13
@@ -72,8 +72,10 @@ class AdbClientBase:
|
|||||||
|
|
||||||
# Media session state
|
# Media session state
|
||||||
self._last_info: MediaSessionInfo | None = None
|
self._last_info: MediaSessionInfo | None = None
|
||||||
|
self._last_dump: str | None = None
|
||||||
self._all_sessions: list[MediaSessionInfo] = []
|
self._all_sessions: list[MediaSessionInfo] = []
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def connected(self) -> bool:
|
def connected(self) -> bool:
|
||||||
return self._connected
|
return self._connected
|
||||||
@@ -89,6 +91,7 @@ class AdbClientBase:
|
|||||||
def clear_info(self) -> None:
|
def clear_info(self) -> None:
|
||||||
"""Clear the cached media session info."""
|
"""Clear the cached media session info."""
|
||||||
self._last_info = None
|
self._last_info = None
|
||||||
|
self._last_dump = None
|
||||||
self._all_sessions = []
|
self._all_sessions = []
|
||||||
|
|
||||||
async def connect(self) -> bool:
|
async def connect(self) -> bool:
|
||||||
@@ -196,12 +199,22 @@ class AdbClientBase:
|
|||||||
if head_lines is not None:
|
if head_lines is not None:
|
||||||
command += f" | head -{head_lines}"
|
command += f" | head -{head_lines}"
|
||||||
dump = await self.shell(command)
|
dump = await self.shell(command)
|
||||||
|
self._last_dump = dump if dump is not None else None
|
||||||
if dump is None:
|
if dump is None:
|
||||||
return None
|
return None
|
||||||
self._all_sessions = parse_all_media_sessions(dump)
|
self._all_sessions = parse_all_media_sessions(dump)
|
||||||
self._last_info = parse_media_session(dump, foreground_package)
|
self._last_info = parse_media_session(dump, foreground_package)
|
||||||
return self._last_info
|
return self._last_info
|
||||||
|
|
||||||
|
@property
|
||||||
|
def last_dump(self) -> str | None:
|
||||||
|
"""Raw output of the last media-session query (or None if it failed).
|
||||||
|
|
||||||
|
Shared consumers (the ShieldConnectionManager) parse the "Audio
|
||||||
|
playback" section from this same dump — no extra round trip.
|
||||||
|
"""
|
||||||
|
return self._last_dump
|
||||||
|
|
||||||
# -- Health check --
|
# -- Health check --
|
||||||
|
|
||||||
async def health_check(self) -> bool:
|
async def health_check(self) -> bool:
|
||||||
|
|||||||
Reference in new issue
Block a user