Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
e77ec175
Commit
e77ec175
authored
Nov 01, 1998
by
Barry Warsaw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rewrite, simplification of command line option parsing. Many GUI
fixes. Input sources are mutually exclusive.
parent
4a1cdd7f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
124 deletions
+50
-124
Tools/audiopy/audiopy
Tools/audiopy/audiopy
+50
-124
No files found.
Tools/audiopy/audiopy
View file @
e77ec175
...
@@ -61,14 +61,14 @@ class MainWindow:
...
@@ -61,14 +61,14 @@ class MainWindow:
#
#
# where does input come from?
# where does input come from?
frame
=
Frame
(
root
,
bd
=
1
,
relief
=
RAISED
)
frame
=
Frame
(
root
,
bd
=
1
,
relief
=
RAISED
)
frame
.
grid
(
row
=
0
,
column
=
0
)
frame
.
grid
(
row
=
0
,
column
=
0
,
sticky
=
'NSEW'
)
label
=
Label
(
frame
,
text
=
'Input From:'
)
label
=
Label
(
frame
,
text
=
'Input From:'
)
label
.
grid
(
row
=
0
,
column
=
0
,
sticky
=
E
)
label
.
grid
(
row
=
0
,
column
=
0
,
sticky
=
E
)
self
.
__
mic
var
=
IntVar
()
self
.
__
input
var
=
IntVar
()
btn
=
Check
button
(
frame
,
btn
=
Radio
button
(
frame
,
text
=
'Microphone'
,
text
=
'Microphone'
,
variable
=
self
.
__
mic
var
,
variable
=
self
.
__
input
var
,
on
value
=
MICROPHONE
,
value
=
MICROPHONE
,
command
=
self
.
__pushtodev
,
command
=
self
.
__pushtodev
,
underline
=
0
)
underline
=
0
)
btn
.
grid
(
row
=
0
,
column
=
1
,
sticky
=
W
)
btn
.
grid
(
row
=
0
,
column
=
1
,
sticky
=
W
)
...
@@ -78,11 +78,10 @@ class MainWindow:
...
@@ -78,11 +78,10 @@ class MainWindow:
btn
.
configure
(
state
=
DISABLED
)
btn
.
configure
(
state
=
DISABLED
)
buttons
.
append
(
btn
)
buttons
.
append
(
btn
)
##
##
self
.
__lineinvar
=
IntVar
()
btn
=
Radiobutton
(
frame
,
btn
=
Checkbutton
(
frame
,
text
=
'Line In'
,
text
=
'Line In'
,
variable
=
self
.
__
linein
var
,
variable
=
self
.
__
input
var
,
on
value
=
LINE_IN
,
value
=
LINE_IN
,
command
=
self
.
__pushtodev
,
command
=
self
.
__pushtodev
,
underline
=
5
)
underline
=
5
)
btn
.
grid
(
row
=
1
,
column
=
1
,
sticky
=
W
)
btn
.
grid
(
row
=
1
,
column
=
1
,
sticky
=
W
)
...
@@ -92,11 +91,10 @@ class MainWindow:
...
@@ -92,11 +91,10 @@ class MainWindow:
btn
.
configure
(
state
=
DISABLED
)
btn
.
configure
(
state
=
DISABLED
)
buttons
.
append
(
btn
)
buttons
.
append
(
btn
)
##
##
self
.
__cdvar
=
IntVar
()
btn
=
Radiobutton
(
frame
,
btn
=
Checkbutton
(
frame
,
text
=
'CD'
,
text
=
'CD'
,
variable
=
self
.
__
cd
var
,
variable
=
self
.
__
input
var
,
on
value
=
CD
,
value
=
CD
,
command
=
self
.
__pushtodev
,
command
=
self
.
__pushtodev
,
underline
=
0
)
underline
=
0
)
btn
.
grid
(
row
=
2
,
column
=
1
,
sticky
=
W
)
btn
.
grid
(
row
=
2
,
column
=
1
,
sticky
=
W
)
...
@@ -108,7 +106,7 @@ class MainWindow:
...
@@ -108,7 +106,7 @@ class MainWindow:
#
#
# where does output go to?
# where does output go to?
frame
=
Frame
(
root
,
bd
=
1
,
relief
=
RAISED
)
frame
=
Frame
(
root
,
bd
=
1
,
relief
=
RAISED
)
frame
.
grid
(
row
=
1
,
column
=
0
)
frame
.
grid
(
row
=
1
,
column
=
0
,
sticky
=
'NSEW'
)
label
=
Label
(
frame
,
text
=
'Output To:'
)
label
=
Label
(
frame
,
text
=
'Output To:'
)
label
.
grid
(
row
=
0
,
column
=
0
,
sticky
=
E
)
label
.
grid
(
row
=
0
,
column
=
0
,
sticky
=
E
)
self
.
__spkvar
=
IntVar
()
self
.
__spkvar
=
IntVar
()
...
@@ -181,10 +179,8 @@ class MainWindow:
...
@@ -181,10 +179,8 @@ class MainWindow:
except
AttributeError
:
except
AttributeError
:
pass
pass
else
:
else
:
import
struct
import
fcntl
import
fcntl
import
signal
import
signal
import
FCNTL
import
STROPTS
import
STROPTS
# set up the signal handler
# set up the signal handler
signal
.
signal
(
signal
.
SIGPOLL
,
self
.
__update
)
signal
.
signal
(
signal
.
SIGPOLL
,
self
.
__update
)
...
@@ -207,21 +203,19 @@ class MainWindow:
...
@@ -207,21 +203,19 @@ class MainWindow:
# underlying module does not support the SIGPOLL notification
# underlying module does not support the SIGPOLL notification
# interface.
# interface.
info
=
self
.
__devctl
.
getinfo
()
info
=
self
.
__devctl
.
getinfo
()
# input
self
.
__inputvar
.
set
(
info
.
i_port
)
# output
self
.
__spkvar
.
set
(
info
.
o_port
&
SPEAKER
)
self
.
__spkvar
.
set
(
info
.
o_port
&
SPEAKER
)
self
.
__headvar
.
set
(
info
.
o_port
&
HEADPHONE
)
self
.
__headvar
.
set
(
info
.
o_port
&
HEADPHONE
)
self
.
__linevar
.
set
(
info
.
o_port
&
LINE_OUT
)
self
.
__linevar
.
set
(
info
.
o_port
&
LINE_OUT
)
self
.
__micvar
.
set
(
info
.
i_port
&
MICROPHONE
)
self
.
__lineinvar
.
set
(
info
.
i_port
&
LINE_IN
)
self
.
__cdvar
.
set
(
info
.
i_port
&
CD
)
def
__pushtodev
(
self
,
event
=
None
):
def
__pushtodev
(
self
,
event
=
None
):
info
=
self
.
__devctl
.
getinfo
()
info
=
self
.
__devctl
.
getinfo
()
info
.
o_port
=
self
.
__spkvar
.
get
()
+
\
info
.
o_port
=
self
.
__spkvar
.
get
()
+
\
self
.
__headvar
.
get
()
+
\
self
.
__headvar
.
get
()
+
\
self
.
__linevar
.
get
()
self
.
__linevar
.
get
()
info
.
i_port
=
self
.
__micvar
.
get
()
+
\
info
.
i_port
=
self
.
__inputvar
.
get
()
self
.
__lineinvar
.
get
()
+
\
self
.
__cdvar
.
get
()
self
.
__devctl
.
setinfo
(
info
)
self
.
__devctl
.
setinfo
(
info
)
def
__getset
(
self
,
var
,
onvalue
):
def
__getset
(
self
,
var
,
onvalue
):
...
@@ -232,15 +226,13 @@ class MainWindow:
...
@@ -232,15 +226,13 @@ class MainWindow:
self
.
__pushtodev
()
self
.
__pushtodev
()
def
__mic
(
self
,
event
=
None
):
def
__mic
(
self
,
event
=
None
):
self
.
__getset
(
self
.
__
mic
var
,
MICROPHONE
)
self
.
__getset
(
self
.
__
input
var
,
MICROPHONE
)
def
__linein
(
self
,
event
=
None
):
def
__linein
(
self
,
event
=
None
):
self
.
__getset
(
self
.
__
linein
var
,
LINE_IN
)
self
.
__getset
(
self
.
__
input
var
,
LINE_IN
)
def
__cd
(
self
,
event
=
None
):
def
__cd
(
self
,
event
=
None
):
print
'pre:'
,
self
.
__cdvar
.
get
()
self
.
__getset
(
self
.
__inputvar
,
CD
)
self
.
__getset
(
self
.
__cdvar
,
CD
)
print
'post:'
,
self
.
__cdvar
.
get
()
def
__speaker
(
self
,
event
=
None
):
def
__speaker
(
self
,
event
=
None
):
self
.
__getset
(
self
.
__spkvar
,
SPEAKER
)
self
.
__getset
(
self
.
__spkvar
,
SPEAKER
)
...
@@ -286,113 +278,47 @@ def main():
...
@@ -286,113 +278,47 @@ def main():
(
'--speaker'
,
'-s'
,
1
,
SPEAKER
),
(
'--speaker'
,
'-s'
,
1
,
SPEAKER
),
(
'--lineout'
,
'-o'
,
1
,
LINE_OUT
),
(
'--lineout'
,
'-o'
,
1
,
LINE_OUT
),
)
)
values
=
[]
info
=
device
.
getinfo
()
info
=
device
.
getinfo
()
# first get the existing values
# first get the existing values
for
long
,
short
,
io
,
mask
in
options
:
if
io
==
0
:
flags
=
info
.
i_port
else
:
flags
=
info
.
o_port
values
.
append
(
flags
&
mask
)
sval
=
None
hval
=
None
lval
=
None
for
arg
in
sys
.
argv
[
1
:]:
for
arg
in
sys
.
argv
[
1
:]:
if
arg
in
(
'-h'
,
'--help'
):
if
arg
in
(
'-h'
,
'--help'
):
usage
(
code
=
0
)
usage
(
code
=
0
)
# SPEAKER
# does not return
elif
arg
in
(
'-s'
,
'--speaker'
):
for
long
,
short
,
io
,
mask
in
options
:
sval
=
-
1
if
arg
in
(
long
,
short
):
elif
arg
[:
3
]
==
'-s='
:
# toggle the option
try
:
if
io
==
0
:
sval
=
int
(
arg
[
3
:])
info
.
i_port
=
info
.
i_port
^
mask
except
ValueError
:
pass
if
sval
<>
0
and
sval
<>
1
:
usage
(
'Invalid option: '
+
arg
)
elif
arg
[:
10
]
==
'--speaker='
:
try
:
sval
=
int
(
arg
[
10
:])
except
ValueError
:
pass
if
sval
<>
0
and
sval
<>
1
:
usage
(
'Invalid option: '
+
arg
)
# HEADPHONES
elif
arg
in
(
'-p'
,
'--headphones'
):
hval
=
-
1
elif
arg
[:
3
]
==
'-p='
:
try
:
hval
=
int
(
arg
[
3
:])
except
ValueError
:
pass
if
hval
<>
0
and
hval
<>
1
:
usage
(
'Invalid option: '
+
arg
)
elif
arg
[:
13
]
==
'--headphones='
:
try
:
hval
=
int
(
arg
[
130
:])
except
ValueError
:
pass
if
hval
<>
0
and
hval
<>
1
:
usage
(
'Invalid option: '
+
arg
)
# LINEOUT
elif
arg
in
(
'-l'
,
'--lineout'
):
lval
=
-
1
elif
arg
[:
3
]
==
'-l='
:
try
:
lval
=
int
(
arg
[
3
:])
except
ValueError
:
pass
if
lval
<>
0
and
lval
<>
1
:
usage
(
'Invalid option: '
+
arg
)
elif
arg
[:
10
]
==
'--lineout='
:
try
:
lval
=
int
(
arg
[
10
:])
except
ValueError
:
pass
if
lval
<>
0
and
lval
<>
1
:
usage
(
'Invalid option: '
+
arg
)
else
:
else
:
usage
(
'Invalid option: '
+
arg
)
info
.
o_port
=
info
.
o_port
^
mask
# now set the values
break
val
=
None
try
:
try
:
devctl
=
sunaudiodev
.
open
(
'control'
)
if
arg
[:
len
(
long
)
+
1
]
==
long
+
'='
:
info
=
devctl
.
getinfo
()
val
=
int
(
arg
[
len
(
long
)
+
1
:])
if
sval
is
not
None
:
elif
arg
[:
len
(
short
)
+
1
]
==
short
+
'='
:
if
sval
==
-
1
:
val
=
int
(
arg
[
len
(
short
)
+
1
:])
if
info
.
o_port
&
SPEAKER
:
except
ValueError
:
sval
=
0
usage
(
msg
=
'Invalid option: '
+
arg
)
else
:
# does not return
sval
=
SPEAKER
if
val
==
0
:
else
:
if
io
==
0
:
sval
=
sval
*
SPEAKER
info
.
i_port
=
info
.
i_port
&
~
mask
else
:
sval
=
info
.
o_port
&
SPEAKER
if
hval
is
not
None
:
if
hval
==
-
1
:
if
info
.
o_port
&
HEADPHONE
:
hval
=
0
else
:
hval
=
HEADPHONE
else
:
hval
=
hval
*
HEADPHONE
else
:
hval
=
info
.
o_port
&
HEADPHONE
if
lval
is
not
None
:
if
lval
==
-
1
:
if
info
.
o_port
&
LINE_OUT
:
lval
=
0
else
:
else
:
lval
=
LINE_OUT
info
.
o_port
=
info
.
o_port
&
~
mask
break
elif
val
==
1
:
if
io
==
0
:
info
.
i_port
=
info
.
i_port
|
mask
else
:
else
:
lval
=
lval
*
LINE_OUT
info
.
o_port
=
info
.
o_port
|
mask
break
# else keep trying next option
else
:
else
:
lval
=
info
.
o_port
&
LINE_OUT
usage
(
msg
=
'Invalid option: '
+
arg
)
info
.
o_port
=
sval
+
hval
+
lval
# now set the values
devctl
.
setinfo
(
info
)
device
.
setinfo
(
info
)
finally
:
device
.
close
()
devctl
.
close
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment