diff options
author | Hong Jen Yee (PCMan) | 2016-09-01 16:10:46 +0200 |
---|---|---|
committer | Hong Jen Yee (PCMan) | 2016-09-01 16:10:46 +0200 |
commit | d31a1f4ad75293e5d0acadd9b8b6126d07d8b4b7 (patch) | |
tree | a2f9d7df575fb43d9bf7f50e808d30694f552183 | |
parent | Fix translations. (diff) | |
download | pavucontrol-slx-d31a1f4ad75293e5d0acadd9b8b6126d07d8b4b7.tar.gz pavucontrol-slx-d31a1f4ad75293e5d0acadd9b8b6126d07d8b4b7.tar.xz pavucontrol-slx-d31a1f4ad75293e5d0acadd9b8b6126d07d8b4b7.zip |
Remove glibmm dependency.
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/cardwidget.cc | 4 | ||||
-rw-r--r-- | src/cardwidget.h | 14 | ||||
-rw-r--r-- | src/devicewidget.cc | 17 | ||||
-rw-r--r-- | src/devicewidget.h | 12 | ||||
-rw-r--r-- | src/mainwindow.cc | 26 | ||||
-rw-r--r-- | src/mainwindow.h | 2 | ||||
-rw-r--r-- | src/pavucontrol.cc | 47 | ||||
-rw-r--r-- | src/pavucontrol.h | 10 | ||||
-rw-r--r-- | src/rolewidget.cc | 4 | ||||
-rw-r--r-- | src/rolewidget.h | 4 | ||||
-rw-r--r-- | src/sinkinputwidget.cc | 4 | ||||
-rw-r--r-- | src/sinkwidget.cc | 2 | ||||
-rw-r--r-- | src/sourceoutputwidget.cc | 4 | ||||
-rw-r--r-- | src/sourcewidget.cc | 2 |
15 files changed, 67 insertions, 86 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c97811..a8a1109 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,6 @@ pkg_check_modules( pkg_check_modules( GLIB REQUIRED glib-2.0 - glibmm-2.4 # c++ binding for glib ) add_subdirectory(src) diff --git a/src/cardwidget.cc b/src/cardwidget.cc index 8406bfa..874fd56 100644 --- a/src/cardwidget.cc +++ b/src/cardwidget.cc @@ -40,8 +40,8 @@ void CardWidget::prepareMenu() { /* Fill the ComboBox */ for (uint32_t i = 0; i < profiles.size(); ++i) { const auto& profile = profiles[i]; - QByteArray name = profile.first.c_str(); - QString desc = QString::fromUtf8(profile.second.c_str()); + QByteArray name = profile.first; + QString desc = QString::fromUtf8(profile.second); profileList->addItem(desc, name); if (profile.first == activeProfile) active_idx = idx; diff --git a/src/cardwidget.h b/src/cardwidget.h index 81fc7be..4fbefd3 100644 --- a/src/cardwidget.h +++ b/src/cardwidget.h @@ -27,13 +27,13 @@ class PortInfo { public: - Glib::ustring name; - Glib::ustring description; + QByteArray name; + QByteArray description; uint32_t priority; int available; int direction; int64_t latency_offset; - std::vector<Glib::ustring> profiles; + std::vector<QByteArray> profiles; }; class CardWidget : public QWidget, public Ui::CardWidget { @@ -41,13 +41,13 @@ class CardWidget : public QWidget, public Ui::CardWidget { public: CardWidget(QWidget *parent = nullptr); - Glib::ustring name; + QByteArray name; uint32_t index; bool updating; - std::vector< std::pair<Glib::ustring,Glib::ustring> > profiles; - std::map<Glib::ustring, PortInfo> ports; - Glib::ustring activeProfile; + std::vector< std::pair<QByteArray,QByteArray> > profiles; + std::map<QByteArray, PortInfo> ports; + QByteArray activeProfile; bool hasSinks; bool hasSources; diff --git a/src/devicewidget.cc b/src/devicewidget.cc index eecc37d..da086e2 100644 --- a/src/devicewidget.cc +++ b/src/devicewidget.cc @@ -27,9 +27,10 @@ #include "mainwindow.h" #include "devicewidget.h" #include "channelwidget.h" +#include <sstream> /*** DeviceWidget ***/ -DeviceWidget::DeviceWidget(MainWindow* parent, Glib::ustring deviceType) : +DeviceWidget::DeviceWidget(MainWindow* parent, QByteArray deviceType) : MinimalStreamWidget(parent), mpMainWindow(parent), mDeviceType(deviceType), @@ -141,17 +142,17 @@ void DeviceWidget::onOffsetChange() { pa_operation *o; int64_t offset; std::ostringstream card_stream; - Glib::ustring card_name; + QByteArray card_name; if (!offsetButtonEnabled) return; offset = offsetButton->value() * 1000.0; card_stream << card_index; - card_name = card_stream.str(); + card_name = QByteArray::fromStdString(card_stream.str()); if (!(o = pa_context_set_port_latency_offset(get_context(), - card_name.c_str(), activePort.c_str(), offset, NULL, NULL))) { + card_name, activePort, offset, NULL, NULL))) { show_error(tr("pa_context_set_port_latency_offset() failed").toUtf8().constData()); return; } @@ -191,8 +192,8 @@ void DeviceWidget::prepareMenu() { portList->clear(); /* Fill the ComboBox's Model */ for (uint32_t i = 0; i < ports.size(); ++i) { - QByteArray name = ports[i].first.c_str(); - QString desc = ports[i].second.c_str(); + QByteArray name = ports[i].first; + QString desc = ports[i].second; portList->addItem(desc, name); if (ports[i].first == activePort) active_idx = idx; @@ -261,9 +262,9 @@ void DeviceWidget::renamePopup() { dialog->set_default_response(Gtk::RESPONSE_OK); if (Gtk::RESPONSE_OK == dialog->run()) { pa_operation* o; - gchar *key = g_markup_printf_escaped("%s:%s", mDeviceType.c_str(), name.c_str()); + gchar *key = g_markup_printf_escaped("%s:%s", mDeviceType, name); - if (!(o = pa_ext_device_manager_set_device_description(get_context(), key, renameText->get_text().c_str(), NULL, NULL))) { + if (!(o = pa_ext_device_manager_set_device_description(get_context(), key, renameText->get_text(), NULL, NULL))) { show_error(tr("pa_ext_device_manager_write() failed").toUtf8().constData()); return; } diff --git a/src/devicewidget.h b/src/devicewidget.h index 918d4ab..ba8bcea 100644 --- a/src/devicewidget.h +++ b/src/devicewidget.h @@ -34,7 +34,7 @@ class ChannelWidget; class DeviceWidget : public MinimalStreamWidget, public Ui::DeviceWidget { Q_OBJECT public: - DeviceWidget(MainWindow *parent, Glib::ustring deviceType = ""); + DeviceWidget(MainWindow *parent, QByteArray deviceType = ""); void setChannelMap(const pa_channel_map &m, bool can_decibel); void setVolume(const pa_cvolume &volume, bool force = false); @@ -42,8 +42,8 @@ public: void hideLockedChannels(bool hide = true); - Glib::ustring name; - Glib::ustring description; + QByteArray name; + QByteArray description; uint32_t index, card_index; bool offsetButtonEnabled; @@ -69,8 +69,8 @@ public: virtual void executeVolumeUpdate(); virtual void setBaseVolume(pa_volume_t v); - std::vector< std::pair<Glib::ustring,Glib::ustring> > ports; - Glib::ustring activePort; + std::vector< std::pair<QByteArray,QByteArray> > ports; + QByteArray activePort; void prepareMenu(); @@ -85,7 +85,7 @@ protected: // Gtk::MenuItem rename; private: - Glib::ustring mDeviceType; + QByteArray mDeviceType; }; diff --git a/src/mainwindow.cc b/src/mainwindow.cc index baba6a6..b8bf1a2 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -243,12 +243,12 @@ finish: } class DeviceWidget; -static void updatePorts(DeviceWidget *w, std::map<Glib::ustring, PortInfo> &ports) { - std::map<Glib::ustring, PortInfo>::iterator it; +static void updatePorts(DeviceWidget *w, std::map<QByteArray, PortInfo> &ports) { + std::map<QByteArray, PortInfo>::iterator it; PortInfo p; for (uint32_t i = 0; i < w->ports.size(); i++) { - Glib::ustring desc; + QByteArray desc; it = ports.find(w->ports[i].first); if (it == ports.end()) @@ -304,7 +304,7 @@ void MainWindow::updateCard(const pa_card_info &info) { description = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_DESCRIPTION); w->name = description ? description : info.name; - w->nameLabel->setText(QString::fromUtf8(w->name.c_str())); + w->nameLabel->setText(w->name); icon = pa_proplist_gets(info.proplist, PA_PROP_DEVICE_ICON_NAME); setIconByName(w->iconImage, icon ? icon : "audio-card"); @@ -336,8 +336,8 @@ void MainWindow::updateCard(const pa_card_info &info) { w->profiles.clear(); for (std::set<pa_card_profile_info2>::iterator profileIt = profile_priorities.begin(); profileIt != profile_priorities.end(); ++profileIt) { bool hasNo = false, hasOther = false; - std::map<Glib::ustring, PortInfo>::iterator portIt; - Glib::ustring desc = profileIt->description; + std::map<QByteArray, PortInfo>::iterator portIt; + QByteArray desc = profileIt->description; for (portIt = w->ports.begin(); portIt != w->ports.end(); portIt++) { PortInfo port = portIt->second; @@ -358,7 +358,7 @@ void MainWindow::updateCard(const pa_card_info &info) { if (!profileIt->available) desc += tr(" (unavailable)").toUtf8().constData(); - w->profiles.push_back(std::pair<Glib::ustring,Glib::ustring>(profileIt->name, desc)); + w->profiles.push_back(std::pair<QByteArray,QByteArray>(profileIt->name, desc)); } w->activeProfile = info.active_profile ? info.active_profile->name : ""; @@ -448,12 +448,12 @@ bool MainWindow::updateSink(const pa_sink_info &info) { port_priorities.insert(*info.ports[i]); } - std::vector< std::pair<Glib::ustring,Glib::ustring> > old_ports; + std::vector< std::pair<QByteArray,QByteArray> > old_ports; old_ports.swap(w->ports); std::stable_sort(old_ports.begin(), old_ports.end()); // w->ports.clear(); for (std::set<pa_sink_port_info>::iterator i = port_priorities.begin(); i != port_priorities.end(); ++i) - w->ports.push_back(std::pair<Glib::ustring,Glib::ustring>(i->name, i->description)); + w->ports.push_back(std::pair<QByteArray,QByteArray>(i->name, i->description)); std::stable_sort(w->ports.begin(), w->ports.end()); // check if the list is really changed // FIXME: this is inefficient. Fix it later. @@ -625,12 +625,12 @@ void MainWindow::updateSource(const pa_source_info &info) { } - std::vector< std::pair<Glib::ustring,Glib::ustring> > old_ports; + std::vector< std::pair<QByteArray,QByteArray> > old_ports; old_ports.swap(w->ports); std::stable_sort(old_ports.begin(), old_ports.end()); // w->ports.clear(); for (std::set<pa_source_port_info>::iterator i = port_priorities.begin(); i != port_priorities.end(); ++i) - w->ports.push_back(std::pair<Glib::ustring,Glib::ustring>(i->name, i->description)); + w->ports.push_back(std::pair<QByteArray,QByteArray>(i->name, i->description)); std::stable_sort(w->ports.begin(), w->ports.end()); // check if the list is really changed // FIXME: this is inefficient. Fix it later. @@ -1203,13 +1203,13 @@ void MainWindow::removeAllWidgets() { } void MainWindow::setConnectingMessage(const char *string) { - Glib::ustring markup = "<i>"; + QByteArray markup = "<i>"; if (!string) markup += tr("Establishing connection to PulseAudio. Please wait...").toUtf8().constData(); else markup += string; markup += "</i>"; - connectingLabel->setText(QString::fromUtf8(markup.c_str())); + connectingLabel->setText(QString::fromUtf8(markup)); } void MainWindow::onSinkTypeComboBoxChanged(int index) { diff --git a/src/mainwindow.h b/src/mainwindow.h index fe67de6..8ad454c 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -100,7 +100,7 @@ public: bool createEventRoleWidget(); void deleteEventRoleWidget(); - Glib::ustring defaultSinkName, defaultSourceName; + QByteArray defaultSinkName, defaultSourceName; bool canRenameDevices; diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc index cc0ce4c..127edcd 100644 --- a/src/pavucontrol.cc +++ b/src/pavucontrol.cc @@ -47,6 +47,8 @@ #include <QLocale> #include <QLibraryInfo> #include <QTranslator> +#include <QCommandLineParser> +#include <QCommandLineOption> static pa_context* context = NULL; static pa_mainloop_api* api = NULL; @@ -651,47 +653,34 @@ int main(int argc, char *argv[]) { qApp->installTranslator(&qtTranslator); QTranslator appTranslator; - qDebug(PAVUCONTROL_QT_DATA_DIR "/translations"); if(appTranslator.load("pavucontrol-qt_" + locale, PAVUCONTROL_QT_DATA_DIR "/translations")) qApp->installTranslator(&appTranslator); - Glib::OptionContext options; - options.set_summary("PulseAudio Volume Control"); - options.set_help_enabled(); + QCommandLineParser parser; + parser.setApplicationDescription(QObject::tr("PulseAudio Volume Control")); + parser.addHelpOption(); - Glib::OptionGroup group("pulseaudio", "PAVUControl"); + QCommandLineOption tabOption(QStringList() << "tab" << "t", QObject::tr("Select a specific tab on load."), "tab"); + parser.addOption(tabOption); - Glib::OptionEntry entry; - entry.set_long_name("tab"); - entry.set_short_name('t'); - entry.set_description(QObject::tr("Select a specific tab on load.").toUtf8().constData()); - group.add_entry(entry, default_tab); + QCommandLineOption retryOption(QStringList() << "retry" << "r", QObject::tr("Retry forever if pa quits (every 5 seconds).")); + parser.addOption(retryOption); - Glib::OptionEntry entry2; - entry2.set_long_name("retry"); - entry2.set_short_name('r'); - entry2.set_description(QObject::tr("Retry forever if pa quits (every 5 seconds).").toUtf8().constData()); - group.add_entry(entry2, retry); + QCommandLineOption maximizeOption(QStringList() << "maximize" << "m", QObject::tr("Maximize the window.")); + parser.addOption(maximizeOption); - bool maximize = false; - Glib::OptionEntry entry3; - entry3.set_long_name("maximize"); - entry3.set_short_name('m'); - entry3.set_description(QObject::tr("Maximize the window.").toUtf8().constData()); - group.add_entry(entry3, maximize); + // QCommandLineOption versionOption("version", QObject::tr("Show version")); + // parser.addOption(versionOption); - bool version = false; - Glib::OptionEntry entry4; - entry4.set_long_name("version"); - entry4.set_description(QObject::tr("Show version").toUtf8().constData()); - group.add_entry(entry4, version); - - options.set_main_group(group); + parser.process(app); + default_tab = parser.value(tabOption).toInt(); + retry = parser.isSet(retryOption); // ca_context_set_driver(ca_gtk_context_get(), "pulse"); - // MainWindow* mainWindow = MainWindow::create(maximize); MainWindow* mainWindow = new MainWindow(); + if(parser.isSet(maximizeOption)) + mainWindow->showMaximized(); pa_glib_mainloop *m = pa_glib_mainloop_new(g_main_context_default()); g_assert(m); diff --git a/src/pavucontrol.h b/src/pavucontrol.h index 2820fb1..88769de 100644 --- a/src/pavucontrol.h +++ b/src/pavucontrol.h @@ -23,18 +23,10 @@ #include <signal.h> #include <string.h> - -#include <libintl.h> - -// #include <gtkmm.h> -#include <glibmm.h> +#include <glib.h> #include <pulse/pulseaudio.h> -#ifndef GLADE_FILE -#define GLADE_FILE "pavucontrol.glade" -#endif - /* Can be removed when PulseAudio 0.9.23 or newer is required */ #ifndef PA_VOLUME_UI_MAX # define PA_VOLUME_UI_MAX (pa_sw_volume_from_dB(+11.0)) diff --git a/src/rolewidget.cc b/src/rolewidget.cc index 6bdb17a..93eb0a0 100644 --- a/src/rolewidget.cc +++ b/src/rolewidget.cc @@ -52,11 +52,11 @@ void RoleWidget::executeVolumeUpdate() { if (updating) return; - info.name = role.c_str(); + info.name = role; info.channel_map.channels = 1; info.channel_map.map[0] = PA_CHANNEL_POSITION_MONO; info.volume = volume; - info.device = device == "" ? NULL : device.c_str(); + info.device = device == "" ? NULL : device.constData(); info.mute = muteToggleButton->isChecked(); pa_operation* o; diff --git a/src/rolewidget.h b/src/rolewidget.h index bc8e13d..fee684b 100644 --- a/src/rolewidget.h +++ b/src/rolewidget.h @@ -30,8 +30,8 @@ class RoleWidget : public StreamWidget { public: RoleWidget(MainWindow* parent); - Glib::ustring role; - Glib::ustring device; + QByteArray role; + QByteArray device; virtual void onMuteToggleButton(); virtual void executeVolumeUpdate(); diff --git a/src/sinkinputwidget.cc b/src/sinkinputwidget.cc index 1cae132..d41377e 100644 --- a/src/sinkinputwidget.cc +++ b/src/sinkinputwidget.cc @@ -46,7 +46,7 @@ void SinkInputWidget::setSinkIndex(uint32_t idx) { if (mpMainWindow->sinkWidgets.count(idx)) { SinkWidget *w = mpMainWindow->sinkWidgets[idx]; - deviceButton->setText(w->description.c_str()); + deviceButton->setText(w->description); } else deviceButton->setText(tr("Unknown output").toUtf8().constData()); @@ -106,7 +106,7 @@ void SinkInputWidget::buildMenu() { #if 0 for (std::map<uint32_t, SinkWidget*>::iterator i = mpMainWindow->sinkWidgets.begin(); i != mpMainWindow->sinkWidgets.end(); ++i) { SinkMenuItem *m; - sinkMenuItems[i->second->index] = m = new SinkMenuItem(this, i->second->description.c_str(), i->second->index, i->second->index == mSinkIndex); + sinkMenuItems[i->second->index] = m = new SinkMenuItem(this, i->second->description, i->second->index, i->second->index == mSinkIndex); menu.append(m->menuItem); } menu.show_all(); diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc index 3821123..ffcd7cb 100644 --- a/src/sinkwidget.cc +++ b/src/sinkwidget.cc @@ -127,7 +127,7 @@ void SinkWidget::onDefaultToggleButton() { if (updating) return; - if (!(o = pa_context_set_default_sink(get_context(), name.c_str(), NULL, NULL))) { + if (!(o = pa_context_set_default_sink(get_context(), name, NULL, NULL))) { show_error(tr("pa_context_set_default_sink() failed").toUtf8().constData()); return; } diff --git a/src/sourceoutputwidget.cc b/src/sourceoutputwidget.cc index 711c5a4..29e5fee 100644 --- a/src/sourceoutputwidget.cc +++ b/src/sourceoutputwidget.cc @@ -52,7 +52,7 @@ void SourceOutputWidget::setSourceIndex(uint32_t idx) { if (mpMainWindow->sourceWidgets.count(idx)) { SourceWidget *w = mpMainWindow->sourceWidgets[idx]; - deviceButton->setText(w->description.c_str()); + deviceButton->setText(w->description); } else deviceButton->setText(tr("Unknown input").toUtf8().constData()); @@ -115,7 +115,7 @@ void SourceOutputWidget::buildMenu() { #if 0 for (std::map<uint32_t, SourceWidget*>::iterator i = mpMainWindow->sourceWidgets.begin(); i != mpMainWindow->sourceWidgets.end(); ++i) { SourceMenuItem *m; - sourceMenuItems[i->second->index] = m = new SourceMenuItem(this, i->second->description.c_str(), i->second->index, i->second->index == mSourceIndex); + sourceMenuItems[i->second->index] = m = new SourceMenuItem(this, i->second->description, i->second->index, i->second->index == mSourceIndex); menu.append(m->menuItem); } menu.show_all(); diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc index 21a2a12..147a47d 100644 --- a/src/sourcewidget.cc +++ b/src/sourcewidget.cc @@ -60,7 +60,7 @@ void SourceWidget::onDefaultToggleButton() { if (updating) return; - if (!(o = pa_context_set_default_source(get_context(), name.c_str(), NULL, NULL))) { + if (!(o = pa_context_set_default_source(get_context(), name, NULL, NULL))) { show_error(tr("pa_context_set_default_source() failed").toUtf8().constData()); return; } |