Сделай сам на Delphi: Визуализационный плагин к Winamp
30.03.2008 от Иван Ширко mod1.sRate := 0;
mod1.nCh := 0;
mod1.latencyMs := 25;
mod1.delayMs := 100;
mod1.spectrumNch := 2;
mod1.waveformNch := 0;
mod1.Config := @config;
mod1.Init := @init;
mod1.Render := @render;
mod1.Quit := @quit;
//создаём форму с ProgressBar'ами
Application.CreateForm(TForm1, Form1);
end.
Полученный плагин нужно скопировать в папку Winamp\Plugins. После этого в окне свойств Winamp'a будет доступен новый плагин (рис.2).
Этот пример призван продемонстрировать, как использовать всю мощь VCL в Delphi при создании плагинов для Winamp'a. Но размер такого плагина будет в районе 300-400 кб (зависит от версии Delphi). В связи с этим, лучше отказаться от использования VCL, а писать плагины на WinApi. Далее приведён код плагина, который заставляет мигать лампочки на клавиатуре (Num Lock, Caps Lock и Scroll Lock) в такт музыке.
library KeybLight;
uses Windows;
const
VIS_HDRVER = $101;
szAppName = 'KeybLight';
descr = 'Лампочки на клавиатуре (delphiblog.ru)';
//описание плагина
mod1_descr = 'Лампочки на клавиатуре';
type
//указатель на структуру плагина
PwinampVisModule = ^winampVisModule;
//структура плагина
winampVisModule = packed record
description: PChar;
hwndParent: HWND;
hDllInstance: HWND;
sRate: Integer;
nCh: Integer;
latencyMs: Integer;
delayMs: Integer;
spectrumNch: Integer;
waveformNch: Integer;
spectrumData: array[0..1, 0..575] of Byte;
waveformData: array[0..1, 0..575] of Byte;
Config: procedure( thismod: PwinampVisModule ); cdecl;
Init: function( thismod: PwinampVisModule ): Integer; cdecl;
Render: function( thismod: PwinampVisModule ): Integer; cdecl;
Quit: procedure( thismod: PwinampVisModule ); cdecl;
userData: pointer;
end;
//заголовок плагина
PwinampVisHeader = ^winampVisHeader;
winampVisHeader = packed record
version: Integer;
description: PChar;
getModule: function( which: integer ): PwinampVisModule; cdecl;
end;
var
hdr: winampVisHeader;
mod1: winampVisModule;
//процедура для установки состояния клавиш Caps, Num, Scroll Lock
Рубрики: Delphi, Winamp, Сделай сам |
02.04.2008 в 05:02
kRUTO!!! aftoru respeKt!!! DAVNO ISkaL TAKoE
06.06.2008 в 12:13
Спасибо за модули. В выходные попробую разобраться подробнее
16.07.2008 в 09:25
Отлично написано
14.08.2008 в 20:56
Статья очень пригодилась, все просто и понятно.
Огромное спасибо автору!:)
21.08.2008 в 13:06
Люблю когда по сути, мне понравилось.
10.09.2008 в 11:04
Благодарю, очень полезная вещь
13.09.2008 в 14:58
У меня коряво получается, но все равно спасибо.
14.09.2008 в 06:34
У меня не вышло(((
19.10.2008 в 07:15
Спасибо попробую.
22.10.2008 в 10:24
Спасибо большое!!! Одно но : в 2 плагине в коде нужно заменить “*********
keybd_event(c, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0);
//key release
*****”
на
“*********
keybd_event(c, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0) else
//key release
*****”. Иначе просто все лампочки всегда выключаються.
22.10.2008 в 10:48
>>Виталий
Спасибо!
28.09.2009 в 08:03
хм…интересно..спасибо за идею, давненько хотел что-либо подобное попробовать…
16.10.2009 в 01:02
Отлично я нашла что искала:)
28.07.2010 в 06:38
Класс, получилось
спасибо.