diff --git a/src/pavucontrol.glade b/src/pavucontrol.glade index 253534e..d081e8a 100644 --- a/src/pavucontrol.glade +++ b/src/pavucontrol.glade @@ -581,6 +581,32 @@ 1 + + + TrueHD + True + True + False + True + + + 0 + 2 + + + + + DTS-HD + True + True + False + True + + + 1 + 2 + + False diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc index b9002dd..f30bd37 100644 --- a/src/sinkwidget.cc +++ b/src/sinkwidget.cc @@ -73,6 +73,28 @@ SinkWidget::SinkWidget(BaseObjectType* cobject, const Glib::RefPtr encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange)); encodings[i].widget->set_sensitive(true); } +#endif + ++i; + encodings[i].encoding = PA_ENCODING_INVALID; + x->get_widget("encodingFormatTRUEHD", encodings[i].widget); + encodings[i].widget->set_sensitive(false); +#ifdef PA_ENCODING_TRUEHD_IEC61937 + if (pa_context_get_server_protocol_version(get_context()) >= 33) { + encodings[i].encoding = PA_ENCODING_TRUEHD_IEC61937; + encodings[i].widget->signal_toggled().connect(sigc::mem_fun(*this, &SinkWidget::onEncodingsChange)); + encodings[i].widget->set_sensitive(true); + } +#endif + ++i; + encodings[i].encoding = PA_ENCODING_INVALID; + x->get_widget("encodingFormatDTSHD", encodings[i].widget); + encodings[i].widget->set_sensitive(false); +#ifdef PA_ENCODING_DTSHD_IEC61937 + if (pa_context_get_server_protocol_version(get_context()) >= 33) { + encodings[i].encoding = PA_ENCODING_DTSHD_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 924fca0..207d115 100644 --- a/src/sinkwidget.h +++ b/src/sinkwidget.h @@ -27,7 +27,7 @@ #if HAVE_EXT_DEVICE_RESTORE_API # include -# define PAVU_NUM_ENCODINGS 6 +# define PAVU_NUM_ENCODINGS 8 typedef struct { pa_encoding encoding;