Система регистрации речи диспетчерских переговоров

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



ick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure TAPICall1Reply(Sender: TObject; AsyncFunc: TAsyncFunc;

Error: Cardinal);

procedure SpeedButton12Click(Sender: TObject);

procedure TAPICall1StateBusy(Sender: TObject; BusyMode: TLineBusyMode;

Rights: TLineCallPrivilege);

procedure HeadSetVolUpDownChangingEx(Sender: TObject;

var AllowChange: Boolean; NewValue: Smallint;

Direction: TUpDownDirection);

procedure HeadSetGainUpDownChangingEx(Sender: TObject;

var AllowChange: Boolean; NewValue: Smallint;

Direction: TUpDownDirection);

procedure HandSetVolUpDownChangingEx(Sender: TObject;

var AllowChange: Boolean; NewValue: Smallint;

Direction: TUpDownDirection);

procedure HandSetGainUpDownChangingEx(Sender: TObject;

var AllowChange: Boolean; NewValue: Smallint;

Direction: TUpDownDirection);

procedure TAPICall1StateOffering(Sender: TObject;

OfferingMode: TLineOfferingModes; Rights: TLineCallPrivilege);

procedure TAPICall1StateIdle(Sender: TObject;

Rights: TLineCallPrivilege);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

FPulse : boolean;{признак импульсного набора номера}

FAutoAnswer : boolean;{признак автоответа модема}

ConfigFile : TIniFile;{переменная инициализационного файла}

FTimeReg : integer;{Время регистрации}

FTimeCounter : integer;{счетчик времени}

VG : array[1..4] of integer;{массив с настройками телефонной

гарнитуры}

{******************Для работы со звуковыми данными*************************************************************}

FWaveInID : DWORD;{индификатор Wave устройства}

FWaveFormat : PWAVEFORMATEX;{указатель на структуру ТWAVEFORMATEX

(формата звуковых данных)}

FTotalWaveSize : DWORD;{ Номер записанных выборок }

FByteDataSize : DWORD;{ Накапливаемый размер записанных данных}

FDiskFreeSpace : DWORD;{Свободное пространство для временного файла }

FWaveHdr : array [0..1] of PWAVEHDR;{ Точки доступа к wav информации

заголовка}

FWaveMem : array [0..1] of PChar;{Точки доступа к wav буферам }

FBufIndex : Integer;{ Номер буфера который добавляется для использования}

FWaveIn : HWAVEIN;//Маркер{Дескриптор} устройства для того, чтобы

//делать запись

FWaveOut : HWAVEOUT;//Маркер{Дескриптор} устройства для проигрывания звука

FMaxFmtSize : DWORD;// наибольший размер формата, требуемый для сжатия

FFormatDesc : String;// Описание формата

FFormatTag : String;// Описание тэга формата

FDeviceOpened : Boolean;// состояние открытия устройства

FRecorderMode : TRecorderMode;//Режим рекордера

//записи/проигрывания/не активности

FWaveBufSize : DWORD;// Размер буфера

FFilename : String;// Имя файла, чтобы сохранить WAV

FMoreToPlay : Boolean; //признак наличия звуковых данных, чтобы проигрывать

FRecordedData : Boolean;// мы сделали запись данных

FTmpFileName : String;//имя временного WAV файла

FTmpFileHandle : HFILE; // Маркер{Дескриптор} к временному WAV файлу

//==============работа с временым файлом========================================

function OpenTmpFile : Integer; // Открытие временного файла для чтения.

function CreateTmpFile : integer; // Создание временного файла чтобы писать

//wav данные.

procedure DeleteTmpFile; // Удаление временного wav файла.

procedure CloseTmpFile; // Закрытие временного файла содержащего недавно

//записаные данные.

//==================работа с записью============================================

procedure StopWaveRecord;// Остановка записи.

function StartWaveRecord : Integer;// Подготовка заголовков, добавление

//буфера, подготовка показа, и начало записи.

procedure InitWaveHeaders;// Обнуляет заголовки wav и инициализирует

//указатели данных и буферные длины

procedure CloseWaveDeviceRecord;//Закрытие временного файл и устройства,

//делающего запись.

procedure UpdateLength(BytePosition : DWORD; BytePositiontotal : DWORD);//

// Обновление на экране числа записанных байт

function AddNextBuffer : integer;// Добавление буфера к очереди и

//переключение индекса буфера

procedure UpdateRecordDisplay;// обновления количества записанных байтов

//================сохранение файла==============================================

function SaveWaveFile : integer;// Сохранение wav файла

procedure WFerror(mmfp : HMMIO; const msg : String); // Закрытие wav файла,

//вывод сообщения об ошибках

function CopyDataToWaveFile(mmfp : HMMIO) : integer;// Копирование wav данных

//из временного файла в wav файл

//======================получение и установка кодеков===========================

function GetWaveFormat : integer; //функция вызывающая визуальный выбор кодека

function GetFormatTagDetails(wFormatTag : WORD) : integer; // Получение

//подробности тэга формата, и сохранение строкового описания.

//=========================инициализация========================================

function InitWaveRecorder : integer;//Размещение формата и заголовков wav,

//буфера данных, и получение временного имени файла

function AllocWaveFormatEx : Integer;//Размещение и захват структуры WAVEFORMATEX,

//основанную на максимальном размере формата согласно ACM.

function GetFormatDetails(pfmtin : PWAVEFORMATEX) : integer; // Получение

//подробности формата, и сохранение строкового описания.

function AllocWaveHeader : integer; //размещение в памяти заголовка wave

function AllocPCMBuffers : Integer;//размещение wave буфера в памяти

//========================завершение============================================

procedure DestroyWaveRecorder; // Освобождение памяти, связанной с буферами wav.

procedure FreeWaveFormatEx; // Освобождение WAVEFORMATEX буфера

procedure FreeWaveHeader; //Освобождение памяти заголовка wav.

procedure FreePCMBuffers; //Освобождение памяти wav.

//===================проигрывание звука=========================================

function ReadWaveFile : Integer;//Чтение wav файла

function CopyWaveToTempFile(mmfp : HMMIO; datasize : DWORD) : Integer;//

//Копирование данных из wav файла RIFF во временый файл.

function StartWavePlay : Integer;//Под