refactor
This commit is contained in:
@ -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(),
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
Reference in New Issue
Block a user