Newsgroups: comp.speech
Path: lyra.csx.cam.ac.uk!doc.ic.ac.uk!uknet!zaphod.axion.bt.co.uk!bt!pipex!howland.reston.ans.net!cs.utexas.edu!swrinde!ihnp4.ucsd.edu!library.ucla.edu!csulb.edu!csus.edu!netcom.com!pjp
From: pjp@netcom.com (jack pines)
Subject: Re: Dialogic Libraries
Message-ID: <pjpCpGIy3.5AB@netcom.com>
Organization: NETCOM On-line Communication Services (408 241-9760 guest)
References: <CpFvKo.9Iu@freenet.carleton.ca>
Date: Sun, 8 May 1994 00:06:02 GMT
Lines: 31

In article <CpFvKo.9Iu@freenet.carleton.ca>,
Timothy Ross <ao136@FreeNet.Carleton.CA> wrote:
>   I am working on a prototype for a voice recognition information
>system.  The system will be using Dialogic hardware devices, will be run
>under OS/2, and will be coded in Smalltalk.  There are a couple of
>questions I have which I hope someone out there will be able to answer.
> 
>   a) Are there any Dialogic DLLs which support their devices?
>   b) If these DLLs are available, would it be straightforward to make
>   API calls to these DLLs from OS/2 Smalltalk?
>   c) If the DLLs don't exist, could the original C libraries be somehow
>   called from Smalltalk ( ie. by calling a C stub program ) ?

You don't mention which of the 4 or more Smalltalks you are using, but we
prototyped a system using a setup very similar to the one you are using.  You
create a DLL with entry points that are calls to the Dialogic driver.  It
is staticly linked to the Dialogic "C" library.  Then if the Smalltalk 
that you are using allows interface to standard DLL's you can talk to it 
from Smalltalk.

If you are planning on using more than one channel, watch out for the
disparity between Smalltalk processes and OS/2 threads.  If your Smalltalk
is like most, then all user processes run under one OS/2 thread.  On a real
multitasking operating system like OS/2, the correct way to interface to
library routines that have responses which must be synchronized by external
events is to use blocking calls.  The Dialogic library does this. 
Unfortunately if you make a blocking call from one Smalltalk process, all
the other Smalltalk process sleep.  Ignore all this if your Smalltalk really
uses OS/2 threads.  If so, let me know about it.

Jack Pines			pjp@netcom.com
