Use libcutefish audio

pull/18/head
reionwong 4 years ago
parent c9f6ed4324
commit b4c8a87fc4

@ -24,7 +24,6 @@ set(SRCS
src/brightness.cpp
src/battery.cpp
src/appearance.cpp
src/volume.cpp
src/processprovider.cpp
src/activity.cpp
src/capplications.cpp

@ -26,6 +26,7 @@ import QtGraphicalEffects 1.0
import Cutefish.Accounts 1.0 as Accounts
import Cutefish.Bluez 1.0 as Bluez
import Cutefish.StatusBar 1.0
import Cutefish.Audio 1.0
import FishUI 1.0 as FishUI
ControlCenterDialog {
@ -39,6 +40,19 @@ ControlCenterDialog {
property bool bluetoothDisConnected: Bluez.Manager.bluetoothBlocked
property var defaultSinkValue: defaultSink ? defaultSink.volume / PulseAudio.NormalVolume * 100.0: -1
property var volumeIconName: {
if (defaultSinkValue <= 0)
return "audio-volume-muted-symbolic"
else if (defaultSinkValue <= 25)
return "audio-volume-low-symbolic"
else if (defaultSinkValue <= 75)
return "audio-volume-medium-symbolic"
else
return "audio-volume-high-symbolic"
}
onBluetoothDisConnectedChanged: {
bluetoothItem.checked = !bluetoothDisConnected
}
@ -56,6 +70,18 @@ ControlCenterDialog {
id: appearance
}
property var defaultSink: paSinkModel.defaultSink
SinkModel {
id: paSinkModel
onDefaultSinkChanged: {
if (!defaultSink) {
return
}
}
}
function toggleBluetooth() {
const enable = !control.bluetoothDisConnected
Bluez.Manager.bluetoothBlocked = enable
@ -321,7 +347,7 @@ ControlCenterDialog {
id: volumeItem
Layout.fillWidth: true
height: 40
visible: volume.isValid
visible: defaultSink
Rectangle {
id: volumeItemBg
@ -344,25 +370,30 @@ ControlCenterDialog {
height: 16
width: height
sourceSize: Qt.size(width, height)
source: "qrc:/images/" + (FishUI.Theme.darkMode ? "dark" : "light") + "/" + volume.iconName + ".svg"
source: "qrc:/images/" + (FishUI.Theme.darkMode ? "dark" : "light") + "/" + control.volumeIconName + ".svg"
smooth: false
antialiasing: true
}
Slider {
id: slider
from: 0
to: 100
stepSize: 1
value: volume.volume
id: volumeSlider
Layout.fillWidth: true
Layout.fillHeight: true
from: PulseAudio.MinimalVolume
to: PulseAudio.NormalVolume
stepSize: to / (to / PulseAudio.NormalVolume * 100.0)
value: defaultSink ? defaultSink.volume : 0
onValueChanged: {
volume.setVolume(value)
if (!defaultSink)
return
if (volume.isMute && value > 0)
volume.setMute(false)
defaultSink.volume = value
defaultSink.muted = (value === 0)
}
}
}

@ -356,8 +356,8 @@ Item {
Image {
id: volumeIcon
visible: volume.isValid && status === Image.Ready
source: "qrc:/images/" + (rootItem.darkMode ? "dark/" : "light/") + volume.iconName + ".svg"
visible: controlCenter.defaultSink
source: "qrc:/images/" + (rootItem.darkMode ? "dark/" : "light/") + controlCenter.volumeIconName + ".svg"
width: rootItem.iconSize
height: width
sourceSize: Qt.size(width, height)
@ -520,10 +520,6 @@ Item {
id: controlCenter
}
Volume {
id: volume
}
NM.ActiveConnection {
id: activeConnection
}

@ -30,7 +30,6 @@
#include "appearance.h"
#include "brightness.h"
#include "battery.h"
#include "volume.h"
int main(int argc, char *argv[])
{
@ -43,7 +42,6 @@ int main(int argc, char *argv[])
qmlRegisterType<Appearance>(uri, 1, 0, "Appearance");
qmlRegisterType<Brightness>(uri, 1, 0, "Brightness");
qmlRegisterType<Battery>(uri, 1, 0, "Battery");
qmlRegisterType<VolumeManager>(uri, 1, 0, "Volume");
qmlRegisterType<AppMenuModel>(uri, 1, 0, "AppMenuModel");
qmlRegisterType<AppMenuApplet>(uri, 1, 0, "AppMenuApplet");

Loading…
Cancel
Save