📄 exlibmd0.pas
字号:
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Handset Play Format');
for j := 0 to Voice.HandsetPlayFormat.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.HandsetPlayFormat[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.HandsetPlayFormat[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Handset Record Format');
for j := 0 to Voice.HandsetRecordFormat.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.HandsetRecordFormat[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.HandsetRecordFormat[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Line Set Play Format');
for j := 0 to Voice.LineSetPlayFormat.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.LineSetPlayFormat[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.LineSetPlayFormat[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Line Set Record Format');
for j := 0 to Voice.LineSetRecordFormat.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.LineSetRecordFormat[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.LineSetRecordFormat[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Open Handset');
for j := 0 to Voice.OpenHandset.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.OpenHandset[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.OpenHandset[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Speaker Phone Disable');
for j := 0 to Voice.SpeakerPhoneDisable.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.SpeakerPhoneDisable[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.SpeakerPhoneDisable[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Speaker Phone Enable');
for j := 0 to Voice.SpeakerPhoneEnable.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.SpeakerPhoneEnable[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.SpeakerPhoneEnable[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Speaker Phone Mute');
for j := 0 to Voice.SpeakerPhoneMute.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.SpeakerPhoneMute[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.SpeakerPhoneMute[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Speaker Phone Set Volume Gain');
for j := 0 to Voice.SpeakerPhoneSetVolumeGain.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.SpeakerPhoneSetVolumeGain[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.SpeakerPhoneSetVolumeGain[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Speaker Phone UnMute');
for j := 0 to Voice.SpeakerPhoneUnMute.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.SpeakerPhoneUnMute[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.SpeakerPhoneUnMute[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'StartPlay');
for j := 0 to Voice.StartPlay.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.StartPlay[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.StartPlay[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Start Record');
for j := 0 to Voice.StartRecord.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.StartRecord[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.StartRecord[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Stop Play');
for j := 0 to Voice.StopPlay.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.StopPlay[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.StopPlay[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Stop Record');
for j := 0 to Voice.StopRecord.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.StopRecord[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.StopRecord[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Voice Answer');
for j := 0 to Voice.VoiceAnswer.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.VoiceAnswer[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.VoiceAnswer[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Voice Dial Number Setup');
for j := 0 to Voice.VoiceDialNumberSetup.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.VoiceDialNumberSetup[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.VoiceDialNumberSetup[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Voice To Data Answer');
for j := 0 to Voice.VoiceToDataAnswer.Count - 1 do begin
tvDetails.Items.AddChild (TempNode2, 'Command = ' + PLmModemCommand (Voice.VoiceToDataAnswer[j]).Command);
tvDetails.Items.AddChild (TempNode2, 'Sequence = ' + IntToStr (PLmModemCommand (Voice.VoiceToDataAnswer[j]).Sequence));
end;
TempNode2 := tvDetails.Items.AddChild (TempNode1, 'Wave Driver');
tvDetails.Items.AddChild (TempNode2, 'Baud Rate = ' + Voice.WaveDriver.BaudRate);
tvDetails.Items.AddChild (TempNode2, 'Wave Hardware ID = ' + Voice.WaveDriver.WaveHardwareID);
tvDetails.Items.AddChild (TempNode2, 'Wave Devices = ' + Voice.WaveDriver.WaveDevices);
tvDetails.Items.AddChild (TempNode2, 'Lower Mid = ' + Voice.WaveDriver.LowerMid);
tvDetails.Items.AddChild (TempNode2, 'Lower Wave In Pid = ' + Voice.WaveDriver.LowerWaveInPid);
tvDetails.Items.AddChild (TempNode2, 'Lower Wave Out Pid = ' + Voice.WaveDriver.LowerWaveOutPid);
tvDetails.Items.AddChild (TempNode2, 'Wave Out Mixer Dest = ' + Voice.WaveDriver.WaveOutMixerDest);
tvDetails.Items.AddChild (TempNode2, 'Wave Out Mixer Source = ' + Voice.WaveDriver.WaveOutMixerSource);
tvDetails.Items.AddChild (TempNode2, 'Wave In Mixer Dest = ' + Voice.WaveDriver.WaveInMixerDest);
tvDetails.Items.AddChild (TempNode2, 'Wave In Mixer Source = ' + Voice.WaveDriver.WaveInMixerSource);
TempNode3 := tvDetails.Items.AddChild (TempNode2, 'Wave Format');
for j := 0 to Voice.WaveDriver.WaveFormat.Count - 1 do begin
tvDetails.Items.AddChild (TempNode3, 'Speed ' + IntToStr (j + 1) + ' = ' + PLmWaveFormat (Voice.WaveDriver.WaveFormat[j]).Speed);
tvDetails.Items.AddChild (TempNode3, 'ChipSet ' + IntToStr (j + 1) + ' = ' + PLmWaveFormat (Voice.WaveDriver.WaveFormat[j]).ChipSet);
tvDetails.Items.AddChild (TempNode3, 'Sample Size ' + IntToStr (j + 1) + ' = ' + PLmWaveFormat (Voice.WaveDriver.WaveFormat[j]).SampleSize);
end;
TempNode1 := tvDetails.Items.AddChild (CurModem, 'Hardware');
tvDetails.Items.AddChild (TempNode1, 'Autoconfig Override = ' + Hardware.AutoConfigOverride);
tvDetails.Items.AddChild (TempNode1, 'ComPort = ' + Hardware.ComPort);
tvDetails.Items.AddChild (TempNode1, 'Invalid RDP = ' + Hardware.InvalidRDP);
tvDetails.Items.AddChild (TempNode1, 'I/O Base Address = ' + IntToStr (Hardware.IoBaseAddress));
tvDetails.Items.AddChild (TempNode1, 'Interrupt Number = ' + IntToStr (Hardware.InterruptNumber));
if Hardware.PermitShare then
tvDetails.Items.AddChild (TempNode1, 'Permit Share = True')
else
tvDetails.Items.AddChild (TempNode1, 'Permit Share = False');
tvDetails.Items.AddChild (TempNode1, 'RxFIFO = ' + Hardware.RxFIFO);
tvDetails.Items.AddChild (TempNode1, 'Rx/TX Buffer Size = ' + IntToStr (Hardware.RxTxBufferSize));
tvDetails.Items.AddChild (TempNode1, 'Tx FIFO = ' + Hardware.TxFIFO);
tvDetails.Items.AddChild (TempNode1, 'PCMCIA = ' + Hardware.Pcmcia);
tvDetails.Items.AddChild (TempNode1, 'Bus Type = ' + Hardware.BusType);
tvDetails.Items.AddChild (TempNode1, 'PCCARD Attribute Memory Address = ' + IntToStr (Hardware.PCCARDAttributeMemoryAddress));
tvDetails.Items.AddChild (TempNode1, 'PCCARD Attribute Memory Size = ' + IntToStr (Hardware.PCCARDAttributeMemorySize));
tvDetails.Items.AddChild (TempNode1, 'PCCARD Attribute Memory Offset = ' + IntToStr (Hardware.PCCARDAttributeMemoryOffset));
end;
finally
LibModem.Free;
Screen.Cursor := crDefault;
end;
lbxModemList.DragMode := dmAutomatic;
caption := 'automatic';
end;
procedure TForm1.Deletemodem1Click(Sender: TObject);
var
DetailFile, ModemName : string;
LibModem : TApdLibModem;
begin
if lbxModemList.ItemIndex = -1 then exit;
ModemName := lbxModemList.Items[lbxModemList.ItemIndex];
LibModem := nil;
Screen.Cursor := crHourglass;
try
DetailFile := lbxDetailFiles.Items[lbxDetailFiles.ItemIndex];
LibModem := TApdLibModem.Create(self);
LibModem.LibModemPath := edtModemCapFolder.Text;
LibModem.DeleteModem(DetailFile, ModemName);
Caption := Format('%f3 seconds', [(AdTimeGetTime - StartTime) / 1000]);
{ force everything to repaint }
lbxDetailFilesClick(nil);
finally
LibModem.Free;
Screen.Cursor := crDefault;
end;
end;
procedure TForm1.Deletefile1Click(Sender: TObject);
var
DetailFile : string;
begin
if lbxDetailFiles.ItemIndex = -1 then exit;
DetailFile := lbxDetailFiles.Items[lbxDetailFiles.ItemIndex];
if MessageDlg('Delete ' + DetailFile + '?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
DeleteFile(AddBackslash(edtModemCapFolder.Text) + DetailFile);
RefreshDetailList;
end;
end;
procedure TForm1.Newfile1Click(Sender: TObject);
var
NewName : string;
LibModem : TApdLibModem;
begin
NewName := 'MyModems.xml';
if InputQuery('New modem detail file', 'Enter new name '#13#10 +
'(.xml auto-added, path is modemcap folder)', NewName) then begin
LibModem := nil;
try
LibModem := TApdLibModem.Create(self);
LibModem.LibModemPath := edtModemCapFolder.Text;
LibModem.CreateNewDetailFile(NewName);
finally
LibModem.Free;
end;
RefreshDetailList;
end;
end;
procedure TForm1.lbxDetailFilesDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := Source = lbxModemList;
end;
procedure TForm1.lbxDetailFilesDragDrop(Sender, Source: TObject; X,
Y: Integer);
var
DropFileIndex : Integer;
DragToFileName,
DragFromFileName,
DraggedModemName : string;
LibModem : TApdLibModem;
Modem : TLmModem;
begin
if Source = lbxModemList then begin
DraggedModemName := lbxModemList.Items[lbxModemList.ItemIndex];
DragFromFileName := lbxDetailFiles.Items[lbxDetailFiles.ItemIndex];
DropFileIndex := lbxDetailFiles.ItemAtPos(Point(X, Y), False);
DragToFileName := lbxDetailFiles.Items[DropFileIndex];
LibModem := nil;
try
LibModem := TApdLibModem.Create(self);
LibModem.LibModemPath := edtModemCapFolder.Text;
StartTime := AdTimeGetTime;
if LibModem.GetModem(DragFromFileName, DraggedModemName, Modem) = ecOK then
LibModem.AddModem(DragToFileName, Modem);
Caption := Format('%f3 seconds', [(AdTimeGetTime - StartTime) / 1000]);
finally
LibModem.Free;
end;
end;
end;
procedure TForm1.lbxModemListMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Shift = [ssDouble] then begin
lbxModemList.DragMode := dmManual;
Caption := 'manual';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -