Сделай сам на Delphi: Визуализационный плагин к Winamp
30.03.2008 от Иван Ширко waveformNch: Integer;
spectrumData: array[0..1, 0..575] of byte;
waveformData: array[0..1, 0..575] of byte;
//процедура, которая будет вызываться при нажатии на кнопку "Конфигурация"
Config: procedure( thismod: PwinampVisModule ); cdecl;
//функция, вызываемая при инициализации плагина, должна возвратить 0, если всё в порядке
Init: function( thismod: PwinampVisModule ): integer; cdecl;
//функция, вызываемая при получении очередной порции данных
//от Winamp'a, именно здесь нужно реагировать на изменение
//музыкальных данных, должна возвратить 0, если всё в порядке,
// или 1, если плагин завершает свою работу
Render: function( thismod: PwinampVisModule ): Integer; cdecl;
//процедура, вызываемая при завершении работы плагина
Quit: procedure( thismod: PwinampVisModule ); cdecl;
//здесь можно хранить указатель на свои данные
userData: pointer;
end;
Ну а теперь сделаем простой и абсолютно бесполезный визуализационный плагин, маленький анализатор спектра. Создайте в Delphi DLL. После этого создайте форму и положите на неё шесть компонентов TProgressBar, для которых свойство Orientation установите в положение pbVertical, а Max – в 300. Пример расположения компонент можете посмотреть на рис.1.

Всё, форму можно больше не трогать, займёмся теперь DLL. Вот код библиотеки:
library vis_MyFirstPlug;
uses
Windows, forms,
Unit1 in 'Unit1.pas' {Form1};
const
//версия
VIS_HDRVER = $101;
//класс окна
szAppName = 'OurPlug';
//описание плагина
descr = 'Мой первый VIS плагин';
//описание модуля
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;
Рубрики: 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
Класс, получилось
спасибо.
04.11.2010 в 14:35
Извините, может не по теме, но возможно вы подскажете, как сделать, что бы винамп запускался с моим скином на любом компе (на флешке если принесу и т.д.)… Т.е. сделать свой скин скином по умолчанию…