audio: use ctypes to access PortAudio API directly

This commit is contained in:
Roman Zeyde
2015-01-06 12:41:59 +02:00
parent b3510c18b3
commit 75dd7d28c9
2 changed files with 122 additions and 47 deletions

View File

@@ -55,7 +55,8 @@ def main():
'Fs={3:.1f} kHz')
description = fmt.format(config.modem_bps / 1e3, len(config.symbols),
config.Nfreq, config.Fs / 1e3)
interface = audio.Interface(config)
interface = audio.Library('libportaudio.so')
p = argparse.ArgumentParser(description=description)
subparsers = p.add_subparsers()
@@ -102,32 +103,35 @@ def main():
if argcomplete:
argcomplete.autocomplete(p)
args = p.parse_args()
if args.verbose == 0:
level, format = 'INFO', '%(message)s'
elif args.verbose == 1:
level, format = 'DEBUG', '%(message)s'
elif args.verbose >= 2:
level, format = ('DEBUG', '%(asctime)s %(levelname)-10s '
'%(message)-100s '
'%(filename)s:%(lineno)d')
if args.quiet:
level, format = 'WARNING', '%(message)s'
logging.basicConfig(level=level, format=format)
# Parsing and execution
log.debug(description)
if getattr(args, 'plot', False):
import pylab
else:
pylab = None
with interface:
args = p.parse_args()
if args.verbose == 0:
level, format = 'INFO', '%(message)s'
elif args.verbose == 1:
level, format = 'DEBUG', '%(message)s'
elif args.verbose >= 2:
level, format = ('DEBUG', '%(asctime)s %(levelname)-10s '
'%(message)-100s '
'%(filename)s:%(lineno)d')
if args.quiet:
level, format = 'WARNING', '%(message)s'
logging.basicConfig(level=level, format=format)
src = args.input_type(args.input)
dst = args.output_type(args.output)
if args.calibrate:
args.calibration(config=config, src=src, dst=dst, verbose=args.verbose)
else:
return args.main(config=config, src=src, dst=dst, pylab=pylab)
# Parsing and execution
log.debug(description)
if getattr(args, 'plot', False):
import pylab
else:
pylab = None
src = args.input_type(args.input)
dst = args.output_type(args.output)
if args.calibrate:
args.calibration(config=config, src=src, dst=dst,
verbose=args.verbose)
else:
return args.main(config=config, src=src, dst=dst, pylab=pylab)
if __name__ == '__main__':