
    i                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   SS\S\S\\\4   S\SS4
S jjr g)z"Choose a controller and quick play    )Any   )
Chromecast)QuickPlayController)BbcIplayerController)BbcSoundsController)BubbleUPNPController)HomeAssistantMediaController)DefaultMediaReceiverController)SuplaController)YleAreenaController)YouTubeController)ShakaController)NrkTvController)NrkRadioControllercastapp_namedatatimeoutreturnNc                 ,   US:X  a  [        5       nOUS:X  a  [        5       nOUS:X  a  [        5       nOUS:X  a  [        5       nOUS:X  a  [	        5       nOpUS:X  a  [        5       nO_US:X  a  [        5       nONUS:X  a  [        5       nO=US	:X  a  [        5       nO,US
:X  a  [        5       nOUS:X  a  [        5       nO
[        5       eU R                  U5         UR                  " S0 UDSU0D6  U R                  U5        g! U R                  U5        f = f)a[  
Given a Chromecast connection, launch the app `app_name` and start playing media
based on parameters defined in `data`.

:param cast: Chromecast connection to cast to
:param app_name: App name "slug" to cast
:param data: Data to send to the app controller. Must contain "media_id", and other
    values can be passed depending on the controller.
:type cast: Chromecast
:type app_name: string
:type data: dict

`data` can contain the following keys:
    media_id: string (Required)
        Primary identifier of the media
    media_type: string
        Type of the media identified by `media_id`. e.g. "program" if the media is a
        program name instead of a direct item id.
        When using a regular media controller (e.g. BubbleUPNP) this should be the
        content_type ('audio/mp3')
    enqueue: boolean
        Enqueue the media to the current playlist, if possible.
    index: string
        Play index x of matching media. "random" should also be allowed.
    audio_lang: string
        Audio language (3 characters for YleAreena)
    text_lang: string
        Subtitle language (3 characters for YleAreena)

Youtube-specific:
    playlist_id: string
        Youtube playlist id

Supla-specific:
    is_live: boolean
        Whether the media is a livestream

Media controller (BubbleUPNP)-specific:
    stream_type: string
        "BUFFERED" or "LIVE"

bbciplayer	bbcsounds
bubbleupnpdefault_media_receiverhomeassistant_mediasupla	yleareenayoutubeshakanrktvnrkradior   N )r   r   r	   r   r
   r   r   r   r   r   r   NotImplementedErrorregister_handler
quick_playunregister_handler)r   r   r   r   
controllers        N/home/sebas/venvs/catt/lib/python3.13/site-packages/pychromecast/quick_play.pyr&   r&      s   b <)+
	[	 (*
	\	!)+
	-	-35
	*	*13
	W	$&
	[	 (*
	Y	&(
	W	$&
	W	$&
	Z	')
!##*%,66g6
+
+s   D   D)g      >@)!__doc__typingr    r   controllersr   controllers.bbciplayerr   controllers.bbcsoundsr   controllers.bubbleupnpr	   controllers.homeassistant_mediar
   controllers.mediar   controllers.suplar   controllers.yleareenar   controllers.youtuber   controllers.shakar   controllers.nrktvr   controllers.nrkradior   strdictfloatr&   r#       r)   <module>r=      sx    (   , 8 6 8 I = . 6 2 . . 4 	O,
O,O, sCx.O, 	O,
 
O,r<   