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
+8 -2
View File
@@ -97,6 +97,7 @@ type
FWake: PRTLEvent;
FThread: TDMRDecoderThread;
FMbe: Pointer;
FBindingsLoaded: Boolean;
FRing: array[0..DMR_RING_SIZE - 1] of Single;
FReadPos, FWritePos: Integer;
FDropped: QWord;
@@ -272,7 +273,8 @@ begin
FStatusLock := TCriticalSection.Create;
FWake := RTLEventCreate;
FThread := TDMRDecoderThread.Create(Self);
if DMRLoad then FMbe := DMRMbeCreate(3);
FBindingsLoaded := DMRLoad;
if FBindingsLoaded then FMbe := DMRMbeCreate(3);
ResetDSP;
FThread.Start;
end;
@@ -288,7 +290,11 @@ begin
end;
DMRMbeDestroy(FMbe);
FMbe := nil;
DMRUnload;
if FBindingsLoaded then
begin
DMRUnload;
FBindingsLoaded := False;
end;
RTLEventDestroy(FWake);
FStatusLock.Free;
FDSPLock.Free;