mirror of
https://github.com/JesseTG/melonds-ds.git
synced 2025-02-25 16:40:50 +00:00
Write a test for mic support
This commit is contained in:
parent
e5b2aaf51c
commit
baa51f3e31
@ -316,9 +316,10 @@ add_python_test(
|
||||
|
||||
add_python_test(
|
||||
NAME "Core accepts microphone input"
|
||||
TEST_MODULE ""
|
||||
DISABLED
|
||||
) # TODO: Implement this test
|
||||
TEST_MODULE basics.core_accepts_microphone_input
|
||||
CONTENT "${MICRECORD_NDS}"
|
||||
CORE_OPTION melonds_boot_mode=direct
|
||||
)
|
||||
|
||||
add_python_test(
|
||||
NAME "Core queries device power state"
|
||||
|
49
test/python/basics/core_accepts_microphone_input.py
Normal file
49
test/python/basics/core_accepts_microphone_input.py
Normal file
@ -0,0 +1,49 @@
|
||||
from collections.abc import Iterator
|
||||
from itertools import count, repeat
|
||||
from math import sin
|
||||
from typing import cast
|
||||
|
||||
from libretro import Session
|
||||
from libretro.api import ArrayAudioState
|
||||
from libretro.api.input import JoypadState
|
||||
|
||||
import prelude
|
||||
from libretro.api.video import SoftwareVideoState
|
||||
|
||||
|
||||
def generate_input() -> Iterator[int]:
|
||||
yield from repeat(None, 6)
|
||||
|
||||
yield JoypadState(a=True)
|
||||
|
||||
yield from repeat(None, 90)
|
||||
|
||||
yield JoypadState(a=True)
|
||||
|
||||
yield from repeat(None)
|
||||
|
||||
|
||||
def generate_sine_wave() -> Iterator[int]:
|
||||
for i in count():
|
||||
yield int(sin(i * 440) * 30000)
|
||||
|
||||
|
||||
kwargs = {
|
||||
"input_state": generate_input,
|
||||
"mic_interface": generate_sine_wave,
|
||||
"options": {
|
||||
"melonds_mic_input_active": "always"
|
||||
}
|
||||
}
|
||||
|
||||
session: Session
|
||||
with prelude.session(**kwargs) as session:
|
||||
audio = cast(ArrayAudioState, session.audio)
|
||||
video = cast(SoftwareVideoState, session.video)
|
||||
for i in range(300):
|
||||
session.core.run()
|
||||
|
||||
assert audio.buffer is not None
|
||||
assert len(audio.buffer) > 0
|
||||
assert any(b != 0 for b in audio.buffer)
|
||||
# Assert that we're not just being given silence
|
Loading…
x
Reference in New Issue
Block a user