[Amis-vcs] SF.net SVN: amis: [2196] branches/amis3
Brought to you by:
julienq,
marisademeglio
From: <dan...@us...> - 2007-10-14 01:59:18
|
Revision: 2196 http://amis.svn.sourceforge.net/amis/?rev=2196&view=rev Author: daniel_weck Date: 2007-10-13 18:59:13 -0700 (Sat, 13 Oct 2007) Log Message: ----------- - Daniel WECK * TTS tests in place (app startup and play/pause space trigger) Modified Paths: -------------- branches/amis3/AmisAudio/AmisAudio.cpp branches/amis3/AmisAudio/AmisAudio.h branches/amis3/AmisAudio/TPBReader2/RegOcx.cpp branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.cpp branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.h branches/amis3/AmisGuiMFC2/AmisSelfVoicing/AudioSequencePlayer.cpp branches/amis3/AmisGuiMFC2/AmisSelfVoicing/TTSPlayer.cpp branches/amis3/AmisGuiMFC2/src/Preferences.cpp branches/amis3/AmisGuiMFC2/src/gui/AmisGuiMFC2.cpp Modified: branches/amis3/AmisAudio/AmisAudio.cpp =================================================================== --- branches/amis3/AmisAudio/AmisAudio.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisAudio/AmisAudio.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -91,6 +91,10 @@ pDmpCtrl = new CDmpCtrl(); } +void AmisAudio::setCallback(sendMessageCallbackFn pFunction) +{ + pDmpCtrl->setCallback(pFunction); +} /****************************************************************** AmisAudio destructor Function ******************************************************************/ Modified: branches/amis3/AmisAudio/AmisAudio.h =================================================================== --- branches/amis3/AmisAudio/AmisAudio.h 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisAudio/AmisAudio.h 2007-10-14 01:59:13 UTC (rev 2196) @@ -117,6 +117,8 @@ void adjustVolume(int); void adjustRate(double); + typedef void (*sendMessageCallbackFn)(void *); + void setCallback(sendMessageCallbackFn pFunction); private: void ShowStatePrompt(); Modified: branches/amis3/AmisAudio/TPBReader2/RegOcx.cpp =================================================================== --- branches/amis3/AmisAudio/TPBReader2/RegOcx.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisAudio/TPBReader2/RegOcx.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -1,9 +1,6 @@ // RegOcx.cpp : Defines the entry point for the DLL application. // -//#include "../../AmisGuiMFC/Brain/AmisBrain.h" -//#include "StdAfx.h" - #include "windows.h" #include "malloc.h" #include <string> @@ -44,9 +41,6 @@ strDir = strDir.substr(0, pos); //Mid } - //strDir = AmisBrain::Instance()->getAppPath(); - - std::wstring strFullPath = strDir.append(lpFileName); /*for (int i=0; i<255; i++) { Modified: branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.cpp =================================================================== --- branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -12,6 +12,9 @@ #include "resource.h" +//#include "../../../AmisGuiMFC2/AmisSelfVoicing/AudioSequencePlayer.h" + + #include <assert.h> //#include <dshow.h> @@ -25,6 +28,12 @@ #include "../RegOcx.h" + +void CDmpCtrl::setCallback(sendMessageCallbackFn pFunction) +{ + sendMessageCallback=pFunction; +} + /* const GUID CDECL BASED_CODE _tlid = { 0xd825129b, 0xb483, 0x46bc, { 0xb9, 0x4f, 0x6, 0xc1, 0xfd, 0x5a, 0xeb, 0xb1 } }; @@ -1145,6 +1154,10 @@ */ if (bProcessEvents) { stopPosition = 0; + + //AudioSequencePlayer::Instance()->ClipAudioEndNotify(); + sendMessageCallback(0); + //SetEndOfStream(true); // pause(); } Modified: branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.h =================================================================== --- branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.h 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisAudio/TPBReader2/dmp/DmpCtl.h 2007-10-14 01:59:13 UTC (rev 2196) @@ -56,6 +56,10 @@ public: CDmpCtrl(); + typedef void (*sendMessageCallbackFn)(void *); + sendMessageCallbackFn sendMessageCallback; + void setCallback(sendMessageCallbackFn pFunction); + // Overrides // ClassWizard generated virtual function overrides //{{zAFX_VIRTUAL(CDmpCtrl) Modified: branches/amis3/AmisGuiMFC2/AmisSelfVoicing/AudioSequencePlayer.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/AmisSelfVoicing/AudioSequencePlayer.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisGuiMFC2/AmisSelfVoicing/AudioSequencePlayer.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -29,6 +29,11 @@ AudioSequencePlayer* AudioSequencePlayer::pinstance = 0; +//The message callback function ... signals end of the clip +static void clipFinishedCallback(void *wind) +{ + AudioSequencePlayer::Instance()->ClipAudioEndNotify(); +} AudioSequencePlayer::AudioSequencePlayer(void) { m_previousAudioSequence = NULL; @@ -44,8 +49,10 @@ unsigned int threadID; - TTSPlayer::Instance()->Play(L""); // To avoid lazy instanciation and load the SAPI module. + AmisAudio::Instance()->setCallback((sendMessageCallbackFn)clipFinishedCallback); + TTSPlayer::Instance(); // To avoid lazy instanciation and load the SAPI module. + InitializeCriticalSection(&m_csSequence); m_hEventWakeup = CreateEvent(NULL, TRUE, FALSE, NULL); @@ -232,6 +239,7 @@ } }*/ } + void AudioSequencePlayer::ClipAudioEndNotify() { TRACE(L"####### END AUDIO"); m_wakeUpOriginator = 3; // AUDIO CLIP END @@ -281,9 +289,9 @@ string tmpStr = amis::Preferences::Instance()->mUiLang; //CAmisGuiMFC2App* pApp = (CAmisGuiMFC2App *) AfxGetApp(); - tmpStr = amis::util::FilePathTools::goRelativePath(theApp.getAppPath(), tmpStr); //AmisBrain::Instance()->getAppPath() + tmpStr = amis::util::FilePathTools::goRelativePath(theApp.getAppPath(), tmpStr); - src = amis::util::FilePathTools::goRelativePath(tmpStr, src); //AudioPromptCol, AmisBrain ::Instance()->mFilePath ... + src = amis::util::FilePathTools::goRelativePath(tmpStr, src); src = amis::util::FilePathTools::getAsLocalFilePath(src); string clipBegin = ""; Modified: branches/amis3/AmisGuiMFC2/AmisSelfVoicing/TTSPlayer.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/AmisSelfVoicing/TTSPlayer.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisGuiMFC2/AmisSelfVoicing/TTSPlayer.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -15,8 +15,6 @@ #define TRACE ATLTRACE #endif -// DanToDo: The following includes did not survive the Amis3 architecture, so I must find equivalent functions/utilities elsewhere now. -//#include "../Brain/AmisBrain.h" #include <gui/MainWndParts.h> @@ -76,6 +74,8 @@ void TTSPlayer::Play(CString str) { + TRACE(L"******"); + TRACE(str); #ifdef COMPILE_WITH_SAPI if (IsSpeaking()) { TRACE("????????"); Modified: branches/amis3/AmisGuiMFC2/src/Preferences.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/Preferences.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisGuiMFC2/src/Preferences.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -50,6 +50,8 @@ mpPageFG = new Color("#ffffff"); mbPauseOnApplicationLostFocus = true; + + this->mbIsSelfVoicing = true; } Preferences::~Preferences() Modified: branches/amis3/AmisGuiMFC2/src/gui/AmisGuiMFC2.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/AmisGuiMFC2.cpp 2007-10-14 00:25:39 UTC (rev 2195) +++ branches/amis3/AmisGuiMFC2/src/gui/AmisGuiMFC2.cpp 2007-10-14 01:59:13 UTC (rev 2196) @@ -53,7 +53,10 @@ #include "util/FilePathTools.h" #include "../AmisAudio/AmisAudio.h" +#include "../../AmisSelfVoicing\AudioSequencePlayer.h" +#include "../../AmisSelfVoicing\TTSPlayer.h" + #ifdef _DEBUG #define new DEBUG_NEW #endif @@ -180,9 +183,18 @@ //set the callback function to handle book key registration amis::dtb::DtbWithHooks::Instance()->setCallbackForPreprocessingBookKey(registerBookKeyFile); - //DanTodo: initialize Self-voicing audio backend + if (amis::Preferences::Instance()->mbIsSelfVoicing == true) + { AmisAudio::Instance()->enable(); + + AudioSequence* seq = new AudioSequence; + seq->append(L"AMIS"); + seq->append(L"Text-to-speech engine is ready.Text-to-speech engine is ready.Text-to-speech engine is ready."); + seq->append(L"Is it good ?"); + AudioSequencePlayer::Instance()->Play(seq); + } + return TRUE; } @@ -201,8 +213,14 @@ amis::gui::MenuManip::Instance()->DestroyInstance(); amis::gui::MainWndParts::Instance()->DestroyInstance(); - //DanTodo: destroy Self-voicing audio backend - //AmisAudio::Instance()->DestroyInstance(); + if (amis::Preferences::Instance()->mbIsSelfVoicing == true) + { + AmisAudio::Instance()->DestroyInstance(); + + TTSPlayer::Instance()->DestroyInstance(); + + AudioSequencePlayer::Instance()->DestroyInstance(); + } if (mpRecentBooks) delete mpRecentBooks; @@ -329,9 +347,15 @@ */ void CAmisGuiMFC2App::setPauseState(bool pauseState) { - //DanToDo: add self-voicing - //AudioSequencePlayer::Instance()->Stop(); + + if (amis::Preferences::Instance()->mbIsSelfVoicing == true) + { + AudioSequencePlayer::Instance()->Stop(); + AudioSequence* seq = new AudioSequence; + if (pauseState) seq->append(L"Paused."); else seq->append(L"Playing."); + AudioSequencePlayer::Instance()->Play(seq); + } //DanToDo: I don't think Amis3 has a toolbar, so for now the following code is useless (should be removed definitely ?). //if (mpMainFrame->m_wndDefaultToolbar) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |