UNPKG

@girs/gnome-shell

Version:

GJS TypeScript type definitions for GNOME Shell Extensions

122 lines (103 loc) 3.55 kB
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/status/volume.js import Clutter from '@girs/clutter-16'; import Gio from '@girs/gio-2.0'; import Gvc from '@girs/gvc-1.0'; import * as PopupMenu from '../popupMenu.js'; import { QuickSlider, SystemIndicator } from '../quickSettings.js'; declare const ALLOW_AMPLIFIED_VOLUME_KEY = 'allow-volume-above-100-percent'; declare const UNMUTE_DEFAULT_VOLUME = 0.25; /** * Get the mixer control singleton. * @returns {Gvc.MixerControl} The mixer control singleton. */ export declare function getMixerControl(): Gvc.MixerControl; /** * StreamSlider class for controlling audio stream. */ export declare class StreamSlider extends QuickSlider { protected _control: Gvc.MixerControl; protected _inDrag: boolean; protected _notifyVolumeChangeId: number; protected _soundSettings: Gio.Settings; protected _sliderChangedId: number; protected _stream: Gvc.MixerStream; protected _volumeCancellable: Gio.Cancellable; protected _icons: string[]; protected _deviceItems: Map<number, PopupMenu.PopupImageMenuItem>; protected _deviceSection: PopupMenu.PopupMenuSection; /** * Initialize the StreamSlider. * @param control The Gvc.MixerControl object. */ constructor(control: Gvc.MixerControl); /** * Sets the stream for the slider. * @param stream The Gvc.MixerStream object. */ set stream(stream: Gvc.MixerStream); /** * Connects the stream for updates. * @param stream The Gvc.MixerStream object. */ protected _connectStream(stream: Gvc.MixerStream): void; /** * Adds a device to the slider. * @param id The device ID. */ protected _addDevice(id: number): void; /** * Removes a device from the slider. * @param id The device ID. */ protected _removeDevice(id: number): void; /** * Sets the active device. * @param activeId The active device ID. */ protected _setActiveDevice(activeId: number): void; /** * Updates the volume level. */ protected _updateVolume(): void; // Additional methods and properties } /** * OutputStreamSlider class for controlling output audio stream. */ export declare class OutputStreamSlider extends StreamSlider { // Implementation-specific methods and properties } /** * InputStreamSlider class for controlling input audio stream. */ export declare class InputStreamSlider extends StreamSlider { // Implementation-specific methods and properties } /** * VolumeIndicator for system audio control. */ export declare class VolumeIndicator extends SystemIndicator { protected _indicator: Clutter.Actor; protected _control: Gvc.MixerControl; protected _output: OutputStreamSlider; protected _input: InputStreamSlider; /** * Handle scroll events for volume adjustment. * @param item The StreamSlider item. * @param event The Clutter scroll event. * @returns Clutter.EVENT_STOP or Clutter.EVENT_PROPAGATE */ protected _handleScrollEvent(item: StreamSlider, event: Clutter.Event): typeof Clutter.EVENT_PROPAGATE | typeof Clutter.EVENT_STOP; } /** * OutputIndicator for system output volume control. */ export declare class OutputIndicator extends VolumeIndicator { // Implementation-specific methods and properties } /** * InputIndicator for system input volume control. */ export declare class InputIndicator extends VolumeIndicator { // Implementation-specific methods and properties }