prg which implements the above book ...
Code: Select all
; Virginie By Dobro
; an Reader of Clipboard
Declare MyStopEvent()
Declare MyStartEvent()
Declare MyPositionEvent(letter.l)
Enumeration
#Fenetre
#liste
#bouton_parle
#text
#text2
#text3
#text4
#Vitesse
#fichier
#volume
#pitch
EndEnumeration
global param$
global voix$=getvoix( )
global nombre = Val(StringField(voix$,1,","))+1
global Name$ ; the nameof voice
;voices.l = TTSEngCount() ; Get the highest voice index.
If nombre > -1 ; If there are any voice installed...
Debug "There are "+Str(nombre-1)+" voices installed in your system"
; ************ just for control ****************************
For i=2 To nombre
name$=StringField(voix$,i,",") ;TTSEngName(i) ; Retrieve each voice name.
Debug "Voice index = "+Str(i)+" , Voice name = "+name$
Next i
Else
MessageRequester("erreur","je ne trouve pas de voix"+Chr(10)+"installé sur le system",#PB_MessageRequester_Ok )
End
EndIf
; ******************************************************************
;{**********lit le reglage*****************
OpenPreferences (GetCurrentDirectory()+"init.prefs")
PreferenceGroup("Global")
param$=readPreferenceString("voix", "eSpeak-en")
vitesse$=readPreferenceString("Vitesse", "-50")
volume$=readPreferenceString("Volume", "100")
pitch$=readPreferenceString("pitch", "10")
ClosePreferences()
global voix=Val(param$)
global vitesse=Val(vitesse$)
global volume=Val(volume$)
global pitch=Val(pitch$)
;}***************************
;For i=0 To voix
name$=StringField(voix$,voix+1,",") ;TTSEngName(i) ; Retrieve each voice name.
Debug "Voice index = "+Str(i)+" , Voice name = "+name$
debug "*******************"
; Next i
;TTSSelect(voix) ; choisi la voix sauvé
;TTSSpeak("Bonjour") ; Speak!
Speak(name$,"Bonjour",volume,vitesse,pitch)
OpenWindow( #Fenetre, 374, 121, 200, 180,name$, #PB_Window_SystemMenu | #PB_Window_TitleBar )
SetWindowPos_(WindowID( #Fenetre), -1, 230, 230, 0, 0, #SWP_NOSIZE )
;{ ***** dessin de l'interface **********************
; bouton parle/stop
;CreateGadgetList(WindowID(#Fenetre))
ButtonGadget(#bouton_parle, 5, 25, 120, 40, "Parle")
Resultat = ComboBoxGadget(#liste, 5, 2, 150,20)
; liste des voix
For i=2 To nombre
name$=StringField(voix$,i,",") ;TTSEngName(i) ; Retrieve each voice name.
;Debug "Voice index = "+Str(i)+" , Voice name = "+name$
AddGadgetItem(#liste, -1,name$ ) ; ajoute dans la liste les noms trouvé+nationalité
Debug "Voice index = "+Str(i-1)+" , Voice name = "+name$
Next i
SetGadgetState(#liste, voix-1) ; active la voix lu par defaut dans la liste
name$=GetGadgetText(#liste)
SetWindowTitle(#fenetre, name$) ; change le titre de la fenetre
; tracbar horizontal (vitesse de la voix)
TextGadget(#text2 , 2,70, 50, 15, "Vitesse" )
Resultat = TrackBarGadget(#vitesse, 40, 65, 100, 50,0, 12,#PB_TrackBar_Ticks )
SetGadgetState(#vitesse, vitesse+6)
; tracbar horizontal (volume de la voix)
TextGadget(#text3 , 2,120, 50, 15, "Volume" )
Resultat = TrackBarGadget(#volume, 40, 110, 100, 50, 0,100 ,#PB_TrackBar_Ticks )
SetGadgetState(#volume, volume)
; tracbar vertical (pitch)
TextGadget(#text4 , 160,145, 50, 30, "pitch" )
Resultat = TrackBarGadget(#pitch, 160, 50, 50, 100, 0,20,#PB_TrackBar_Vertical )
SetGadgetState(#pitch, pitch)
TextGadget(#text , 2,155, 150, 15, "By Dobro" ,#PB_Gadget_FrontColor)
SetGadgetColor(#text , #PB_Gadget_FrontColor, RGB($42,$42,$FF))
;} ***************************************************
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #bouton_parle ; apuis sur le bouton parle
text$ = GetClipboardText()
pitch= GetGadgetState(#pitch)
volume= GetGadgetState(#volume)
vitesse= GetGadgetState(#vitesse) -6
; virginie speak , remove the Smiley of Forum ...
text$ = RemoveString(text$, "Very Happy" ,1)
text$ = RemoveString(text$, "Crying or Very sad" ,1)
text$ = RemoveString(text$, "Smile" ,1)
text$ = RemoveString(text$, "Sad" ,1)
text$ = RemoveString(text$, "Surprised" ,1)
text$ = RemoveString(text$, "Shocked" ,1)
text$ = RemoveString(text$, "Confused" ,1)
text$ = RemoveString(text$, "Cool" ,1)
text$ = RemoveString(text$, "Laughing" ,1)
text$ = RemoveString(text$, "Mad" ,1)
text$ = RemoveString(text$, "#Mad" ,1)
text$ = RemoveString(text$, "Razz" ,1)
text$ = RemoveString(text$, "Embarassed" ,1)
text$ = RemoveString(text$, "#evil" ,1)
text$ = RemoveString(text$, "Twisted Evil" ,1)
text$ = RemoveString(text$, "Rolling Eyes" ,1)
text$ = RemoveString(text$, "Wink" ,1)
text$ = RemoveString(text$, "Exclamation" ,1)
text$ = RemoveString(text$, "Question" ,1)
text$ = RemoveString(text$, "Idea" ,1)
; TTSSpeak(text$) ; Speak!
speak(name$,text$,volume,vitesse,pitch)
Case #vitesse
Case #liste ; choix dans la liste combo
voix = GetGadgetState(#liste)
name$=GetGadgetText(#liste)
SetWindowTitle( #fenetre, name$)
fin:
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
;{**********Sauve le reglage*****************
CreatePreferences(GetCurrentDirectory()+"init.prefs")
PreferenceGroup("Global")
WritePreferenceString("voix", Str(voix+1))
WritePreferenceString("Vitesse", Str(vitesse))
WritePreferenceString("Volume", Str(volume))
WritePreferenceString("pitch", Str(pitch))
ClosePreferences()
;}***************************
speak(name$,"au revoir",volume,vitesse,pitch)
End
; EPB