o
    õæhå  ã                   @  s`   d dl mZ d dlmZ d dlmZ ddlmZ ddlmZ eG dd„ dƒƒZ	G d	d
„ d
ƒZ
dS )é    )Úannotations)Ú	dataclass)Údatetimeé   )Úcalculate_audio_length_ms)ÚRealtimeAudioFormatc                   @  s   e Zd ZU ded< ded< dS )ÚModelAudioStater   Úinitial_received_timeÚfloatÚaudio_length_msN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   úa/var/www/html/openai_agents/venv/lib/python3.10/site-packages/agents/realtime/_default_tracker.pyr   
   s   
 r   c                   @  sH   e Zd Zddd„Zddd„Zddd„Zddd„Zddd„Zddd„ZdS )ÚModelAudioTrackerÚreturnÚNonec                 C  s   i | _ d | _d S )N)Ú_statesÚ_last_audio_item©Úselfr   r   r   Ú__init__   s   
zModelAudioTracker.__init__Úformatr   c                 C  s
   || _ dS )z4Called when the model wants to set the audio format.N)Ú_format)r   r   r   r   r   Úset_audio_format   ó   
z"ModelAudioTracker.set_audio_formatÚitem_idÚstrÚitem_content_indexÚintÚaudio_bytesÚbytesc                 C  sT   t | j|ƒ}||f}|| _|| jvrtt ¡ |ƒ| j|< dS | j|  j|7  _dS )z6Called when an audio delta is received from the model.N)r   r   r   r   r   r   Únowr   )r   r   r    r"   ÚmsÚnew_keyr   r   r   Úon_audio_delta   s   
z ModelAudioTracker.on_audio_deltac                 C  s
   d| _ dS )z4Called when the audio playback has been interrupted.N©r   r   r   r   r   Úon_interrupted%   r   z ModelAudioTracker.on_interruptedúModelAudioState | Nonec                 C  s   | j  ||f¡S )z>Called when the model wants to get the current playback state.)r   Úget)r   r   r    r   r   r   Ú	get_state)   s   zModelAudioTracker.get_stateútuple[str, int] | Nonec                 C  s   | j S )zLCalled when the model wants to get the last audio item ID and content index.r(   r   r   r   r   Úget_last_audio_item-   s   z%ModelAudioTracker.get_last_audio_itemN)r   r   )r   r   r   r   )r   r   r    r!   r"   r#   r   r   )r   r   r    r!   r   r*   )r   r-   )	r   r   r   r   r   r'   r)   r,   r.   r   r   r   r   r      s    




r   N)Ú
__future__r   Údataclassesr   r   Ú_utilr   Úconfigr   r   r   r   r   r   r   Ú<module>   s    