mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-29 14:13:22 -08:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from abc import ABC, abstractmethod
|
|
from typing import Optional
|
|
|
|
from .....core.config import StreamConfig
|
|
from .....libs.media_api.types import MediaItem
|
|
from .....libs.player.base import BasePlayer
|
|
from .....libs.player.params import PlayerParams
|
|
from .....libs.player.types import PlayerResult
|
|
from .....libs.provider.anime.base import BaseAnimeProvider
|
|
from .....libs.provider.anime.types import Anime
|
|
from ....service.registry import MediaRegistryService
|
|
|
|
|
|
class BaseIPCPlayer(ABC):
|
|
"""
|
|
Abstract Base Class defining the contract for all media players with ipc control.
|
|
"""
|
|
|
|
def __init__(self, stream_config: StreamConfig):
|
|
self.stream_config = stream_config
|
|
|
|
@abstractmethod
|
|
def play(
|
|
self,
|
|
player: BasePlayer,
|
|
player_params: PlayerParams,
|
|
provider: Optional[BaseAnimeProvider] = None,
|
|
anime: Optional[Anime] = None,
|
|
registry: Optional[MediaRegistryService] = None,
|
|
media_item: Optional[MediaItem] = None,
|
|
) -> PlayerResult:
|
|
"""
|
|
Plays the given media URL.
|
|
"""
|
|
pass
|