Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
MainFunctions.c
/* |
File: MainFunctions.c |
Contains: |
Written by: |
Copyright: Copyright © 1996-1999 by Apple Computer, Inc., All Rights Reserved. |
You may incorporate this Apple sample source code into your program(s) without |
restriction. This Apple sample source code has been provided "AS IS" and the |
responsibility for its operation is yours. You are not permitted to redistribute |
this Apple sample source code as "Apple sample source code" after having made |
changes. If you're going to re-distribute the source, we require that you make |
it clear in the source that the code was descended from Apple sample source |
code, but that you've made changes. |
Change History (most recent first): |
8/2/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
#ifndef __MAINFUNC__ |
#include "MainFunctions.h" |
#endif |
extern SpeechChannel theSpeechChan; |
extern Boolean gDone; |
/* |
This is a dispatcher for dealing with what the user said. Add your functions to the switch |
statement, add an entry in the 'LANG' resource, and it should "just work". |
*/ |
OSErr ParseRefCon (SpeechInfoPtr theSpeechInfo, CommandPtr theCommand) |
{ |
LanguageModelListPtr language; |
long type = 0; |
OSErr theErr = noErr; |
short word = 0; |
Boolean done = false, |
found = false; |
type = theCommand->type; |
word = theCommand->ID; |
PlaySndCommand (8192); /* Play the conformation tones */ |
switch (type) { |
case 'LANG': |
language = theSpeechInfo->languages; |
while (done == false) { |
if (language->resID != word) { |
if (language->nextLanguage != nil) { |
language = language->nextLanguage; |
} |
else { |
done = true; |
found = false; |
} |
} |
else { |
done = true; |
found = true; |
} |
} |
if (found == true) { |
theErr = SRSetLanguageModel (theSpeechInfo->theRecognizer, language->theLanguage); |
} |
break; |
case 'chan': |
theErr = ChannelCommand (word); |
break; |
case 'lght': |
theErr = LightCommand (word); |
break; |
case 'scpt': |
theErr = ScriptCommand (word); |
break; |
case 'call': |
theErr = PhoneCommand (word); |
break; |
case 'game': |
theErr = GameCommand (word); |
break; |
case 'stro': |
theErr = StereoCommand (word); |
break; |
case 'tv ': |
theErr = TVCommand (word); |
break; |
case 'vcr ': |
theErr = VCRCommand (word); |
break; |
case 'ldsk': |
theErr = LaserdiskCommand (word); |
break; |
case 'vol ': |
theErr = VolumeCommand (word); |
break; |
case 'snd ': |
theErr = PlaySndCommand (word); |
break; |
case 'quit': |
theErr = QuitCommand (word); |
break; |
} |
return theErr; |
} |
OSErr ChannelCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 0: |
break; |
case 1: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr LightCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 255: |
break; |
case 25: |
break; |
case 0: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr ScriptCommand (long commandNumber) |
{ |
ComponentInstance cmptInstance = 0; |
AEDesc desc = {0, nil}; |
OSAID scriptID = 0, |
resultingOSAID = 0; |
OSErr theErr = noErr; |
cmptInstance = OpenDefaultComponent (kOSAComponentType, 'scpt'); |
if (cmptInstance == nil) |
DebugStr ("\pOpenDefaultComponent failed, do you have AppleScript installed?"); |
desc.descriptorType = 'scpt'; |
desc.dataHandle = Get1Resource ('scpt', commandNumber); |
theErr = ResError (); |
if (desc.dataHandle == nil || theErr != noErr) |
DebugStr ("\pGet1Resource failed"); |
theErr = OSALoad (cmptInstance, &desc, kOSAModeNull, &scriptID); |
if (theErr != noErr) |
DebugStr ("\pOSALoad failed"); |
ReleaseResource (desc.dataHandle); |
theErr = OSAExecute (cmptInstance, scriptID, kOSANullScript, kOSAModeNull, &resultingOSAID); |
if (theErr != noErr) |
DebugStr ("\pOSAExecute failed"); |
theErr = OSADispose (cmptInstance, scriptID); |
if (theErr != noErr) |
DebugStr ("\pOSADispose failed"); |
theErr = CloseComponent (cmptInstance); |
if (theErr != noErr) |
DebugStr ("\pCloseComponent failed"); |
return theErr; |
} |
OSErr PhoneCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
default: |
; |
} |
return theErr; |
} |
OSErr GameCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
default: |
; |
} |
return theErr; |
} |
OSErr StereoCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 0: |
break; |
case 1: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr TVCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 0: |
break; |
case 1: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr LaserdiskCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 0: |
break; |
case 1: |
break; |
case 2: |
break; |
case 3: |
break; |
case 4: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr VCRCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 0: |
break; |
case 1: |
break; |
case 2: |
break; |
case 3: |
break; |
case 4: |
break; |
case 5: |
break; |
case 6: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr VolumeCommand (long commandNumber) |
{ |
OSErr theErr = noErr; |
switch (commandNumber) { |
case 0: |
break; |
case 1: |
break; |
case 2: |
break; |
default: |
; |
} |
return theErr; |
} |
OSErr PlaySndCommand (long commandNumber) |
{ |
Handle theSound = nil; |
OSErr theErr = noErr; |
switch (commandNumber) { |
default: |
theSound = GetResource ('snd ', commandNumber); |
theErr = ResError (); |
HLock (theSound); |
if (theSound != nil && theErr == noErr) { |
SndPlay (nil, (SndListHandle)theSound, false); |
HUnlock (theSound); |
ReleaseResource (theSound); |
} |
} |
return theErr; |
} |
OSErr QuitCommand (long commandNumber) |
{ |
#pragma unused (commandNumber) |
Ptr goodbye = "You're welcome, good bye."; |
short goodbyeLen = 25; |
OSErr theErr = noErr; |
theErr = SpeakBuffer (theSpeechChan, (char *)goodbye, goodbyeLen, 0); |
if (theErr != noErr) { |
DebugStr ("\pSpeakBuffer failed"); |
} |
gDone = true; |
return theErr; |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-03-14