From 97b217c26aa3aa017b2aa9d949b7202703994122 Mon Sep 17 00:00:00 2001 From: jonsd Date: Fri, 1 Jun 2007 18:00:19 +0000 Subject: [PATCH] [1.25.15] Callback in AUDIO_OUTPUT_PLAYBACK mode gives a zero-terminated list of events. espeak_SetSynthCallback() can be called either before or after espeak_Initialize(). git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@31 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/hu_list | 11 ++++++++--- dictsource/hu_rules | 4 ++-- dictsource/is_rules | 1 + phsource/compile_report | 2 +- phsource/dzh/dz_pzd_ | Bin 2919 -> 2919 bytes phsource/dzh/xdz_pzd | Bin 2919 -> 2919 bytes phsource/ph_icelandic | 6 +++--- phsource/vdiph/y#i_2 | Bin 20745 -> 20745 bytes src/event.cpp | 15 +++++++++++---- src/event.h | 3 ++- src/speak_lib.cpp | 5 ++++- src/synthdata.cpp | 2 +- src/tr_languages.cpp | 2 +- 13 files changed, 34 insertions(+), 17 deletions(-) diff --git a/dictsource/hu_list b/dictsource/hu_list index 2cf93453..a6b2ea33 100644 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -31,9 +31,9 @@ _2M1 k'e:t,EzER _0M2 m'illio: _1M2 m'illio: _2M2 k'e:tm,illio: -_0M3 m'illia:rd -_1M3 m'illia:rd -_1M3 k'e:tm,illia:rd +_0M3 m'illia:Rd +_1M3 m'illia:Rd +_1M3 k'e:tm,illia:Rd _0M4 b'illio: _1M4 b'illio: _2M4 k'e:tb,illio: @@ -152,6 +152,11 @@ szer $u ször $u +// word pairs + +(hogy az) hoJ,Az + + // Verbs vagyok $u // to be, present diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 031a1ffc..76a1047a 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -176,8 +176,8 @@ _minde) gy (ik J: r R A) r (A * C) r (A R - r (C r - rr R + r (C R + rr R* .group s s S diff --git a/dictsource/is_rules b/dictsource/is_rules index 9cfea078..e12cf78d 100644 --- a/dictsource/is_rules +++ b/dictsource/is_rules @@ -230,6 +230,7 @@ r (B r# r (_ r# r R + rr R* rl dl rl (K rtl# rn rdn# diff --git a/phsource/compile_report b/phsource/compile_report index 5af5bc37..0e0a9bb9 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -609,7 +609,7 @@ 1 w/wu base 5 w/xw base 20 x/b base hi ro is - 2 x/b_ base is + 1 x/b_ base 9 x/d base hi hr el is 14 x/d_ base fi fr hi pl hr ru it ro el is sw 23 x/d_dnt base fi fr hi hu pl ru it ro sw diff --git a/phsource/dzh/dz_pzd_ b/phsource/dzh/dz_pzd_ index 73aa5551ca9c9437ff3951268a2182475c557135..f3a3bb0ece4b606136ddc63fb9397a64d96badbe 100644 GIT binary patch delta 142 zcmaDZ_FQa&J7eBN4+SNbcTDe?l(?!G8h99(*jU(DOn5gll<+YyO0h_>#PG{9)@#PG{9N^Iyk8hf_!tyk8gu_!tQQG`i fU>>tx6pFP!7(L)d)Um0+ji})2gjl;?B+3Q=g|R6C delta 180 zcmeBN#MrrraYH7Lo<9Q!bTBlquVNBozQgFv@Pd&+IDsjFsgTWtA%u-VIE6`#X&%=Z zh8`{kfz8u-?lGID0CgQQG`i fU>>txJc_kH7(L)d)Um0+ji})2gjl;?B+3Q=JGCmz diff --git a/src/event.cpp b/src/event.cpp index d2cc3695..e5f6b970 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -74,13 +74,16 @@ static void* polling_thread(void*); //> // my_callback=0x%x\n", my_callback); - my_event_is_running=0; // security @@ -193,6 +196,10 @@ ENTER("event_notify"); static unsigned int a_old_uid = 0; + espeak_EVENT events[2]; + memcpy(&events[0],event,sizeof(espeak_EVENT)); // the event parameter in the callback function should be an array of eventd + events[1].type = espeakEVENT_LIST_TERMINATED; // ... terminated by an event type=0 + if (event && my_callback) { event_display(event); diff --git a/src/event.h b/src/event.h index f2ed74b0..c9ee482b 100644 --- a/src/event.h +++ b/src/event.h @@ -27,7 +27,8 @@ Note: the timeout is checked against the real progress of the audio stream, whic // First function to be called. // the callback will be called when the event actually occurs. // The callback is detailled in speak_lib.h . -void event_init(t_espeak_callback* cb); +void event_init(void); +void event_set_callback(t_espeak_callback* cb); // Clear any pending event. // diff --git a/src/speak_lib.cpp b/src/speak_lib.cpp index b3dc8db1..8e01e61f 100644 --- a/src/speak_lib.cpp +++ b/src/speak_lib.cpp @@ -225,7 +225,7 @@ static void select_output(espeak_AUDIO_OUTPUT output_type) wave_init(); wave_set_callback_is_output_enabled( fifo_is_command_enabled); my_audio = wave_open("alsa"); - event_init(synth_callback); + event_init(); #endif break; @@ -624,6 +624,9 @@ ESPEAK_API void espeak_SetSynthCallback(t_espeak_callback* SynthCallback) {//====================================================================== ENTER("espeak_SetSynthCallback"); synth_callback = SynthCallback; +#ifdef USE_ASYNC + event_set_callback(synth_callback); +#endif } ESPEAK_API void espeak_SetUriCallback(int (* UriCallback)(int, const char*, const char *)) diff --git a/src/synthdata.cpp b/src/synthdata.cpp index 1f57febf..760eb05c 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.25.14 31.May.07"; +const char *version_string = "1.25.15 01.Jun.07"; const int version_phdata = 0x012514; int option_device_number = -1; diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp index cfc03cd6..ce75e657 100644 --- a/src/tr_languages.cpp +++ b/src/tr_languages.cpp @@ -343,7 +343,7 @@ Translator *SelectTranslator(const char *name) case L('i','s'): // Icelandic { static int stress_amps_is[] = {16,16, 20,20, 20,24, 24,22 }; - static int stress_lengths_is[8] = {180,155, 200,200, 0,0, 240,250}; + static int stress_lengths_is[8] = {180,160, 200,200, 0,0, 240,250}; static const wchar_t is_lettergroup_B[] = {'c','f','h','k','p','t','x',0xfe,0}; // voiceless conants, including 'þ' ?? 's' tr = new Translator();