feat(dmr): decode independent receiver slices

This commit is contained in:
2026-07-14 20:08:49 +03:00
parent 9e2f8c7743
commit bac0b7612e
5 changed files with 208 additions and 17 deletions
+13 -1
View File
@@ -50,6 +50,7 @@ var
GMbeDestroy: TMbeDestroy = nil;
GMbeReset: TMbeReset = nil;
GMbeDecode: TMbeDecode = nil;
GLoadRefs: Integer = 0;
function Symbol(const Name: PChar): Pointer;
begin
@@ -73,7 +74,11 @@ var
i: Integer;
LocalName, BuildName: string;
begin
if GLib <> dynlibs.NilHandle then Exit(True);
if GLib <> dynlibs.NilHandle then
begin
Inc(GLoadRefs);
Exit(True);
end;
GLastError := '';
for i := Low(Names) to High(Names) do
begin
@@ -115,11 +120,18 @@ begin
DMRUnload;
Exit(False);
end;
GLoadRefs := 1;
Result := True;
end;
procedure DMRUnload;
begin
if GLoadRefs > 1 then
begin
Dec(GLoadRefs);
Exit;
end;
GLoadRefs := 0;
GAbiVersion := nil;
GMbeCreate := nil;
GMbeDestroy := nil;