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, createRoot, With } from "ags"; import AstalWp from "gi://AstalWp"; export let slidersPages: Pages|undefined; export function Sliders() { slidersPages = createRoot(() => new Pages())!; return slidersPages = undefined}> {(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} }