From cbf3acb54379f3334cf5d7844888536bb54d1c5e Mon Sep 17 00:00:00 2001 From: Akihiro Tsukada Date: Mon, 25 Feb 2013 01:03:31 +0900 Subject: [PATCH 1/2] sinkwidget: add support for AAC pass-through --- src/pavucontrol.glade | 19 ++++++++++++++++--- src/sinkwidget.cc | 12 ++++++++++++ src/sinkwidget.h | 2 +- 3 files changed, 29 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 @@ 2 3 - - - PCM False @@ -499,6 +496,22 @@ 2 + + + AAC + False + True + True + False + True + + + 2 + 3 + 1 + 2 + + False diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc index 1726550..7f4902c 100644 --- a/src/sinkwidget.cc +++ b/src/sinkwidget.cc @@ -62,6 +62,18 @@ SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr 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; + encodings[i].encoding = PA_ENCODING_INVALID; + x->get_widget("encodingFormatAAC", encodings[i].widget); + encodings[i].widget->set_sensitive(false); +#ifdef PA_ENCODING_MPEG2_AAC_IEC61937 + if (pa_context_get_server_protocol_version(get_context()) >= 28) { + encodings[i].encoding = PA_ENCODING_MPEG2_AAC_IEC61937; + encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange)); + encodings[i].widget->set_sensitive(true); + } +#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 -# define PAVU_NUM_ENCODINGS 5 +# define PAVU_NUM_ENCODINGS 6 typedef struct { pa_encoding encoding; -- 1.8.4.2