Compare commits

...

No commits in common. 'c9' and 'c10-beta' have entirely different histories.
c9 ... c10-beta

2
.gitignore vendored

@ -1 +1 @@
SOURCES/pavucontrol-4.0.tar.xz
SOURCES/pavucontrol-6.0.tar.xz

@ -1 +1 @@
9db2fb0f10f481730a0da3d7b85d2982966d67e4 SOURCES/pavucontrol-4.0.tar.xz
b41b916433670c2b1b93d3493af97a7f495944a8 SOURCES/pavucontrol-6.0.tar.xz

@ -1,333 +0,0 @@
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

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2019 Endless Mobile -->
<component type="desktop-application">
<id>org.pulseaudio.pavucontrol</id>
<translation type="gettext">pavucontrol</translation>
<launchable type="desktop-id">pavucontrol.desktop</launchable>
<name>PulseAudio Volume Control</name>
<summary>Adjust the volume level of hardware devices and applications</summary>
<description>
<p>PulseAudio Volume Control (pavucontrol) is a volume control tool (“mixer”) for the PulseAudio sound server. In contrast to classic mixer tools, this one allows you to control both the volume of hardware devices and of each playback stream separately.</p>
</description>
<provides>
<id>pavucontrol.desktop</id>
</provides>
<screenshots>
<screenshot type="default">
<caption>The “Playback” tab</caption>
<image type="source" width="1600" height="900">https://freedesktop.org/software/pulseaudio/pavucontrol/screenshots/pavucontrol-playback.png</image>
</screenshot>
<screenshot>
<caption>The “Recording” tab</caption>
<image type="source" width="1600" height="900">https://freedesktop.org/software/pulseaudio/pavucontrol/screenshots/pavucontrol-record.png</image>
</screenshot>
<screenshot>
<caption>The “Output” tab</caption>
<image type="source" width="1600" height="900">https://freedesktop.org/software/pulseaudio/pavucontrol/screenshots/pavucontrol-output.png</image>
</screenshot>
<screenshot>
<caption>The “Input” tab</caption>
<image type="source" width="1600" height="900">https://freedesktop.org/software/pulseaudio/pavucontrol/screenshots/pavucontrol-input.png</image>
</screenshot>
<screenshot>
<caption>The “Configuration” tab</caption>
<image type="source" width="1600" height="900">https://freedesktop.org/software/pulseaudio/pavucontrol/screenshots/pavucontrol-config.png</image>
</screenshot>
</screenshots>
<content_rating type="oars-1.1"/>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<url type="homepage">https://freedesktop.org/software/pulseaudio/pavucontrol/</url>
<url type="bugtracker">https://gitlab.freedesktop.org/pulseaudio/pavucontrol/issues</url>
<update_contact>https://gitlab.freedesktop.org/pulseaudio/pavucontrol/issues/new</update_contact>
</component>

@ -1,21 +1,33 @@
## START: Set by rpmautospec
## (rpmautospec version 0.6.1)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 3;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
Name: pavucontrol
Version: 4.0
Release: 8%{?dist}
Version: 6.0
Release: %autorelease
Summary: Volume control for PulseAudio
License: GPLv2+
License: GPL-2.0-or-later
URL: http://freedesktop.org/software/pulseaudio/%{name}
Source0: http://freedesktop.org/software/pulseaudio/%{name}/%{name}-%{version}.tar.xz
Patch0: 31.patch
Source1: org.pulseaudio.pavucontrol.appdata.xml
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: pulseaudio-libs-devel >= 3.0
BuildRequires: gtkmm30-devel
BuildRequires: libsigc++20-devel lynx
BuildRequires: desktop-file-utils
BuildRequires: libcanberra-devel
BuildRequires: intltool
BuildRequires: libappstream-glib
BuildRequires: gcc-c++
BuildRequires: gettext
BuildRequires: meson >= 0.59.0
BuildRequires: lynx
BuildRequires: pkgconfig(gtkmm-4.0)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libpulse-mainloop-glib)
BuildRequires: pkgconfig(sigc++-2.0)
%description
PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control
@ -27,37 +39,63 @@ of each playback stream separately.
%autosetup -p1
%build
%configure \
--disable-silent-rules
%make_build V=1
%meson
%meson_build
%install
%make_install V=1
%meson_install
rm $RPM_BUILD_ROOT/usr/share/doc/pavucontrol/README
rm $RPM_BUILD_ROOT/usr/share/doc/pavucontrol/README.html
rm $RPM_BUILD_ROOT/usr/share/doc/pavucontrol/style.css
rm -f $RPM_BUILD_ROOT%{_docdir}/pavucontrol/README.html
rm -f $RPM_BUILD_ROOT%{_docdir}/pavucontrol/style.css
%find_lang %{name}
mkdir -p $RPM_BUILD_ROOT%{_metainfodir}
install -pm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_metainfodir}/
%check
desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/pavucontrol.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/org.pulseaudio.pavucontrol.desktop
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.pulseaudio.pavucontrol.appdata.xml
%files -f %{name}.lang
%license LICENSE
%doc doc/README
%{_bindir}/pavucontrol
%{_datadir}/pavucontrol
%{_datadir}/applications/pavucontrol.desktop
%{_datadir}/applications/org.pulseaudio.pavucontrol.desktop
%{_metainfodir}/org.pulseaudio.pavucontrol.appdata.xml
%{_metainfodir}/org.pulseaudio.pavucontrol.metainfo.xml
%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
## START: Generated by rpmautospec
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 6.0-3
- Bump release for June 2024 mass rebuild
* Thu May 30 2024 Tomas Pelka <tpelka@redhat.com> - 6.0-2
- Add gating.yaml via API
* Fri May 24 2024 Wim Taymans <wtaymans@redhat.com> - 6.0-1
- upgrade to 6.0
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 4.0-7
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 03 2024 Niels De Graef <ndegraef@redhat.com> - 5.0-10
- SPDX Migration
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
@ -259,3 +297,5 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/pavucontrol.deskto
* Mon May 29 2006 Pierre Ossman <drzeus@drzeus.cx> 0.9.0-1
- Initial package for Fedora Extras
## END: Generated by rpmautospec

Loading…
Cancel
Save