⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamic_bass.pas

📁 bass player system api c++
💻 PAS
📖 第 1 页 / 共 4 页
字号:
@BASS_GetVolume:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_GetVolume'));

@BASS_PluginLoad:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_PluginLoad'));
@BASS_PluginFree:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_PluginFree'));
@BASS_PluginGetInfo:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_PluginGetInfo'));

@BASS_Set3DFactors:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_Set3DFactors'));
@BASS_Get3DFactors:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_Get3DFactors'));
@BASS_Set3DPosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_Set3DPosition'));
@BASS_Get3DPosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_Get3DPosition'));
@BASS_Apply3D:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_Apply3D'));
@BASS_SetEAXParameters:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SetEAXParameters'));
@BASS_GetEAXParameters:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_GetEAXParameters'));

@BASS_MusicLoad:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_MusicLoad'));
@BASS_MusicFree:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_MusicFree'));

@BASS_SampleLoad:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleLoad'));
@BASS_SampleCreate:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleCreate'));
@BASS_SampleFree:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleFree'));
@BASS_SampleSetData:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleSetData'));
@BASS_SampleGetData:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleGetData'));
@BASS_SampleGetInfo:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleGetInfo'));
@BASS_SampleSetInfo:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleSetInfo'));
@BASS_SampleGetChannel:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleGetChannel'));
@BASS_SampleGetChannels:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleGetChannels'));
@BASS_SampleStop:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_SampleStop'));

@BASS_StreamCreate:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamCreate'));
@BASS_StreamCreateFile:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamCreateFile'));
@BASS_StreamCreateURL:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamCreateURL'));
@BASS_StreamCreateFileUser:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamCreateFileUser'));
@BASS_StreamFree:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamFree'));
@BASS_StreamGetFilePosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamGetFilePosition'));
@BASS_StreamPutData:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamPutData'));
@BASS_StreamPutFileData:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_StreamPutFileData'));

@BASS_RecordGetDeviceInfo:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordGetDeviceInfo'));
@BASS_RecordInit:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordInit'));
@BASS_RecordSetDevice:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordSetDevice'));
@BASS_RecordGetDevice:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordGetDevice'));
@BASS_RecordFree:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordFree'));
@BASS_RecordGetInfo:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordGetInfo'));
@BASS_RecordGetInputName:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordGetInputName'));
@BASS_RecordSetInput:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordSetInput'));
@BASS_RecordGetInput:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordGetInput'));
@BASS_RecordStart:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_RecordStart'));

@BASS_ChannelBytes2Seconds:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelBytes2Seconds'));
@BASS_ChannelSeconds2Bytes:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSeconds2Bytes'));
@BASS_ChannelGetDevice:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetDevice'));
@BASS_ChannelSetDevice:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetDevice'));
@BASS_ChannelIsActive:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelIsActive'));
@BASS_ChannelGetInfo:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetInfo'));
@BASS_ChannelGetTags:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetTags'));
@BASS_ChannelFlags:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelFlags'));
@BASS_ChannelUpdate:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelUpdate'));
@BASS_ChannelLock:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelLock'));
@BASS_ChannelPlay:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelPlay'));
@BASS_ChannelStop:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelStop'));
@BASS_ChannelPause:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelPause'));
@BASS_ChannelSetAttribute:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetAttribute'));
@BASS_ChannelGetAttribute:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetAttribute'));
@BASS_ChannelSlideAttribute:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSlideAttribute'));
@BASS_ChannelIsSliding:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelIsSliding'));
@BASS_ChannelSet3DAttributes:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSet3DAttributes'));
@BASS_ChannelGet3DAttributes:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGet3DAttributes'));
@BASS_ChannelSet3DPosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSet3DPosition'));
@BASS_ChannelGet3DPosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGet3DPosition'));
@BASS_ChannelGetLength:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetLength'));
@BASS_ChannelSetPosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetPosition'));
@BASS_ChannelGetPosition:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetPosition'));
@BASS_ChannelGetLevel:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetLevel'));
@BASS_ChannelGetData:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelGetData'));
@BASS_ChannelSetSync:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetSync'));
@BASS_ChannelRemoveSync:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelRemoveSync'));
@BASS_ChannelSetDSP:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetDSP'));
@BASS_ChannelRemoveDSP:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelRemoveDSP'));
@BASS_ChannelSetLink:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetLink'));
@BASS_ChannelRemoveLink:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelRemoveLink'));
@BASS_ChannelSetFX:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelSetFX'));
@BASS_ChannelRemoveFX:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_ChannelRemoveFX'));

@BASS_FXSetParameters:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_FXSetParameters'));
@BASS_FXGetParameters:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_FXGetParameters'));
@BASS_FXReset:=GetProcAddress(BASS_Handle,PAnsiChar('BASS_FXReset'));

      {now check if everything is linked in correctly}
      if
(@BASS_SetConfig=nil)  or
(@BASS_GetConfig=nil)  or
(@BASS_SetConfigPtr=nil)  or
(@BASS_GetConfigPtr=nil)  or
(@BASS_GetVersion=nil)  or
(@BASS_ErrorGetCode=nil)  or
(@BASS_GetDeviceInfo=nil)  or
(@BASS_Init=nil)  or
(@BASS_SetDevice=nil)  or
(@BASS_GetDevice=nil)  or
(@BASS_Free=nil)  or
(@BASS_GetDSoundObject=nil)  or
(@BASS_GetInfo=nil)  or
(@BASS_Update=nil)  or
(@BASS_GetCPU=nil)  or
(@BASS_Start=nil)  or
(@BASS_Stop=nil)  or
(@BASS_Pause=nil)  or
(@BASS_SetVolume=nil)  or
(@BASS_GetVolume=nil)  or

(@BASS_PluginLoad=nil) or
(@BASS_PluginFree=nil) or
(@BASS_PluginGetInfo=nil) or

(@BASS_Set3DFactors=nil)  or
(@BASS_Get3DFactors=nil)  or
(@BASS_Set3DPosition=nil)  or
(@BASS_Get3DPosition=nil)  or
(@BASS_Apply3D=nil)  or
(@BASS_SetEAXParameters=nil)  or
(@BASS_GetEAXParameters=nil)  or

(@BASS_MusicLoad=nil)  or
(@BASS_MusicFree=nil)  or

(@BASS_SampleLoad=nil)  or
(@BASS_SampleCreate=nil)  or
(@BASS_SampleFree=nil)  or
(@BASS_SampleSetData=nil)  or
(@BASS_SampleGetData=nil)  or
(@BASS_SampleGetInfo=nil)  or
(@BASS_SampleSetInfo=nil)  or
(@BASS_SampleGetChannel=nil)  or
(@BASS_SampleGetChannels=nil)  or
(@BASS_SampleStop=nil)  or

(@BASS_StreamCreate=nil)  or
(@BASS_StreamCreateFile=nil)  or
(@BASS_StreamCreateURL=nil)  or
(@BASS_StreamCreateFileUser=nil)  or
(@BASS_StreamFree=nil)  or
(@BASS_StreamGetFilePosition=nil)  or
(@BASS_StreamPutData=nil)  or
(@BASS_StreamPutFileData=nil)  or

(@BASS_RecordGetDeviceInfo=nil)  or
(@BASS_RecordInit=nil)  or
(@BASS_RecordSetDevice=nil)  or
(@BASS_RecordGetDevice=nil)  or
(@BASS_RecordFree=nil)  or
(@BASS_RecordGetInfo=nil)  or
(@BASS_RecordGetInputName=nil)  or
(@BASS_RecordSetInput=nil)  or
(@BASS_RecordGetInput=nil)  or
(@BASS_RecordStart=nil)  or

(@BASS_ChannelBytes2Seconds=nil)  or
(@BASS_ChannelSeconds2Bytes=nil)  or
(@BASS_ChannelGetDevice=nil)  or
(@BASS_ChannelSetDevice=nil)  or
(@BASS_ChannelIsActive=nil)  or
(@BASS_ChannelGetInfo=nil)  or
(@BASS_ChannelGetTags=nil)  or
(@BASS_ChannelFlags=nil)  or
(@BASS_ChannelUpdate=nil)  or
(@BASS_ChannelLock=nil)  or
(@BASS_ChannelPlay=nil)  or
(@BASS_ChannelStop=nil)  or
(@BASS_ChannelPause=nil)  or
(@BASS_ChannelSetAttribute=nil)  or
(@BASS_ChannelGetAttribute=nil)  or
(@BASS_ChannelSlideAttribute=nil)  or
(@BASS_ChannelIsSliding=nil)  or
(@BASS_ChannelSet3DAttributes=nil)  or
(@BASS_ChannelGet3DAttributes=nil)  or
(@BASS_ChannelSet3DPosition=nil)  or
(@BASS_ChannelGet3DPosition=nil)  or
(@BASS_ChannelGetLength=nil)  or
(@BASS_ChannelSetPosition=nil)  or
(@BASS_ChannelGetPosition=nil)  or
(@BASS_ChannelGetLevel=nil)  or
(@BASS_ChannelGetData=nil)  or
(@BASS_ChannelSetSync=nil)  or
(@BASS_ChannelRemoveSync=nil)  or
(@BASS_ChannelSetDSP=nil)  or
(@BASS_ChannelRemoveDSP=nil)  or
(@BASS_ChannelSetLink=nil)  or
(@BASS_ChannelRemoveLink=nil)  or
(@BASS_ChannelSetFX=nil)  or
(@BASS_ChannelRemoveFX=nil)  or

(@BASS_FXSetParameters=nil)  or
(@BASS_FXGetParameters=nil)  or
(@BASS_FXReset=nil)

         then
          begin {if something went wrong during linking, free library & reset handle}
            FreeLibrary(BASS_Handle);
           BASS_Handle:=0;
         end;
       end;
    result:=(BASS_Handle<>0);
  end;
end;

Procedure Unload_BASSDLL;
begin
  if BASS_Handle<>0 then
     begin
       BASS_Free; // make sure we release everything
       FreeLibrary(BASS_Handle);
     end;
  BASS_Handle:=0;
end;

function BASS_SPEAKER_N(n: DWORD): DWORD;
begin
  Result := n shl 24;
end;

function BASS_SetEAXPreset(env: Integer): BOOL;
begin
  case (env) of
    EAX_ENVIRONMENT_GENERIC:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_GENERIC, 0.5, 1.493, 0.5);
    EAX_ENVIRONMENT_PADDEDCELL:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PADDEDCELL, 0.25, 0.1, 0);
    EAX_ENVIRONMENT_ROOM:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ROOM, 0.417, 0.4, 0.666);
    EAX_ENVIRONMENT_BATHROOM:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_BATHROOM, 0.653, 1.499, 0.166);
    EAX_ENVIRONMENT_LIVINGROOM:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_LIVINGROOM, 0.208, 0.478, 0);
    EAX_ENVIRONMENT_STONEROOM:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONEROOM, 0.5, 2.309, 0.888);
    EAX_ENVIRONMENT_AUDITORIUM:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_AUDITORIUM, 0.403, 4.279, 0.5);
    EAX_ENVIRONMENT_CONCERTHALL:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CONCERTHALL, 0.5, 3.961, 0.5);
    EAX_ENVIRONMENT_CAVE:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CAVE, 0.5, 2.886, 1.304);
    EAX_ENVIRONMENT_ARENA:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ARENA, 0.361, 7.284, 0.332);
    EAX_ENVIRONMENT_HANGAR:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HANGAR, 0.5, 10.0, 0.3);
    EAX_ENVIRONMENT_CARPETEDHALLWAY:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CARPETEDHALLWAY, 0.153, 0.259, 2.0);
    EAX_ENVIRONMENT_HALLWAY:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_HALLWAY, 0.361, 1.493, 0);
    EAX_ENVIRONMENT_STONECORRIDOR:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_STONECORRIDOR, 0.444, 2.697, 0.638);
    EAX_ENVIRONMENT_ALLEY:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_ALLEY, 0.25, 1.752, 0.776);
    EAX_ENVIRONMENT_FOREST:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_FOREST, 0.111, 3.145, 0.472);
    EAX_ENVIRONMENT_CITY:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_CITY, 0.111, 2.767, 0.224);
    EAX_ENVIRONMENT_MOUNTAINS:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_MOUNTAINS, 0.194, 7.841, 0.472);
    EAX_ENVIRONMENT_QUARRY:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_QUARRY, 1, 1.499, 0.5);
    EAX_ENVIRONMENT_PLAIN:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PLAIN, 0.097, 2.767, 0.224);
    EAX_ENVIRONMENT_PARKINGLOT:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PARKINGLOT, 0.208, 1.652, 1.5);
    EAX_ENVIRONMENT_SEWERPIPE:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_SEWERPIPE, 0.652, 2.886, 0.25);
    EAX_ENVIRONMENT_UNDERWATER:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_UNDERWATER, 1, 1.499, 0);
    EAX_ENVIRONMENT_DRUGGED:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DRUGGED, 0.875, 8.392, 1.388);
    EAX_ENVIRONMENT_DIZZY:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_DIZZY, 0.139, 17.234, 0.666);
    EAX_ENVIRONMENT_PSYCHOTIC:
      Result := BASS_SetEAXParameters(EAX_ENVIRONMENT_PSYCHOTIC, 0.486, 7.563, 0.806);
    else
      Result := FALSE;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -