Skip to content

Commit 48a4f96

Browse files
committed
Slight tweaks to the mic driver
1 parent af28cdc commit 48a4f96

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
1313
## [Unreleased]
1414

15+
### Added
16+
17+
- Added `MicrophoneDriver.microphones` to list all allocated `Microphone`s.
18+
- Added `Session.mic`.
19+
1520
### Changed
1621

1722
- **BREAKING:** Rename `GeneratorCameraDriver` to `IterableCameraDriver`.

src/libretro/builder.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
LoggerMessageInterface,
4949
MessageInterface,
5050
MicrophoneDriver,
51+
MicrophoneSource,
5152
MidiDriver,
5253
MultiVideoDriver,
5354
OptionDriver,
@@ -129,7 +130,7 @@ class _DefaultType(Enum):
129130
HardwareContextArg: TypeAlias = _OptionalArg[HardwareContext]
130131
ThrottleStateArg: TypeAlias = _OptionalArg[retro_throttle_state]
131132
SavestateContextArg: TypeAlias = _OptionalArg[SavestateContext]
132-
MicDriverArg: TypeAlias = _OptionalArg[MicrophoneDriver]
133+
MicDriverArg: TypeAlias = _OptionalArg[MicrophoneDriver] | MicrophoneSource
133134
PowerDriverArg: TypeAlias = _OptionalArg[PowerDriver] | retro_device_power
134135

135136

src/libretro/drivers/microphone/driver.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from abc import abstractmethod
22
from collections import deque
3-
from collections.abc import Sequence
3+
from collections.abc import Collection, Sequence
44
from ctypes import POINTER, byref, c_int16, c_void_p, cast, memmove, sizeof
55
from typing import NamedTuple, Protocol, runtime_checkable
66

@@ -71,6 +71,13 @@ def __init__(self):
7171
@abstractmethod
7272
def version(self) -> int: ...
7373

74+
@property
75+
def microphones(self) -> Collection[Microphone]:
76+
"""
77+
Returns a collection of all open microphones.
78+
"""
79+
return tuple(h.handle for h in self.__microphones.values())
80+
7481
@abstractmethod
7582
def open_mic(self, params: retro_microphone_params | None) -> Microphone: ...
7683

src/libretro/session.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
LoadedContentFile,
3939
LogDriver,
4040
MessageInterface,
41+
MicrophoneDriver,
4142
MidiDriver,
4243
OptionDriver,
4344
RumbleDriver,
@@ -304,6 +305,10 @@ def content_info_overrides(
304305
) -> Sequence[retro_system_content_info_override] | None:
305306
return self._environment.content.overrides
306307

308+
@property
309+
def mic(self) -> MicrophoneDriver:
310+
return self._environment.microphones
311+
307312
def run(self) -> None:
308313
if self._is_exited or self._environment.is_shutdown:
309314
raise CoreShutDownException()

0 commit comments

Comments
 (0)