Программирование на Delphi и не только

  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;

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