1
1
#!/usr/bin/env python3
2
2
"""Query or change the JACK transport state."""
3
-
4
3
import argparse
5
4
import string
6
- import sys
7
5
8
6
import jack
9
7
10
8
11
- STATE_LABELS = {
12
- jack .ROLLING : "rolling" ,
13
- jack .STOPPED : "stopped" ,
14
- jack .STARTING : "starting" ,
15
- jack .NETSTARTING : "waiting for network sync" ,
16
- }
17
-
18
-
19
9
def main (args = None ):
20
10
ap = argparse .ArgumentParser (description = __doc__ )
21
11
ap .add_argument (
22
12
'-c' , '--client-name' ,
23
13
metavar = 'NAME' ,
24
14
default = 'transporter' ,
25
- help = " JACK client name (default: %(default)s)" )
15
+ help = ' JACK client name (default: %(default)s)' )
26
16
ap .add_argument (
27
17
'command' ,
28
18
nargs = '?' ,
29
19
default = 'status' ,
30
20
choices = ['query' , 'rewind' , 'start' , 'status' , 'stop' , 'toggle' ],
31
- help = "Transport command" )
21
+ help = 'transport command' )
32
22
33
23
args = ap .parse_args (args )
34
24
35
25
try :
36
26
client = jack .Client (args .client_name )
37
27
except jack .JackError as exc :
38
- return " Could not create JACK client: {}" .format (exc )
28
+ ap . exit ( ' Could not create JACK client: {}' .format (exc ) )
39
29
40
30
state = client .transport_state
41
31
result = 0
42
32
43
33
if args .command == 'status' :
44
- print (" JACK transport is {}." .format (STATE_LABELS [ state ] ))
34
+ print (' JACK transport state is {}.' .format (state ))
45
35
result = 1 if state == jack .STOPPED else 0
46
36
elif args .command == 'query' :
47
- print (" State: {}" .format (STATE_LABELS [ state ] ))
37
+ print (' State: {}' .format (state ))
48
38
info = client .transport_query ()[1 ]
49
39
50
40
for field in sorted (info ):
51
41
label = string .capwords (field .replace ('_' , ' ' ))
52
- print (" {}: {}" .format (label , info [field ]))
42
+ print (' {}: {}' .format (label , info [field ]))
53
43
54
44
result = 1 if state == jack .STOPPED else 0
55
45
elif args .command == 'start' :
@@ -67,8 +57,8 @@ def main(args=None):
67
57
client .transport_frame = 0
68
58
69
59
client .close ()
70
- return result
60
+ ap . exit ( result )
71
61
72
62
73
63
if __name__ == '__main__' :
74
- sys . exit ( main () or 0 )
64
+ main ()
0 commit comments