diff --git a/companion/releasenotes.txt b/companion/releasenotes.txt
index 56f87df6f..36765d48b 100644
--- a/companion/releasenotes.txt
+++ b/companion/releasenotes.txt
@@ -10,6 +10,7 @@
Model Print and Model Compare improvements and fixes (#2734, #2737, #2576)
Negative telemetry offset value was reset when writing back to radio (#2738)
Telemetry sensor names were not displayed (#2807)
+Mixes multiplex representation now the same as on the radio (#2808)
diff --git a/companion/src/modeledit/mixes.cpp b/companion/src/modeledit/mixes.cpp
index 787bca608..33f325243 100644
--- a/companion/src/modeledit/mixes.cpp
+++ b/companion/src/modeledit/mixes.cpp
@@ -121,14 +121,14 @@ bool MixesPanel::AddMixerLine(int dest)
QString MixesPanel::getMixerText(int dest, bool * new_ch)
{
QString str;
- if (new_ch) *new_ch = 0;
+ bool newChannel = false;
if (dest < 0) {
str = modelPrinter.printMixerName(-dest);
//highlight channel if needed
if (-dest == (int)highlightedSource) {
str = "" + str + "";
}
- if (new_ch) *new_ch = 1;
+ newChannel = true;
}
else {
MixData & mix = model->mixData[dest];
@@ -136,7 +136,7 @@ QString MixesPanel::getMixerText(int dest, bool * new_ch)
str = modelPrinter.printMixerName(mix.destCh);
if ((dest == 0) || (model->mixData[dest-1].destCh != mix.destCh)) {
- if (new_ch) *new_ch = 1;
+ newChannel = true;
//highlight channel if needed
if (mix.destCh == highlightedSource) {
str = "" + str + "";
@@ -146,8 +146,9 @@ QString MixesPanel::getMixerText(int dest, bool * new_ch)
str.fill(' ');
}
- str += modelPrinter.printMixerLine(mix, highlightedSource);
+ str += modelPrinter.printMixerLine(mix, !newChannel, highlightedSource);
}
+ if (new_ch) *new_ch = newChannel;
return str.replace(" ", " ");
}
diff --git a/companion/src/modelprinter.cpp b/companion/src/modelprinter.cpp
index b9063113a..1cfbdf917 100644
--- a/companion/src/modelprinter.cpp
+++ b/companion/src/modelprinter.cpp
@@ -327,21 +327,25 @@ QString ModelPrinter::printMixerName(int curDest)
return Qt::escape(str);
}
-QString ModelPrinter::printMixerLine(int idx, int highlightedSource)
+QString ModelPrinter::printMixerLine(int idx, bool showMultiplex, int highlightedSource)
{
- return printMixerLine(model.mixData[idx], highlightedSource);
+ return printMixerLine(model.mixData[idx], highlightedSource, showMultiplex);
}
-QString ModelPrinter::printMixerLine(const MixData & mix, int highlightedSource)
+QString ModelPrinter::printMixerLine(const MixData & mix, bool showMultiplex, int highlightedSource)
{
QString str = " ";
- switch(mix.mltpx) {
- case (1): str += "*"; break;
- case (2): str += "R"; break;
- default: str += " "; break;
- };
-
+ if (showMultiplex) {
+ switch(mix.mltpx) {
+ case (1): str += "*="; break;
+ case (2): str += ":="; break;
+ default: str += "+="; break;
+ }
+ }
+ else {
+ str += " ";
+ }
// highlight source if needed
QString source = Qt::escape(mix.srcRaw.toString(&model));
if ( (mix.srcRaw.type == SOURCE_TYPE_CH) && (mix.srcRaw.index+1 == (int)highlightedSource) ) {
diff --git a/companion/src/modelprinter.h b/companion/src/modelprinter.h
index 11a7b712c..b531509c7 100644
--- a/companion/src/modelprinter.h
+++ b/companion/src/modelprinter.h
@@ -50,8 +50,8 @@ class ModelPrinter: public QObject
QString printInputLine(int idx);
QString printInputLine(const ExpoData & ed);
QString printMixerName(int curDest);
- QString printMixerLine(int idx, int highlightedSource = 0);
- QString printMixerLine(const MixData & md, int highlightedSource = 0);
+ QString printMixerLine(int idx, bool showMultiplex, int highlightedSource = 0);
+ QString printMixerLine(const MixData & md, bool showMultiplex, int highlightedSource = 0);
QString printLogicalSwitchLine(int idx);
QString printCustomFunctionLine(int idx);
static QString printChannelName(int idx);
diff --git a/companion/src/multimodelprinter.cpp b/companion/src/multimodelprinter.cpp
index 4ff6b52dc..135a0cd4f 100644
--- a/companion/src/multimodelprinter.cpp
+++ b/companion/src/multimodelprinter.cpp
@@ -357,7 +357,7 @@ QString MultiModelPrinter::printMixers()
for (int j=0; j 0)
columns.append("
");
- COMPARE((j < model->mixes(i).size()) ? modelPrinter->printMixerLine(*model->mixes(i)[j]) : " ");
+ COMPARE((j < model->mixes(i).size()) ? modelPrinter->printMixerLine(*model->mixes(i)[j], (j>0)) : " ");
}
columns.append("");
}