// Copyright 2023 System76 // SPDX-License-Identifier: GPL-3.0-only mod localize; mod mouse_area; use crate::{localize::localize, pulse::DeviceInfo}; use config::AudioAppletConfig; use cosmic::{ app::Command, applet::{ cosmic_panel_config::PanelAnchor, menu_button, menu_control_padding, padded_control, token::subscription::{activation_token_subscription, TokenRequest, TokenUpdate}, }, cctk::sctk::reexports::{calloop, protocols::xdg::shell::client::xdg_positioner::Anchor}, cosmic_config::CosmicConfigEntry, iced::{ self, widget::{self, column, row, slider, text}, window, Alignment, Length, Limits, Rectangle, Subscription, }, iced_runtime::core::alignment::Horizontal, iced_style::application, widget::{button, divider, horizontal_space, icon, Column, Row}, Element, Renderer, Theme, }; use cosmic_settings_subscriptions::pulse as sub_pulse; use cosmic_time::{anim, chain, id, once_cell::sync::Lazy, Instant, Timeline}; use iced::{ wayland::popup::{destroy_popup, get_popup}, widget::container, }; use libpulse_binding::volume::Volume; use mpris2_zbus::player::PlaybackStatus; use mpris_subscription::{MprisRequest, MprisUpdate}; mod config; mod mpris_subscription; mod pulse; static SHOW_MEDIA_CONTROLS: Lazy = Lazy::new(id::Toggler::unique); const GO_BACK: &str = "media-skip-backward-symbolic"; const GO_NEXT: &str = "media-skip-forward-symbolic"; const PAUSE: &str = "media-playback-pause-symbolic"; const PLAY: &str = "media-playback-start-symbolic"; pub fn run() -> cosmic::iced::Result { localize(); cosmic::applet::run::