From 621bfb05407a169f6511f5b115d0622e5ec8bdd5 Mon Sep 17 00:00:00 2001 From: whiteshark0 Date: Wed, 10 Oct 2007 17:50:05 +0000 Subject: Added Hook and Service Class for new Plugin System to Trunc Added Core and CoreModule. That maybe will be used for new Core management. Core needs many code to write Some Info to Plugin SDK added git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@497 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Modis/SDK/Hooks.txt | 19 +++++++++++++++++ Modis/SDK/Plugin DLL Exports.txt | 0 Modis/SDK/Services.txt | 9 ++++++++ Modis/SDK/UPluginDefs.pas | 45 ++++++++++++++++++++++++++++++++++++---- 4 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 Modis/SDK/Hooks.txt create mode 100644 Modis/SDK/Plugin DLL Exports.txt create mode 100644 Modis/SDK/Services.txt (limited to 'Modis/SDK') diff --git a/Modis/SDK/Hooks.txt b/Modis/SDK/Hooks.txt new file mode 100644 index 00000000..32237694 --- /dev/null +++ b/Modis/SDK/Hooks.txt @@ -0,0 +1,19 @@ +Ultrastar Deluxe Hook List +----------------------------------- +Here you can find the Events the Core offers to you: + +-------------------- +Core: +-------------------- +Core/LoadingFinished <- Hook is called after all Modules and Plugins are loaded completely, before MainLoop +Core/MainLoop <- Hook is called once in MainLoop before Drawing +Core/LoadTextures <- Hook is called when Textures should be Loaded. This will be called in Ogl Thread. If Textures are Reloaded (e.g. on Display ReInit) LParam is non Zero. +Core/ExitQuery <- Hook is called if someone querys an exit. (e.g. X is pressed). Not called on ForcedExit. If Chain is breaked the exit will be aborted. +Core/Exit <- Hook is called before Module a. Plugin unload. +Core/NewDebugInfo <- Hook is called everytime there is Debug Info to Output(only if Debug Mode is enabled). wParam: Pchar(Message), lParam: PChar(Reportername) +Core/NewError <- Hook is called everytime an error is reported. wParam: Pchar(Message), lParam: PChar(Reportername) + +-------------------- +Display +-------------------- +Display/onScreenChange <-Hook is called when there is an attemp to change Screen. wParam is address to Screens Name(Null Terminated). If Chain is breaked Screenchange will be aborted. \ No newline at end of file diff --git a/Modis/SDK/Plugin DLL Exports.txt b/Modis/SDK/Plugin DLL Exports.txt new file mode 100644 index 00000000..e69de29b diff --git a/Modis/SDK/Services.txt b/Modis/SDK/Services.txt new file mode 100644 index 00000000..ae8f4097 --- /dev/null +++ b/Modis/SDK/Services.txt @@ -0,0 +1,9 @@ +Ultrastar Deluxe Hook List +----------------------------------- +Here you can find the Services the Core offers to you: + +-------------------- +Core: +-------------------- +Core/ReportError <- Calls the 'Core/NewError' Chain. wParam: Pchar(Message), lParam: PChar(Reportername) +Core/ReportDebug <- Calls the 'Core/NewDebugInfo' Chain. wParam: Pchar(Message), lParam: PChar(Reportername) \ No newline at end of file diff --git a/Modis/SDK/UPluginDefs.pas b/Modis/SDK/UPluginDefs.pas index 7428ae2e..42f888e4 100644 --- a/Modis/SDK/UPluginDefs.pas +++ b/Modis/SDK/UPluginDefs.pas @@ -13,6 +13,12 @@ type //---------------- // TUS_PluginInfo - Some Infos from Plugin to Core. // Send when Plugininfo procedure is Called + // --- + // Version Structure: + // First Byte: Head Revison + // Second Byte: Sub Revison + // Third Byte: Sub Revision 2 + // Fourth Byte: Letter (For Bug Fix releases. 0 or 'a' .. 'z') //---------------- PUS_PluginInfo = ^TUS_PluginInfo; TUS_PluginInfo = record @@ -30,7 +36,7 @@ type // TUS_Hook - Structure of the Hook Function // Return 0 if the Hook should be continue, // or a non zero Value, if the Hook should be Interuped - // In this Case the Caller of the Notivier gets the Return Value + // In this Case the Caller of the Notifier gets the Return Value // Return Value Should not be -1 //---------------- TUS_Hook = Function (wParam, lParam: DWord): integer; stdcall; @@ -54,7 +60,7 @@ type {Function Creates a new Hookable Event and Returns the Handle or 0 on Failure. (Name already exists)} CreateHookableEvent: Function (EventName: PChar): THandle; stdcall; - + {Function Destroys an Event and Unhooks all Hooks to this Event. 0 on success, not 0 on Failure} DestroyHookableEvent: Function (hEvent: THandle): integer; stdcall; @@ -80,7 +86,7 @@ type {Function Creates a new Service and Returns the Services Handle or 0 on Failure. (Name already exists)} CreateService: Function (ServiceName: PChar; ServiceProc: TUS_Service): THandle; stdcall; - + {Function Destroys a Service. 0 on success, not 0 on Failure} DestroyService: Function (hService: THandle): integer; stdcall; @@ -98,10 +104,41 @@ type // Some Default Constants //---------------- const - {Returned if Service is not Found from CallService} + {Returned if Service is not found from CallService} SERVICE_NOT_FOUND=$80000000; + CORE_SM_NOSYMBOL= 0; + CORE_SM_ERROR = 1; + CORE_SM_WARNING = 2; + CORE_SM_INFO = 3; + +//---------------- +// Some Functions to Handle Version DWords +//---------------- +Function MakeVersion(const HeadRevision, SubVersion, SubVersion2: Byte; Letter: Char): DWord; +Function VersiontoSting(const Version: DWord): String; + implementation +//-------------- +// MakeVersion - Converts 4 Values to a valid Version DWord +//-------------- +Function MakeVersion(const HeadRevision, SubVersion, SubVersion2: Byte; Letter: Char): DWord; +begin + If (letter < 'a') or (Letter > 'z') then + letter := chr(0); + + Result := (HeadRevision shl 24) or (SubVersion shl 16) or (SubVersion2 shl 8) or Ord(Letter); +end; + +//-------------- +// VersiontoString - Returns some beauty '1.0.2a' like String +//-------------- +Function VersiontoSting(const Version: DWord): String; +begin // to-do : Write VersiontoString without SysUtils depencies + //Result := InttoStr((ver and $FF000000) shr 24); + Result := '1.0.1 +end; + end. -- cgit v1.2.3