MCPcopy Create free account
hub / github.com/ARM-software/AVH / wrCONTROL

Function wrCONTROL

interface/vstream/python/vsi_audio.py:347–390  ·  view source on GitHub ↗

Write to the CONTROL register (user register). Args: value: 32-bit value to write to CONTROL register.

(value)

Source from the content-addressed store, hash-verified

345
346
347def wrCONTROL(value):
348 """
349 Write to the CONTROL register (user register).
350
351 Args:
352 value: 32-bit value to write to CONTROL register.
353 """
354 global CONTROL, STATUS
355
356 if ((value ^ CONTROL) & CONTROL_MODE_Msk) != 0:
357 # MODE bit changed
358 if (value & CONTROL_MODE_Msk) != 0:
359 logger.info("wrCONTROL: CONTROL register updated: MODE bit set")
360 Audio.setMode(CONTROL_MODE_OUT)
361 else:
362 logger.info("wrCONTROL: CONTROL register updated: MODE bit cleared")
363 Audio.setMode(CONTROL_MODE_IN)
364
365 if ((value ^ CONTROL) & CONTROL_ENABLE_Msk) != 0:
366 # ENABLE bit changed
367 if (value & CONTROL_ENABLE_Msk) != 0:
368 logger.info("wrCONTROL: CONTROL register updated: ENABLE bit set")
369
370 # Configure stream
371 configuration_valid = Audio.configureStream(CHANNELS, SAMPLE_RATE, SAMPLE_BITS)
372 if configuration_valid:
373 # Configuration is valid, enable stream
374 server_active = Audio.enableStream()
375
376 if server_active:
377 STATUS |= STATUS_ACTIVE_Msk
378 STATUS &= ~STATUS_EOS_Msk
379 else:
380 logger.error("wrCONTROL: enable stream failed")
381 else:
382 logger.error("wrCONTROL: configure stream failed")
383 else:
384 logger.info("wrCONTROL: CONTROL register updated: ENABLE bit cleared")
385 Audio.disableStream()
386
387 STATUS &= ~STATUS_ACTIVE_Msk
388 logger.info("wrCONTROL: STATUS register updated: ACTIVE bit cleared")
389
390 CONTROL = value
391
392
393def rdSTATUS():

Callers 2

timerEventFunction · 0.70
wrRegsFunction · 0.70

Calls 4

setModeMethod · 0.45
configureStreamMethod · 0.45
enableStreamMethod · 0.45
disableStreamMethod · 0.45

Tested by

no test coverage detected