Avoid reserved values when creating DRCS Mode triplets
This commit is contained in:
@@ -1059,16 +1059,28 @@ void X26DockWidget::insertTriplet(int modeExt, int row)
|
|||||||
} else
|
} else
|
||||||
row = 0;
|
row = 0;
|
||||||
|
|
||||||
// For character triplets, ensure Data is not reserved
|
// Avoid reserved bits
|
||||||
if (modeExt == 0x21 || modeExt == 0x22 || modeExt == 0x29 || modeExt == 0x2b || modeExt >= 0x2f)
|
switch (modeExt) {
|
||||||
newTriplet.setData(0x20);
|
case 0x07: // Address Row 0
|
||||||
// For Address Row 0, set Address
|
newTriplet.setAddress(63); // set Address to notreserved
|
||||||
if (modeExt == 0x07)
|
break;
|
||||||
newTriplet.setAddress(63);
|
case 0x18: // DRCS mode
|
||||||
// For Termination Marker, set Address and Mode
|
newTriplet.setData(0x70); // Normal DRCS at Levels 2.5 and 3.5
|
||||||
if (modeExt == 0x1f) {
|
break;
|
||||||
newTriplet.setAddress(63);
|
case 0x1f: // Termination Marker
|
||||||
newTriplet.setData(7);
|
newTriplet.setAddress(63); // set all bits to 1
|
||||||
|
newTriplet.setData(7);
|
||||||
|
break;
|
||||||
|
case 0x21: // G1 mosaic character
|
||||||
|
case 0x22: // G3 mosaic character at level 1.5
|
||||||
|
case 0x29: // G0 character
|
||||||
|
case 0x2b: // G3 mosaic character at level >=2.5
|
||||||
|
case 0x2f: // G2 character
|
||||||
|
newTriplet.setData(0x20); // ensure Data is not reserved
|
||||||
|
break;
|
||||||
|
case 0x2d: // DRCS character
|
||||||
|
newTriplet.setData(0x40); // Normal DRCS
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_x26Model->insertRows(row, 1, QModelIndex(), newTriplet);
|
m_x26Model->insertRows(row, 1, QModelIndex(), newTriplet);
|
||||||
|
|||||||
Reference in New Issue
Block a user