From 2fa5187c8a43d745536bbb42f776ab4ba3f655b7 Mon Sep 17 00:00:00 2001 From: dou33 Date: Fri, 22 Oct 2021 16:10:01 +0800 Subject: [PATCH] sync with master --- ...ght-menu-without-frosted-glass-issue.patch | 25 + ...mechanism-when-PulseAudio-exits-abno.patch | 457 ++++++++++++++++++ 0004-update-gsetting.patch | 66 +++ ...roblem-of-adjusting-animation-freeze.patch | 75 +++ ...ider-to-adjust-the-microphone-volume.patch | 42 ++ ...ic-crash-when-keyboard-keys-are-mute.patch | 56 +++ ...pp-name-and-icon-for-Kirin-Recording.patch | 138 ++++++ ...input-device-is-not-find-of-recorder.patch | 41 ++ ...roblem-of-adjusting-animation-freeze.patch | 90 ++++ ukui-media.spec | 52 +- 10 files changed, 1040 insertions(+), 2 deletions(-) create mode 100644 0002-Fix-the-right-menu-without-frosted-glass-issue.patch create mode 100644 0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch create mode 100644 0004-update-gsetting.patch create mode 100644 0005-Solve-the-problem-of-adjusting-animation-freeze.patch create mode 100644 0006-fix-the-slider-to-adjust-the-microphone-volume.patch create mode 100644 0007-fix-probabilistic-crash-when-keyboard-keys-are-mute.patch create mode 100644 0008-Set-the-app-name-and-icon-for-Kirin-Recording.patch create mode 100644 0009-repair-the-input-device-is-not-find-of-recorder.patch create mode 100644 0010-repair-the-problem-of-adjusting-animation-freeze.patch diff --git a/0002-Fix-the-right-menu-without-frosted-glass-issue.patch b/0002-Fix-the-right-menu-without-frosted-glass-issue.patch new file mode 100644 index 0000000..b50b69a --- /dev/null +++ b/0002-Fix-the-right-menu-without-frosted-glass-issue.patch @@ -0,0 +1,25 @@ +From 4fe3f75353853d7671e93bf036badf7935cccc1f Mon Sep 17 00:00:00 2001 +From: tanyulong +Date: Thu, 8 Jul 2021 17:48:05 +0800 +Subject: [PATCH] Fix the right menu without frosted glass issue + +--- + ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +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 2cd9612..e2714a2 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -453,7 +453,7 @@ DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent) + */ + void DeviceSwitchWidget::systemTrayMenuInit() + { +- menu = new QMenu(); ++ menu = new QMenu(this); + qDebug() << "new menu"; + // menu->setAttribute(Qt::WA_DeleteOnClose); + // menu->setAttribute(); +-- +2.23.0 + diff --git a/0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch b/0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch new file mode 100644 index 0000000..2406a1c --- /dev/null +++ b/0003-Add-a-detection-mechanism-when-PulseAudio-exits-abno.patch @@ -0,0 +1,457 @@ +From dc3f42535741a6c8749953e73e77b3f983733faa Mon Sep 17 00:00:00 2001 +From: tanyulong +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 + #include + #include ++#include + #include + + /*! 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 @@ + + DeviceSwitchWidget + +- ++ + Go Into Mini Mode + + + +- ++ + Output volume control + + + +- +- ++ ++ + Mute + + + +- +- ++ ++ + Sound preference(S) + + + +- ++ + Device Volume + + + +- ++ + Application Volume + + + +- +- +- +- ++ ++ Error ++ ++ ++ ++ ++ Unable to connect to the sound system, please check whether the pulseaudio service is running! ++ ++ ++ ++ ++ ++ ++ + Speaker (Realtek Audio) + + + +- +- ++ ++ + Headphone + + + ++ ++ QObject ++ ++ ++ PulseAudio Volume Control ++ ++ ++ + + UkmediaDeviceWidget + +@@ -93,6 +111,11 @@ + + + UkmediaMiniMasterVolumeWidget ++ ++ ++ Speaker (Realtek Audio) ++ ++ + + + Go Into Full Mode +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 @@ + + DeviceSwitchWidget + +- ++ + Go Into Mini Mode + 进入Mini模式 + + +- ++ + Output volume control + 输出音量控制 + + +- +- ++ ++ + Mute + 静音 + + +- +- ++ ++ + Sound preference(S) + 声音首选项 + + +- ++ + Device Volume + 设备音量 + + +- +- Application Volume ++ ++ Application Volume + 应用音量 + + +- +- +- +- ++ ++ Error ++ 错误 ++ ++ ++ ++ Unable to connect to the sound system, please check whether the pulseaudio service is running! ++ 无法连接到系统声音,请检查pulseaudio服务是否正在运行! ++ ++ ++ ++ ++ ++ + Speaker (Realtek Audio) + 扬声器(Realtek Audio) + + +- +- ++ ++ + Headphone + 模拟耳机 + + ++ ++ QObject ++ ++ ++ PulseAudio Volume Control ++ ++ ++ + + UkmediaDeviceWidget + +@@ -94,6 +112,7 @@ + + UkmediaMiniMasterVolumeWidget + ++ + Speaker (Realtek Audio) + 扬声器(Realtek Audio) + +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(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(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 + #include + #include ++#include + #include + #include + #include +@@ -46,6 +47,11 @@ extern "C" { + #include + #include + #include ++#include ++#include ++#include ++#include ++#include + } + + #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 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 + diff --git a/0004-update-gsetting.patch b/0004-update-gsetting.patch new file mode 100644 index 0000000..8ea6510 --- /dev/null +++ b/0004-update-gsetting.patch @@ -0,0 +1,66 @@ +From a225388518665daf7efe1bf61c9dade6791e052a Mon Sep 17 00:00:00 2001 +From: tanyulong +Date: Fri, 9 Jul 2021 14:11:43 +0800 +Subject: [PATCH] update gsetting + +--- + debian/ukui-media.install | 1 + + .../data/org.ukui.sound.gschema.xml | 34 +++++++++++++++++++ + 2 files changed, 35 insertions(+) + create mode 100644 ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml + +diff --git a/debian/ukui-media.install b/debian/ukui-media.install +index 732059a..aef87ac 100755 +--- a/debian/ukui-media.install ++++ b/debian/ukui-media.install +@@ -5,6 +5,7 @@ ukui-volume-control-applet-qt/translations/*.qm usr/share/ukui-media/translation + ukui-volume-control-applet-qt/data/img/* /usr/share/ukui-media/img + ukui-volume-control-applet-qt/data/qss/* /usr/share/ukui-media/qss + ukui-volume-control-applet-qt/data/sounds/*.ogg /usr/share/sounds ++ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml /usr/share/glib-2.0/schemas + #ukui-volume-control-applet-qt/data/sounds/ukui-new-sound.xml /usr/share/ukui-media/sounds + scripts/detection_output_mode.sh /usr/share/ukui-media/scripts + data/org.ukui.media.sound.gschema.xml /usr/share/glib-2.0/schemas +diff --git a/ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml b/ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml +new file mode 100644 +index 0000000..e812892 +--- /dev/null ++++ b/ukui-volume-control-applet-qt/data/org.ukui.sound.gschema.xml +@@ -0,0 +1,34 @@ ++ ++ ++ ++ '' ++ Default mixer device ++ The default mixer device used by the multimedia key bindings. ++ ++ ++ [] ++ Default mixer tracks ++ The default mixer tracks used by the multimedia key bindings. ++ ++ ++ false ++ Enable ESD ++ Enable sound server startup. ++ ++ ++ false ++ Sounds for events ++ Whether to play sounds on user events. ++ ++ ++ 'ukui' ++ Sound theme name ++ The XDG sound theme to use for event sounds. ++ ++ ++ false ++ Input feedback sounds ++ Whether to play sounds on input events. ++ ++ ++ +-- +2.23.0 + diff --git a/0005-Solve-the-problem-of-adjusting-animation-freeze.patch b/0005-Solve-the-problem-of-adjusting-animation-freeze.patch new file mode 100644 index 0000000..cc89de8 --- /dev/null +++ b/0005-Solve-the-problem-of-adjusting-animation-freeze.patch @@ -0,0 +1,75 @@ +From cee36cfdcea26d4eced49bfab0af311687393720 Mon Sep 17 00:00:00 2001 +From: tanyulong +Date: Mon, 12 Jul 2021 14:59:03 +0800 +Subject: [PATCH] Solve the problem of adjusting animation freeze + +--- + .../ukmedia_device_switch_widget.cpp | 11 +++++++++-- + .../ukmedia_device_switch_widget.h | 3 ++- + 2 files changed, 11 insertions(+), 3 deletions(-) + +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 cb10ae2..3a262a3 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -411,13 +411,13 @@ DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent) + * \details + * 完整模式下,应用音量节面,当滑动条值改变时更改系统音量 + */ +- connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT(advancedSystemSliderChangedSlot(int))); ++ // connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT( advancedSystemSliderChangedSlot(int))); + /*! + * \brief + * \details + * 完整模式下,系统音量界面,当滑动条值改变时更改系统音量 + */ +- connect(devWidget->outputDeviceSlider,SIGNAL(valueChanged(int)),this,SLOT(outputDeviceSliderChangedSlot(int))); ++ // connect(devWidget->outputDeviceSlider,SIGNAL(valueChanged(int)),this,SLOT(outputDeviceSliderChangedSlot(int))); + /*! + * \brief + * \details +@@ -2507,6 +2507,7 @@ void DeviceSwitchWidget::update_icon_output (DeviceSwitchWidget *w,MateMixerCont + QSlider *slider1 = w->miniWidget->findChild(w->outputControlName); + if (slider1 == nullptr) + return; ++ w->setVolume = true; + w->devWidget->outputDeviceSlider->setValue(value); + // w->miniWidget->masterVolumeSlider->setValue(value); + w->appWidget->systemVolumeSlider->setValue(value); +@@ -2734,6 +2735,11 @@ void DeviceSwitchWidget::on_control_mute_notify (MateMixerStreamControl *control + void DeviceSwitchWidget::on_stream_control_volume_notify (MateMixerStreamControl *control,GParamSpec *pspec,DeviceSwitchWidget *w) + { + Q_UNUSED(pspec); ++ if (w->setVolume == true) { ++ w->setVolume = false; ++ qDebug() << "123123123123123"; ++ return; ++ } + MateMixerStreamControlFlags flags; + gboolean muted = FALSE; + gdouble decibel = 0.0; +@@ -2782,6 +2788,7 @@ void DeviceSwitchWidget::on_stream_control_volume_notify (MateMixerStreamControl + ca_context_create(&context); + int value = int(volume*100/65536.0 + 0.5); + if (direction == MATE_MIXER_DIRECTION_OUTPUT) { ++ w->setVolume = true; + w->devWidget->outputDeviceSlider->setValue(value); + w->appWidget->systemVolumeSlider->setValue(value); + w->miniWidget->masterVolumeSlider->setValue(value); +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 5881b47..2c9b778 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h +@@ -268,7 +268,8 @@ private: + QString mThemeName; + bool firstEnterSystem = true; + ca_context *caContext; +- ++ ++ bool setVolume = false; + bool setOutputVolume = false; + bool setInputVolume = false; + +-- +2.23.0 + diff --git a/0006-fix-the-slider-to-adjust-the-microphone-volume.patch b/0006-fix-the-slider-to-adjust-the-microphone-volume.patch new file mode 100644 index 0000000..82667ba --- /dev/null +++ b/0006-fix-the-slider-to-adjust-the-microphone-volume.patch @@ -0,0 +1,42 @@ +From 5fa785ef7b49d10edcd1c48e943bd74a6c2aa475 Mon Sep 17 00:00:00 2001 +From: tanyulong +Date: Mon, 12 Jul 2021 17:03:29 +0800 +Subject: [PATCH] fix the slider to adjust the microphone volume + +--- + .../ukmedia_device_switch_widget.cpp | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +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 3a262a3..b8dc5f5 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -1416,6 +1416,15 @@ void DeviceSwitchWidget::add_stream (DeviceSwitchWidget *w, MateMixerStream *str + MateMixerStreamControl *c = mate_mixer_stream_get_default_control(stream); + update_input_settings (w,c); + } ++ else { ++ mate_mixer_context_set_default_input_stream(w->context,stream); ++ qDebug() << "add stream set input stream 1" << mate_mixer_stream_get_name(stream); ++ bar_set_stream (w, stream); ++ name = mate_mixer_stream_get_name (stream); ++ label = mate_mixer_stream_get_label (stream); ++ qDebug() << "add stream set input stream" << name; ++ w->input_stream_list->append(name); ++ } + } + else if (direction == MATE_MIXER_DIRECTION_OUTPUT) { + MateMixerStream *output; +@@ -2441,7 +2450,8 @@ void DeviceSwitchWidget::update_icon_input (DeviceSwitchWidget *w,MateMixerStrea + * control for the icon */ + control = input; + } +- show = TRUE; ++ //show = true; ++ + break; + } + +-- +2.23.0 + diff --git a/0007-fix-probabilistic-crash-when-keyboard-keys-are-mute.patch b/0007-fix-probabilistic-crash-when-keyboard-keys-are-mute.patch new file mode 100644 index 0000000..07990bb --- /dev/null +++ b/0007-fix-probabilistic-crash-when-keyboard-keys-are-mute.patch @@ -0,0 +1,56 @@ +From 4ded5d08faa69e9dc90679ece13935b4b846574b Mon Sep 17 00:00:00 2001 +From: tanyulong +Date: Tue, 13 Jul 2021 10:30:27 +0800 +Subject: [PATCH] fix probabilistic crash when keyboard keys are mute + +--- + .../ukmedia_device_switch_widget.cpp | 14 ++++++++++++-- + .../ukui-volume-control-applet-qt.pro | 2 +- + 2 files changed, 13 insertions(+), 3 deletions(-) + +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 b8dc5f5..2e7ebbd 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -1466,7 +1466,9 @@ void DeviceSwitchWidget::add_stream (DeviceSwitchWidget *w, MateMixerStream *str + if (m_pAppInfo != nullptr) { + const gchar *m_pAppName = mate_mixer_app_info_get_name(m_pAppInfo); + if (strcmp(m_pAppName,"ukui-session") != 0 && strcmp(m_pAppName,"ukui-volume-control-applet-qt") != 0 && strcmp(m_pAppName,"Volume Control") && \ +- strcmp(m_pAppName,"ALSA plug-in [mate-screenshot]") && strcmp(m_pAppName,"ALSA plug-in [ukui-volume-control-applet-qt]")) { ++ strcmp(m_pAppName,"ALSA plug-in [mate-screenshot]") && strcmp(m_pAppName,"ALSA plug-in [ukui-volume-control-applet-qt]") && \ ++ strcmp(m_pAppName,"Ukui Volume Control App") && !strstr(m_pAppName,"QtPulseAudio") && strcmp(m_pAppName,"ukuimedia-volume-control") != 0 && \ ++ !strstr(m_pAppName,"ukui-settings-daemon")) { + if G_UNLIKELY (w->control == nullptr) + return; + add_application_control (w, w->control,m_pStreamControlName); +@@ -1580,8 +1582,16 @@ void DeviceSwitchWidget::on_stream_control_added (MateMixerStream *stream,const + MateMixerAppInfo *m_pAppInfo = mate_mixer_stream_control_get_app_info(w->control); + if (m_pAppInfo != nullptr) { + const gchar *m_pAppName = mate_mixer_app_info_get_name(m_pAppInfo); ++ const gchar *appIconName = mate_mixer_app_info_get_icon(m_pAppInfo); ++ if (appIconName && strstr(appIconName,"recording")) { ++ m_pAppName = "kylin-recorder"; ++ appIconName = "kylin-recorder"; ++ } ++ + if (strcmp(m_pAppName,"ukui-session") != 0 && strcmp(m_pAppName,"ukui-volume-control-applet-qt") != 0 && strcmp(m_pAppName,"Volume Control") && \ +- strcmp(m_pAppName,"ALSA plug-in [mate-screenshot]") && strcmp(m_pAppName,"ALSA plug-in [ukui-volume-control-applet-qt]")) { ++ strcmp(m_pAppName,"ALSA plug-in [mate-screenshot]") && strcmp(m_pAppName,"ALSA plug-in [ukui-volume-control-applet-qt]") && \ ++ strcmp(m_pAppName,"Ukui Volume Control App") && !strstr(m_pAppName,"QtPulseAudio") && strcmp(m_pAppName,"ukuimedia-volume-control") != 0 && \ ++ !strstr(m_pAppName,"ukui-settings-daemon")) { + if G_UNLIKELY (w->control == nullptr) + return; + +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 b7ae512..5a8ff3c 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 +@@ -1,4 +1,4 @@ +-###################################################################### ++F###################################################################### + # Automatically generated by qmake (3.1) Fri Oct 11 17:35:00 2019 + ###################################################################### + +-- +2.23.0 + diff --git a/0008-Set-the-app-name-and-icon-for-Kirin-Recording.patch b/0008-Set-the-app-name-and-icon-for-Kirin-Recording.patch new file mode 100644 index 0000000..abfc47d --- /dev/null +++ b/0008-Set-the-app-name-and-icon-for-Kirin-Recording.patch @@ -0,0 +1,138 @@ +From 57d53f1253d960fe90e16dcf4b38692ec69fa122 Mon Sep 17 00:00:00 2001 +From: tanyulong +Date: Wed, 14 Jul 2021 10:15:09 +0800 +Subject: [PATCH] Set the app name and icon for Kirin Recording + +--- + .../ukmedia_device_switch_widget.cpp | 46 ++++++++++++++++--- + 1 file changed, 40 insertions(+), 6 deletions(-) + +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 2e7ebbd..c074675 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -1465,12 +1465,18 @@ void DeviceSwitchWidget::add_stream (DeviceSwitchWidget *w, MateMixerStream *str + MateMixerAppInfo *m_pAppInfo = mate_mixer_stream_control_get_app_info(w->control); + if (m_pAppInfo != nullptr) { + const gchar *m_pAppName = mate_mixer_app_info_get_name(m_pAppInfo); +- if (strcmp(m_pAppName,"ukui-session") != 0 && strcmp(m_pAppName,"ukui-volume-control-applet-qt") != 0 && strcmp(m_pAppName,"Volume Control") && \ ++ const gchar *app_icon_name = mate_mixer_app_info_get_icon(m_pAppInfo); ++ if (strstr(app_icon_name,"recording")) { ++ m_pAppName = "kylin-recorder"; ++ app_icon_name = "kylin-recorder"; ++ } ++ ++ if (strcmp(m_pAppName,"ukui-session") != 0 && strcmp(m_pAppName,"ukui-volume-control-applet-qt") != 0 && strcmp(m_pAppName,"Volume Control") && \ + strcmp(m_pAppName,"ALSA plug-in [mate-screenshot]") && strcmp(m_pAppName,"ALSA plug-in [ukui-volume-control-applet-qt]") && \ + strcmp(m_pAppName,"Ukui Volume Control App") && !strstr(m_pAppName,"QtPulseAudio") && strcmp(m_pAppName,"ukuimedia-volume-control") != 0 && \ + !strstr(m_pAppName,"ukui-settings-daemon")) { + if G_UNLIKELY (w->control == nullptr) +- return; ++ return; + add_application_control (w, w->control,m_pStreamControlName); + } + } +@@ -1532,7 +1538,7 @@ void DeviceSwitchWidget::add_application_control (DeviceSwitchWidget *w, MateMix + !g_strcmp0 (app_id, "org.PulseAudio.pavucontrol")) + return; + +- QString app_icon_name = mate_mixer_app_info_get_icon(info); ++ const gchar *app_icon_name = mate_mixer_app_info_get_icon(info); + app_name = mate_mixer_app_info_get_name (info); + w->stream_control_list->append(name); + qDebug() << "add application control ,app name :" << app_name ; +@@ -1545,6 +1551,10 @@ void DeviceSwitchWidget::add_application_control (DeviceSwitchWidget *w, MateMix + if (app_name == nullptr) { + return; + } ++ if (strstr(app_icon_name,"recording")) { ++ app_name = "kylin-recorder"; ++ app_icon_name = "kylin-recorder"; ++ } + //添加应用添加到应用音量中 + add_app_to_appwidget(w,app_name,app_icon_name,control); + +@@ -1778,6 +1788,13 @@ void DeviceSwitchWidget::add_app_to_appwidget(DeviceSwitchWidget *w,const gchar + else if (strcmp(app_name,"Clock") == 0) { + app_icon_name = "ukui-clock"; + } ++ else if (strcmp(app_name,"wechat") == 0) { ++ qDebug() << "0000000000000000000"; ++ app_icon_name = "electronic-wechat"; ++ } ++ else if (strcmp(app_name,"Firefox") == 0) { ++ app_icon_name = "firefox"; ++ } + + iconName.append(app_icon_name); + iconName.append(".desktop"); +@@ -1785,7 +1802,8 @@ void DeviceSwitchWidget::add_app_to_appwidget(DeviceSwitchWidget *w,const gchar + QString pAppIcon = w->getAppIcon(iconName); + + w->appWidget->app_volume_list->append(app_icon_name); +- qDebug() << "应用名为:" << pAppName << "desktop 名:" << iconName << "app icon name" << app_icon_name << "app name " << app_name; ++ qDebug() << "应用名为:" << pAppName << "desktop 名:" << iconName << "app icon name" << app_icon_name << "app name " << app_name << mate_mixer_stream_control_get_volume(control) << mate_mixer_stream_control_get_mute(control); ++ + //widget显示应用音量 + QWidget *app_widget = new QWidget(w->appWidget->displayAppVolumeWidget); + app_widget->setFixedSize(306,60); +@@ -1972,6 +1990,7 @@ void DeviceSwitchWidget::add_app_to_appwidget(DeviceSwitchWidget *w,const gchar + else if (w->mThemeName == UKUI_THEME_BLACK || w->mThemeName == "ukui-black" || w->mThemeName == "ukui-default") { + btn->setIcon(QIcon(w->drawLightColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize))))); + } ++ qDebug() << "应用音量更改" << audioIconStr; + Q_EMIT w->app_name_signal(appSliderStr); + }); + /*应用音量同步*/ +@@ -2059,7 +2078,9 @@ void DeviceSwitchWidget::add_app_to_appwidget(DeviceSwitchWidget *w,const gchar + btn->setIcon(QIcon(w->drawLightColoredPixmap((QIcon::fromTheme(audioIconStr).pixmap(iconSize))))); + } + +- QPalette paleteBtn = btn->palette(); ++ qDebug() << "系统音量改变" << volume << muteButtonStr; ++ ++ QPalette paleteBtn = btn->palette(); + paleteBtn.setColor(QPalette::Highlight,Qt::transparent); + paleteBtn.setBrush(QPalette::Button,QBrush(QColor(1,1,1,0))); + btn->setPalette(paleteBtn); +@@ -2128,6 +2149,9 @@ void DeviceSwitchWidget::update_app_volume(MateMixerStreamControl *control, QStr + else if (volume > 66) { + sliderMuteButtonStr = "audio-volume-high-symbolic"; + } ++ ++ qDebug() << "应用音量图标更改:" << sliderMuteButtonStr; ++ + QSize iconSize(24,24); + if ( w->mThemeName == "ukui-white" || w->mThemeName == "ukui-light") { + btn->setIcon(QIcon(w->drawDarkColoredPixmap((QIcon::fromTheme(sliderMuteButtonStr).pixmap(iconSize))))); +@@ -2150,9 +2174,10 @@ void DeviceSwitchWidget::app_volume_mute (MateMixerStreamControl *control, QStri + MateMixerAppInfo *app_info = mate_mixer_stream_control_get_app_info(control); + if (app_info == nullptr) + return; +- /*bool is_mute = mate_mixer_stream_control_get_mute(control);*/ ++ bool is_mute = mate_mixer_stream_control_get_mute(control); + int volume = mate_mixer_stream_control_get_volume(control); + volume = volume*100/65536.0+0.5; ++ qDebug() << "应用音量静音通知" << is_mute; + /*if (is_mute) { + w->appWidget->appMuteBtn->setIcon(QIcon("/usr/share/ukui-media/img/audio-volume-muted.svg")); + } +@@ -2745,6 +2770,15 @@ void DeviceSwitchWidget::on_control_mute_notify (MateMixerStreamControl *control + else if (direction == MATE_MIXER_DIRECTION_INPUT) { + w->updateMicrophoneIcon(volume,mute); + } ++ if (QGSettings::isSchemaInstalled(UKUI_VOLUME_BRIGHTNESS_GSETTING_ID)) { ++ if (w->m_pVolumeSetting->keys().contains("soundstate")) { ++ w->m_pVolumeSetting->blockSignals(true); ++// w->m_pVolumeSetting->set(UKUI_VOLUME_STATE,mute); ++ w->m_pVolumeSetting->blockSignals(false); ++ } ++ } ++ w->themeChangeIcons(); ++ Q_EMIT w->system_muted_signal(mute); + } + + /*! +-- +2.23.0 + diff --git a/0009-repair-the-input-device-is-not-find-of-recorder.patch b/0009-repair-the-input-device-is-not-find-of-recorder.patch new file mode 100644 index 0000000..03e9ec6 --- /dev/null +++ b/0009-repair-the-input-device-is-not-find-of-recorder.patch @@ -0,0 +1,41 @@ +From 1fabf63c4d7d3269120c56229f11d519ef6bc8f8 Mon Sep 17 00:00:00 2001 +From: pei-jiankang +Date: Sun, 26 Sep 2021 14:54:39 +0800 +Subject: [PATCH] repair the input device is not find of recorder + +--- + .../ukmedia_device_switch_widget.cpp | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +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 c074675..8307fc1 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -1416,15 +1416,15 @@ void DeviceSwitchWidget::add_stream (DeviceSwitchWidget *w, MateMixerStream *str + MateMixerStreamControl *c = mate_mixer_stream_get_default_control(stream); + update_input_settings (w,c); + } +- else { +- mate_mixer_context_set_default_input_stream(w->context,stream); +- qDebug() << "add stream set input stream 1" << mate_mixer_stream_get_name(stream); +- bar_set_stream (w, stream); +- name = mate_mixer_stream_get_name (stream); +- label = mate_mixer_stream_get_label (stream); +- qDebug() << "add stream set input stream" << name; +- w->input_stream_list->append(name); +- } ++ // else { ++ // mate_mixer_context_set_default_input_stream(w->context,stream); ++ // qDebug() << "add stream set input stream 1" << mate_mixer_stream_get_name(stream); ++ // bar_set_stream (w, stream); ++ // name = mate_mixer_stream_get_name (stream); ++ // label = mate_mixer_stream_get_label (stream); ++ // qDebug() << "add stream set input stream" << name; ++ // w->input_stream_list->append(name); ++ // } + } + else if (direction == MATE_MIXER_DIRECTION_OUTPUT) { + MateMixerStream *output; +-- +2.30.0 + diff --git a/0010-repair-the-problem-of-adjusting-animation-freeze.patch b/0010-repair-the-problem-of-adjusting-animation-freeze.patch new file mode 100644 index 0000000..4d0bf89 --- /dev/null +++ b/0010-repair-the-problem-of-adjusting-animation-freeze.patch @@ -0,0 +1,90 @@ +From 15c52befc8e1e1baaef19bb7a7f0e77621066708 Mon Sep 17 00:00:00 2001 +From: root +Date: Mon, 27 Sep 2021 15:37:28 +0800 +Subject: [PATCH] repair the problem of adjusting animation freeze + +--- + .../ukmedia_device_switch_widget.cpp | 20 +++++++++---------- + .../ukmedia_device_switch_widget.h | 2 +- + 2 files changed, 11 insertions(+), 11 deletions(-) + +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 8307fc1..bafb4cc 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.cpp +@@ -411,13 +411,13 @@ DeviceSwitchWidget::DeviceSwitchWidget(QWidget *parent) : QWidget (parent) + * \details + * 完整模式下,应用音量节面,当滑动条值改变时更改系统音量 + */ +- // connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT( advancedSystemSliderChangedSlot(int))); ++ connect(appWidget->systemVolumeSlider,SIGNAL(valueChanged(int)),this,SLOT( advancedSystemSliderChangedSlot(int))); + /*! + * \brief + * \details + * 完整模式下,系统音量界面,当滑动条值改变时更改系统音量 + */ +- // connect(devWidget->outputDeviceSlider,SIGNAL(valueChanged(int)),this,SLOT(outputDeviceSliderChangedSlot(int))); ++ connect(devWidget->outputDeviceSlider,SIGNAL(valueChanged(int)),this,SLOT(outputDeviceSliderChangedSlot(int))); + /*! + * \brief + * \details +@@ -2485,7 +2485,7 @@ void DeviceSwitchWidget::update_icon_input (DeviceSwitchWidget *w,MateMixerStrea + * control for the icon */ + control = input; + } +- //show = true; ++ show = TRUE; + + break; + } +@@ -2552,7 +2552,7 @@ void DeviceSwitchWidget::update_icon_output (DeviceSwitchWidget *w,MateMixerCont + QSlider *slider1 = w->miniWidget->findChild(w->outputControlName); + if (slider1 == nullptr) + return; +- w->setVolume = true; ++// w->setVolume = true; + w->devWidget->outputDeviceSlider->setValue(value); + // w->miniWidget->masterVolumeSlider->setValue(value); + w->appWidget->systemVolumeSlider->setValue(value); +@@ -2789,11 +2789,11 @@ void DeviceSwitchWidget::on_control_mute_notify (MateMixerStreamControl *control + void DeviceSwitchWidget::on_stream_control_volume_notify (MateMixerStreamControl *control,GParamSpec *pspec,DeviceSwitchWidget *w) + { + Q_UNUSED(pspec); +- if (w->setVolume == true) { +- w->setVolume = false; +- qDebug() << "123123123123123"; +- return; +- } ++// if (w->setVolume == true) { ++// w->setVolume = false; ++// qDebug() << "123123123123123"; ++// return; ++// } + MateMixerStreamControlFlags flags; + gboolean muted = FALSE; + gdouble decibel = 0.0; +@@ -2842,7 +2842,7 @@ void DeviceSwitchWidget::on_stream_control_volume_notify (MateMixerStreamControl + ca_context_create(&context); + int value = int(volume*100/65536.0 + 0.5); + if (direction == MATE_MIXER_DIRECTION_OUTPUT) { +- w->setVolume = true; ++// w->setVolume = true; + w->devWidget->outputDeviceSlider->setValue(value); + w->appWidget->systemVolumeSlider->setValue(value); + w->miniWidget->masterVolumeSlider->setValue(value); +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 2c9b778..5230000 100755 +--- a/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h ++++ b/ukui-volume-control-applet-qt/ukmedia_device_switch_widget.h +@@ -269,7 +269,7 @@ private: + bool firstEnterSystem = true; + ca_context *caContext; + +- bool setVolume = false; ++// bool setVolume = false; + bool setOutputVolume = false; + bool setInputVolume = false; + +-- +2.30.0 + diff --git a/ukui-media.spec b/ukui-media.spec index f0e00d4..5f192b2 100644 --- a/ukui-media.spec +++ b/ukui-media.spec @@ -1,6 +1,6 @@ Name: ukui-media Version: 3.0.2 -Release: 2 +Release: 12 Summary: UKUI media utilities License: GPL-2+ GPL-3+ LGPL-2+ BSD-3-Clause URL: http://www.ukui.org @@ -33,6 +33,15 @@ Requires: ukui-media-common = %{version} 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 +patch3: 0004-update-gsetting.patch +patch4: 0005-Solve-the-problem-of-adjusting-animation-freeze.patch +patch5: 0006-fix-the-slider-to-adjust-the-microphone-volume.patch +patch6: 0007-fix-probabilistic-crash-when-keyboard-keys-are-mute.patch +patch7: 0008-Set-the-app-name-and-icon-for-Kirin-Recording.patch +patch8: 0009-repair-the-input-device-is-not-find-of-recorder.patch +patch9: 0010-repair-the-problem-of-adjusting-animation-freeze.patch %description A simple and lightweight screensaver written by Qt5. @@ -51,6 +60,15 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %prep %setup -q %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 %build ./autogen.sh --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64 @@ -112,13 +130,43 @@ glib-compile-schemas /usr/share/glib-2.0/schemas/ %{_datadir}/glib-2.0/ %changelog +* Mon Sep 27 2021 peijiankang - 3.0.2-12 +- repair the problem of adjusting animation freeze + +* Sun Sep 26 2021 peijiankang - 3.0.2-11 +- return version to 3.0.2-2 + +* Sun Sep 26 2021 peijiankang - 3.0.2-10 +- repair the input device is not find of recorder + +* Wed Jul 14 2021 tanyulong - 3.0.2-9 +- Set the app name and icon for Kirin Recording + +* Tue Jul 13 2021 tanyulong - 3.0.2-8 +- fix probabilistic crash when keyboard keys are mute + +* Mon Jul 12 2021 tanyulong - 3.0.2-7 +- Solve the problem of dragging the slider to adjust the microphone volume + +* Mon Jul 12 2021 tanyulong - 3.0.2-6 +- Solve the problem of adjusting animation freeze to adjust the sound + +* Fri Jul 9 2021 tanyulong - 3.0.2-5 +- update gsetting add org.ukui.sound.gschema.xml + +* Fri Jul 9 2021 tanyulong - 3.0.2-4 +- Add a detection mechanism to terminate when PulseAudio exits abnormally + +* Thu Jul 8 2021 tanyulong - 3.0.2-3 +- Fix the right menu without frosted glass + * Mon Dec 7 2020 lvhan - 3.0.2-2 - fix vol icon bug * Mon Oct 26 2020 douyan - 3.0.2-1 - update to upstream version 3.0.1-1+1026 -* Wen Sep 14 2020 douyan - 2.0.4-1 +* Mon Sep 14 2020 douyan - 2.0.4-1 - update to upstream version 2.0.4-2+0806 * Thu Jul 9 2020 douyan - 2.0.3-1