|
Timing Information
For uncompressed data, a stroke's interval implies the number of points in the
stroke. An application can obtain this number directly from a STROKEINFO structure. The following is of academic interest only, illustrating how time
intervals correspond to the point data within a stroke.
First, an application gets the device sampling rate with a call to GetPenDataInfo. The sampling rate is the number of points the pen device driver sends to
Windows during each second of pen activity.
HPENDATA hpndt;
PENINFO peninfo;
int nSamplingRate;
.
.
.
if (GetPenDataInfo( hpndt, NULL, (LPPENINFO) &peninfo, 0 ))
nSamplingRate = peninfo.nSamplingRate;
Alternatively, an application can query the pen device driver directly for the
sampling rate, as described in "Recognition Functions" in Chapter 8, "Writing
a Recognizer."
The number of points in a stroke can now be determined from the start and stop
times in the stroke's INTERVAL structure:
INTERVAL interval;
int nSamplingRate, nPoints, nms;
.
.
.
// Compute number of milliseconds in interval
nms = ((interval.atEnd.sec - interval.atBegin.sec) * 1000) +
(interval.atEnd.ms - interval.atBegin.ms);
// Compute number of points that occurred during interval
nPoints = (nms * nSamplingRate) / 1000;
After recognition, an application can determine the time intervals at which
recognized symbols were written. Calling CreateInksetHRCRESULT creates the inkset for the required intervals:
HINKSET hinkset; // Allocate the inkset
HRCRESULT hresult; // Symbols for guesses go here
.
.
.
// Get symbols that make up the recognizer's best guess
GetResultsHRC( hrc, GRH_ALL, (LPHRCRESULT) &hresult, 1 );
// Get the inkset for symbols 2 through 11 of the guess
hinkset = CreateInksetHRCRESULT( hresult, 2, 10 );
The above code fragment creates an inkset containing a maximum of 10 intervals
corresponding to the second through eleventh symbols of the recognizer's best
guess. The section "Unboxed Recognition" in the next chapter describes the GetResultsHRC function in detail. For a description of the internal workings of CreateInksetHRCRESULT, see "The Recognition Functions" in Chapter 8, "Writing a Recognizer."
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
More Online Helps
Win32 Programmer's Reference (win32.hlp)
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|