[pulseaudio-discuss] [PATCH] pavucontrol: add support for AAC pass-through

atsukada at users.sourceforge.net atsukada at users.sourceforge.net
Tue Feb 19 03:38:32 PST 2013


From: Akihiro Tsukada <atsukada at users.sourceforge.net>

---
 src/pavucontrol.glade | 19 ++++++++++++++++---
 src/pavucontrol.h     |  1 +
 src/sinkwidget.cc     | 10 ++++++++++
 src/sinkwidget.h      |  2 +-
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade
index 6defb3d..4b3dd01 100644
--- a/src/pavucontrol.glade
+++ b/src/pavucontrol.glade
@@ -427,9 +427,6 @@
                             <property name="n_rows">2</property>
                             <property name="n_columns">3</property>
                             <child>
-                              <placeholder/>
-                            </child>
-                            <child>
                               <object class="GtkCheckButton" id="encodingFormatPCM">
                                 <property name="label" translatable="yes">PCM</property>
                                 <property name="use_action_appearance">False</property>
@@ -499,6 +496,22 @@
                                 <property name="bottom_attach">2</property>
                               </packing>
                             </child>
+                            <child>
+                              <object class="GtkCheckButton" id="encodingFormatAAC">
+                                <property name="label" translatable="yes">AAC</property>
+                                <property name="use_action_appearance">False</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="draw_indicator">True</property>
+                              </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>
                           <packing>
                             <property name="expand">False</property>
diff --git a/src/pavucontrol.h b/src/pavucontrol.h
index 65cb913..affaa89 100644
--- a/src/pavucontrol.h
+++ b/src/pavucontrol.h
@@ -41,6 +41,7 @@
 
 #define HAVE_SOURCE_OUTPUT_VOLUMES PA_CHECK_VERSION(0,99,0)
 #define HAVE_EXT_DEVICE_RESTORE_API PA_CHECK_VERSION(0,99,0)
+#define HAVE_MPEG2_AAC_PASSTHROUGH PA_CHECK_VERSION(3,99,0)
 
 enum SinkInputType {
     SINK_INPUT_ALL,
diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
index 1726550..35b0aa7 100644
--- a/src/sinkwidget.cc
+++ b/src/sinkwidget.cc
@@ -62,6 +62,16 @@ SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
     encodings[i].encoding = PA_ENCODING_DTS_IEC61937;
     x->get_widget("encodingFormatDTS", encodings[i].widget);
     encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
+
+    ++i;
+    x->get_widget("encodingFormatAAC", encodings[i].widget);
+#if HAVE_MPEG2_AAC_PASSTHROUGH
+    encodings[i].encoding = PA_ENCODING_MPEG2_AAC_IEC61937;
+    encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange));
+#else
+    encodings[i].encoding = PA_ENCODING_INVALID;
+    encodings[i].widget->set_sensitive(false);
+#endif
 #endif
 }
 
diff --git a/src/sinkwidget.h b/src/sinkwidget.h
index a2fbab9..0044ffc 100644
--- a/src/sinkwidget.h
+++ b/src/sinkwidget.h
@@ -27,7 +27,7 @@
 #if HAVE_EXT_DEVICE_RESTORE_API
 #  include <pulse/format.h>
 
-#  define PAVU_NUM_ENCODINGS 5
+#  define PAVU_NUM_ENCODINGS 6
 
 typedef struct {
     pa_encoding encoding;
-- 
1.8.1.2



More information about the pulseaudio-discuss mailing list