UNPKG

@steambrew/client

Version:
172 lines (171 loc) 6.22 kB
import { OperationResponse, Unregisterable } from '../shared'; /** * Represents various functions related to Steam system audio. */ export interface Audio { /** * Clears the default device override for a specified audio type. * @param audioType The audio type (0 for input, 1 for output). */ ClearDefaultDeviceOverride(audioType: number): Promise<OperationResponse>; /** * Retrieves information about audio applications. * @returns information about audio applications. */ GetApps(): Promise<ApplicationsAudio>; /** * Retrieves information about audio devices. * @returns information about audio devices. */ GetDevices(): Promise<AudioDeviceInfo>; /** * Registers a callback to be called when a new audio application is added. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForAppAdded(callback: (app: ApplicationAudio) => void): Unregisterable; /** * Registers a callback to be called when an audio application is removed. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForAppRemoved(callback: (appAudioId: number) => void): Unregisterable; /** * Registers a callback to be called when the volume of an audio application changes. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForAppVolumeChanged(callback: (appAudioId: number, volume: number) => void): Unregisterable; /** * Registers a callback to be called when a new audio device is added. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForDeviceAdded(callback: (device: AudioDevice) => void): Unregisterable; /** * Registers a callback to be called when an audio device is removed. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForDeviceRemoved(callback: (audioDeviceId: number) => void): Unregisterable; /** * Registers a callback to be called when the volume of an audio device changes. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForDeviceVolumeChanged(callback: (audioDeviceId: number, audioType: number, volume: number) => void): Unregisterable; RegisterForServiceConnectionStateChanges(callback: (param0: any) => void): Unregisterable; /** * Registers a callback to be called when volume buttons are pressed. * @param callback The callback function to be called. * @returns an object that can be used to unregister the callback. */ RegisterForVolumeButtonPressed(callback: (volumeUpPressed: boolean) => void): Unregisterable; /** * Sets the volume of an audio application. * @param appAudioId The ID of the audio application. * @param volume The volume level (floating point value between 0 and 1). */ SetAppVolume(appAudioId: number, volume: number): Promise<OperationResponse>; /** * Sets the default device override for a specified audio type. * @param audioDeviceId The ID of the audio device. * @param audioType The audio type (0 for input, 1 for output). */ SetDefaultDeviceOverride(audioDeviceId: number, audioType: number): Promise<OperationResponse>; /** * Sets the volume of an audio device. * @param audioDeviceId The ID of the audio device. * @param audioType The audio type (0 for input, 1 for output). * @param volume The volume level (floating point value between 0 and 1). */ SetDeviceVolume(audioDeviceId: number, audioType: number, volume: number): Promise<OperationResponse>; } /** * Represents details about an array of application audio sessions. */ export interface ApplicationsAudio { /** * An array of application audio sessions. */ apps: ApplicationAudio[]; } /** * Represents details about an application audio session. */ export interface ApplicationAudio { /** * The ID of the application audio. */ id: number; /** * The name of the application (e.g., Spotify, YouTube from a browser, etc.). */ strName: string; /** * The volume level of the application (floating point value between 0 and 1). */ flVolume: number; } /** * Represents details about audio devices and information about the active audio device. */ export interface AudioDeviceInfo { /** * The ID of the active output audio device. */ activeOutputDeviceId: number; /** * The ID of the active input audio device. */ activeInputDeviceId: number; /** * The ID of the overridden output audio device (-1 if not overridden). */ overrideOutputDeviceId: number; /** * The ID of the overridden input audio device (-1 if not overridden). */ overrideInputDeviceId: number; /** * An array of audio devices. */ vecDevices: AudioDevice[]; } /** * Represents details about an audio device. */ export interface AudioDevice { /** * The identifier of the audio device. */ id: number; /** * The name of the audio device. */ sName: string; /** * Indicates if the device has audio output. */ bHasOutput: boolean; /** * Indicates if the device is the default output device. */ bIsDefaultOutputDevice: boolean; /** * The volume level of the audio output device (floating point value between 0 and 1). */ flOutputVolume: number; /** * Indicates if the device has audio input. */ bHasInput: boolean; /** * Indicates if the device is the default input device. */ bIsDefaultInputDevice: boolean; /** * The volume level of the audio input device (floating point value between 0 and 1). */ flInputVolume: number; }