Показать сообщение отдельно
  #7  
Старый 02.12.2006, 12:41
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Я делал так (выдержка из исходника):
Код:
const
  MAX_EQ = 11;
  eq: array[1..MAX_EQ] of integer = ( 80, 260, 440, 620, 800, 980, 1160, 1340, 1520, 1700, 1800 );

type
  PMyArray = ^TMyArray;
  TMyArray = array[1..MAX_EQ] of integer;

type
  TBassPlayer = class
  private
    Stream: HSTREAM;  // Указатель на текущий поток
    p: BASS_FXPARAMEQ;
    fx: PMyArray;
    ...

constructor TBassPlayer.Create;
begin
   BASS_Init( -1, 44100, 32, Handle, nil );
   BASS_Start;
end;

(* Загрузка файла *)
procedure TBassPlayer.LoadFile(f: string);
var
  i: byte;
begin
   Stream := BASS_StreamCreateFile( false, PChar( f ), 0, 0, 0 );
   New( fx );
   for i := 1 to MAX_EQ do
   begin
      fx^[i] := BASS_ChannelSetFX( Stream, BASS_FX_PARAMEQ, 1 );
      p.fCenter := eq[i];
      p.fGain := 0;
      p.fBandwidth := 36;
      BASS_FXSetParameters( fx^[i], @p );
   end;
end;

procedure TBassPlayer.SetEq(Num: byte; Val: integer);
begin
    // Val должен быть в пределах от -15 до 15
   if ( Num < 1 ) or ( Num > MAX_EQ ) then Exit;

   BASS_FXGetParameters( fx^[Num], @p );
   p.fgain := Val;
   BASS_FXSetParameters( fx^[Num], @p );
end;
Примерно так.

P.S.
Для версии библиотеки 2.3.
Ответить с цитированием