§
     ’Þj¬  ã                   óp  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d
edefd„Zddddd dddœdeee         z  d
edededeeef         deeeef         geeeee         ee         f         f         f         dedededededededdfd„ZdS )é    N)Únullcontext)Údatetime)ÚAnyÚCallable)Úsave_audio_metadata)Úsave_image_metadata)ÚAUDIOÚMESHÚVIDEOÚWORLDÚsource_for_path)Úsave_video_metadata)Úrecording_galleryÚconfigsÚreturnc                 ó   — t          | t          ¦  «        s| S |                      ¦   «         }d|v rd|v r|S t          j        ¦   «         }d|vr+t	          j        |¦  «                             d¬¦  «        |d<   d|vrt          |¦  «        |d<   |S )NÚcreation_dateÚcreation_timestampÚseconds)Útimespec)Ú
isinstanceÚdictÚcopyÚtimer   ÚfromtimestampÚ	isoformatÚint)r   Úsaved_configsÚrecorded_times      úDC:\Users\johnn\OneDrive\Documents\AI\shared\utils\media_recording.pyÚ_ensure_creation_metadatar!      s£   € Ý�g�tÑ$Ô$ð ØˆØ—L’L‘N”N€MØ˜-Ð'Ð'Ð,@ÀMÐ,QÐ,QØÐÝ”I‘K”K€MØ˜mÐ+Ð+Ý)1Ô)?ÀÑ)NÔ)N×)XÒ)XÐbkÐ)XÑ)lÔ)lˆ�oÑ&Ø =Ð0Ð0Ý.1°-Ñ.@Ô.@ˆÐ*Ñ+ØÐó    ÚmetadataFTÚfinal)Úmetadata_choiceÚembedded_imagesÚreplace_last_fileÚlockÚverbose_levelÚwrite_metadataÚoutput_roleÚ
video_pathÚis_imageÚ
audio_onlyÚgenÚget_processed_queuer%   r&   r'   r(   r)   r*   r+   c                ó^  —  ||¦  «        }t          | t          ¦  «        s| gn| }|	�|	nt          ¦   «         }t          |¦  «        D �]ä\  }}|rt          nt          |¦  «        }d }t          |¦  «        }|�æ|rä||d<   |dv ret          t          j	         
                    |¦  «        d         dz   d¦  «        5 }t          j        ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |dv rr|rt          ||¦  «         n_|t          u rdd	lm}  |||¦  «         nC|t"          u rdd
lm}  |||¦  «         n'|rt)          ||¦  «         nt+          |||d|
¬¦  «         |
dk    r‰|rdnd}|rt-          d|› d|› �¦  «         nk|t"          u rt-          d|› d|› �¦  «         nL|t          u rt-          d|› d|› �¦  «         n-|rt-          d|› d|› �¦  «         nt-          d|› d|› �¦  «         |5  ||j                 \  }}|r7|t0          u r.|s,|dk    r&t3          |¦  «        dk    r|d         }||d<   ||d<   n*|                     |¦  «         |                     |¦  «         |j        t7          |¦  «        d<   d d d ¦  «         n# 1 swxY w Y   |�˜||k    r’|dv r[t          j	         
                    |¦  «        d         dz   }t          j	                             |¦  «        rt          j        |¦  «         t          j	                             |¦  «        rt          j        |¦  «         �Œæd S )Nr+   )ÚjsonÚjson_metadatar   z.jsonÚwé   )Úindent)r#   r3   )Úsave_world_metadata)Úsave_mesh_metadataT)Úallow_inplace_updater)   zsaved tozadded to gallery fromzAudio file z Path: z	3D asset zWorld zImage file zVideo file éÿÿÿÿÚlast_gallery_source)r   Úlistr   Ú	enumerater	   r   r!   ÚopenÚosÚpathÚsplitextr2   Údumpr   r   Úshared.utils.world_outputsr7   r
   Úshared.utils.mesh_outputsr8   r   r   ÚprintÚidr   ÚlenÚappendr   ÚisfileÚremove)r,   r   r-   r.   r/   r0   r%   r&   r'   r(   r)   r*   r+   Ú	galleriesÚpathsÚ
queue_lockÚnor@   ÚsourceÚprevious_pathr   Úfr7   r8   ÚactionÚ	file_listÚfile_settings_listÚprevious_json_paths                               r    Úrecord_file_metadatarV      s�  € Ø#Ð# CÑ(Ô(€IÝ *¨:µtÑ <Ô <ÐLˆZˆLˆLÀ*€EØÐ)��­{©}¬}€JÝ˜eÑ$Ô$ð 2)ñ 2)‰ˆˆDØ$Ð?•�­/¸$Ñ*?Ô*?ˆØˆÝ1°'Ñ:Ô:ˆØÐ >ÐØ+6ˆM˜-Ñ(ØÐ";Ð;Ð;Ý�"œ'×*Ò*¨4Ñ0Ô0°Ô3°gÑ=¸sÑCÔCð :ÀqÝ”I˜m¨Q°qÐ9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :àÐ"?Ð?Ð?Øð FÝ'¨¨mÑ<Ô<Ð<Ð<Ø�u�_�_ØNÐNÐNÐNÐNÐNØ'Ð'¨¨mÑ<Ô<Ð<Ð<Ø�t�^�^ØLÐLÐLÐLÐLÐLØ&Ð& t¨]Ñ;Ô;Ð;Ð;Øð FÝ'¨¨mÑ<Ô<Ð<Ð<å'¨¨m¸_Ðcgð  xEð  Fñ  Fô  Fð  FØ˜1ÒÐØ#1ÐN�Z�ZÐ7NˆFØð 	;ÝÐ9 FÐ9Ð9°4Ð9Ð9Ñ:Ô:Ð:Ð:Ø�4��ÝÐ7 &Ð7Ð7°Ð7Ð7Ñ8Ô8Ð8Ð8Ø�5��ÝÐ4˜vÐ4Ð4¨dÐ4Ð4Ñ5Ô5Ð5Ð5Øð ;ÝÐ9 FÐ9Ð9°4Ð9Ð9Ñ:Ô:Ð:Ð:åÐ9 FÐ9Ð9°4Ð9Ð9Ñ:Ô:Ð:Øð 		Fð 		FØ,5°f´iÔ,@Ñ)ˆIÐ)Ø ð 9 V­u _ _¸X _È"ÐPQÊ'È'ÕVYÐZcÑVdÔVdÐghÒVhÐVhØ )¨"¤�Ø $�	˜"‘Ø)6Ð" 2Ñ&Ð&à× Ò  Ñ&Ô&Ð&Ø"×)Ò)¨-Ñ8Ô8Ð8Ø<B¼IÕ˜cÑ"Ô"Ð#8Ñ9ð		Fð 		Fð 		Fñ 		Fô 		Fð 		Fð 		Fð 		Fð 		Fð 		Fð 		Føøøð 		Fð 		Fð 		Fð 		Fð Ð$¨¸$Ò)>Ð)>ØÐ";Ð;Ð;Ý%'¤W×%5Ò%5°mÑ%DÔ%DÀQÔ%GÈ'Ñ%QÐ"Ý”7—>’>Ð"4Ñ5Ô5ð 2Ý”IÐ0Ñ1Ô1Ð1ÝŒw�~Š~˜mÑ,Ô,ð )Ý”	˜-Ñ(Ô(Ð(ùðe2)ð 2)s%   Â9CÃC!	Ã$C!	Ç/BJÊJ
	ÊJ
	)r2   r?   r   Ú
contextlibr   r   Útypingr   r   Úshared.utils.audio_metadatar   Úshared.utils.audio_videor   Úshared.utils.gallery_sourcesr	   r
   r   r   r   Úshared.utils.video_metadatar   Úshared.utils.workspace_storager   r!   Ústrr<   Úboolr   Útupler   rV   © r"   r    ú<module>rb      s�  ðà €€€Ø 	€	€	€	Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <ð sð ¨sð ð ð ð ð oyð  RVð  rwð  EIð  `að  z~ð  SZð 6)ð 6)ð 6) S¨4°¬9¡_ð 6)¸sð 6)Èdð 6)Ð`dð 6)ÐkoÐpsÐuxÐpxÔkyð 6)ð  T\ð  ^bð  cfð  hkð  ckô  ^lð  ]mð  osð  twð  y~ð  Cð  DGô  Hð  JNð  ORô  JSð  Sô  yTð  tTô  oUð  ]Uô  TVð 6)ð  ilð 6)ð  LOð 6)ð  koð 6)ð  Bð 6)ð  Z]ð 6)ð  swð 6)ð  MPð 6)ð  _cð 6)ð 6)ð 6)ð 6)ð 6)ð 6)r"   