Skip to content

Commit 40e6380

Browse files
authored
Added setters to CallbackFlag's bits (#255)
1 parent 2b68a60 commit 40e6380

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

sounddevice.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1844,6 +1844,19 @@ class CallbackFlags(object):
18441844
>>> errors.input_overflow
18451845
True
18461846
1847+
The values may also be set and cleared by the user:
1848+
1849+
>>> import sounddevice as sd
1850+
>>> cf = sd.CallbackFlags()
1851+
>>> cf
1852+
<sounddevice.CallbackFlags: no flags set>
1853+
>>> cf.input_underflow = True
1854+
>>> cf
1855+
<sounddevice.CallbackFlags: input underflow>
1856+
>>> cf.input_underflow = False
1857+
>>> cf
1858+
<sounddevice.CallbackFlags: no flags set>
1859+
18471860
"""
18481861

18491862
__slots__ = '_flags'
@@ -1886,6 +1899,10 @@ def input_underflow(self):
18861899
"""
18871900
return self._hasflag(_lib.paInputUnderflow)
18881901

1902+
@input_underflow.setter
1903+
def input_underflow(self, value):
1904+
self._updateflag(_lib.paInputUnderflow, value)
1905+
18891906
@property
18901907
def input_overflow(self):
18911908
"""Input overflow.
@@ -1903,6 +1920,10 @@ def input_overflow(self):
19031920
"""
19041921
return self._hasflag(_lib.paInputOverflow)
19051922

1923+
@input_overflow.setter
1924+
def input_overflow(self, value):
1925+
self._updateflag(_lib.paInputOverflow, value)
1926+
19061927
@property
19071928
def output_underflow(self):
19081929
"""Output underflow.
@@ -1916,6 +1937,10 @@ def output_underflow(self):
19161937
"""
19171938
return self._hasflag(_lib.paOutputUnderflow)
19181939

1940+
@output_underflow.setter
1941+
def output_underflow(self, value):
1942+
self._updateflag(_lib.paOutputUnderflow, value)
1943+
19191944
@property
19201945
def output_overflow(self):
19211946
"""Output overflow.
@@ -1930,6 +1955,10 @@ def output_overflow(self):
19301955
"""
19311956
return self._hasflag(_lib.paOutputOverflow)
19321957

1958+
@output_overflow.setter
1959+
def output_overflow(self, value):
1960+
self._updateflag(_lib.paOutputOverflow, value)
1961+
19331962
@property
19341963
def priming_output(self):
19351964
"""Priming output.
@@ -1949,6 +1978,13 @@ def _hasflag(self, flag):
19491978
"""Check a given flag."""
19501979
return bool(self._flags & flag)
19511980

1981+
def _updateflag(self, flag, value):
1982+
"""Set/clear a given flag."""
1983+
if value:
1984+
self._flags |= flag
1985+
else:
1986+
self._flags &= ~flag
1987+
19521988

19531989
class _InputOutputPair(object):
19541990
"""Parameter pairs for device, channels, dtype and latency."""

0 commit comments

Comments
 (0)