|
EWeiss
(Gast)
n/a Beiträge |
#1
Hi
Wie einige vielleicht hier wissen habe ich die BassVis DLL geschrieben Mein.. den User sein Problem ist nun das er für jede visualisierung WMP/WINAMP/SONIQUE jede menge code schreiben muss da es für jede Visualisierung eigene dem Type angepaßte API gibt. Das es für die Typen fast immer den gleichen aufruf gibt habe ich mir überlegt das ganze etwas zu kürzen. Die Idee ist die Api so auszulegen das mit einen Aufruf jeder Typ angesprochen werden kann. Bisher geht das so! BASS_WINAMP_IsFree BASS_WMP_IsFree usw... Wie würdet ihr vorgehen um den ganzen kram mit einem aufruf zu erledigen ohne zu viel am code zu ändern? Es geht mir also um die Neustukturierung. Die API sieht bisher so aus!
Delphi-Quellcode:
gruss Emil
//'--------------------------- BassVis API Module -----------------------------
//' BassVis API Module ADD-ON for Bass Audio Library //' Copyright © 2007 BrewIdeas@Emil Weiss, All Rights Reserved //' //' Author(s) of this module: Emil Weiss //' //' Code was written in and formatted for 10pt Courier New //'---------------------------------------------------------------------------- unit BassVis; interface uses Windows; type HVIS = DWORD; QWORD = Int64; const // BASS_SONIQUEVIS_CreateVis flags BASS_VIS_NOINIT = 1; // BASS_SONIQUEVIS_SetConfig flags BASS_SONIQUEVIS_CONFIG_FFTAMP = 1; BASS_SONIQUEVIS_CONFIG_FFT_SKIPCOUNT = 2; // Skip count range is from 0 to 3 (because of limited FFT request size) BASS_SONIQUEVIS_CONFIG_WAVE_SKIPCOUNT = 3; // Skip count range is from 0 to (...) try it out, whenever Bass crashes or does not return enough sample data BASS_SONIQUEVIS_CONFIG_SLOWFADE = 4; // Dim light colors to less than half, then slowly fade them out // BASS_WINAMP_SetConfig flags BASS_WINAMPVIS_CONFIG_FFTAMP = 1; // BASS_WMPVIS_SetConfig flags BASS_WMPVIS_CONFIG_FFTAMP = 1; // Bass FFT Amplification values BASS_VIS_FFTAMP_NORMAL = 1; BASS_VIS_FFTAMP_HIGH = 2; BASS_VIS_FFTAMP_HIGHER = 3; BASS_VIS_FFTAMP_HIGHEST = 4; // BASS_VIS_FindPlugin flags BASS_VIS_FIND_SONIQUE = 1; BASS_VIS_FIND_WINAMP = 2; BASS_VIS_FIND_RECURSIVE = 4; // return value type BASS_VIS_FIND_COMMALIST = 8; // Delphi's comma list style (item1,item2,"item 3",item4,"item with space") // the list ends with single NULL character function BASS_SONIQUEVIS_CreateVis(f, visconfig:PChar; flags, w, h: DWORD):HVIS; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_Render(handle: HVIS; channel: DWORD; canvas: HDC): Boolean; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_Render2(handle: HVIS; data, fft: Pointer; canvas: HDC; flags, pos: DWORD): Boolean; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_Free(handle: HVIS): Boolean; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_GetName(handle: HVIS): PChar; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_Clicked(handle: HVIS; x, y: DWORD): Boolean; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_Resize(handle: HVIS; nw, nh: DWORD): Boolean; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_GetConfig(option: DWORD): DWORD; stdcall; external 'bass_vis.dll'; function BASS_SONIQUEVIS_SetFullScreen(handle: HVIS; SourceHandle: DWORD; DestHandle: DWORD; SourceLeft: DWORD; SourceTop: DWORD; SourceWidth: DWORD; SourceHeight: DWORD; FullScreen: BOOL; FullScreeWidth: DWORD; FullScreenHeight: DWORD): boolean; stdcall; external 'bass_vis.dll'; procedure BASS_SONIQUEVIS_CreateFakeSoniqueWnd; stdcall; external 'bass_vis.dll'; procedure BASS_SONIQUEVIS_DestroyFakeSoniqueWnd; stdcall; external 'bass_vis.dll'; procedure BASS_SONIQUEVIS_SetConfig(option, Value: DWORD); stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_ExecuteVis(PluginName: PChar; moduleNum: integer; ownHdc: boolean; ownHdcW2: boolean): HVIS; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_RenderStream(StreamHandle: DWORD): boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_Free(handle: HVIS): Boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetModuleName(handle: HVIS; VismodNum: integer): PChar; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetName(handle: HVIS): PChar; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_Config(handle: HVIS; VismodNum: Integer): Boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_SetChanInfo(handle: HVIS; title: PChar; filename: PChar; pos, len: DWORD; PListPos: integer; PLLength: integer): Boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_SetChanMPEGInfo(handle: HVIS; SampleRate, BitRate: integer; Duration: DWORD; Channels: integer): boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetNumModules(PluginName: PChar):integer; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetHandle(PluginName: PChar): HVIS; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_StartRecord(SampleRate: DWORD; Channels: Integer): boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetAmpHwnd: DWORD; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetGenHwnd: DWORD; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_Init(AppHandle: DWORD; WinHandle: DWORD): boolean; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetConfig(option: DWORD): DWORD; stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_SetConfig(option, Value: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_SetGenHwndParent(hWindow : DWORD; hContainer: DWORD; x, y, w, h: Integer); stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_RecordFree; stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_Quit; stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_Play(handle: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_Pause(handle: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_Stop(handle: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WINAMPVIS_SetPlaylistPos(handle: DWORD; PlPos: Integer); stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_GetPlaylistPos(handle: DWORD):integer; stdcall; external 'bass_vis.dll'; function BASS_WINAMPVIS_IsPlaying(handle: DWORD):integer; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_Init(AppHandle: DWORD; WinHandle: DWORD): boolean; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_ExecuteVis(PlgListIndex: Integer; PresetIndex: Integer; VisWinhandle: DWORD; Left, Top, width, heigth: Integer): HVIS; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_GetPresetTitle(PlgListIndex: Integer; NumPresets: Integer): PChar; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_GetPresetCount(PlgListIndex: Integer):integer; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_GetPluginDescription(): PChar; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_Free(handle: HVIS): boolean; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_RenderStream(StreamHandle: DWORD): boolean; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_FindPlugins(): PChar; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_GetConfig(option: DWORD): DWORD; stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_SetFullScreen(SourceHandle: DWORD; DestHandle: DWORD; SourceLeft: DWORD; SourceTop: DWORD; SourceWidth: DWORD; SourceHeight: DWORD; FullScreen: BOOL; FullScreeWidth: DWORD; FullScreenHeight: DWORD): boolean; stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_Resize(SourceWidth: DWORD; SourceHeight: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_SetCurrentPreset(PresetIndex: Integer); stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_Config(hwndOwner: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_SetConfig(option, Value: DWORD); stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_SetMediaInfo(Channels: integer; SampleRate: integer; Title: string); stdcall; external 'bass_vis.dll'; function BASS_WMPVIS_StartRecord(SampleRate: DWORD; Channels: Integer): boolean; stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_RecordFree; stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_Play; stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_Pause; stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_Stop; stdcall; external 'bass_vis.dll'; procedure BASS_WMPVIS_Quit; stdcall; external 'bass_vis.dll'; function BASS_VIS_FindPlugins(vispath: PChar; flags: DWORD): PChar; stdcall; external 'bass_vis.dll'; implementation end. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |