import { Astal, Gtk } from "ags/gtk4"; import { Wireplumber } from "../../scripts/volume"; import { Pages } from "./Pages"; import { PageSound } from "./pages/Sound"; import { PageMicrophone } from "./pages/Microphone"; import { createBinding, With } from "ags"; import AstalWp from "gi://AstalWp"; export function Sliders() { const slidersPages = as Pages; return {(sink: AstalWp.Endpoint) => (!Wireplumber.getDefault().isMutedSink() && Wireplumber.getDefault().getSinkVolume() > 0) ? icon : "audio-volume-muted-symbolic" )} /> self.value = Math.floor(sink.volume * 100)} value={createBinding(sink, "volume").as(v => Math.floor(v * 100))} max={Wireplumber.getDefault().getMaxSinkVolume()} onChangeValue={(_, _scrollType, value) => sink.set_volume(value / 100)} /> slidersPages.toggle(PageSound())} /> } {(source: AstalWp.Endpoint) => (!Wireplumber.getDefault().isMutedSink() && Wireplumber.getDefault().getSinkVolume() > 0) ? icon : "microphone-sensitivity-muted-symbolic" )} /> self.value = Math.floor(source.volume * 100)} value={createBinding(source, "volume").as(v => Math.floor(v * 100))} max={Wireplumber.getDefault().getMaxSinkVolume()} onChangeValue={(_, _scrollType, value) => source.set_volume(value / 100)} /> slidersPages.toggle(PageMicrophone())} /> } {slidersPages} }