|
|
1.1 root 1: //---------------------------------------------------------------------------
2:
3: #include <vcl.h>
4: #pragma hdrstop
5:
6: #include "MainFormUnit.h"
7: #include "TextFileEditUnit.h"
8: #include "ServicesCfgDlgUnit.h"
9: #include <stdio.h> // sprintf()
10: #include <mmsystem.h> // sndPlaySound()
11: //---------------------------------------------------------------------------
12: #pragma package(smart_init)
13: #pragma resource "*.dfm"
14: TServicesCfgDlg *ServicesCfgDlg;
15: //---------------------------------------------------------------------------
16: __fastcall TServicesCfgDlg::TServicesCfgDlg(TComponent* Owner)
17: : TForm(Owner)
18: {
19: }
20: //---------------------------------------------------------------------------
21: void __fastcall TServicesCfgDlg::ServicesCfgButtonClick(TObject *Sender)
22: {
23: char filename[MAX_PATH+1];
24:
25: iniFileName(filename,sizeof(filename),MainForm->cfg.ctrl_dir,"services.ini");
26: MainForm->EditFile(filename,"Services Configuration");
27: }
28: //---------------------------------------------------------------------------
29: void __fastcall TServicesCfgDlg::FormShow(TObject *Sender)
30: {
31: char str[128];
32:
33: if(MainForm->services_startup.interface_addr==0)
34: NetworkInterfaceEdit->Text="<ANY>";
35: else {
36: sprintf(str,"%d.%d.%d.%d"
37: ,(MainForm->services_startup.interface_addr>>24)&0xff
38: ,(MainForm->services_startup.interface_addr>>16)&0xff
39: ,(MainForm->services_startup.interface_addr>>8)&0xff
40: ,MainForm->services_startup.interface_addr&0xff
41: );
42: NetworkInterfaceEdit->Text=AnsiString(str);
43: }
44: AutoStartCheckBox->Checked=MainForm->ServicesAutoStart;
45:
46: AnswerSoundEdit->Text=AnsiString(MainForm->services_startup.answer_sound);
47: HangupSoundEdit->Text=AnsiString(MainForm->services_startup.hangup_sound);
48: HostnameCheckBox->Checked
49: =!(MainForm->services_startup.options&BBS_OPT_NO_HOST_LOOKUP);
50:
51: PageControl->ActivePage=GeneralTabSheet;
52:
53: }
54: //---------------------------------------------------------------------------
55: void __fastcall TServicesCfgDlg::OKButtonClick(TObject *Sender)
56: {
57: char str[128],*p;
58: DWORD addr;
59:
60: SAFECOPY(str,NetworkInterfaceEdit->Text.c_str());
61: p=str;
62: while(*p && *p<=' ') p++;
63: if(*p && isdigit(*p)) {
64: addr=atoi(p)<<24;
65: while(*p && *p!='.') p++;
66: if(*p=='.') p++;
67: addr|=atoi(p)<<16;
68: while(*p && *p!='.') p++;
69: if(*p=='.') p++;
70: addr|=atoi(p)<<8;
71: while(*p && *p!='.') p++;
72: if(*p=='.') p++;
73: addr|=atoi(p);
74: MainForm->services_startup.interface_addr=addr;
75: } else
76: MainForm->services_startup.interface_addr=0;
77: MainForm->ServicesAutoStart=AutoStartCheckBox->Checked;
78:
79:
80: SAFECOPY(MainForm->services_startup.answer_sound
81: ,AnswerSoundEdit->Text.c_str());
82: SAFECOPY(MainForm->services_startup.hangup_sound
83: ,HangupSoundEdit->Text.c_str());
84:
85: if(HostnameCheckBox->Checked==false)
86: MainForm->services_startup.options|=BBS_OPT_NO_HOST_LOOKUP;
87: else
88: MainForm->services_startup.options&=~BBS_OPT_NO_HOST_LOOKUP;
89:
90: MainForm->SaveSettings(Sender);
91:
92: }
93: //---------------------------------------------------------------------------
94:
95: void __fastcall TServicesCfgDlg::AnswerSoundButtonClick(TObject *Sender)
96: {
97: OpenDialog->FileName=AnswerSoundEdit->Text;
98: if(OpenDialog->Execute()==true) {
99: AnswerSoundEdit->Text=OpenDialog->FileName;
100: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC);
101: }
102: }
103: //---------------------------------------------------------------------------
104:
105: void __fastcall TServicesCfgDlg::HangupSoundButtonClick(TObject *Sender)
106: {
107: OpenDialog->FileName=HangupSoundEdit->Text;
108: if(OpenDialog->Execute()==true) {
109: HangupSoundEdit->Text=OpenDialog->FileName;
110: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC);
111: }
112: }
113:
114: //---------------------------------------------------------------------------
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.