mirror of
https://github.com/romanz/amodem.git
synced 2026-04-01 00:36:50 +08:00
recv: add audio dumping option (for debugging)
This commit is contained in:
@@ -124,13 +124,16 @@ def main():
|
||||
'-o', '--output', help='output file (use "-" for stdout).')
|
||||
receiver.add_argument(
|
||||
'-c', '--calibrate', default=False, action='store_true')
|
||||
receiver.add_argument(
|
||||
'-d', '--dump', type=FileType('wb'),
|
||||
help='Filename to save recorded audio')
|
||||
receiver.add_argument(
|
||||
'--plot', action='store_true', default=False,
|
||||
help='plot results using pylab module')
|
||||
receiver.set_defaults(
|
||||
main=lambda config, args: recv.main(
|
||||
config, src=args.src, dst=wrap(Decompressor, args.dst, args.zip),
|
||||
pylab=args.pylab
|
||||
pylab=args.pylab, dump_audio=args.dump
|
||||
),
|
||||
calib=lambda config, args: calib.recv(
|
||||
config, src=args.src, verbose=args.verbose
|
||||
|
||||
@@ -214,7 +214,20 @@ class Receiver(object):
|
||||
self.plt.title(title)
|
||||
|
||||
|
||||
def main(config, src, dst, pylab=None):
|
||||
class Dumper(object):
|
||||
def __init__(self, src, dst):
|
||||
self.src = src
|
||||
self.dst = dst
|
||||
|
||||
def read(self, size):
|
||||
data = self.src.read(size)
|
||||
self.dst.write(data)
|
||||
return data
|
||||
|
||||
|
||||
def main(config, src, dst, dump_audio=None, pylab=None):
|
||||
if dump_audio:
|
||||
src = Dumper(src, dump_audio)
|
||||
reader = stream.Reader(src, data_type=common.loads)
|
||||
signal = itertools.chain.from_iterable(reader)
|
||||
|
||||
|
||||
@@ -44,8 +44,10 @@ def run(size, chan=None, df=0, success=True):
|
||||
rx_audio = BytesIO(data)
|
||||
|
||||
rx_data = BytesIO()
|
||||
result = recv.main(config=config, src=rx_audio, dst=rx_data)
|
||||
d = BytesIO()
|
||||
result = recv.main(config=config, src=rx_audio, dst=rx_data, dump_audio=d)
|
||||
rx_data = rx_data.getvalue()
|
||||
assert data.startswith(d.getvalue())
|
||||
|
||||
assert result == success
|
||||
if success:
|
||||
|
||||
Reference in New Issue
Block a user