⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adxlbmdm.pas

📁 测试用例
💻 PAS
📖 第 1 页 / 共 3 页
字号:
begin
  Result := ecFileNotFound;
  if FileExists(ModemCapIndex) then begin
    List := nil;
    try
      Result := ecInvalidFile;
      List := TStringList.Create;
      List.LoadFromFile(ModemCapIndex);
      { find the modem }
      I := 0;
      Found := False;
      while not Found do begin
        S := 'ModemName = "' + ModemRecord.ModemName + '" Manufacturer = "' +
          ModemRecord.Manufacturer + '" Model = "' + ModemRecord.Model;
        Found := Pos(S, List[I]) > 0;
        if not Found then begin
          inc(I);
          if I >= List.Count then begin
            Result := ecModemNotFound;
            Exit;
          end;
        end;
      end;
      { found the modem, delete it }
      List.Delete(I);
      { find the last modem record }
      I := pred(List.Count);
      while (Pos('<ModemRecord ModemName = "', List[I]) = 0) and (I > 0) do begin
        List.Delete(I);
        dec(I);
      end;
      FixupModemcap(List);
      List.SaveToFile(ModemCapIndex);
      Result := ecOK;
    finally
      List.Free;
    end;
  end;
end;

destructor TApdModemCapDetail.Destroy;
begin
  if Assigned(DetailStream) then
    DetailStream.Free;
  inherited;
end;

function TApdModemCapDetail.ExportDetailXML(Modem: TLmModem): Integer;
var
  I : Integer;
begin
  try
    WriteLine('  <Modem');
    WriteLine('    FriendlyName = "' + XMLize(Modem.FriendlyName) + '"');
    WriteLine('    Manufacturer = "' + XMLize(Modem.Manufacturer) + '"');
    WriteLine('    Model = "' + XMLize(Modem.Model) + '"');
    WriteLine('    Reset = "' + XMLize(Modem.Reset) + '"');
    WriteLine('    ForwardDelay = "' + XMLizeInt(Modem.ForwardDelay) + '"');
    WriteLine('    VariableTerminator = "' + XMLize(Modem.VariableTerminator) + '"');
    WriteLine('    CallSetupFailTimeout = "' + XMLizeInt(Modem.CallSetupFailTimeout) + '"');
    WriteLine('    InactivityTimeout = "' + XMLizeInt(Modem.InactivityTimeout) + '"');
    WriteLine('    SupportsWaitForBongTone = "' + XMLizeBool(Modem.SupportsWaitForBongTone) + '"');
    WriteLine('    SupportsWaitForQuiet = "' + XMLizeBool(Modem.SupportsWaitForQuiet) + '"');
    WriteLine('    SupportsWaitForDialTone = "' + XMLizeBool(Modem.SupportsWaitForDialTone) + '"');
    WriteLine('    SupportsSpeakerVolumeLow = "' + XMLizeBool(Modem.SupportsSpeakerVolumeLow) + '"');
    WriteLine('    SupportsSpeakerVolumeMed = "' + XMLizeBool(Modem.SupportsSpeakerVolumeMed) + '"');
    WriteLine('    SupportsSpeakerVolumeHigh = "' + XMLizeBool(Modem.SupportsSpeakerVolumeHigh) + '"');
    WriteLine('    SupportsSpeakerModeOff = "' + XMLizeBool(Modem.SupportsSpeakerModeOff) + '"');
    WriteLine('    SupportsSpeakerModeDial = "' + XMLizeBool(Modem.SupportsSpeakerModeDial) + '"');
    WriteLine('    SupportsSpeakerModeOn = "' + XMLizeBool(Modem.SupportsSpeakerModeOn) + '"');
    WriteLine('    SupportsSpeakerModeSetup = "' + XMLizeBool(Modem.SupportsSpeakerModeSetup) + '"');
    WriteLine('    SupportsSetDataCompressionNegot = "' + XMLizeBool(Modem.SupportsSetDataCompressionNegot) + '"');
    WriteLine('    SupportsSetErrorControlProtNegot = "' + XMLizeBool(Modem.SupportsSetErrorControlProtNegot) + '"');
    WriteLine('    SupportsSetForcedErrorControl = "' + XMLizeBool(Modem.SupportsSetForcedErrorControl) + '"');
    WriteLine('    SupportsSetCellular = "' + XMLizeBool(Modem.SupportsSetCellular) + '"');
    WriteLine('    SupportsSetHardwareFlowControl = "' + XMLizeBool(Modem.SupportsSetHardwareFlowControl) + '"');
    WriteLine('    SupportsSetSoftwareFlowControl = "' + XMLizeBool(Modem.SupportsSetSoftwareFlowControl) + '"');
    WriteLine('    SupportsCCITTBellToggle = "' + XMLizeBool(Modem.SupportsCCITTBellToggle) + '"');
    WriteLine('    SupportsSetSpeedNegotiation = "' + XMLizeBool(Modem.SupportsSetSpeedNegotiation) + '"');
    WriteLine('    SupportsSetTonePulse = "' + XMLizeBool(Modem.SupportsSetTonePulse) + '"');
    WriteLine('    SupportsBlindDial = "' + XMLizeBool(Modem.SupportsBlindDial) + '"');
    WriteLine('    SupportsSetV21V23 = "' + XMLizeBool(Modem.SupportsSetV21V23) + '"');
    WriteLine('    SupportsModemDiagnostics = "' + XMLizeBool(Modem.SupportsModemDiagnostics) + '"');
    WriteLine('    MaxDTERate = "' + XMLizeInt(Modem.MaxDTERate) + '"');
    WriteLine('    MaxDCERate = "' + XMLizeInt(Modem.MaxDCERate) + '"');
    WriteLine('    PowerDelay = "' + XMLizeInt(Modem.PowerDelay) + '"');
    WriteLine('    ConfigDelay = "' + XMLizeInt(Modem.ConfigDelay) + '">');

    { responses }
    with Modem.Responses do begin
      WriteLine('    <Responses>');
      for I := 0 to pred(OK.Count) do
        WriteXMLStr('      <OKResponses>', PLmResponseData(OK[I]).Response);
      for I := 0 to pred(NegotiationProgress.Count) do
        WriteXMLStr('      <NegotiationProgressResponses>', PLmResponseData(NegotiationProgress[I]).Response);
      for I := 0 to pred(Connect.Count) do
        WriteXMLStr('      <ConnectResponses>', PLmResponseData(Connect[I]).Response);
      for I := 0 to pred(Error.Count) do
        WriteXMLStr('      <ErrorResponses>', PLmResponseData(Error[I]).Response);
      for I := 0 to pred(NoCarrier.Count) do
        WriteXMLStr('      <NoCarrierResponses>', PLmResponseData(NoCarrier[I]).Response);
      for I := 0 to pred(NoDialtone.Count) do
        WriteXMLStr('      <NoDialToneResponses>', PLmResponseData(NoDialTone[I]).Response);
      for I := 0 to pred(Busy.Count) do
        WriteXMLStr('      <BusyResponses>', PLmResponseData(Busy[I]).Response);
      for I := 0 to pred(NoAnswer.Count) do
        WriteXMLStr('      <NoAnswerResponses>', PLmResponseData(NoAnswer[I]).Response);
      for I := 0 to pred(Ring.Count) do
        WriteXMLStr('      <RingResponses>', PLmResponseData(Ring[I]).Response);
      for I := 0 to pred(VoiceView1.Count) do
        WriteXMLStr('      <VoiceView1Responses>', PLmResponseData(VoiceView1[I]).Response);
      for I := 0 to pred(VoiceView2.Count) do
        WriteXMLStr('      <VoiceView2Responses>', PLmResponseData(VoiceView2[I]).Response);
      for I := 0 to pred(VoiceView3.Count) do
        WriteXMLStr('      <VoiceView3Responses>', PLmResponseData(VoiceView3[I]).Response);
      for I := 0 to pred(VoiceView4.Count) do
        WriteXMLStr('      <VoiceView4Responses>', PLmResponseData(VoiceView4[I]).Response);
      for I := 0 to pred(VoiceView5.Count) do
        WriteXMLStr('      <VoiceView5Responses>', PLmResponseData(VoiceView5[I]).Response);
      for I := 0 to pred(VoiceView6.Count) do
        WriteXMLStr('      <VoiceView6Responses>', PLmResponseData(VoiceView6[I]).Response);
      for I := 0 to pred(VoiceView7.Count) do
        WriteXMLStr('      <VoiceView7Responses>', PLmResponseData(VoiceView7[I]).Response);
      for I := 0 to pred(VoiceView8.Count) do
        WriteXMLStr('      <VoiceView8Responses>', PLmResponseData(VoiceView8[I]).Response);
      for I := 0 to pred(RingDuration.Count) do
        WriteXMLStr('      <RingDurationResponses>', PLmResponseData(RingDuration[I]).Response);
      for I := 0 to pred(RingBreak.Count) do
        WriteXMLStr('      <RingBreakResponses>', PLmResponseData(RingBreak[I]).Response);
      for I := 0 to pred(Date.Count) do
        WriteXMLStr('      <DateResponses>', PLmResponseData(Date[I]).Response);
      for I := 0 to pred(Time.Count) do
        WriteXMLStr('      <TimeResponses>', PLmResponseData(Time[I]).Response);
      for I := 0 to pred(Number.Count) do
        WriteXMLStr('      <NumberResponses>', PLmResponseData(Number[I]).Response);
      for I := 0 to pred(Name.Count) do
        WriteXMLStr('      <NameResponses>', PLmResponseData(Name[I]).Response);
      for I := 0 to pred(Msg.Count) do
        WriteXMLStr('      <MsgResponses>', PLmResponseData(Msg[I]).Response);
      for I := 0 to pred(SingleRing.Count) do
        WriteXMLStr('      <SingleRingResponses>', PLmResponseData(SingleRing[I]).Response);
      for I := 0 to pred(DoubleRing.Count) do
        WriteXMLStr('      <DoubleRingResponses>', PLmResponseData(DoubleRing[I]).Response);
      for I := 0 to pred(TripleRing.Count) do
        WriteXMLStr('      <TripleRingResponses>', PLmResponseData(TripleRing[I]).Response);
      for I := 0 to pred(Voice.Count) do
        WriteXMLStr('      <VoiceResponses>', PLmResponseData(Voice[I]).Response);
      for I := 0 to pred(Fax.Count) do
        WriteXMLStr('      <FaxResponses>', PLmResponseData(Fax[I]).Response);
      for I := 0 to pred(Data.Count) do
        WriteXMLStr('      <DataResponses>', PLmResponseData(Data[I]).Response);
      for I := 0 to pred(Other.Count) do
        WriteXMLStr('      <OtherResponses>', PLmResponseData(Other[I]).Response);
      WriteLine('    </Responses>');
    end;

    for I := 0 to pred(Modem.Answer.Count) do
      WriteLine('    <Answer Sequence = "' + XMLizeInt(PLmModemCommand(Modem.Answer[I]).Sequence) +
        '">' + XMLize(PLmModemCommand(Modem.Answer[I]).Command) + '</Answer>');

    { fax stuff }
    with Modem.FaxDetails do begin
      WriteLine('    <FaxDetails');
      WriteLine('      ExitCommand = "' + XMLize(ExitCommand) + '"');
      WriteLine('      PreAnswerCommand = "' + XMLize(PreAnswerCommand) + '"');
      WriteLine('      PreDialCommand = "' + XMLize(PreDialCommand) + '"');
      WriteLine('      ResetCommand = "' + XMLize(ResetCommand) + '"');
      WriteLine('      SetupCommand = "' + XMLize(SetupCommand) + '"');
      WriteLine('      EnableV17Recv = "' + XMLize(EnableV17Recv) + '"');
      WriteLine('      EnableV17Send = "' + XMLize(EnableV17Send) + '"');
      WriteLine('      FixModemClass = "' + XMLize(FixModemClass) + '"');
      WriteLine('      FixSerialSpeed = "' + XMLize(FixSerialSpeed) + '"');
      WriteLine('      HighestSendSpeed = "' + XMLize(HighestSendSpeed) + '"');
      WriteLine('      LowestSendSpeed = "' + XMLize(LowestSendSpeed) + '"');
      WriteLine('      HardwareFlowControl = "' + XMLize(HardwareFlowControl) + '"');
      WriteLine('      SerialSpeedInit = "' + XMLize(SerialSpeedInit) + '"');
      WriteLine('      Cl1FCS = "' + XMLize(Cl1FCS) + '"');
      WriteLine('      Cl2DC2 = "' + XMLize(Cl2DC2) + '"');
      WriteLine('      Cl2lsEx = "' + XMLize(Cl2lsEx) + '"');
      WriteLine('      Cl2RecvBOR = "' + XMLize(Cl2RecvBOR) + '"');
      WriteLine('      Cl2SendBOR = "' + XMLize(Cl2SendBOR) + '"');
      WriteLine('      Cl2SkipCtrlQ = "' + XMLize(Cl2SkipCtrlQ) + '"');
      WriteLine('      Cl2SWBOR = "' + XMLize(Cl2SWBOR) + '"');
      WriteLine('      Class2FlowOff = "' + XMLize(Class2FlowOff) + '"');
      WriteLine('      Class2FlowHW = "' + XMLize(Class2FlowHW) + '"');
      WriteLine('      Class2FlowSW = "' + XMLize(Class2FlowSW) + '"');
      WriteLine('>');
      with FaxClass1 do begin
        WriteLine('      <Class1>');
        WriteLine('        ModemResponseFaxDetect = "' + XMLize(ModemResponseFaxDetect) + '"');
        WriteLine('        ModemResponseDataDetect = "' + XMLize(ModemResponseDataDetect) + '"');
        WriteLine('        SerialSpeedFaxDetect = "' + XMLize(SerialSpeedFaxDetect) + '"');
        WriteLine('        SerialSpeedDataDetect = "' + XMLize(SerialSpeedDataDetect) + '"');
        WriteLine('        HostCommandFaxDetect = "' + XMLize(HostCommandFaxDetect) + '"');
        WriteLine('        HostCommandDataDetect = "' + XMLize(HostCommandDataDetect) + '"');
        WriteLine('        ModemResponseFaxConnect = "' + XMLize(ModemResponseFaxConnect) + '"');
        WriteLine('        ModemResponseDataConnect = "' + XMLize(ModemResponseDataConnect) + '"');
        for I := 0 to pred(AnswerCommand.Count) do
          WriteLine('        <AnswerCommand Sequence = "' + XMLizeInt(PLmModemCommand(AnswerCommand[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(AnswerCommand[I]).Command) + '</AnswerCommand>');
        WriteLine('      </Class1>');
      end;
      with FaxClass2 do begin
        WriteLine('      <Class2>');
        WriteLine('        ModemResponseFaxDetect = "' + XMLize(ModemResponseFaxDetect) + '"');
        WriteLine('        ModemResponseDataDetect = "' + XMLize(ModemResponseDataDetect) + '"');
        WriteLine('        SerialSpeedFaxDetect = "' + XMLize(SerialSpeedFaxDetect) + '"');
        WriteLine('        SerialSpeedDataDetect = "' + XMLize(SerialSpeedDataDetect) + '"');
        WriteLine('        HostCommandFaxDetect = "' + XMLize(HostCommandFaxDetect) + '"');
        WriteLine('        HostCommandDataDetect = "' + XMLize(HostCommandDataDetect) + '"');
        WriteLine('        ModemResponseFaxConnect = "' + XMLize(ModemResponseFaxConnect) + '"');
        WriteLine('        ModemResponseDataConnect = "' + XMLize(ModemResponseDataConnect) + '"');
        for I := 0 to pred(AnswerCommand.Count) do
          WriteLine('    <AnswerCommand Sequence = "' + XMLizeInt(PLmModemCommand(AnswerCommand[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(AnswerCommand[I]).Command) + '</AnswerCommand>');
        WriteLine('      </Class2>');
      end;
      with FaxClass2_0 do begin
        WriteLine('      <Class2_0>');
        WriteLine('        ModemResponseFaxDetect = "' + XMLize(ModemResponseFaxDetect) + '"');
        WriteLine('        ModemResponseDataDetect = "' + XMLize(ModemResponseDataDetect) + '"');
        WriteLine('        SerialSpeedFaxDetect = "' + XMLize(SerialSpeedFaxDetect) + '"');
        WriteLine('        SerialSpeedDataDetect = "' + XMLize(SerialSpeedDataDetect) + '"');
        WriteLine('        HostCommandFaxDetect = "' + XMLize(HostCommandFaxDetect) + '"');
        WriteLine('        HostCommandDataDetect = "' + XMLize(HostCommandDataDetect) + '"');
        WriteLine('        ModemResponseFaxConnect = "' + XMLize(ModemResponseFaxConnect) + '"');
        WriteLine('        ModemResponseDataConnect = "' + XMLize(ModemResponseDataConnect) + '"');
        for I := 0 to pred(AnswerCommand.Count) do
          WriteLine('    <AnswerCommand Sequence = "' + XMLizeInt(PLmModemCommand(AnswerCommand[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(AnswerCommand[I]).Command) + '</AnswerCommand>');
        WriteLine('      </Class2_0>');
      end;
      WriteLine('    </FaxDetails>');
    end;

    with Modem.Voice do begin
      WriteLine('    <Voice');
      WriteLine('      VoiceProfile = "' + XMLize(VoiceProfile) + '"');
      WriteLine('      HandsetCloseDelay = "' + XMLizeInt(HandsetCloseDelay) + '"');
      WriteLine('      SpeakerPhoneSpecs = "' + XMLize(SpeakerPhoneSpecs) + '"');
      WriteLine('      AbortPlay = "' + XMLize(AbortPlay) + '"');
      WriteLine('      CallerIDOutSide = "' + XMLize(CallerIDOutSide) + '"');
      WriteLine('      CallerIDPrivate = "' + XMLize(CallerIDPrivate) + '"');
      WriteLine('      TerminatePlay = "' + XMLize(TerminatePlay) + '"');
      WriteLine('      TerminateRecord = "' + XMLize(TerminateRecord) + '"');
      WriteLine('      VoiceManufacturerID = "' + XMLize(VoiceManufacturerID) + '"');
      WriteLine('      VoiceProductIDWaveIn = "' + XMLize(VoiceProductIDWaveIn) + '"');
      WriteLine('      VoiceProductIDWaveOut = "' + XMLize(VoiceProductIDWaveOut) + '"');
      WriteLine('      VoiceSwitchFeatures = "' + XMLize(VoiceSwitchFeatures) + '"');
      WriteLine('      VoiceBaudRate = "' + XMLizeInt(VoiceBaudRate) + '"');
      WriteLine('      VoiceMixerMid = "' + XMLize(VoiceMixerMid) + '"');
      WriteLine('      VoiceMixerPid = "' + XMLize(VoiceMixerPid) + '"');
      WriteLine('      VoiceMixerLineID = "' + XMLize(VoiceMixerLineID) + '"');
      WriteLine('>');

      for I := 0 to pred(CloseHandset.Count) do
          WriteLine('    <CloseHandset Sequence = "' + XMLizeInt(PLmModemCommand(CloseHandset[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(CloseHandset[I]).Command) + '</CloseHandset>');
      for I := 0 to pred(EnableCallerID.Count) do
          WriteLine('    <EnableCallerID Sequence = "' + XMLizeInt(PLmModemCommand(EnableCallerID[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(EnableCallerID[I]).Command) + '</EnableCallerID>');
      for I := 0 to pred(EnableDistinctiveRing.Count) do
          WriteLine('    <EnableDistinctiveRing Sequence = "' + XMLizeInt(PLmModemCommand(EnableDistinctiveRing[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(EnableDistinctiveRing[I]).Command) + '</EnableDistinctiveRing>');
      for I := 0 to pred(GenerateDigit.Count) do
          WriteLine('    <GenerateDigit Sequence = "' + XMLizeInt(PLmModemCommand(GenerateDigit[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(GenerateDigit[I]).Command) + '</GenerateDigit>');
      for I := 0 to pred(HandsetPlayFormat.Count) do
          WriteLine('    <HandsetPlayFormat Sequence = "' + XMLizeInt(PLmModemCommand(HandsetPlayFormat[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(HandsetPlayFormat[I]).Command) + '</HandsetPlayFormat>');
      for I := 0 to pred(HandsetRecordFormat.Count) do
          WriteLine('    <HandsetRecordFormat Sequence = "' + XMLizeInt(PLmModemCommand(HandsetRecordFormat[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(HandsetRecordFormat[I]).Command) + '</HandsetRecordFormat>');
      for I := 0 to pred(LineSetPlayFormat.Count) do
          WriteLine('    <LineSetPlayFormat Sequence = "' + XMLizeInt(PLmModemCommand(LineSetPlayFormat[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(LineSetPlayFormat[I]).Command) + '</LineSetPlayFormat>');
      for I := 0 to pred(LineSetRecordFormat.Count) do
          WriteLine('    <LineSetRecordFormat Sequence = "' + XMLizeInt(PLmModemCommand(LineSetRecordFormat[I]).Sequence) +
            '">' + XMLize(PLmModemCommand(LineSetRecordFormat[I]).Command) + '</LineSetRecordFormat>');
      for I := 0 to pred(OpenHandset.Count) do

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -