[package]
title = "Audio Oscilloscope"
category = "Audio"
feature = true
version = "0.1.0"
description = "Displays the waveform of Kit's audio output."
authors = ["NVIDIA"]
keywords = ["audio", "debug"]

[dependencies]
"carb.audio" = {}
"omni.usd.libs" = {}
"omni.usd" = {}
"omni.ui" = {}
"omni.usd.schema.semantics" = {}
"omni.usd.schema.audio" = {}
"omni.kit.menu.utils" = {}

[[python.module]]
name = "omni.kit.window.audio.oscilloscope"

[[python.module]]
name = "omni.kit.audio.oscilloscope"

[[test]]
# Just go with default timeout unless you're testing locally.
# What takes 3 seconds locally could take 3 minutes in CI.
#timeout = 30

args = [
    # Use the null device backend so we have a consistent backend channel count,
    # since that'll affect the generated image.
    "--/audio/deviceBackend=null",

    # This is needed or `omni.kit.ui_test.get_menubar().find_menu("Window")`
    # will return `None`.
    "--/app/menu/legacy_mode=false",

    # omni.kit.property.audio causes kit to add a "do you want to save your changes"
    # dialogue when kit is exiting unless this option is specified.
    "--/app/file/ignoreUnsavedOnExit=true",

    # disable DPI scaling & use no-window
    "--/app/window/dpiScaleOverride=1.0",
    "--/app/window/scaleToMonitor=false",
    "--no-window"
]

dependencies = [
    "omni.kit.property.audio", # needed for the (manual) USD test
    "omni.kit.mainwindow",     # needed for omni.kit.ui_test
    "omni.kit.ui_test",
]

stdoutFailPatterns.exclude = [
    "*" # I don't want these but OmniUiTest forces me to use them, so ignore all!
]
