SLD Software
 Via Traversa, 2 - 25031 Capriolo (BS)
 Tel. 030 7460177 Tel. e Fax 030 7465319
 Cell. 347 8701230 - 349 4290845
 mailto: alexdvdl@libero.it  raudino@tin.it
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
           SORGENTI PER SVILUPPATORI IN LINGUAGGIO " C ".
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

- FAI PARLARE LE TUE APPLICAZIONI IN PERFETTA LINGUA ITALIANA CON   "VOCE VIVA TELLME"-
         
   PER APPLICARE LA SINTESI VOCALE "VOCE VIVA TELLME" AI VOSTRI PROGRAMMI E'
 SUFFICIENTE IMPLEMENTARE NEI VOSTRI SORGENTI QUESTE SEMPLICI CHIAMATE "STDCALL" 
     COME ESEMPLIFICATO NELL'INTERFACCIA DIMOSTRATIVA "DEMO_C" ALLEGATA.

//---------------------------------------------------------------------------
PROVAEXE  un esempio, con finalit informative sui dati relativi 
alle tecniche di sviluppo dell'interfaccia.
Per procedere alla prova del pacchetto di "VOCE VIVA TELLME" 
bisogna richiedere alla SLD SOFTWARE il "KIT DI SVILUPPO" completo.

*****************************************************************************

------ "VOCEVIVA TELLME - KIT DI SVILUPPO" IN " C " ----------

Il "Kit di sviluppo", completo viene fornito su CD-ROM con chiave hardware 
di protezione e contiene:
- base fonemica per la lettura della lingua italiana, con voce maschile;
- VOCEVIVA.DLL motore di sintesi vocale;
- un eseguibile denominato DEMO_C come esempio di interfaccia dimostrativa 
  (con finestra), realizzato con Delphi 5, che permette di effettuare le prime 
  prove di lettura vocale;
- sorgenti completi, in chiaro, dell'interfaccia PROVAEXE realizzati con  " C " 
 (sorgenti in chiaro trascitti di seguito) sviluppabile secondo
  le esigenze di utilizzo da parte di aziende/utenti produttori di programmi
  proprietari.

// ---------------------------------------------------------------------
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HINSTANCE lib;

 void _pascal (*init_dll)();
 void _pascal (*chiudi_dll)();
 void _pascal (*sound)(String);
 void _pascal (*set_pitch)(int);
 void _pascal (*set_buffer)(String);
 int _pascal (*parla)(String);
 void _pascal (*chiudi_wave)(String);
 int _pascal (*leggi_formattato)(String);
 int _pascal (*lettura_di_testo)(String);
 String nome_wave;
 String nome_fil;
 String testo;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{

 lib=LoadLibrary("voceviva.dll");
// public static extern void init_dll();

 (FARPROC) init_dll =GetProcAddress(lib,"init_dll");
 (FARPROC) set_pitch =GetProcAddress(lib,"set_pitch");
 (FARPROC) chiudi_dll =GetProcAddress(lib,"chiudi_dll");
 (FARPROC) sound =GetProcAddress(lib,"sound");
 (FARPROC) set_buffer =GetProcAddress(lib,"set_buffer");
 (FARPROC) chiudi_wave =GetProcAddress(lib,"chiudi_wave");
 (FARPROC) leggi_formattato =GetProcAddress(lib,"leggi_formattato");
 (FARPROC) lettura_di_testo=GetProcAddress(lib,"lettura_di_testo");
 (FARPROC)parla =GetProcAddress(lib,"parla");
  nome_wave="noname.wav";
  Edit1->Text=nome_wave;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 try
 {
   set_buffer(nome_wave);
  } catch(const exception) {exit(1);};
}
//---------------------------------------------------------------------------
void __fastcall TForm1::nome_wa(TObject *Sender)
{
  nome_wave=Edit1->Text;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
init_dll();
  set_pitch(11490);
try
 {
   set_buffer(nome_wave);
  } catch(const exception) {
  chiudi_dll;
  exit(1);
  };

 leggi_formattato(testo);
 chiudi_wave(nome_wave);
 Label4->Caption="Finito";
 chiudi_dll;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
init_dll();
set_pitch(11490);
try
 {
   set_buffer(nome_wave);
  } catch(const exception) {exit(1);};

 lettura_di_testo(nome_fil);
 chiudi_wave(nome_wave);
 Label4->Caption="Finito";
 chiudi_dll; 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
//chiudi_dll();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
  nome_wave=Edit1->Text;
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Edit2Change(TObject *Sender)
{
 nome_fil=Edit2->Text;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button5Click(TObject *Sender)
{
exit (0);
}
//---------------------------------------------------------------------------


void __fastcall TForm1::ascolta(TObject *Sender)
{
 init_dll();
 sound (nome_wave);
 chiudi_dll();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::RichEdit1Change(TObject *Sender)
{
testo=RichEdit1->Text;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
------------------------------------------------------------------------------
La SLD Software garantisce l'assistenza tecnica telefonica:  
per altre informazioni sull'implementazione dell'interfaccia 
Tel. 030 7460177 - 030 7465319 - Cell. 349 4290845 
 alexdvdl@libero.it     raudino@tin.it
------------------------------------------------------------------------------


