Система регистрации речи диспетчерских переговоров
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
waveOutRestart(FWaveOut);
Timer1.Enabled:=true;
Play.Caption:=Пауза;
exit;
end;
if (Play.Caption = Играть) and (FRecorderMode = recModeOff) then begin
//если чтение wav файла прошло успешно, то
if ReadWaveFile=0 then begin
Select.Enabled:=false;//блокирует кнопку отбора
NoSelect.Enabled:=false;//блокирует кнопку Отмены отбора
DelTrack.Enabled:=false;//блокирует кнопку удаления записи
Stop.Enabled:=true;//разблокирует кнопку останова
Play.Caption:=Пауза;// кнопку проигрывания
StartWavePlay //Подготовка заголовков, добавление буферов, и начинаем проигрывание.
end ;
end;
end;
{******************таймеры используемые в программе********************************}
/////////////////////////////////////////////////////////////////////////////
//Таймер для обновления позиции trackbar1 и времени проигрывания
procedure TSysWaves.Timer1Timer(Sender: TObject);
var
min,sec:integer;
begin
min:=0;//обнуление кол-ва минут
trackbar1.Position:=trackbar1.Position+1;//увеличение позиции trackbar1 на 1
//обработка времени проигрывания для приемлего представления его на форме
sec:=trackbar1.Position;
if sec/60 >= 1 then begin
Min:=trunc(Sec/60);
Sec:=trunc((Sec/60-Min)*60);
end;
Label11.Caption :=Format(%.2d:%.2d,[Min,Sec]);
end;
/////////////////////////////////////////////////////////////////////////////
//таймер для подсчета времени с начала состояния Connected
procedure TSysWaves.Timer3Timer(Sender: TObject);
begin
inc(FTimeCounter);//увеличиваем счетчик времени на 1 секунду
if FRecorderMode = recModeRecord then UpdateRecordDisplay
end;
{****************************************************************************}
//Включить отбор записей
procedure TSysWaves.SelectClick(Sender: TObject);
begin
Datamodule1.WavBase.SetRangeStart;
Datamodule1.WavBase.FieldByName(DateName).AsDateTime:=DateTimePicker1.Date;
Datamodule1.WavBase.SetRangeEnd;
Datamodule1.WavBase.FieldByName(DateName).AsDateTime:=DateTimePicker2.Date;
Datamodule1.WavBase.ApplyRange;
end;
//отменить отбор
procedure TSysWaves.NoSelectClick(Sender: TObject);
begin
Datamodule1.WavBase.CancelRange;
end;
//удаление из базы текущей записи
procedure TSysWaves.DelTrackClick(Sender: TObject);
begin
FFileName:= IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) +WavBase\+ datamodule1.WavBase.FieldByName(FileName).AsString;
if FileExists(FFileName) then DeleteFile(FFileName);
Datamodule1.WavBase.Delete;
end;
//При закрытии формы закрытие базы данных
procedure TSysWaves.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Datamodule1.WavBase.Close;
end;
//при изменении обьема звука наушников
procedure TSysWaves.HeadSetVolUpDownChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
HeadSetVolume.Position:=2*NewValue;
SaveConf.Enabled:=true;
end;
//при изменении коэффициента усиления звука наушников
procedure TSysWaves.HeadSetGainUpDownChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
HeadSetGain.Position:=2*NewValue;
SaveConf.Enabled:=true;
end;
//при изменении обьема звука микрофона
procedure TSysWaves.HandSetVolUpDownChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
HandSetVolume.Position:=2*NewValue;
SaveConf.Enabled:=true;
end;
//при изменении коэффициента усиления звука микрофона
procedure TSysWaves.HandSetGainUpDownChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
HandSetGain.Position:=2*NewValue;
SaveConf.Enabled:=true;
end;
end.
Модуль данных
unit DataMode;
interface
uses
SysUtils, Classes, DB, DBTables,bde;
type
TDataModule1 = class(TDataModule)
WavBase: TTable;
DataSource1: TDataSource;
WavBaseID: TAutoIncField;
WavBaseDateName: TDateField;
WavBaseTimeName: TTimeField;
WavBaseUserName: TStringField;
WavBaseFileName: TStringField;
procedure WavBaseAfterCancel(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule1: TDataModule1;
implementation
{$R *.dfm}
//сброс кэша на диск с помощью механизма BDE
procedure TDataModule1.WavBaseAfterCancel(DataSet: TDataSet);
begin
Check(dbiSaveChanges(WavBase.Handle));
end;
end.
Модуль со справочной информацией
unit About;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TAbouts = class(TForm)
Panel1: TPanel;
ProductName: TLabel;
Version: TLabel;