
    yh                     x    S SK r S SKJr  S SK7  S SKJr  S SKJr  SSKJ	r	   " S S	\5      r
S
 r " S S\5      rg)    N)NSSpeechSynthesizer)*)	AppHelper)PyObjCAppHelperRunLoopStopper   )Voicec                   *    \ rS rSrSrS rS rS rSrg)RunLoopStopper   zE
Overrides PyObjCAppHelperRunLoopStopper to terminate after endLoop.
c                     SU l         g NF
shouldStopselfs    L/var/www/auris/envauris/lib/python3.13/site-packages/pyttsx3/drivers/nsss.py__init__RunLoopStopper.__init__   s	        c                 T    [         R                  " [        U 5      R                  5       $ N)objcsuperr
   initr   s    r   r   RunLoopStopper.init   s    zz.$/4466r   c                     SU l         g NTr   r   s    r   stopRunLoopStopper.stop   s	    r   r   N)	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__ r   r   r
   r
      s     7r   r
   c                 H    [         R                  5       R                  U 5      $ r   )NSSpeechDriverallocinitWithProxy)proxys    r   buildDriverr,      s    !//66r   c                   ,   \ rS rSrS r\R                  S 5       rS rS r	S r
\S 5       rS r\R                  S	 5       rS
 r\R                  S 5       r\R                  S 5       r\R                  S 5       r\R                  S 5       rS rS rSrg)r(   "   c                 <    S U l         S U l        SU l        SU l        g )NF )_proxy_tts
_completed_current_textr   s    r   r   NSSpeechDriver.__init__$   s    	r   c                 d    [         R                  " [        U 5      R                  5       nU(       al  Xl        [        R                  " 5       R                  S 5      U l	        U R                  R                  U 5        U R                  R                  S5        SU l        U $ ! [         a    U n Nf = f)N   T)r   r   r(   r   AttributeErrorr1   r   r)   initWithVoice_r2   setDelegate_setRate_r3   )r   r+   
proxy_attrs      r   r*   NSSpeechDriver.initWithProxy*   s    	ND9>>@J K+113BB4HDIII""4(IIs#"DO  	J	s   )B   B/.B/c                 >    U R                   R                  S 5        U ? g r   )r2   r:   r   s    r   destroyNSSpeechDriver.destroy9   s    		t$Ir   c                 :    U R                   R                  S5        g r   r1   setBusy)r   timers     r   onPumpFirst_NSSpeechDriver.onPumpFirst_=   s    E"r   c                 &   [         R                  SU SS S5        [        R                  5       n[        R                  5       R                  5       n[        R                  " X!5        UR                  5       (       a  UR                  [        5      n[        R                  S5      nUb  UR                  U5      nUR                  [        U5      (       d  UR!                  5         OUR                  5       (       a  M  [        R"                  " U5        g )Ng        zonPumpFirst:Fr   )NSTimer@scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_	NSRunLoopcurrentRunLoopr
   r)   r   r   addRunLoopStopper_toRunLoop_	shouldRunlimitDateForMode_NSDefaultRunLoopModeNSDatedateWithTimeIntervalSinceNow_earlierDate_runMode_beforeDate_r    removeRunLoopStopperFromRunLoop_)r   runLoopstoppernextfiresoons        r   	startLoopNSSpeechDriver.startLoop@   s    PP~tU	
 **, &&(--/%BB7T!!001EFH77:D#,,X6../CXNN !! 	&FFwOr   c                  .    [         R                  " 5         g r   )r   stopEventLoopr&   r   r   endLoopNSSpeechDriver.endLoopR   s    !r   c              #   J   #    U R                   R                  S5        S v   g 7fr   rB   r   s    r   iterateNSSpeechDriver.iterateV   s     E"s   !#c                     U R                   R                  S5        SU l        U R                   R                  S5        Xl        U R
                  R                  U5        g )NTzstarted-utterance)r1   rC   r3   notifyr4   r2   startSpeakingString_)r   texts     r   sayNSSpeechDriver.sayZ   sF    D!./!		&&t,r   c                     U R                   R                  5       (       a  SU l        U R                  R	                  5         g r   )r1   isBusyr3   r2   stopSpeakingr   s    r   r   NSSpeechDriver.stopb   s,    ;;#DO		 r   c           
          [        UR                  S5      UR                  S5      UR                  SUR                  S5      5      /UR                  S5      UR                  S5      5      $ )NVoiceIdentifier	VoiceNameVoiceLocaleIdentifierVoiceLanguageVoiceGenderVoiceAge)r   get)r   attrs     r   _toVoiceNSSpeechDriver._toVoiceg   s\    TXX/0$((;2Ghh68QRSUYU]U]^kUlXXj)+ 	+r   c                    US:X  aR  [        [        R                  " 5       5       Vs/ s H(  nU R                  [        R                  " U5      5      PM*     sn$ US:X  a  U R
                  R                  5       $ US:X  a  U R
                  R                  5       $ US:X  a  U R
                  R                  5       $ US:X  a  [        S5        g [        SU-  5      es  snf )Nvoicesvoiceratevolumepitch.Pitch adjustment not supported when using NSSSunknown property %s)listr   availableVoicesru   attributesForVoice_r2   ry   rz   r{   printKeyError)r   namevs      r   getPropertyNSSpeechDriver.getPropertym   s    8!"5"E"E"GHJH MM"5"I"I!"LMHJ JW_99??$$V^99>>##X99##%%W_BC04788Js   /Cc                    US:X  a  U R                   R                  5       nU R                   R                  5       nU R                   R                  U5        U R                   R	                  U5        U R                   R                  U5        g US:X  a  U R                   R	                  U5        g US:X  a  U R                   R                  U5        g US:X  a  [        S5        g [        SU-  5      e)Nry   rz   r{   r|   r}   r~   )r2   r{   rz   	setVoice_r;   
setVolume_r   r   )r   r   valuevolrz   s        r   setPropertyNSSpeechDriver.setProperty}   s    7?))""$C99>>#DII&IIt$II  %V^IIu%XII  'W_BC04788r   c                     U R                   R                  S5        SU l        [        R                  R                  U5      nU R                  R                  X5        g r   )r1   rC   r3   
FoundationNSURLfileURLWithPath_r2   startSpeakingString_toURL_)r   re   filenameurls       r   save_to_fileNSSpeechDriver.save_to_file   sC    D!//9		,,T7r   c                     U R                   (       d  SnOSnU R                  R                  SUS9  U R                  R                  S5        g )NFTzfinished-utterance)	completed)r3   r1   rc   rC   )r   ttssuccesss      r   $speechSynthesizer_didFinishSpeaking_3NSSpeechDriver.speechSynthesizer_didFinishSpeaking_   s=    GG/7CE"r   c                     U R                   (       a1  U R                   UR                  UR                  UR                  -    nOSnU R                  R	                  SXBR                  UR                  S9  g )NUnknownzstarted-word)r   locationlength)r4   r   r   r1   rc   )r   r   rngre   current_words        r   )speechSynthesizer_willSpeakWord_ofString_8NSSpeechDriver.speechSynthesizer_willSpeakWord_ofString_   sY    --cll3<<#**;TUL$L>||"%** 	 	.r   )r3   r4   r1   r2   N)r    r!   r"   r#   r   r   python_methodr*   r?   rE   rY   staticmethodr]   r`   rf   r   ru   r   r   r   r   r   r%   r&   r   r   r(   r(   "   s      
 #P$ " " 
- -!
 
+ +
 
9 9 
9 9" 
8 8#.r   r(   )r   AppKitr   r   PyObjCToolsr   PyObjCTools.AppHelperr   ry   r   r
   r,   NSObjectr(   r&   r   r   <module>r      s7     &  ! ? 2  7
C.X C.r   