添加检测机制,当pulseaudio异常退出时
This commit is contained in:
parent
c3f8562d3f
commit
eed70f35f7
457
0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch
Normal file
457
0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch
Normal file
@ -0,0 +1,457 @@
|
||||
From dc3f42535741a6c8749953e73e77b3f983733faa Mon Sep 17 00:00:00 2001
|
||||
From: tanyulong <tanyulong@kylinos.cn>
|
||||
Date: Fri, 9 Jul 2021 10:30:19 +0800
|
||||
Subject: [PATCH] Add a detection mechanism when PulseAudio exits abnormally
|
||||
|
||||
---
|
||||
ukui-volume-control-applet-qt/main.cpp | 9 ++
|
||||
.../translations/bo.ts | 51 ++++++++---
|
||||
.../translations/zh_CN.ts | 49 +++++++----
|
||||
.../ukmedia_device_switch_widget.cpp | 87 ++++++++++++++++++-
|
||||
.../ukmedia_device_switch_widget.h | 23 +++++
|
||||
.../ukui-volume-control-applet-qt.pro | 4 +-
|
||||
6 files changed, 191 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/ukui-volume-control-applet-qt/main.cpp b/ukui-volume-control-applet-qt/main.cpp
|
||||
index c02a842..9d33691 100755
|
||||
--- a/ukui-volume-control-applet-qt/main.cpp
|
||||
+++ b/ukui-volume-control-applet-qt/main.cpp
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <QDir>
|
||||
#include <KWindowEffects>
|
||||
#include <QMessageBox>
|
||||
+#include <QLibraryInfo>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
/*! The ukui-media is the media of UKUI.
|
||||
@@ -91,6 +92,14 @@ int main(int argc, char *argv[])
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
+ #ifndef QT_NO_TRANSLATION
|
||||
+ QString translatorFileName = QLatin1String("qt_");
|
||||
+ translatorFileName += QLocale::system().name();
|
||||
+ QTranslator *pTranslator = new QTranslator();
|
||||
+ if (pTranslator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
|
||||
+ app.installTranslator(pTranslator);
|
||||
+ #endif
|
||||
+
|
||||
//加载qm文件
|
||||
QTranslator translator;
|
||||
translator.load("/usr/share/ukui-media/translations/" + QLocale::system().name());
|
||||
diff --git a/ukui-volume-control-applet-qt/translations/bo.ts b/ukui-volume-control-applet-qt/translations/bo.ts
|
||||
index 9950f86..a3ab02e 100755
|
||||
--- a/ukui-volume-control-applet-qt/translations/bo.ts
|
||||
+++ b/ukui-volume-control-applet-qt/translations/bo.ts
|
||||
@@ -17,52 +17,70 @@
|
||||
<context>
|
||||
<name>DeviceSwitchWidget</name>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="213"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="281"/>
|
||||
<source>Go Into Mini Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="167"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="235"/>
|
||||
<source>Output volume control</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="169"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="172"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="237"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="240"/>
|
||||
<source>Mute</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="170"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="173"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="238"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="241"/>
|
||||
<source>Sound preference(S)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="1234"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="1309"/>
|
||||
<source>Device Volume</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="1235"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="1310"/>
|
||||
<source>Application Volume</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2495"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2502"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2757"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2765"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2193"/>
|
||||
+ <source>Error</source>
|
||||
+ <translation type="unfinished"></translation>
|
||||
+ </message>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2193"/>
|
||||
+ <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
|
||||
+ <translation type="unfinished"></translation>
|
||||
+ </message>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2632"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2639"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2949"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2957"/>
|
||||
<source>Speaker (Realtek Audio)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2498"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2761"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2635"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2953"/>
|
||||
<source>Headphone</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
+<context>
|
||||
+ <name>QObject</name>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="167"/>
|
||||
+ <source>PulseAudio Volume Control</source>
|
||||
+ <translation type="unfinished"></translation>
|
||||
+ </message>
|
||||
+</context>
|
||||
<context>
|
||||
<name>UkmediaDeviceWidget</name>
|
||||
<message>
|
||||
@@ -93,6 +111,11 @@
|
||||
</context>
|
||||
<context>
|
||||
<name>UkmediaMiniMasterVolumeWidget</name>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_mini_master_volume_widget.cpp" line="47"/>
|
||||
+ <source>Speaker (Realtek Audio)</source>
|
||||
+ <translation type="unfinished"></translation>
|
||||
+ </message>
|
||||
<message>
|
||||
<location filename="../ukmedia_mini_master_volume_widget.cpp" line="115"/>
|
||||
<source>Go Into Full Mode</source>
|
||||
diff --git a/ukui-volume-control-applet-qt/translations/zh_CN.ts b/ukui-volume-control-applet-qt/translations/zh_CN.ts
|
||||
index f72e0dc..5d82d82 100755
|
||||
--- a/ukui-volume-control-applet-qt/translations/zh_CN.ts
|
||||
+++ b/ukui-volume-control-applet-qt/translations/zh_CN.ts
|
||||
@@ -17,52 +17,70 @@
|
||||
<context>
|
||||
<name>DeviceSwitchWidget</name>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="213"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="281"/>
|
||||
<source>Go Into Mini Mode</source>
|
||||
<translation>进入Mini模式</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="167"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="235"/>
|
||||
<source>Output volume control</source>
|
||||
<translation>输出音量控制</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="169"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="172"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="237"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="240"/>
|
||||
<source>Mute</source>
|
||||
<translation>静音</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="170"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="173"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="238"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="241"/>
|
||||
<source>Sound preference(S)</source>
|
||||
<translation>声音首选项</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="1234"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="1309"/>
|
||||
<source>Device Volume</source>
|
||||
<translation>设备音量</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="1235"/>
|
||||
- <source>Application Volume</source>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="1310"/>
|
||||
+ <source>Application Volume</source>
|
||||
<translation>应用音量</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2495"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2502"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2757"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2765"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2193"/>
|
||||
+ <source>Error</source>
|
||||
+ <translation>错误</translation>
|
||||
+ </message>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2193"/>
|
||||
+ <source>Unable to connect to the sound system, please check whether the pulseaudio service is running!</source>
|
||||
+ <translation>无法连接到系统声音,请检查pulseaudio服务是否正在运行!</translation>
|
||||
+ </message>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2632"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2639"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2949"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2957"/>
|
||||
<source>Speaker (Realtek Audio)</source>
|
||||
<translation>扬声器(Realtek Audio)</translation>
|
||||
</message>
|
||||
<message>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2498"/>
|
||||
- <location filename="../ukmedia_device_switch_widget.cpp" line="2761"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2635"/>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="2953"/>
|
||||
<source>Headphone</source>
|
||||
<translation>模拟耳机</translation>
|
||||
</message>
|
||||
</context>
|
||||
+<context>
|
||||
+ <name>QObject</name>
|
||||
+ <message>
|
||||
+ <location filename="../ukmedia_device_switch_widget.cpp" line="167"/>
|
||||
+ <source>PulseAudio Volume Control</source>
|
||||
+ <translation></translation>
|
||||
+ </message>
|
||||
+</context>
|
||||
<context>
|
||||
<name>UkmediaDeviceWidget</name>
|
||||
<message>
|
||||
@@ -94,6 +112,7 @@
|
||||
<context>
|
||||
<name>UkmediaMiniMasterVolumeWidget</name>
|
||||
<message>
|
||||
+ <location filename="../ukmedia_mini_master_volume_widget.cpp" line="47"/>
|
||||
<source>Speaker (Realtek Audio)</source>
|
||||
<translation type="vanished">扬声器(Realtek Audio)</translation>
|
||||
</message>
|
||||
diff --git a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp
|
||||
index e2714a2..cb10ae2 100755
|
||||
--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp
|
||||
+++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp
|
||||
@@ -151,8 +151,71 @@ void DeviceSwitchWidget::hideWindow()
|
||||
// isShow = true;
|
||||
}
|
||||
|
||||
+gboolean DeviceSwitchWidget::connect_to_pulse(gpointer userdata)
|
||||
+{
|
||||
+ //连接到pulseaudio
|
||||
+ pa_glib_mainloop *m = pa_glib_mainloop_new(g_main_context_default());
|
||||
+ DeviceSwitchWidget *w = static_cast<DeviceSwitchWidget*>(userdata);
|
||||
+ w->api = pa_glib_mainloop_get_api(m);
|
||||
+
|
||||
+ pa_proplist *proplist = pa_proplist_new();
|
||||
+ pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, QObject::tr("PulseAudio Volume Control").toUtf8().constData());
|
||||
+ pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, "org.PulseAudio.pavucontrol");
|
||||
+ pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, "audio-card");
|
||||
+ pa_proplist_sets(proplist, PA_PROP_APPLICATION_VERSION, "PACKAGE_VERSION");
|
||||
+ w->m_paContext = pa_context_new_with_proplist(w->api, nullptr, proplist);
|
||||
+ g_assert(w->m_paContext);
|
||||
+
|
||||
+ pa_proplist_free(proplist);
|
||||
+// qDebug() <<"123123" << pa_context_connect(m_paContext, nullptr, PA_CONTEXT_NOFAIL, nullptr) ;
|
||||
+
|
||||
+ pa_context_set_state_callback(w->m_paContext, context_state_callback, w);
|
||||
+ if (pa_context_connect(w->m_paContext, nullptr, PA_CONTEXT_NOFAIL, nullptr) < 0) {
|
||||
+ if (pa_context_errno(w->m_paContext) == PA_ERR_INVALID) {
|
||||
+// w->setConnectingMessage(QObject::tr("Connection to PulseAudio failed. Automatic retry in 5s\n\n"
|
||||
+// "In this case this is likely because PULSE_SERVER in the Environment/X11 Root Window Properties\n"
|
||||
+// "or default-server in client.conf is misconfigured.\n"
|
||||
+// "This situation can also arrise when PulseAudio crashed and left stale details in the X11 Root Window.\n"
|
||||
+// "If this is the case, then PulseAudio should autospawn again, or if this is not configured you should\n"
|
||||
+// "run start-pulseaudio-x11 manually.").toUtf8().constData());
|
||||
+ qDebug() << "连接pulseaudio error";
|
||||
+ }
|
||||
+ else {
|
||||
+ g_timeout_add_seconds(5,connect_to_pulse,w);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+void DeviceSwitchWidget::context_state_callback(pa_context *c, void *userdata) {
|
||||
+ DeviceSwitchWidget *w = static_cast<DeviceSwitchWidget*>(userdata);
|
||||
+ g_assert(c);
|
||||
+
|
||||
+ switch (pa_context_get_state(c)) {
|
||||
+ case PA_CONTEXT_UNCONNECTED:
|
||||
+ case PA_CONTEXT_CONNECTING:
|
||||
+ case PA_CONTEXT_AUTHORIZING:
|
||||
+ case PA_CONTEXT_SETTING_NAME:
|
||||
+ break;
|
||||
+
|
||||
+ case PA_CONTEXT_READY: {
|
||||
+ pa_operation *o;
|
||||
+ break;
|
||||
+ }
|
||||
+ case PA_CONTEXT_FAILED:
|
||||
+ w->pulseDisconnectMseeageBox();
|
||||
+ break;
|
||||
+ case PA_CONTEXT_TERMINATED:
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent)
|
||||
{
|
||||
+ connect_to_pulse(this);
|
||||
setAttribute(Qt::WA_TranslucentBackground);
|
||||
setWindowFlags(Qt::WindowStaysOnTopHint|Qt::Popup);
|
||||
mThemeName = UKUI_THEME_WHITE;
|
||||
@@ -255,6 +318,7 @@ DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent)
|
||||
if G_UNLIKELY (mate_mixer_context_open(context) == FALSE) {
|
||||
g_warning ("Failed to connect to a sound system**********************");
|
||||
}
|
||||
+
|
||||
appWidget->setFixedSize(358,320);
|
||||
devWidget->setFixedSize(358,320);
|
||||
|
||||
@@ -453,7 +517,7 @@ DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent)
|
||||
*/
|
||||
void DeviceSwitchWidget::systemTrayMenuInit()
|
||||
{
|
||||
- menu = new QMenu(this);
|
||||
+ menu = new QMenu();
|
||||
qDebug() << "new menu";
|
||||
// menu->setAttribute(Qt::WA_DeleteOnClose);
|
||||
// menu->setAttribute();
|
||||
@@ -1278,6 +1342,7 @@ void DeviceSwitchWidget::on_context_state_notify (MateMixerContext *context,GPar
|
||||
}
|
||||
else if (state == MATE_MIXER_STATE_FAILED) {
|
||||
g_warning("Failed to connect a sound system");
|
||||
+ qDebug() << "Failed to connect a sound system";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2088,6 +2153,12 @@ void DeviceSwitchWidget::app_volume_mute (MateMixerStreamControl *control, QStri
|
||||
Q_EMIT w->appvolume_mute_change_mastervolume_status();*/
|
||||
}
|
||||
|
||||
+void DeviceSwitchWidget::pulseDisconnectMseeageBox()
|
||||
+{
|
||||
+ QMessageBox::critical(NULL, tr("Error"), tr("Unable to connect to the sound system, please check whether the pulseaudio service is running!"), QMessageBox::Abort);
|
||||
+ exit(-1);
|
||||
+}
|
||||
+
|
||||
/*!
|
||||
* \brief
|
||||
* \details
|
||||
@@ -2095,6 +2166,17 @@ void DeviceSwitchWidget::app_volume_mute (MateMixerStreamControl *control, QStri
|
||||
*/
|
||||
void DeviceSwitchWidget::set_context(DeviceSwitchWidget *w,MateMixerContext *context)
|
||||
{
|
||||
+ MateMixerStream *pOutputStream = mate_mixer_context_get_default_output_stream(context);
|
||||
+ MateMixerState state = mate_mixer_context_get_state(context);
|
||||
+ if (pOutputStream != nullptr) {
|
||||
+ w->pulseDisconnectMseeageBox();
|
||||
+ }
|
||||
+ qDebug() << "output stream" << mate_mixer_stream_get_name(pOutputStream) << state;
|
||||
+ g_signal_connect (G_OBJECT (context),
|
||||
+ "stream-added",
|
||||
+ G_CALLBACK (on_context_stream_added),
|
||||
+ w);
|
||||
+
|
||||
g_signal_connect (G_OBJECT (context),
|
||||
"stream-removed",
|
||||
G_CALLBACK (on_context_stream_removed),
|
||||
@@ -2439,8 +2521,9 @@ void DeviceSwitchWidget::update_icon_output (DeviceSwitchWidget *w,MateMixerCont
|
||||
if (QGSettings::isSchemaInstalled(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID)) {
|
||||
if (w->m_pVolumeSetting->keys().contains("volumesize")) {
|
||||
w->m_pVolumeSetting->set(UKUI_VOLUME_KEY,value);
|
||||
- }
|
||||
+ }
|
||||
}
|
||||
+ qDebug() << "update icon output" << value << state << mate_mixer_stream_control_get_name(control);
|
||||
if (state) {
|
||||
systemTrayIcon = "audio-volume-muted-symbolic";
|
||||
audioIconStr = "audio-volume-muted-symbolic";
|
||||
diff --git a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h
|
||||
index 71be9b9..5881b47 100755
|
||||
--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h
|
||||
+++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <QMenu>
|
||||
#include <QCheckBox>
|
||||
#include <QWidgetAction>
|
||||
+#include <QMessageBox>
|
||||
#include <QFrame>
|
||||
#include <QtDBus/QDBusConnection>
|
||||
#include <QtDBus/QDBusMessage>
|
||||
@@ -46,6 +47,11 @@ extern "C" {
|
||||
#include <gio/gio.h>
|
||||
#include <dconf/dconf.h>
|
||||
#include <canberra.h>
|
||||
+#include <glib/gmain.h>
|
||||
+#include <pulse/ext-stream-restore.h>
|
||||
+#include <pulse/glib-mainloop.h>
|
||||
+#include <pulse/error.h>
|
||||
+#include <pulse/subscribe.h>
|
||||
}
|
||||
|
||||
#define SOUND_MODE_SCRIPTS "/usr/share/ukui-media/scripts/detection_output_mode.sh"
|
||||
@@ -101,7 +107,11 @@ class DeviceSwitchWidget:public QWidget
|
||||
public:
|
||||
DeviceSwitchWidget(QWidget *parent = nullptr);
|
||||
~DeviceSwitchWidget();
|
||||
+
|
||||
+ static gboolean connect_to_pulse(gpointer userdata);
|
||||
+ static void context_state_callback(pa_context *c, void *userdata);
|
||||
void get_window_nameAndid();
|
||||
+ void pulseDisconnectMseeageBox();
|
||||
QList<char *> listExistsPath();
|
||||
QString findFreePath();
|
||||
void addValue(QString name,QString filename);
|
||||
@@ -259,6 +269,19 @@ private:
|
||||
bool firstEnterSystem = true;
|
||||
ca_context *caContext;
|
||||
|
||||
+ bool setOutputVolume = false;
|
||||
+ bool setInputVolume = false;
|
||||
+
|
||||
+ QByteArray role;
|
||||
+ QByteArray device;
|
||||
+ pa_channel_map channelMap;
|
||||
+ pa_cvolume volume;
|
||||
+ pa_context* m_paContext ;
|
||||
+ pa_mainloop_api* api;
|
||||
+ pa_ext_stream_restore_info info;
|
||||
+
|
||||
+
|
||||
+
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event);
|
||||
bool event(QEvent *event);//重写窗口事件
|
||||
diff --git a/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro b/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro
|
||||
index 728edd9..b7ae512 100755
|
||||
--- a/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro
|
||||
+++ b/ukui-volume-control-applet-qt/ukui-volume-control-applet-qt.pro
|
||||
@@ -36,7 +36,9 @@ PKGCONFIG += \
|
||||
Qt5Multimedia \
|
||||
dconf \
|
||||
x11 \
|
||||
- libcanberra
|
||||
+ libcanberra \
|
||||
+ libpulse \
|
||||
+ libpulse-mainloop-glib
|
||||
# libwnck-1.0
|
||||
|
||||
HEADERS += \
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: ukui-media
|
||||
Version: 3.0.2
|
||||
Release: 3
|
||||
Release: 4
|
||||
Summary: UKUI media utilities
|
||||
License: GPL-2+ GPL-3+ LGPL-2+ BSD-3-Clause
|
||||
URL: http://www.ukui.org
|
||||
@ -34,6 +34,7 @@ Recommends: alsa-utils sound-theme-freedesktop
|
||||
|
||||
patch0: 0001-fix-vol-icon-bug.patch
|
||||
patch1: 0002-Fix-the-right-menu-without-frosted-glass-issue.patch
|
||||
patch2: 0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch
|
||||
|
||||
%description
|
||||
A simple and lightweight screensaver written by Qt5.
|
||||
@ -53,6 +54,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
./autogen.sh --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64
|
||||
@ -114,6 +116,9 @@ glib-compile-schemas /usr/share/glib-2.0/schemas/
|
||||
%{_datadir}/glib-2.0/
|
||||
|
||||
%changelog
|
||||
* Fri Jul 9 2021 tanyulong<tanyulong@kylinos.cn> - 3.0.2-4
|
||||
- Add a detection mechanism to terminate when PulseAudio exits abnormally
|
||||
|
||||
* Thu Jul 8 2021 tanyulong<tanyulong@kylinos.cn> - 3.0.2-3
|
||||
- Fix the right menu without frosted glass
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user