mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-29 23:29:41 +02:00
81 lines
2.1 KiB
Python
81 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""Tests the audacity pipe.
|
|
|
|
Keep pipe_test.py short!!
|
|
You can make more complicated longer tests to test other functionality
|
|
or to generate screenshots etc in other scripts.
|
|
|
|
Make sure Audacity is running first and that mod-script-pipe is enabled
|
|
before running this script.
|
|
|
|
Requires Python 2.7 or later. Python 3 is strongly recommended.
|
|
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
|
|
if sys.platform == 'win32':
|
|
print("pipe-test.py, running on windows")
|
|
TONAME = '\\\\.\\pipe\\ToSrvPipe'
|
|
FROMNAME = '\\\\.\\pipe\\FromSrvPipe'
|
|
EOL = '\r\n\0'
|
|
else:
|
|
print("pipe-test.py, running on linux or mac")
|
|
TONAME = '/tmp/audacity_script_pipe.to.' + str(os.getuid())
|
|
FROMNAME = '/tmp/audacity_script_pipe.from.' + str(os.getuid())
|
|
EOL = '\n'
|
|
|
|
print("Write to \"" + TONAME +"\"")
|
|
if not os.path.exists(TONAME):
|
|
print(" ..does not exist. Ensure Audacity is running with mod-script-pipe.")
|
|
sys.exit()
|
|
|
|
print("Read from \"" + FROMNAME +"\"")
|
|
if not os.path.exists(FROMNAME):
|
|
print(" ..does not exist. Ensure Audacity is running with mod-script-pipe.")
|
|
sys.exit()
|
|
|
|
print("-- Both pipes exist. Good.")
|
|
|
|
TOFILE = open(TONAME, 'w')
|
|
print("-- File to write to has been opened")
|
|
FROMFILE = open(FROMNAME, 'rt')
|
|
print("-- File to read from has now been opened too\r\n")
|
|
|
|
|
|
def send_command(command):
|
|
"""Send a single command."""
|
|
print("Send: >>> \n"+command)
|
|
TOFILE.write(command + EOL)
|
|
TOFILE.flush()
|
|
|
|
def get_response():
|
|
"""Return the command response."""
|
|
result = ''
|
|
line = ''
|
|
while True:
|
|
result += line
|
|
line = FROMFILE.readline()
|
|
if line == '\n' and len(result) > 0:
|
|
break
|
|
return result
|
|
|
|
def do_command(command):
|
|
"""Send one command, and return the response."""
|
|
send_command(command)
|
|
response = get_response()
|
|
print("Rcvd: <<< \n" + response)
|
|
return response
|
|
|
|
def quick_test():
|
|
"""Example list of commands."""
|
|
do_command('Help: Command=Help')
|
|
do_command('Help: Command="GetInfo"')
|
|
#do_command('SetPreference: Name=GUI/Theme Value=classic Reload=1')
|
|
|
|
quick_test()
|