Compare commits
No commits in common. 'c9' and 'i10c-beta' have entirely different histories.
@ -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>
|
Loading…
Reference in new issue