mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-16 08:14:03 -04:00
* feat(freebsd): add comprehensive native FreeBSD support * Update BatteryService.qml * Add battery probe completion and fallback updates * Add isVideoSource function and update PwObjectTracker filter * Add isPipewireVideoSource function to AudioService Added a function to check if a Pipewire node is a video source. * Refactor video source check to use AudioService * Remove unnecessary call in BatteryService.qml * Add call to updateFreeBsdBatteryFallback on completion * Simplify AudioService by eliminating redundant bindings Removed unnecessary bindings in the AudioService loader to streamline the loading process. * Improve error handling in CheckUpdates function Handle specific exit error for package upgrade check. * Enhance FreeBSD network detection logic * Implement FreeBSD Wi-Fi hardware discovery in Initialize Added FreeBSD Wi-Fi hardware discovery and updated initialization logic to handle cases where no wpa_supplicant control socket is found. * Implement Ethernet state monitoring in StartMonitoring Added monitoring for Ethernet state updates in StartMonitoring function. * Add Ethernet management functions to backend * Remove unimplemented Ethernet control methods Removed unimplemented Ethernet control methods from WpaSupplicantBackend. * Implement SetWiFiEnabled method for WiFi control Add error handling and state management for WiFi control * Update core/internal/server/network/backend_wpa_ethernet.go Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * Implement Ethernet monitoring in WpaSupplicantBackend * Refactor startEthernetMonitor and add debounce logic Refactor the startEthernetMonitor function to improve readability and maintainability. Introduce a debounce mechanism for processing relevant FreeBSD route events. * Reorder import statements in backend_pkg.go * Remove unnecessary blank line in backend_wpa_ethernet.go * Implement FreeBSD audio polling based on UI visibility Introduce a polling mechanism for FreeBSD audio device updates based on visibility of UI elements. * Add readonly freeBsdPollingRequested property and optimize polling Introduce a readonly property to determine if FreeBSD polling is requested based on various UI conditions. Update command execution to prioritize polling efficiency. * Simplify freeBsdPollingRequested logic Removed unnecessary conditions from freeBsdPollingRequested property. * Implement reference counting for battery consumers Added reference counting to manage battery information consumers and updated related functions for better battery state handling. --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
29 lines
1.4 KiB
QML
29 lines
1.4 KiB
QML
import QtQuick
|
|
import qs.Common
|
|
import qs.Services
|
|
import "../../../Common/QmlUtils.js" as QmlUtils
|
|
|
|
CcTileActions {
|
|
id: root
|
|
|
|
property bool isInput: false
|
|
readonly property var pins: QmlUtils.normalizePinList(isInput ? (CacheData.audioInputDevicePins || {}).preferredInput : (CacheData.audioOutputDevicePins || {}).preferredOutput)
|
|
readonly property var selectedNode: isInput ? AudioService.source : AudioService.sink
|
|
readonly property var devices: {
|
|
const hidden = (isInput ? SessionData.hiddenInputDeviceNames : SessionData.hiddenOutputDeviceNames) || [];
|
|
return AudioService.allNodes.filter(node => node.audio && node.isSink !== isInput && !node.isStream && !hidden.includes(node.name)).sort((a, b) => {
|
|
const aPin = pins.indexOf(a.name);
|
|
const bPin = pins.indexOf(b.name);
|
|
if (aPin !== bPin)
|
|
return (aPin < 0 ? Infinity : aPin) - (bPin < 0 ? Infinity : bPin);
|
|
return Number(b === selectedNode) - Number(a === selectedNode);
|
|
});
|
|
}
|
|
actions: devices.map(node => ({
|
|
text: AudioService.displayName(node),
|
|
icon: isInput ? "mic" : AudioService.sinkIcon(node),
|
|
active: node === selectedNode,
|
|
trigger: () => isInput ? AudioService.setDefaultSourceByName(node.name) : AudioService.setDefaultSinkByName(node.name)
|
|
}))
|
|
}
|