This commit is contained in:
Jakob Ketterl
2021-08-27 17:34:48 +02:00
parent 42b315ef86
commit 4c1777dc19
4 changed files with 29 additions and 17 deletions

View File

@ -1,4 +1,4 @@
from csdr.chain.demodulator import BaseDemodulatorChain
from csdr.chain.demodulator import BaseDemodulatorChain, FixedIfSampleRateChain, HdAudio
from pycsdr.modules import AmDemod, DcBlock, FmDemod, Limit, NfmDeemphasis, Agc, WfmDeemphasis, FractionalDecimator, RealPart
from pycsdr.types import Format, AgcProfile
@ -31,7 +31,7 @@ class NFm(BaseDemodulatorChain):
super().__init__(workers)
class WFm(BaseDemodulatorChain):
class WFm(BaseDemodulatorChain, FixedIfSampleRateChain, HdAudio):
def __init__(self, sampleRate: int, tau: float):
workers = [
FmDemod(),

View File

@ -1,12 +1,27 @@
from csdr.chain import Chain
from abc import ABC, abstractmethod
class BaseDemodulatorChain(Chain):
def getFixedIfSampleRate(self):
return None
def getFixedAudioRate(self):
return None
def supportsSquelch(self):
return True
class FixedAudioRateChain(ABC):
@abstractmethod
def getFixedAudioRate(self):
pass
class FixedIfSampleRateChain(ABC):
@abstractmethod
def getFixedIfSampleRate(self):
return self.fixedIfSampleRate
# marker interface
class HdAudio:
pass

View File

@ -1,11 +1,11 @@
from csdr.chain.demodulator import BaseDemodulatorChain
from csdr.chain.demodulator import BaseDemodulatorChain, FixedAudioRateChain, FixedIfSampleRateChain
from pycsdr.modules import FmDemod, Agc, Writer
from pycsdr.types import Format
from digiham.modules import DstarDecoder, DcBlock, FskDemodulator, GfskDemodulator, DigitalVoiceFilter, MbeSynthesizer, NarrowRrcFilter, NxdnDecoder, DmrDecoder, WideRrcFilter, YsfDecoder
from digiham.ambe import Modes
class DigihamChain(BaseDemodulatorChain):
class DigihamChain(BaseDemodulatorChain, FixedIfSampleRateChain, FixedAudioRateChain):
def __init__(self, fskDemodulator, decoder, mbeMode, filter=None, codecserver: str = ""):
self.decoder = decoder
if codecserver is None: