Сделай сам на Delphi: Визуализационный плагин к Winamp | Программирование на Delphi и не только

Реклама на сайте

Рецепты, помощь в покупке. Фото кулинарные рецепты.
Только профессиональные водители. Сделай заказ лимузинов сегодня. Мы никогда не опаздываем!

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Реклама на сайте

Производим обследование зданий и сооружений для Вас.

Сделай сам на Delphi: Визуализационный плагин к Winamp

30.03.2008 от Иван Ширко

Страница: 1 2 3 4 5 6

  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).

Плагин к Winamp 

Этот пример призван продемонстрировать, как использовать всю мощь 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

Страница: 1 2 3 4 5 6

Рубрики: Delphi, Winamp, Сделай сам |

Комментарии (14)

  1. IVAn sCm пишет:

    kRUTO!!! aftoru respeKt!!! DAVNO ISkaL TAKoE

  2. Dosha пишет:

    Спасибо за модули. В выходные попробую разобраться подробнее

  3. Фанат пишет:

    Отлично написано

  4. Иван пишет:

    Статья очень пригодилась, все просто и понятно.

    Огромное спасибо автору!:)

  5. Zveryoga пишет:

    Люблю когда по сути, мне понравилось.

  6. hitzinger пишет:

    Благодарю, очень полезная вещь

  7. help пишет:

    У меня коряво получается, но все равно спасибо.

  8. Коля пишет:

    У меня не вышло(((

  9. Гриша пишет:

    Спасибо попробую.

  10. Виталий пишет:

    Спасибо большое!!! Одно но : в 2 плагине в коде нужно заменить “*********
    keybd_event(c, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0);
    //key release
    *****”
    на
    “*********
    keybd_event(c, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0) else
    //key release
    *****”. Иначе просто все лампочки всегда выключаються.

  11. Иван Ширко пишет:

    >>Виталий

    Спасибо!

  12. dfm пишет:

    хм…интересно..спасибо за идею, давненько хотел что-либо подобное попробовать…

  13. uniforgot пишет:

    Отлично я нашла что искала:)

  14. dpath пишет:

    Класс, получилось :) спасибо.

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.