teamtalkbot/bot/sound_devices.py
Umiko f331b10358
Some checks are pending
Build-nightly / docker (push) Waiting to run
first commit.
2025-04-13 14:44:48 +07:00

52 lines
1.6 KiB
Python

from __future__ import annotations
from enum import Enum
import logging
import sys
from typing import TYPE_CHECKING, Union
if TYPE_CHECKING:
from bot import Bot
class SoundDevice:
def __init__(self, name: str, id: Union[int, str], type: SoundDeviceType) -> None:
self.name = name
self.id = id
self.type = type
class SoundDeviceType(Enum):
Output = 0
Input = 1
class SoundDeviceManager:
def __init__(self, bot: Bot) -> None:
self.config = bot.config
self.output_device_index = self.config.sound_devices.output_device
self.input_device_index = self.config.sound_devices.input_device
self.player = bot.player
self.ttclient = bot.ttclient
self.output_devices = self.player.get_output_devices()
self.input_devices = self.ttclient.get_input_devices()
def initialize(self) -> None:
logging.debug("Initializing sound devices")
try:
self.player.set_output_device(
str(self.output_devices[self.output_device_index].id)
)
except IndexError:
error = "Incorrect output device index: " + str(self.output_device_index)
logging.error(error)
sys.exit(error)
try:
self.ttclient.set_input_device(
int(self.input_devices[self.input_device_index].id)
)
except IndexError:
error = "Incorrect input device index: " + str(self.input_device_index)
logging.error(error)
sys.exit(error)
logging.debug("Sound devices initialized")