@@ -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
19531989class _InputOutputPair (object ):
19541990 """Parameter pairs for device, channels, dtype and latency."""
0 commit comments