0
1
mirror of https://github.com/radio95-rnt/RadioPlayer.git synced 2026-02-26 21:53:54 +01:00

simplify the procman a little (internal)

This commit is contained in:
2025-12-12 22:00:20 +01:00
parent de877ffbea
commit f421e75293
2 changed files with 6 additions and 6 deletions

View File

@@ -24,7 +24,7 @@ class Process:
class Skeleton_ProcessManager:
processes: list[Process]
def _get_audio_duration(self, file_path): ...
def play(self, track: Track, fade_in_time: float=0, fade_out_time: float=0) -> Process: ...
def play(self, track: Track) -> Process: ...
def anything_playing(self) -> bool: ...
def stop_all(self, timeout: float | None = None) -> None: ...
def wait_all(self, timeout: float | None = None) -> None: ...
@@ -66,7 +66,7 @@ class ProcmanCommunicator(BaseIMCModule):
elif int(op) == 4:
return {"op": 4, "arg": self.procman.anything_playing()}
elif int(op) == 5:
if arg := data.get("arg"): return {"op": 5, "arg": self.procman.play(arg, data.get("fade_in_time", data.get("fade_time", 5)), data.get("fade_out_time", data.get("fade_time", 5)))}
if arg := data.get("arg"): return {"op": 5, "arg": self.procman.play(arg)}
else: return
class PlayerModule(BaseIMCModule):

View File

@@ -28,7 +28,7 @@ class ProcessManager(Skeleton_ProcessManager):
result = float(result.stdout.strip())
self.duration_cache.saveElement(file_path.as_posix(), result, (60*60*2), False, True)
return result
def play(self, track: Track, fade_in_time: float=0, fade_out_time: float=0) -> Process:
def play(self, track: Track) -> Process:
assert track.path.exists()
cmd = ['ffplay', '-nodisp', '-hide_banner', '-autoexit', '-loglevel', 'quiet']
@@ -38,8 +38,8 @@ class ProcessManager(Skeleton_ProcessManager):
if track.offset > 0: cmd.extend(['-ss', str(track.offset)])
filters = []
if track.fade_in and fade_in_time != 0: filters.append(f"afade=t=in:st=0:d={fade_in_time}")
if track.fade_out and fade_out_time != 0: filters.append(f"afade=t=out:st={duration - fade_out_time}:d={fade_out_time}")
if track.fade_in != 0: filters.append(f"afade=t=in:st=0:d={track.fade_in}")
if track.fade_out != 0: filters.append(f"afade=t=out:st={duration - track.fade_out}:d={track.fade_out}")
if filters: cmd.extend(['-af', ",".join(filters)])
cmd.append(str(track.path.absolute()))
@@ -271,7 +271,7 @@ class RadioPlayer:
self.logger.info(f"Now playing: {track.path.name}")
prefetch(track.path)
pr = self.procman.play(track, track.fade_in, track.fade_out)
pr = self.procman.play(track)
[module.on_new_track(song_i, pr.track, next_track) for module in self.simple_modules if module]
end_time = pr.started_at + pr.duration + pr.track.focus_time_offset