
    q	hG                        S SK JrJrJr  SSKJrJr  SSKJr	  SSKJ
r  SSKJr  \(       a  SSKJr  SSKJr   " S	 S
5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\\\4   r\\\4   r\\\4   r\\\4   rg)    )TYPE_CHECKINGListUnion   )	FfiHandle	FfiClient)ffi_pb2)	track_pb2)	stats_pb2)AudioSource)VideoSourcec                   &   \ rS rSrS\R
                  4S jr\S\4S j5       r	\S\4S j5       r
\S\R                  R                  4S j5       r\S\R                  R                  4S j5       r\S\4S	 j5       rS\\R(                     4S
 jrSrg)Track   
owned_infoc                 n    UR                   U l        [        UR                  R                  5      U l        g N)info_infor   handleid_ffi_handle)selfr   s     C/var/www/html/env/lib/python3.13/site-packages/livekit/rtc/track.py__init__Track.__init__   s&    __
$Z%6%6%9%9:    returnc                 .    U R                   R                  $ r   )r   sidr   s    r   r    	Track.sid   s    zz~~r   c                 .    U R                   R                  $ r   )r   namer!   s    r   r$   
Track.name#       zzr   c                 .    U R                   R                  $ r   )r   kindr!   s    r   r(   
Track.kind'   r&   r   c                 .    U R                   R                  $ r   )r   stream_stater!   s    r   r+   Track.stream_state+   s    zz&&&r   c                 .    U R                   R                  $ r   )r   mutedr!   s    r   r.   Track.muted/   s    zzr   c                   ^#    [         R                  " 5       nU R                  R                  UR                  l        [        R                  R                  R                  5       n [        R                  R                  U5      mUR                  U4S j5      I S h  vN n[        R                  R                  R                  U5        UR                  R                  (       a  [        UR                  R                  5      e[        UR                  R                   5      $  N! [        R                  R                  R                  U5        f = f7f)Nc                 ^   > U R                   R                  TR                   R                  :H  $ r   )	get_statsasync_id)eresps    r   <lambda>!Track.get_stats.<locals>.<lambda>;   s    !++..$..2I2IIr   )	proto_ffi
FfiRequestr   r   r2   track_handler   instancequeue	subscriberequestwait_forunsubscribeerror	Exceptionliststats)r   reqr<   cbr5   s       @r   r2   Track.get_stats3   s     ""$%)%5%5%<%<"""((224	8%%--c2D+0>>I, &B $$007<<BLL..//BLL&&''& $$007s1   A#E'7D' D%D' #BE%D' '+EE)r   r   N)__name__
__module____qualname____firstlineno__proto_track
OwnedTrackr   propertystrr    r$   	TrackKind	ValueTyper(   StreamStater+   boolr.   r   proto_statsRtcStatsr2   __static_attributes__ r   r   r   r      s    ;;#9#9 ; S   c   k++55   'k55?? ' '  t    (k&:&:!; (r   r   c                   ~   ^  \ rS rSrS\R
                  4U 4S jjr\S\SSSS 4S j5       r	S	 r
S
 rS\4S jrSrU =r$ )LocalAudioTrackF   r   c                 $   > [         TU ]  U5        g r   superr   r   r   	__class__s     r   r   LocalAudioTrack.__init__G       r   r$   sourcer   r   c                    [         R                  " 5       nXR                  l        UR                  R
                  UR                  l        [        R                  R                  U5      n[        UR                  R                  5      $ r   )r8   r9   create_audio_trackr$   r   r   source_handler   r;   r>   rY   trackr$   rb   rE   r5   s       r   rd   "LocalAudioTrack.create_audio_trackJ   c    ""$&*#/5/A/A/H/H,!!))#.t66<<==r   c                     [         R                  " 5       nU R                  R                  UR                  l        SUR                  l        [        R                  R                  U5        SU R                  l        g NTr8   r9   r   r   local_track_muter:   muter   r;   r>   r   r.   r   rE   s     r   rn   LocalAudioTrack.muteS   X    ""$,0,<,<,C,C)$(!""3'

r   c                     [         R                  " 5       nU R                  R                  UR                  l        SUR                  l        [        R                  R                  U5        SU R                  l        g NFrl   ro   s     r   unmuteLocalAudioTrack.unmuteZ   X    ""$,0,<,<,C,C)$)!""3' 

r   c                 <    SU R                    SU R                   S3$ )Nzrtc.LocalAudioTrack(sid=, name=)r    r$   r!   s    r   __repr__LocalAudioTrack.__repr__a       )$((7499+QGGr   rW   )rH   rI   rJ   rK   rL   rM   r   staticmethodrO   rd   rn   rt   r{   rV   __classcell__r_   s   @r   rY   rY   F   ]    [33  > >m >@Q > > !H# H Hr   rY   c                   ~   ^  \ rS rSrS\R
                  4U 4S jjr\S\SSSS 4S j5       r	S	 r
S
 rS\4S jrSrU =r$ )LocalVideoTracke   r   c                 $   > [         TU ]  U5        g r   r\   r^   s     r   r   LocalVideoTrack.__init__f   ra   r   r$   rb   r   r   c                    [         R                  " 5       nXR                  l        UR                  R
                  UR                  l        [        R                  R                  U5      n[        UR                  R                  5      $ r   )r8   r9   create_video_trackr$   r   r   re   r   r;   r>   r   rf   rg   s       r   r   "LocalVideoTrack.create_video_tracki   ri   r   c                     [         R                  " 5       nU R                  R                  UR                  l        SUR                  l        [        R                  R                  U5        SU R                  l        g rk   rl   ro   s     r   rn   LocalVideoTrack.muter   rq   r   c                     [         R                  " 5       nU R                  R                  UR                  l        SUR                  l        [        R                  R                  U5        SU R                  l        g rs   rl   ro   s     r   rt   LocalVideoTrack.unmutey   rv   r   c                 <    SU R                    SU R                   S3$ )Nzrtc.LocalVideoTrack(sid=rx   ry   rz   r!   s    r   r{   LocalVideoTrack.__repr__   r}   r   rW   )rH   rI   rJ   rK   rL   rM   r   r~   rO   r   rn   rt   r{   rV   r   r   s   @r   r   r   e   r   r   r   c                   R   ^  \ rS rSrS\R
                  4U 4S jjrS\4S jrSr	U =r
$ )RemoteAudioTrack   r   c                 $   > [         TU ]  U5        g r   r\   r^   s     r   r   RemoteAudioTrack.__init__   ra   r   r   c                 <    SU R                    SU R                   S3$ )Nzrtc.RemoteAudioTrack(sid=rx   ry   rz   r!   s    r   r{   RemoteAudioTrack.__repr__       *488*GDII;aHHr   rW   rH   rI   rJ   rK   rL   rM   r   rO   r{   rV   r   r   s   @r   r   r      )    [33 I# I Ir   r   c                   R   ^  \ rS rSrS\R
                  4U 4S jjrS\4S jrSr	U =r
$ )RemoteVideoTrack   r   c                 $   > [         TU ]  U5        g r   r\   r^   s     r   r   RemoteVideoTrack.__init__   ra   r   r   c                 <    SU R                    SU R                   S3$ )Nzrtc.RemoteVideoTrack(sid=rx   ry   rz   r!   s    r   r{   RemoteVideoTrack.__repr__   r   r   rW   r   r   s   @r   r   r      r   r   r   N)typingr   r   r   _ffi_clientr   r   _protor	   r8   r
   rL   r   rT   audio_sourcer   video_sourcer   r   rY   r   r   r   
LocalTrackRemoteTrack
AudioTrack
VideoTrackrW   r   r   <module>r      s    . - - ( , ,)))( )(XHe H>He H>Iu IIu I ?O34
$&667?$445
?$445
r   