Compare commits

..

No commits in common. "c8s" and "c9s" have entirely different histories.
c8s ... c9s

6 changed files with 387 additions and 48 deletions

5
.gitignore vendored
View File

@ -1,2 +1,5 @@
SOURCES/pavucontrol-3.0.tar.xz
pavucontrol-0.9.10.tar.gz
/pavucontrol-1.0.tar.xz
/pavucontrol-2.0.tar.xz
/pavucontrol-3.0.tar.xz
/pavucontrol-4.0.tar.xz

View File

@ -1,34 +0,0 @@
From bd76be12abfff4427231567404b41843417e6332 Mon Sep 17 00:00:00 2001
From: "Paul W. Frields" <stickster@gmail.com>
Date: Fri, 31 Jul 2015 15:36:14 -0400
Subject: [PATCH] Use freedesktop.org standard icon name
---
src/pavucontrol.glade | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
index 219f5a2..5efd4b3 100644
--- a/src/pavucontrol.glade
+++ b/src/pavucontrol.glade
@@ -312,7 +312,7 @@
<object class="GtkImage" id="image18">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="icon_name">stock_lock</property>
+ <property name="icon_name">security-medium</property>
<property name="icon-size">1</property>
</object>
</child>
@@ -1474,7 +1474,7 @@
<object class="GtkImage" id="image18">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="icon_name">stock_lock</property>
+ <property name="icon_name">security-medium</property>
<property name="icon-size">1</property>
</object>
</child>
--
2.4.3

333
31.patch Normal file
View File

@ -0,0 +1,333 @@
From 9c4870b066999248b679b518f43b19a2065cdf40 Mon Sep 17 00:00:00 2001
From: Felipe Sateler <fsateler@gmail.com>
Date: Sat, 28 Dec 2019 12:39:38 -0300
Subject: [PATCH] Migrate away from deprecated Gtk interfaces
This was accomplished by building with -DGTKMM_DISABLE_DEPRECATED.
---
configure.ac | 2 +-
src/channelwidget.h | 2 +-
src/devicewidget.cc | 6 +++---
src/mainwindow.cc | 12 ++++++------
src/pavuapplication.cc | 22 +++++++++++++++-------
src/pavuapplication.h | 2 ++
src/pavucontrol.cc | 7 ++++---
src/pavucontrol.glade | 25 +++++++++++++------------
src/sinkwidget.h | 2 +-
src/streamwidget.cc | 2 +-
10 files changed, 47 insertions(+), 35 deletions(-)
diff --git a/configure.ac b/configure.ac
index 33514b2..d63bb39 100644
--- a/configure.ac
+++ b/configure.ac
@@ -41,7 +41,7 @@ AC_TYPE_SIGNAL
AC_HEADER_STDC
AX_CXX_COMPILE_STDCXX_11
-PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.0 sigc++-2.0 libcanberra-gtk3 >= 0.16 ])
+PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 libcanberra-gtk3 >= 0.16 ])
AC_SUBST(GUILIBS_CFLAGS)
AC_SUBST(GUILIBS_LIBS)
diff --git a/src/channelwidget.h b/src/channelwidget.h
index c9c5c9d..6216b74 100644
--- a/src/channelwidget.h
+++ b/src/channelwidget.h
@@ -38,7 +38,7 @@ public:
Gtk::Label *channelLabel;
Gtk::Label *volumeLabel;
- Gtk::HScale *volumeScale;
+ Gtk::Scale *volumeScale;
int channel;
MinimalStreamWidget *minimalStreamWidget;
diff --git a/src/devicewidget.cc b/src/devicewidget.cc
index e1b1869..dd41487 100644
--- a/src/devicewidget.cc
+++ b/src/devicewidget.cc
@@ -227,7 +227,7 @@ void DeviceWidget::prepareMenu() {
bool DeviceWidget::onContextTriggerEvent(GdkEventButton* event) {
if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
- contextMenu.popup(event->button, event->time);
+ contextMenu.popup_at_pointer((GdkEvent*)event);
return true;
}
@@ -259,8 +259,8 @@ void DeviceWidget::renamePopup() {
x->get_widget("renameText", renameText);
renameText->set_text(description);
- dialog->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
- dialog->add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
+ dialog->add_button("_Cancel", Gtk::RESPONSE_CANCEL);
+ dialog->add_button("_OK", Gtk::RESPONSE_OK);
dialog->set_default_response(Gtk::RESPONSE_OK);
if (Gtk::RESPONSE_OK == dialog->run()) {
pa_operation* o;
diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 09dc783..bda5d2e 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -95,11 +95,11 @@ MainWindow::MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
x->get_widget("notebook", notebook);
x->get_widget("showVolumeMetersCheckButton", showVolumeMetersCheckButton);
- cardsVBox->set_reallocate_redraws(true);
- sourcesVBox->set_reallocate_redraws(true);
- streamsVBox->set_reallocate_redraws(true);
- recsVBox->set_reallocate_redraws(true);
- sinksVBox->set_reallocate_redraws(true);
+ sourcesVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sourcesVBox->queue_draw(); });
+ cardsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ cardsVBox->queue_draw(); });
+ streamsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ streamsVBox->queue_draw(); });
+ recsVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ recsVBox->queue_draw(); });
+ sinksVBox->signal_size_allocate().connect([this](Gdk::Rectangle _unused){ sinksVBox->queue_draw(); });
sinkInputTypeComboBox->set_active((int) showSinkInputType);
sourceOutputTypeComboBox->set_active((int) showSourceOutputType);
@@ -221,7 +221,7 @@ bool MainWindow::on_key_press_event(GdkEventKey* event) {
case GDK_KEY_Q:
case GDK_KEY_w:
case GDK_KEY_q:
- Gtk::Main::quit();
+ this->get_application()->quit();
return true;
}
}
diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
index e8520ec..6773b53 100644
--- a/src/pavuapplication.cc
+++ b/src/pavuapplication.cc
@@ -30,6 +30,14 @@
#include "pavucontrol.h"
#include "mainwindow.h"
+static PavuApplication globalInstance;
+
+PavuApplication&
+PavuApplication::get_instance()
+{
+ return globalInstance;
+}
+
PavuApplication::PavuApplication() :
Gtk::Application("org.pulseaudio.pavucontrol", Gio::ApplicationFlags::APPLICATION_HANDLES_COMMAND_LINE),
mainWindow(NULL),
@@ -143,26 +151,26 @@ int main(int argc, char *argv[]) {
signal(SIGPIPE, SIG_IGN);
/* Create the application */
- auto app = PavuApplication();
+ globalInstance = PavuApplication();
/* Add command-line options */
- app.add_main_option_entry(
+ globalInstance.add_main_option_entry(
Gio::Application::OptionType::OPTION_TYPE_INT,
"tab", 't',
_("Select a specific tab on load."),
_("number"));
- app.add_main_option_entry(
+ globalInstance.add_main_option_entry(
Gio::Application::OptionType::OPTION_TYPE_BOOL,
"retry", 'r',
_("Retry forever if pa quits (every 5 seconds)."));
- app.add_main_option_entry(
+ globalInstance.add_main_option_entry(
Gio::Application::OptionType::OPTION_TYPE_BOOL,
"maximize", 'm',
_("Maximize the window."));
- app.add_main_option_entry(
+ globalInstance.add_main_option_entry(
Gio::Application::OptionType::OPTION_TYPE_BOOL,
"version", 'v',
_("Show version."));
@@ -170,7 +178,7 @@ int main(int argc, char *argv[]) {
/* Connect to the "on_command_line" signal which is fired
* when the application receives command-line arguments
*/
- app.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &app), false);
+ globalInstance.signal_command_line().connect(sigc::bind(sigc::ptr_fun(&on_command_line), &globalInstance), false);
/* Run the application.
* In the first launched instance, this will return when its window is
@@ -179,5 +187,5 @@ int main(int argc, char *argv[]) {
* Handling a new request consists of presenting the existing window (and
* optionally, select a tab).
*/
- return app.run(argc, argv);
+ return globalInstance.run(argc, argv);
}
diff --git a/src/pavuapplication.h b/src/pavuapplication.h
index 3589c5d..d2a1f5a 100644
--- a/src/pavuapplication.h
+++ b/src/pavuapplication.h
@@ -37,6 +37,8 @@ public:
gint32 tab;
bool version;
+ static PavuApplication& get_instance();
+
protected:
// Override default signal handlers:
void on_activate() override;
diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
index 6981707..2ce95b0 100644
--- a/src/pavucontrol.cc
+++ b/src/pavucontrol.cc
@@ -40,6 +40,7 @@
#include "sourceoutputwidget.h"
#include "rolewidget.h"
#include "mainwindow.h"
+#include "pavuapplication.h"
static pa_context* context = NULL;
static pa_mainloop_api* api = NULL;
@@ -56,7 +57,7 @@ void show_error(const char *txt) {
Gtk::MessageDialog dialog(buf, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_CLOSE, true);
dialog.run();
- Gtk::Main::quit();
+ PavuApplication::get_instance().quit();
}
static void dec_outstanding(MainWindow *w) {
@@ -571,7 +572,7 @@ void context_state_callback(pa_context *c, void *userdata) {
case PA_CONTEXT_TERMINATED:
default:
- Gtk::Main::quit();
+ w->get_application()->quit();
return;
}
}
@@ -613,7 +614,7 @@ gboolean connect_to_pulse(gpointer userdata) {
else {
if(!retry) {
reconnect_timeout = -1;
- Gtk::Main::quit();
+ w->get_application()->quit();
} else {
g_debug(_("Connection failed, attempting reconnect"));
reconnect_timeout = 5;
diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
index fe6c635..ef71204 100644
--- a/src/pavucontrol.glade
+++ b/src/pavucontrol.glade
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.0"/>
<object class="GtkAdjustment" id="adjustment1">
@@ -425,10 +426,10 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkTable" id="encodingSelect">
+ <object class="GtkGrid" id="encodingSelect">
<property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="n_columns">3</property>
+ <property name="row_homogeneous">True</property>
+ <property name="column_homogeneous">True</property>
<child>
<object class="GtkCheckButton" id="encodingFormatPCM">
<property name="label" translatable="yes">PCM</property>
@@ -439,6 +440,10 @@
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
</child>
<child>
<object class="GtkCheckButton" id="encodingFormatAC3">
@@ -450,7 +455,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -462,8 +467,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -475,8 +480,8 @@
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
</packing>
</child>
<child>
@@ -489,9 +494,7 @@
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">2</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
<child>
@@ -504,9 +507,7 @@
</object>
<packing>
<property name="left_attach">2</property>
- <property name="right_attach">3</property>
<property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
</packing>
</child>
</object>
diff --git a/src/sinkwidget.h b/src/sinkwidget.h
index 0044ffc..924fca0 100644
--- a/src/sinkwidget.h
+++ b/src/sinkwidget.h
@@ -46,7 +46,7 @@ public:
#if HAVE_EXT_DEVICE_RESTORE_API
encodingList encodings[PAVU_NUM_ENCODINGS];
- Gtk::Table *encodingSelect;
+ Gtk::Grid *encodingSelect;
#endif
virtual void onMuteToggleButton();
diff --git a/src/streamwidget.cc b/src/streamwidget.cc
index 00df09f..d203b20 100644
--- a/src/streamwidget.cc
+++ b/src/streamwidget.cc
@@ -66,7 +66,7 @@ void StreamWidget::init(MainWindow* mainWindow) {
bool StreamWidget::onContextTriggerEvent(GdkEventButton* event) {
if (GDK_BUTTON_PRESS == event->type && 3 == event->button) {
- contextMenu.popup(event->button, event->time);
+ contextMenu.popup_at_pointer((GdkEvent*)event);
return true;
}
return false;
--
2.26.2

View File

@ -1,6 +1,6 @@
--- !Policy
product_versions:
- rhel-8
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}

View File

@ -1,15 +1,15 @@
Name: pavucontrol
Version: 3.0
Release: 11%{?dist}
Version: 4.0
Release: 8%{?dist}
Summary: Volume control for PulseAudio
Group: Applications/Multimedia
License: GPLv2+
URL: http://freedesktop.org/software/pulseaudio/%{name}
Source0: http://freedesktop.org/software/pulseaudio/%{name}/%{name}-%{version}.tar.xz
# Fix icons with adwaita-icon-theme
Patch0: 0001-Use-freedesktop.org-standard-icon-name.patch
Patch0: 31.patch
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: pulseaudio-libs-devel >= 3.0
BuildRequires: gtkmm30-devel
BuildRequires: libsigc++20-devel lynx
@ -24,16 +24,16 @@ tools this one allows you to control both the volume of hardware devices and
of each playback stream separately.
%prep
%setup -q
%patch0 -p1
%autosetup -p1
%build
%configure
make V=1 %{?_smp_mflags}
%configure \
--disable-silent-rules
%make_build V=1
%install
rm -rf $RPM_BUILD_ROOT
make V=1 install DESTDIR=$RPM_BUILD_ROOT
%make_install V=1
rm $RPM_BUILD_ROOT/usr/share/doc/pavucontrol/README
rm $RPM_BUILD_ROOT/usr/share/doc/pavucontrol/README.html
@ -52,6 +52,43 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/pavucontrol.deskto
%{_datadir}/applications/pavucontrol.desktop
%changelog
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 4.0-8
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 4.0-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sat Jun 13 2020 Julian Sikorski <belegdol@fedoraproject.org> - 4.0-4
- Fix crash on Ctrl-Q using a patch from upstream gitlab (RH #1725150)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Mar 05 2019 Kalev Lember <klember@redhat.com> - 4.0-1
- Update to 4.0
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Mar 07 2018 Rex Dieter <rdieter@fedoraproject.org> - 3.0-12
- BR: gcc-c++
- .spec cosmetics
- %%build: --disable-silent-rules
- use %%make_build %%make_install
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (pavucontrol-3.0.tar.xz) = 3562fc50e5f60c6b6280c2d524e13cf44114bf481e5ec98b8714c7c2f162d0332179ebcf4c5a78d86f511de857bdc3aa7415e1548e0c10d4582b5958c4cacae9
SHA512 (pavucontrol-4.0.tar.xz) = eaea303c46ddb36733aed88c8a603907d70e4539c345d8acec23527d3306ee21ae630c0508bdab6ae52cbc2f1eb8fc4b212abda72876dc92e83fba7ceb623be2