Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

157 lines
4.2 KiB

/***************************************************************************
Name : NCUPARMS.C
Comment :
Functions: (see Prototypes just below)
Copyright (c) Microsoft Corp. 1991, 1992, 1993
Revision Log
Date Name Description
-------- ----- ---------------------------------------------------------
***************************************************************************/
#include "prep.h"
#include "modemint.h"
#include "fcomint.h"
#include "fdebug.h"
///RSL
#include "glbproto.h"
#define faxTlog(m) DEBUGMSG(ZONE_MD, m)
#define FILEID FILEID_NCUPARMS
void iNCUParamsReset(PThrdGlbl pTG)
{
_fmemset(&(pTG->NCUParams), 0, sizeof(NCUPARAMS));
pTG->NCUParams.uSize = sizeof(pTG->NCUParams);
// These are used to set S regs etc.
// -1 means leave modem at default
pTG->NCUParams.DialtoneTimeout = -1;
pTG->NCUParams.DialPauseTime = pTG->NCUParams.FlashTime = -1;
pTG->NCUParams.DialBlind = -1;
pTG->NCUParams.SpeakerVolume = pTG->NCUParams.SpeakerControl= -1;
pTG->NCUParams.SpeakerRing = -1;
// should be used in answer
pTG->NCUParams.RingsBeforeAnswer = 0;
// should be used in Dial
pTG->NCUParams.AnswerTimeout = 60;
// used in Dial
pTG->NCUParams.chDialModifier = 'T';
pTG->fNCUParamsChanged =FALSE; // to indicate the we need to reset params
}
void FComInitGlobals(PThrdGlbl pTG)
{
_fmemset(&pTG->FComStatus, 0, sizeof(FCOM_STATUS));
_fmemset(&pTG->FComModem, 0, sizeof(FCOM_MODEM));
pTG->fNCUAbort = 0;
_fmemset(&pTG->Comm, 0, sizeof(pTG->Comm));
// +++ fComInit = 0;
}
BOOL NCUSetParams(PThrdGlbl pTG, USHORT uLine, LPNCUPARAMS lpNCUParams)
{
BG_CHK(lpNCUParams);
// BG_CHK(DDI.fLineInUse == 1);
// (MyDebugPrint(pTG, "In NCUSetParams fModemInit=%d fModemOpen=%d fLineInUse=%d\r\n", FComStatus.fModemInit, DDI.fModemOpen, DDI.fLineInUse));
// BG_CHK(FComStatus.fModemInit);
// Copy params into our local NCUparams struct
pTG->NCUParams = *lpNCUParams;
/*** all will be set on next ReInit. Since all have to *****************
do with dial that's soon enough ***********************************
return
iModemSetNCUParams( pTG->NCUParams.DialPauseTime, pTG->NCUParams.SpeakerControl,
pTG->NCUParams.SpeakerVolume, pTG->NCUParams.DialBlind,
pTG->NCUParams.SpeakerRing);
************************************************************************/
// ignoring DialtoneTimeout and AnswerTimeout because we have
// problems with S7 and answering correctly (no answer vs voice etc)
// also Pulse/Tone I think is being used correctly in Dial (C2 & C1)
pTG->fNCUParamsChanged =TRUE; // to indicate the we need to reset params
// next time we call/answer...
// To-do
// Use RingsBeforeAnswer in Class2Answer and Modem answer
// and we have to set RingAloud--how?
return TRUE;
}
BOOL ModemGetCaps(PThrdGlbl pTG, USHORT uModem, LPMODEMCAPS lpMdmCaps)
{
BG_CHK(lpMdmCaps);
// BG_CHK(DDI.fModemOpen == 1);
// (MyDebugPrint(pTG, "In ModemGetCaps fModemInit=%d fModemOpen=%d fLineInUse=%d\r\n", FComStatus.fModemInit, DDI.fModemOpen, DDI.fLineInUse));
BG_CHK(pTG->FComStatus.fModemInit);
*lpMdmCaps = pTG->FComModem.CurrMdmCaps;
return TRUE;
}
void NCUAbort(PThrdGlbl pTG, USHORT uLine, BOOL fEnable)
{
// BG_CHK(DDI.fLineInUse == 1);
// (MyDebugPrint(pTG, "In NCUAbort fModemInit=%d fModemOpen=%d fLineInUse=%d\r\n", FComStatus.fModemInit, DDI.fModemOpen, DDI.fLineInUse));
BG_CHK(pTG->FComStatus.fModemInit || !fEnable);
if(!fEnable)
pTG->fNCUAbort = 0;
else if(pTG->FComStatus.fInAnswer || pTG->FComStatus.fInDial)
pTG->fNCUAbort = 2;
else
pTG->fNCUAbort = 1;
return;
}