mpd-now-playable/stubs/MediaPlayer/__init__.pyi

99 lines
3.8 KiB
Python

from collections.abc import Callable
from typing import Final, Literal, override
from AppKit import NSImage
from Foundation import CGSize, NSMutableDictionary
MPMusicPlaybackStateStopped: Final = 0
MPMusicPlaybackStatePlaying: Final = 1
MPMusicPlaybackStatePaused: Final = 2
MPMusicPlaybackState = Literal[0, 1, 2]
MPMediaItemPropertyAlbumTitle: Final = "albumTitle"
MPMediaItemPropertyAlbumTrackNumber: Final = "albumTrackNumber"
MPMediaItemPropertyDiscNumber: Final = "discNumber"
MPMediaItemPropertyGenre: Final = "genre"
MPMediaItemPropertyArtist: Final = "artist"
MPMediaItemPropertyComposer: Final = "composer"
MPMediaItemPropertyArtwork: Final = "artwork"
MPMediaItemPropertyPlaybackDuration: Final = "playbackDuration"
MPMediaItemPropertyPersistentID: Final = "persistentID"
MPMediaItemPropertyTitle: Final = "title"
MPNowPlayingInfoPropertyMediaType: Final = "MPNowPlayingInfoPropertyMediaType"
MPNowPlayingInfoMediaTypeAudio: Final = 1
MPNowPlayingInfoMediaTypeNone: Final = 0
MPNowPlayingInfoPropertyPlaybackRate: Final = "MPNowPlayingInfoPropertyPlaybackRate"
MPNowPlayingInfoPropertyPlaybackQueueCount: Final = (
"MPNowPlayingInfoPropertyPlaybackQueueCount"
)
MPNowPlayingInfoPropertyPlaybackQueueIndex: Final = (
"MPNowPlayingInfoPropertyPlaybackQueueIndex"
)
MPNowPlayingInfoPropertyElapsedPlaybackTime: Final = (
"MPNowPlayingInfoPropertyElapsedPlaybackTime"
)
MPNowPlayingInfoPropertyExternalContentIdentifier: Final = (
"MPNowPlayingInfoPropertyExternalContentIdentifier"
)
class MPMediaItemArtwork:
@staticmethod
def alloc() -> type[MPMediaItemArtwork]: ...
@staticmethod
def initWithBoundsSize_requestHandler_(
size: CGSize, handler: Callable[[CGSize], NSImage]
) -> MPMediaItemArtwork: ...
class MPNowPlayingInfoCenter:
@staticmethod
def defaultCenter() -> MPNowPlayingInfoCenter: ...
def setNowPlayingInfo_(self, info: NSMutableDictionary) -> None: ...
def setPlaybackState_(self, state: MPMusicPlaybackState) -> None: ...
MPRemoteCommandHandlerStatusSuccess: Final = 0
MPRemoteCommandHandlerStatusCommandFailed: Final = 200
MPRemoteCommandHandlerStatus = Literal[0, 200]
class MPRemoteCommandEvent:
pass
class MPChangePlaybackPositionCommandEvent(MPRemoteCommandEvent):
def positionTime(self) -> float:
"""Return the requested playback position as a number of seconds (fractional seconds are allowed)."""
pass
class MPRemoteCommand:
def setEnabled_(self, enabled: bool) -> None: ...
def removeTarget_(self, target: object) -> None: ...
def addTargetWithHandler_(
self, handler: Callable[[MPRemoteCommandEvent], MPRemoteCommandHandlerStatus]
) -> None:
"""Register a callback to handle the commands. Many remote commands don't carry useful information in the event object (play, pause, next track, etc.), so the callback does not necessarily need to care about the event argument."""
pass
class MPChangePlaybackPositionCommand(MPRemoteCommand):
@override
def addTargetWithHandler_(
self,
handler: Callable[
[MPChangePlaybackPositionCommandEvent], MPRemoteCommandHandlerStatus
],
) -> None: ...
class MPRemoteCommandCenter:
@staticmethod
def sharedCommandCenter() -> MPRemoteCommandCenter: ...
def togglePlayPauseCommand(self) -> MPRemoteCommand: ...
def playCommand(self) -> MPRemoteCommand: ...
def pauseCommand(self) -> MPRemoteCommand: ...
def stopCommand(self) -> MPRemoteCommand: ...
def nextTrackCommand(self) -> MPRemoteCommand: ...
def previousTrackCommand(self) -> MPRemoteCommand: ...
def changePlaybackRateCommand(self) -> MPRemoteCommand: ...
def seekBackwardCommand(self) -> MPRemoteCommand: ...
def skipBackwardCommand(self) -> MPRemoteCommand: ...
def seekForwardCommand(self) -> MPRemoteCommand: ...
def skipForwardCommand(self) -> MPRemoteCommand: ...
def changePlaybackPositionCommand(self) -> MPChangePlaybackPositionCommand: ...