Шрифт:
Интервал:
Закладка:
AA_ERR_WINDOWCREATE = $201; { 513 – Невозможно создать окно }
AA_ERR_DLGERROR = $202; { 514 – Ошибка диалога }
AA_ERR_INVALIDSTATUS = $300; { 768 – Неверный статус }
AA_ERR_BADDIBFORMAT = $301; { 769 – Плохой dib-файл }
AA_ERR_BADFLIFORMAT = $302; { 770 – Плохой fli-файл }
AA_ERR_UNRECOGNIZEDFORMAT = $303; { 771 – Нераспознанный формат }
AA_ERR_NOSOUND = $304; { 772 – Звук не поддерживается }
AA_ERR_NOTVALIDFORSCRIPTS = $305; { 773 – Неправильный сценарий }
AA_ERR_INVALIDFILE = $306; { 774 – Плохой дескриптор файла }
AA_ERR_NOSCRIPTS = $307; { 775 – Нет файлов-скриптов }
AA_ERR_SPEED = $400; { 1024 – Неверная скорость }
AA_ERR_LOOPS = $401; { 1025 – Неверные циклы }
AA_ERR_RPTSOUND = $402; { 1026 – Неверный повтор звука }
AA_ERR_PAUSE = $403; { 1027 – Неверная пауза }
AA_ERR_TRANSIN = $404; { 1028 – Неверный переход }
AA_ERR_TIMEIN = $405; { 1029 – Неверный переход }
AA_ERR_TRANSOUT = $406; { 1030 – Неверное время перехода }
AA_ERR_TIMEOUT = $407; { 1031 – Неверное время перехода }
AA_ERR_DELAYSND = $408; { 1032 – Неверная задержка звука }
AA_ERR_INVALIDTYPE = $409; { 1033 – Неверный тип параметра }
AA_ERR_DUPLICATENOTIFY = $500; { 1280 – Дублирование уведомления }
AA_ERR_NOSWITCH = $600; { 1536 – Отсутствие ключей в скрипте }
AA_ERR_PARSELOOPS = $601; { 1537 – Плохие циклы в скрипте }
AA_ERR_PARSESPEED = $602; { 1538 – Плохая скорость в скрипте }
AA_ERR_BADRPTSOUND = $603; { 1539 – Плохое повторение звука в скрипте }
AA_ERR_PARSEPAUSE = $604; { 1540 – Плохая пауза в скрипте }
AA_ERR_PARSETRANS = $605; { 1541 – Плохой переход в скрипте }
AA_ERR_PARSEDELAYSND = $606; { 1542 – Плохая задержка звука в скрипте }
AA_ERR_TOOMANYLINKS = $607; { 1543 – Слишком много ссылок }
{
dwFlags: integer; может быть любым из нижеперечисленных
Используется в aaGetFile.
}
AA_GETFILE_MUSTEXIST = $1;
AA_GETFILE_NOSHOWSPEC = $2;
AA_GETFILE_SAVE = $4;
AA_GETFILE_OPEN = $8;
AA_GETFILE_USEDIR = $10;
AA_GETFILE_USEFILE = $20;
AA_GETFILE_SOUND = $40;
AA_GETFILE_SCRIPT = $80;
AA_GETFILE_ANIMATION = $100;
{
wMode: integer; Значения
Используется в aaSave
}
AA_SAVE_IFMODIFIED = $1;
AA_SAVE_AS = $2;
AA_SAVE_CANCEL = $4;
{
Возможности
Используется в aaGetCaps
}
AA_CAP_TIMER = 1;
AA_CAP_SOUND = 2;
AA_CAP_SCRIPT = 3;
{
Статусные сообщения анимации
Используйте RegisterWindowMessage для получения номеров реальных сообщений.
}
AA_NOTIFY = 'AAPLAY Уведомление'; { Сообщение-уведомление }
AA_STOP = 'AAPLAY Стоп'; { Стоп-сообщение }
{
Это посылается в первом слове lParam с сообщением AA_ERROR.
Это указывает на возникшую ошибку
}
AA_BADPLAY = 1; { Ошибка при попытке воспроизведения }
AA_BADNOTIFY = 2; { Ошибка при попытке послать уведомление }
AA_BADSCRIPT = 3; { Ошибка в сценарии при попытке }
{ воспроизведения }
{ ========================================================================== }
unit TMediaPlayer)
procedure OpenAA;
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
AAParameters: AAPARMS;
FlicHandle: AAHandle;
PlayWinHandle: THandle;
StatusWinHandle: THandle;
CallbackWinHandle: THandle;
published
{ Published declarations }
end;
procedure Register;
{ Внешние вызовы AAPLAY.DLL }
function aaOpen : boolean;
procedure aaClose;
function aaGetCaps(wType: word) : word;
function aaLoad(lpzFileName: PChar; WinHnd: HWnd; wMode: word; x, y, wid, hght, orgx, orgy: integer): AAHandle;
function aaReLoad(hAa: AAHandle; lpzFileName: PChar; wMode, wMask: word) : boolean;
function aaUnload(hAa: AAHandle): boolean;
function aaPlay(hAa: AAHandle) : boolean;
function aaNotify(hAa: AAHandle; lPosition, lParam: longint) : boolean;
function aaCancel(hAa: AAHandle; lLoPos, lHiPos: longint) : word;
function aaStop(hAa: AAHandle) : boolean;
function aaPause(hAa: AAHandle) : boolean;
function aaPrompt(hAa: AAHandle; lpName: PChar) : boolean;
function aaGetParm(hAa: AAHandle; wType: word) : longint;
function aaGetParmIndirect(hAa: AAHandle; lpAp: AAPARMSPtr; wSize: word) : boolean;
function aaSetParm(hAa: AAHandle; wType: word; wValue1, lValue2: longint): AAHandle;
function aaSetParmIndirect(hAa: AAHandle; dwType: longint; lpAp: AAPARMSPtr; wMask: word): boolean;
function aaShow(hAa: AAHandle; bShow: boolean) : boolean;
function aaSound(hAa: AAHandle; device, ffile: PChar; wMode: word): boolean;
function aaGetFile(dwFlags: word; lpszPath: PChar; wBufLen: word; lpszDriver: PChar; wDrvLen: word) : integer;
function aaSave(hAa: AAHandle; wMode: word) : integer;
implementation
{ =========================================================================== }
procedure Register;
begin
RegisterComponents('Samples', [TAAPlayer]);
end;
{ --------------------------------------------------------------------------- }
procedure TAAPlayer.OpenAA;
var
FileSuffix, tempstr: string[12];
a,b: integer;
begin
{ tempstr := ExtractFilename(AAPlayer.Filename); }
{ a := StrPos(tempstr,'.');
if (a > 0) then begin
b := a;
while (b <= StrLen(tmpstr)) do begin
FileSuffix := FileSuffix + StrUpper(tempstr[b]);
b := b+1;
end;
if ((FileSuffix = '.FLC') or (FileSuffix = '.FLI')) then begin }
{ AutoEnable := False;
EnabledButtons := [btRecord,btEject];
}{ end;
end;
}
end;
{ =========================================================================== }
{ Внешние вызовы 'AAPLAY.DLL' }
{$F+}
{ =========================================================================== }
{ --------------------------------------------------------------------------- }
function aaOpen : boolean; external 'AAPLAY';
{ --------------------------------------------------------------------------- }
procedure aaClose; external 'AAPLAY';
{
' AAOpen и AAClose в действительности не нужны, за исключением обработки
' ошибки в Windows, которая предохраняет освобождение библиотек в процедуре
' выхода Windows (Windows Exit Proc, WEP).
'
' Поэтому мы используем AAClose для освобождения библиотек при закрытии
' последней задачей AAPlay DLL.
}
{ --------------------------------------------------------------------------- }
function aaGetCaps(wType: word) : word; external 'AAPLAY';
{
' Получение возможностей
}
{ --------------------------------------------------------------------------- }
function aaLoad(lpzFileName: PChar; WinHnd: HWnd; wMode: word; x, y, wid, hght, orgx, orgy: integer): AAHandle; external 'AAPLAY';
{
' aaLoad загружает анимацию.
'
' Имя файла в lpzFileName
' и режим загрузки в wMode.
}
{ --------------------------------------------------------------------------- }
function aaReLoad(hAa: AAHandle; lpzFileName: PChar; wMode, wMask: word): boolean; external 'AAPLAY';
{
' aaReLoad загружает файл новый анимации
' "в дескриптор" старой анимации.
'
' Уведомления теряются, но палитра и окно
' сохраняются.
}
{ --------------------------------------------------------------------------- }
function aaUnload(hAa: AAHandle): boolean; external 'AAPLAY';
{
' aaUnload выгружает загруженную анимацию.
'
' Возвращается FALSE, если
' hAa не является дескриптором загруженной анимации.
}
{ --------------------------------------------------------------------------- }
function aaPlay(hAa: AAHandle) : boolean; external 'AAPLAY';
{
' aaPlay воспроизводит загруженную анимацию.
'
' Возвращается TRUE, если после возврата aaPlay анимация не останавливается.
}
{ --------------------------------------------------------------------------- }
function aaNotify(hAa: AAHandle; lPosition, lParam: longint) : boolean; external 'AAPLAY';
{
' aaNotify позволяет извещать приложение о воспроизведении
' определенных кадров анимации.
'
' lPosition -позиция, в которой должно происходить уведомление.
- Python для детей. Анимация с черепашьей графикой - Виктор Рабинович - Прочая детская литература / Программирование
- Программист-фанатик - Чед Фаулер - Программирование
- Эффективное использование STL - Скотт Мейерс - Программирование
- Как функции, не являющиеся методами, улучшают инкапсуляцию - Скотт Мейерс - Программирование
- Как я делаю мультфильмы - Андрей Шумин - Прочая научная литература / Прочее / Программирование
- Программирование - Ирина Козлова - Программирование
- Программирование на языке Пролог для искусственного интеллекта - Иван Братко - Программирование
- Новое в зарплатном учете в 2023 году: лайфхаки бухгалтера в 1С - Компания СервисКлауд - Программирование / Финансы
- ВСТУП ДО ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ - М. Сидоров - Программирование