| Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
| Name: wxEDID | Distribution: openSUSE Tumbleweed |
| Version: 0.0.32 | Vendor: openSUSE |
| Release: 1.3 | Build date: Sun Mar 16 19:25:40 2025 |
| Group: Hardware/Other | Build host: reproducible |
| Size: 628276 | Source RPM: wxEDID-0.0.32-1.3.src.rpm |
| Packager: http://bugs.opensuse.org | |
| Url: https://sourceforge.net/projects/wxedid/ | |
| Summary: Extended Display Identification Data editor | |
wxEDID is a wxWidgets - based EDID (Extended Display Identification Data) editor. This is an early stage of development, allowing to modify the base EDID v1.3+ structure and CEA-861 (as first extension block). Besides normal editor functionality, the app has been equipped with a DTD constructor, which aims to ease timings selection/editing. It's also possible to export and import EDID data to/from text files (hex ASCII format) and also to save the structures as a human-readable text.
GPL-3.0-only
* Sun Mar 16 2025 Mia Herkt <mia@0x0.st>
- Update to v0.0.32
Added:
* SLDB::SPKLD: value selector for Speaker_ID.
* EDID_cl::RMCD_NormV(): new handler to support normalized
distance values in SLDB::DSPC and SLDB::SPKLD
* SLDB::SPKLD support for dynamic group name, based on spk ID,
chn number and X/Y/Z coordinates
* EDID_cl::AssembleEDID(): automatically inject missing
descriptors of type 0x01 (VOID) in base EDID block, if ignoring
of EDID errors is enabled.
* StatusBar: display total group size in bytes.
* ADB::SAD: ACE_TC value selector.
* ADB::SAD: support for dynamic group names, based on SAD.ACE_TC
code (if AFC==15)
* H-spec: Support for HADB: HDMI Audio Data Block.
* blktree_cl::evt_mouse_leftup(): sending wxEVT_TREE_SEL_CHANGED
evt -> allows to re-select currently selected item -> display
group decription again.
* blktree_cl::evt_Lmouse_dclick(): sending WXK_RETURN key events
for selected tree items.
* wxEDID_Frame::evt_blktr_key() handling of WXK_RETURN key
events: switch to DTD constructor if selected item is of type
DTD or T7VTDB.
* MRL: support for CVT support information data layout
(mode 0x04).
* EDID descriptor: DCM: Display Color Management (type 0xF9).
* EDID descriptor: CT3: CVT 3-Byte Timing Codes (type 0xF8).
* EDID descriptor: ET3: Estabilished Timings 3 (type 0xF7)
* VESA STD2, CVT3 non-std codes: "(!std)" appended to dynamic
group name.
* txtd_cl: "hex_text" field: hexadecimal representation of the
text string.
* Support for LE<->BE byte swapping, depending on platform
endianness: EDID_cl::Word16(), BitF16Val(), MfcId(), ProdSN(),
DTD_PixClk(), ParseEDID_Base(hdr_magic).
* DTD_constructor: support for T7VTDB
* EDID_cl::ParseEDID_Base(), ParseEDID_CEA() logging details of
the parsing process.
* EDID_cl::AssembleEDID(): logging details of the assembling
process.
* ADB::SAD: support for dynamic group names, based on SAD.AFC
code.
* T8VTDB: dynamic type ID, based on TSC bit value: verifying
layout type for Insert operation.
* T8VTDB: dynamic VTC sub-groups base names: T8VTC_T0/STI,
depending on TSC bit value.
* T10VTDB: dynamic type ID, based on T10_M bit value: verifying
layout type for Insert operation.
* T10VTDB: dynamic VTD sub-groups base names:
T10VTD_M0/T10VTD_M1, depending on T10_M value.
* H-spec: Support for T10VTDB.
* EDID_cl::ALT_DType(): dedicated handler for alt. desc. type
field: triggers reparsing of descriptor data.
* Support for changing descriptor types in base EDID block.
* H-spec: Support for T8VTDB.
* dbc_root_dsc_t.fields, dbc_root_dsc_t.fcount and
dbc_root_dsc_t.ahf_sz: support for additional fields in root
group (besides the DBC header), needed for T8VTDB and T10VTDB
* vmap_ent_t.flags: additional flags for modifying value selector
behaviour. Currently used only with F_HEX for VESA DMT 2 byte
codes
* STI: 'DMT_2' field which allows to select standardised VESA
video code using value selector menu.
* H-spec: Support for T7VTDB.
* T7VTDB: value selectors for 3D mode and aspect ratio.
* T7VTDB: getGrpName(): support for dynamic block name
* EDID_cl::T7VTB_PixClk() and T7VTB_W15_LE() dedicated field
handlers for T7VTDB.
* EDID_cl::Word16(): unaligned u16_t opperations, LE.
* New Extended Tag Codes definitions:
+ DBC_ET_T7VTB : DisplayID Type VII Video Timing Data Block,
+ DBC_ET_T8VTB : DisplayID Type VIII Video Timing Data Block
+ DBC_ET_T10VTB: DisplayID Type X Video Timing Data Block
+ Not in CTA-861-H spec:
+ DBC_ET_HEOVR : HDMI Forum EDID Extension Override Data Block
+ DBC_ET_HSCDB : HDMI Forum Sink Capability Data Block
+ DBC_ET_HADB : HDMI Audio Data Block
Fixed:
* UNK-DAT sub-grp: added type flag T_NO_MOVE: can't be moved.
* EDID_cl::STI_DBN(): use std name from VS if found - it can
contain RB flag, which is not encoded directly in the
structure.
* (BUG::regression) SVD: No dynamic name generated for VIC==0
(reserved).
* (BUG) edi_grp_cl::base_clone(): missing call to
AssembleGroup(): changes made in sub-groups were not included
in cloned group.
* wxEDID_Frame::evt_blktr_paste(): keep expanded state of target
group.
* (BUG::wxWidgets::GTK) missing icons in wxMessageBox():
using custom wxDialog: dlg::MessageBox()
* Event logic race: changing BlkTree group selection whith
DataGrid selection active: description displayed in Info panel
comes from field of newly generated grid insted from newly
slected group.
* Some errors logged twice for Reparse().
* (BUG): UpdateDataGrid(): special case: assertion failure:
(row_idx<row_cnt) if last row has F_FR flag set AND
ForcedGrpRefresh() causes reducing numer of fields -> the
index of selected row becomes out of range -> SelectRow()
fails.
* (BUG::regression): RMCD: payload data interpreted as UNK-DAT.
* (BUG::regression) base_DBC_Init_RootGrp() insert UNK-DAT group
if block length is too short to show AHF fields.
* (BUG) BlkTreeChangeGrpType()->EDID.ParseAltDtor() needs grp
offset, because instance data is in local data buffer -> for
UNK type, the error message contains invalid group offset.
* (BUG::old) ParseEDID_CEA() incorrect calculation of num_dtd:
std says it's a total number of native DTDs, including Block0,
but only DTDs in the CEA block were counted.
* (BUG::old) value of BED.num_extblk is now properly handled:
num_extblk==0: only base EDID is saved, regardless of whether
extension was loaded or not. num_extblk==1: wxedid reports
error on Save/Export if the extension block is not present.
num_extblk>1: error: only 1 extension block is currently
supported (CTA-861).
* (BUG::wxWidgets::undocumented) ImportEDID_hex(): wxFileDialog:
wilcard selector is showing empty string if path contains file
extension that doesn't match the wilcard.
* ParseEDID_CEA(): added checking of 18-byte desc. type @
dtd_offs: must be a DTD. Currently it is possible to change
the DTD into alt. desc. type by setting the PixClk to 0.
* T10VTDB, ADB, VDB: missing initialization of
edi_grp_cl::subg_id: doInsert() did not set type_id for
inserted groups.
* UNK-DAT sub-grps can only be deleted - or re-interpreted when
group type or length is changed.
* GroupAr_cl::base_Paste() pasted group must inherit T_P_HOLDER
flag (currently only for STI)
* (BUG::old) wxEDID_Frame::BlkTreeChangeGrpType(),
BlkTreeUpdateGrp(): assertion failure (invalid idx) when
changing type of last group in the GroupAr_cl.
* (BUG) BlkTreeChangeGrpType(): missing initialization of parent
array: grp_new->setParentAr()
* (BUG) removed invalid "code page 437" references from field
descriptions.
* (BUG::old) EDID_cl::FldPadStr()-> wxString::FromAscii():
assertion failure if UTX, MND or MSN descriptors contain
non-ascii values. Now using wxString::From8BitData() /
wxString::To8BitData(), what allows to handle invalid
EDID data.
* (BUG::old::mislooked): wxEDID_Frame::WriteField():
invalid access to freed data field buffer after DBC Tag or ETag
values are changed. This could trigger repersing of invalid
data from deleted block.
* (BUG::LEAK::old): wxEDID_Frame::BlkTreeDelGrp(),
wxEDID_Frame::evt_blktr_copy(): deletion of sub-groups not
performed -> LEAK.
* (BUG::old::mislooked): AST: Additional Standard Timings
descriptor: incorrect description for desc_type field.
* STI, AST: 'pix_ratio' field should be 'asp_ratio':
image aspect ratio.
* (BUG::regression): SaveRep():
TagCode 7 and T7VTDB ETag descriptions not printed.
* SaveEDID(): update BlockTree root node label and
config.last_used_fname.
* (BUG::typo::old): mrl_cl::Clone(): base_clone() invoked with
new dtd_cl, should be mrl_cl.
* EDID_cl::DTD_PixClk() now uses rdWord16_LE() and wrWord16_LE(),
what allows to correctly handle unaligned 16bit fields in CEA
block. Besides that, those functions allow to operate unaligned
fields in T7VTDB.
Changed:
* H-spec: SLDB::SPKD X/Y/Zmax distances have defined default
values.
* H-spec: SLDB::DSPC DisplayX/Y/Z fields have defined default
values.
* ADB: ACE_TC field moved to pos. 3, rigth after AFC row.
* Removed edi_grp_cl::subg_id: use type_id.subg_id >> root grps
need to have this value set correctly, to support
insert_into().
* EDID_base.cpp: main funtions and common field handlers moved to
EDID_main.cpp
* H-spec: ADB: AFC=15, ACE=4,5,6, SAD byte2.bit0 is now
"SysH_22_2" (reserved in G)
* H-spec: ADB: AFC=15, ACE=11, SAD byte0.bits0-2 field is now
"MPEG-H 3D Audio Level" (reserved in G)
* H-spec: ADB: AFC=15, ACE=11, SAD byte2.bit0 is now "LCP"
(reserved in G)
* H-spec: ADB: AFC=15, ACE=11, SAD byte2.bit1 is now "BP"
(reserved in G)
* RMCD: removed DHDR sub-grp, using AHF now.
* SAB3D: ACAT fields moved to top of the field list.
* MRL-CVT: CVT version byte split into major:minor bitfields.
* H-spec: SAB: byte0.bit6 is now reserved, was RLC/RRC:
Rear Left/Right of Center
* H-spec: SAB: byte2.bit3 is now reserved, was TpLS/TpRS
Top Left/Right Surround. However, in HADB this bit is used for
LSd/RSd: Left/Right Surround direct
* ExportEDID_hex(), ImportEDID_hex(): default file name extension
is '*.hex', so it is different from EDID structures saved as
text.
* Added -llto flag to release build flags
(link-time optimization)
* MRL: variable data layout, depending on byte10 value
(modes 0x00, 0x01, 0x02, 0x04)
* MRL: EDID_cl::MRL_MaxPixClk() takes additional PixClk
precision bits into account if CVT support information is
available (mode 0x04).
* txtd_cl: dynamic blk name: display <invalid_str> for invalid
data, which otherwise could trigger changing of tree item
spacing.
* UTX, MSN, MND: single txtd_cl class: switching ID, text field
name and description depending on descriptor type.
* EDID: UNK descriptor handles type 0x10 as "VOID: Unused Data"
* EDID_class.cpp split into EDID_base.cpp and EDID_dsc.cpp
* AST: Additional Standard Timings (type 0xFA) uses STI
sub-groups, what allows to show dynamic timing names and use
value selector menu.
* Base_EDID::Alt Descriptors are now sharing header fields:
using edi_grp_cl::init_fields() in append mode.
* T8VTDB: TSC=1 layout: using STI sub-groups, exchangeable with
AST descriptor.
* Files generated by rcd_autogen are removed by "distclean"
target, and not by "clean-local". This allows to re-build the
package after 'make clean' without invoking the rcd_autogen
again.
* edi_grp_cl::type_id type changed to gtid_t -> alternative way
for referencing type flags.
* (Paste/Insert): always create copy of source group -> no need
to handle special cases.
* CEA-DBC IDs shifted 1 bit left to make space for new
Alternative Descriptors IDs.
* DTD can be transformed into alternative descriptor type by
setting PixClk to ZERO.
* Alternative descriptors can be transformed to DTD by changing
"zero_hdr" field to a non-zero value.
* Added DMT video codes table: vid_fmt.cpp::dmt_table[].
The table is used for generating value selectors for DMT-ID,
STD2 and CVT3 codes.
* edi_grp_cl::base_DBC_Init_RootGrp(), SubGrpAr_cl::CalcDataSZ(),
GroupAr_cl::base_CalcDataSZ(): added support for additional
header fields in dbc_root_dsc_t.
* EDID_cl::getVidDesc() -> EDID_cl::getValDesc():
general-purpose fn.
* The DMT codes values are exceeding the range allowed for
wxMenuItem ID (0x0..0x7FFF), so a new method for encoding menu
item values is used: If (new) F_VSVM s set in
edi_field_t.flags, the the value is stored from vmap_ent_t.val
instead of item ID.
* Added vmap.cpp: global array of value maps and selector menus.
Now the vmaps are referenced by edi_field_t.vmap_idx and can be
shared among many fields. Value selector menus are created only
on first use:
wxEDID_Frame::evt_dgrid_vsel()->vmap_GetSelector()
Removed: edi_dynfld_t.selector and edi_grp_cl.create_selector()
* edi_grp_cl::base_DBC_Init_FlatGrp() adopted to work as init()
for T7VTDB.
* EDID_cl::ParseDBC_TAG(): create unknown type data blocks also
for reserved ETags. This allows to freely change ETags and
generates correct error messages.
* vmap_t structures replaced with const std::map. This was
necessary because new ETags have high values like
"DBC_ET_HEOVR" == 120, so the old vmap_t would need to contain
a lot of NULL entries.
Other:
* Cleanup: edi_grp_cl::init_fields(): removed unused arg
'orflags'
* Cleanup: Removed code for evt nesting prevention - no longer
needed.
* Cleanup: wxEDID_Frame::evt_dgrid_write():
removed Show/HideCellEditControl() - no longer needed.
* Cleanup: HDRD: EDID_cl::HDRD_mtd_type() removed, using
general-purpose EDID_cl::Word16() handler.
* Cleanup: Removed redundant checking for NULL instance ponter
in some field handlers.
* Update: grpar: changed rules for operating groups/sub-groups:
+ base EDID & AST: STI can be moved/copied/pasted
+ added support for new type_id format & flags.
* Update: rcode v3.2
* Started: updates for CTA-861-H
* Sun Mar 17 2024 Mia Herkt <mia@0x0.st>
- Update to v0.0.31
Fixed:
* (BUG) wxEDID_Frame::evt_ntbook_page() was invoked during frame
construction with uninitialized wxEDID_Frame::flags &
wxEDID_Frame::edigrp_sel, what could lead to a segfault.
* Tue Jan 09 2024 Mia Herkt <mia@0x0.st>
- Update to v0.0.30
Added:
* Support for Dark Mode in Block Data grid.
NOTE: wxGrid does not fully support dynamic theme switching in
wxWidgets v3.2.x, so the application has to be restarted to use
new theme.
Fixed:
* DTD panel: fixed alignment of "X11 mode line".
* Option "Assemble EDID" now updates also the CHD::DTD_offset
field in Block Data grid.
NOTE: The value is computed by EDID_cl::CEA_Set_DTD_Offset().
* wxEDID_Frame::AssembleEDID_main(): the EDID.BASE.BED could be
refreshed twice if the CEA extension is not present.
* Auto-select the BED block also after "Reparse EDID buffer" is
executed: wxEDID_Frame::Reparse()->AutoSelectBED()
* mrl_cl::fields: misleading field description: GTF J, GTF C:
"xxx value, multiplied by 2: 0...255 -> 0...127.5"
changed to: "xxx value, multiplied by 2: 0...127.5 -> 0...255"
* MRL::resvd field should have the EF_HEX flag.
* BED: fields ProdYr and ProdWk should not have the EF_BND flag
set.
* BED: ProdWk: added information that week==0 means that the
field is not used.
Changed:
* EF_NI "NI" flag is no longer displayed in BlockData::"Flags"
column.
* rcode v3.0: structure changed:
RCD_UNIT_MAX=65535, RCD_LINE_MAX=16383
* Tue May 23 2023 Mia Herkt <mia@0x0.st>
- Update to v0.0.29
Changed:
* BED: dynamic name: displays only MFC and product ID (removed
prod. year and week)
* VDB::SVD: append "[Native]" if native resolution flag is set.
Fixed:
* (BUG::regression) EDID_cl::getVidDesc(): missing space between
aspect ratio and screen resolution: incorrect SVD description
in text output mode (Save_As_Text).
* Using global strings where possible: cheaper, faster.
xxx::getGrpName() -> global EDID_cl::gp_name
wxEDID_Frame::SaveRep_SubGrps(), WriteField(),
GetFullGroupName() -> wxEDID_Frame::sval
EDID_cl::getStrUint() -> EDID_cl::tmps2
* Sun May 21 2023 Mia Herkt <mia@0x0.st>
- Update to v0.0.28
Changed:
* Change: Default colors for all controls:
allows to work with different window themes:
wxWidgets 3.0.x: not working for wxAUI windows, wxTreeCtrl
and wxGrid
wxWidgets 3.2.x: not working for wxGrid
Added:
* Automatic selection of BED block after the EDID file is
loaded/imported.
* BDD: display image size as dynamic block name.
* BED: display MFC code, year, week, prod ID as dynamic block
name.
* DTD and VDB::SVD: use screen resolution as dynamic block name.
* MND: display monitor name as dynamic block name.
* STI: use screen resolution as dynamic block name or set
"not used" if both bytes are 0x1.
* VID: display input type as dynamic block name.
* config option: blk_dynamic_names.
* edi_grp_cl::getGrpName(): support for dynamic block names.
Fixed:
* DTD panel: sct_pixclk control: value range should be
0..65535 (655.35MHz), not 0..655350
* DTD panel: sct_vsoffs, sct_vswidth controls: value range
should be 0..63, not 0..1023
* Thu Sep 29 2022 Mia Herkt <mia@0x0.st>
- Update to v0.0.27
Changed
* ExportEDID_hex(): do not append wxEDID version and the source
file name at the end of output file: this causes errors when
the file needs to be imported back (unless ignoring errors is
enabled).
* VFPD: Video Format Preference Data Block is now root group for
array of SVRs
* CEA-EXT::VFPD:SVR: added vmap: CEA_vidm_map, same as for SVD:
this allows to show meaning of SVR values when the EDID
structure is saved as text.
* wxEDID_Frame::OpenEDID(), ImportEDID_hex(): always try to
Reparse() faulty EDID structure when "Ignore EDID errors" is
enabled. wxEDID_Frame::Reparse() is now returning fault even
when ignoring errors is enabled.
Added
* wxEDID_Frame::SaveRep_SubGrps(): decoding of VFPD:SVR values.
Fixed
* The checksum values showed in BLockData grid for EDID.BASE.BED
or EDID.CEA.CHD were not refreshed after
AssembleEDID/Save/Export. To refresh those cells, it was
necessary to Reparse() the EDID buffer. Now the checksums are
automatically updated in wxEDID_Frame::AssembleEDID_main(),
invoked from wxEDID_Frame::SaveEDID(), ExportEDID_hex(),
SaveReport() and evt_assemble_edid().
* (BUG::leak) wxEDID_Frame::ImportEDID_hex(): memory leak
possible when the hex->bin conversion fails.
* (BUG::wxWidgets3.x ::wxAUI) AUI managed panel gets refreshed
even when it's invisible, what can cause horrible flickering
during window resizing. wxEDID_Frame::evt_ntbook_page():
disable the EvtHandler in AUI Manager when the panel is
invisible.
* (BUG: Regression in v0.0.23) The functions EDID_cl::MfcId(),
ProdSN(), ProdWk(), ProdYr() were not updated to work with
local data buffers: the respective fields in EDID.BASE.BED
could not be changed.
* wxEDID_Frame::SaveRep_SubGrps(): Video Data Block: VIC values
were not really decoded, so for SVD values > 127 the
desriptions were incorrect.
* (BUG::old::mislooked) wxEDID_Frame::SaveRep_SubGrps() uses
value descriptions from vmap_t->vname_map_t, but reserved
values were not included in some cases -> incorrect (shifted)
descriptions in the output file. Now all the reserved values
are included with value description set to NULL.
edi_grp_cl::create_selector() ignores values with NULL name
ptr. wxEDID_Frame::SaveRep_SubGrps() prints "<reserved>"
for NULL name ptr.
* Thu Dec 23 2021 Mia Herkt <mia@0x0.st>
- Update to v0.0.26
Fixed
* CEA::VSD incorrect bit offset for DVI_Dual field.
* reparsing of CEA-header group should not be possible
(returned uninitialized rcode).
* Tue Apr 20 2021 Mia Herkt <mia@0x0.st>
- Update to v0.0.25
Changed
* default size for all spin controls on DTD_Constructor panel.
Looks ugly, but works with wxWidgets compiled against GTK3.
Fixed
* <various functions> :: in case of error, always return error
message, not just the rcode. Some function were returning the
message only if "Ignore Errors" mode was enabled.
* Build fails with Clang: unlike GCC, Clang does not support
static initialization of flexible arrays in C++ mode:
removed flex arrays from all field groups descriptors.
- Changes in v0.0.24
Added
* VID: Video Input Descriptor: support for field definitions
introduced in EDID v1.4
* wxEDID_Frame::ImportEDID_hex(): report source file byte offset
if conversion fails.
Changed
* EDID base block: UNK: Unknown Descriptor, unk_cl::init():
insert unknown byte fields instead of single byte string
(easier to view and edit).
* EDID_class.h: CEA-specific classes moved to dedicated headers:
CEA_class.h, CEA_EXT_class.h
* EDID_class.h: shared declarations moved to EDID_shared.h
Fixed
* (BUG::regression) wxEDID_Frame::UpdateBlockTree():
the BlockTree was not expanded automatically when opened file
contains only the base EDID block (no extensions).
* (BUG::regression): edi_grp_cl::init_fields(): a call to
FieldsAr.Empty() is necessary for ForcedGroupRefresh()
functions.
* (old mislooked BUG): STI: Standard Timing Information: NU flag
was not set for unused fields.
* Menu "Options": "Reparse EDID buffer" and "AssembleEDID"
options are disabled until EDID data is loaded/imported.
* wxEDID_Frame::UpdateDataGrid(): missing auto-resizing of row
labels width: BlkDataGrid->SetRowLabelSize(wxGRID_AUTOSIZE).
* Sun Mar 14 2021 Mia Herkt <mia@0x0.st>
- Drop wxedid-no-implicit-string-conversion.patch
- Update to v0.0.23
Fixed
* (BUG in GCC v8.3.0): broken array bounds checking with
optimizations enabled, f.e: "src/CEA_EXT_class.cpp:1512:13:
warning: ‘void* memcpy(void*, const void*, size_t)’ forming
offset [49, 560] is out of the bounds [0, 48] of object
‘slocd_cl::SLOCD_subg’ with type ‘const subgrp_dsc_t’
{aka ‘const subgrp_dsc_s’} [-Warray-bounds]" Disabled
diagnostic for [-Warray-bounds] in CEA_EXT_class.cpp
* (BUG) EDID_cl::ParseEDID_CEA(): checking of padding bytes after
last DTD did not allow to ignore errors (bad rcode on exit).
* (BUG) IFDB::VSIFD: incorrect offset for ieee_id field.
* (BUG) RMCD: several bugs in field offsets, incorrect max values
* (BUG) SAB: Speaker Allocation Block: used ID_VSD as typeID,
instead of (missing) ID_SAB.
* (BUG) SLOCD fields: incorrect offset for channel index byte.
* (BUG) VSD: Vendor Specific Data Block: cea_vsd_cl::init()
display unspecified payload data as unknown bytes (previously
ignored).
* (BUG::LEAK): GroupAr_cl: Delete()/Paste(): call Detach() then
delete the object: RemoveAt() only removes the pointer.
* (BUG::typo) HDRD: HDR Dynamic Metadata Data Block: incorrect
pointer used to read HDRD metadata lenght: base DBC pointer
(inst) used instead of p_mtd.
* (partially): VSD: dynamic data layout, depending on block
length (currently only 00-0C-03 ID is supported)
* BlkDataGrid: don't use fixed Row/Column sizes: problems on
HDPI (thanks to Jat).
* BlockTree menu: show group free space if no subgroups are
present.
* BlockTree menu: show info about free space even if there's no
source block available.
* CEA header: corrected description of dtd_offs field.
* Calc. relative offsets of top level data groups (relative to
the begin of EDID blocks)
* HDRD: fixed field descriptions, fixed min/max values for
mtd_ver and resvd47.
* InsertInto() could insert 32th DBC byte: blk_len overflow.
CanInsInto(): missing checking of sub-group free space
* VID: Video Input Descriptor fields were referencing EDID buffer
instead local instance data.
* Y24C: incorrect total data length: missing DBC header
* groups which have subgroups must call subgroups.CalcDataSZ()
on init().
* removed ForceRefresh (EF_FGR) flag from unknown byte.
Changed
* All T_EDID_FIXED data groups are now operating on local data
buffers. Reparse() restores the loaded EDID state, reverting
all the changes - unless AssembleEDID() or Save/Export is
executed. From this point Reparse() restores the
saved/assembled state.
* Base EDID block: movable blocks are now using
edi_grp_cl::CopyInstData() to create local data instances.
* BlockTree: blocked auto-repeating of all keys except up/down
arrows.
* CEA_BlkHdr_fields[]: removed EF_FGR flags: dedicated handlers
are used.
* CEA_class.cpp: all blocks (excluding the CEA_header) are now
using edi_grp_cl::CopyInstData() to create local data instances
* DTD panel: increased H-size of pix_clk and V-refresh controls -
big values didn't fit. txc_hfreq: reduced fractional part
accuracy to 2 digits, to fit the control size.
* EDID_cl::ParseEDID_CEA(): search DTDs after DBC end, not at
declared DTD offset
* Menu Options->"Recalc Checksum" changed to "Assemble EDID"
* Remapped group IDs, so subgroups IDs can be individually masked
* UpdateEDID_Tree(): only main EDID blocks are automatically
expanded (data sub-groups are not).
* Y42C: removed cea_y42c_cl::gen_data_layout(): no longer needed.
* edi_grp_cl::base_clone() return also the rcode for reporting
errors. Non-critical errors can be now ignored.
* wxEDID_App::CmdLineArgs(): now uses wxCmdLineParser.
* wxEDID_Frame::ClearAll(): clear BlockTree, so if Re-OpenEDID()
fails, the tree stays empty.
* wxEDID_Frame::DTD_Ctor_WriteInt() and WriteField(): log old
field values.
Added
* Auto-reparse DBC group on Tag Code/Extended Tag Code change.
* Basic copy/paste functionality for blocks of the same type.
* Block type ID: T_EDID_FIXED: fixed, single instance block.
Instance data held in EDID buffer. Blocks without the flag set
will keep instance data in local buffers.
* BlockTree context menu: "Insert Into": insert subgroup
@idx == 0.
* BlockTree context menu: "Reparse Group": reparse single group
(root groups only). This allows to re-interpret the group f.e.
after manual editing of "unknown" bytes.
* BlockTree context menu: display additional details in a
sub-menu: abs/relative offsets and block/group free space.
* BlockTree key bindings for Copy/Paste/Cut/Move(Up/Down)
* CEA-DBC header: (Extended) Tag Code selector menus.
* CanPaste/CanInsert: checking parent block free space.
* Checking free space after manual editing of DBC block length.
* Clone() method for all data classes which can be copied.
* DBC_GrpAr_cl: array of DBC sub-groups.
* DBC_GrpAr_cl: paste/insert/move methods specialized for DBC.
* Data Grid: option for showing field details: base offset, shift
and size. Added: menu "Options"->"Block Data: show field
details" Added: config.b_dta_grid_details
* Dynamic data layout support for groups: ADB, VDB, VSD, SAB.
* EDID_cl::AssembleEDID()->CEA_Set_DTD_Offset(): check & update
DTD offset in CEA block.
* EDID_cl::AssembleEDID(): copy local data from movable blocks
back to the main EDID buffer.
* EDID_cl::AssembleEDID(): update block length in DBC headers.
This means that manual changes to the block length are
ignored -> only insert/delete/cut operations can change the
block size.
* GroupAr_cl: specialized derived classes: EDID_GrpAr_cl and
CEA_GrpAr_cl: block-specific implementations of
paste/insert/move methods.
* IFDB: edi_grp_cl::IFDB_Init_SubGrp(): shared init function
for sub-groups.
* Log operations:
Copy/Paste/Delete/Cut/Insert(Up/Down)Move(Up/Down)
* New array class for holding EDID groups: GroupAr_cl: implements
the copy/paste/move operations.
* New data group cea_unkdat_cl: UNK-DAT Unknown Data bytes, used
as a subgroup for representing undefined bytes.
* New field flag: EF_INIT: forced re-initialization of the group.
Flag name is "FR", same as for Forced Group Refresh.
* Saving/restoring AUI layout, window position and size. NOTE:
changed token delimiters, old cfg files have to be re-created.
* Sub-group type ID: T_DBC_FIXED: fixed within DBC, instance data
held in local buffer.
* Subgroups have the same type ID as parent groups + T_DBC_SUBGRP
flag.
* Support for manual editing of DBC block length and Tag Codes:
SAB, VDTC, VSD, UNK-TC, VCDB, HDRS, CLDB, VSVD, VSAD, VFPD,
Editing group trees: ADB, VDB, RMCD
* Support for manual editing of DBC block length and Tag Codes:
SLDB, VDDD, IFDB, HDRD (+ metadata length)
* Y42C, SLOCD: support for handling invalid block lengths.
* cea_sad_cl::byte2_afc2_8: EDID_cl::SAD_BitRate(): handling
values of bitrate in 8kHz units.
* edi_grp_cl::CodeName: code name is now separated from GroupName
* edi_grp_cl::base_DBC_Init_FlatGrp(): update field offsets if
TG_FLEX_OFFS flag is set in group descriptor.
* edi_grp_cl::parent_grp: parent group pointer: needed to update
group data size after inserting/deleting of sub-groups.
* wxEDID_App::CmdLineArgs() new cmd line switches:
- e --ignore-errors, -w --all-writeable.
* wxEDID_Frame::BlkTreeUpdateGrp() try to restore sub-group
selection.
* wxEDID_Frame::ClearAll(): clear edigrp_src ptr and change
mnu_BlkTree info item to miInfoNOK.
* wxEDID_Frame::evt_blktree_rmb(): handler for RMB actions.
* wxEDID_Frame::mnu_BlkTree: RMB menu for selecting block actions
Updated
* Update: manpage: added new cmd line options.
* Update: rcd_autogen v2.3
* Fri Jan 08 2021 Mia Herkt <mia@0x0.st>
- Update to v0.0.22
Fixed
* (BUG) (Thanks to Matthew Evanson): EDID_cl::ParseEDID_CEA():
the number of included DTDs can be greater than the number of
mandatory *native* DTDs specified in
cea_hdr_t.info_blk.num_dtd. Those additional DTDs were silently
ignored in previous wxEDID versions. Additionally, the padding
area after last DTD is now checked (all bytes have to be
zeroed).
* Desription of cea_hdr_t.info_blk.num_dtd field: it should be
explicitly stated, that this is a number of *native* DTDs,
and not the total number of DTDs in the CEA block.
* wxEDID_App::CmdLineArgs(): using wxLogStderr for printing
messages to stderr.
* EDID_cl::ParseDetDtor(): error msg needs EDID block number,
passed by the caller.
* all references to GPLv3 replaced with GPLv3+, to match the
declarations in COPYING.
* makefile.am: strict control of what goes to the 'dist' target.
* don't distribute src/config.h -> this requires a workaround in
wxEDID_Main.h, i.e. defining dummy VERSION symbol when
rcd_autogen is running.
* (BUG) EDID_cl::VSD_ltncy(): unsupported IEEE-OUI codes: don't
overflow if the latency value is zero: mark the field as
unused. Added EF_FGR flags: editing the latency value removes
"unused" flag.
* (BUG) cea_vsd_cl::fields[] max latency value is 500ms, not 251=(500/2)+1.
Changed
* wxEDID_Frame::SaveRep_SubGrps(): export offset values in both
decimal and hex format.
* single top-level makefile.am
* cea_vsd_cl::fields[]: Latency: Added info about 2ms granularity
of values.
* cea_vsd_cl: Updated group description (new IEEE-OUI codes).
Added
* man/wxedid.1 manpage written by Felix Lechner.
Updated
* rcode.h v1.1.0, rcd_autogen v2.1
/usr/bin/wxedid /usr/share/doc/packages/wxEDID /usr/share/doc/packages/wxEDID/AUTHORS /usr/share/doc/packages/wxEDID/ChangeLog /usr/share/licenses/wxEDID /usr/share/licenses/wxEDID/COPYING
Generated by rpm2html 1.8.1
Fabrice Bellet, Sat Oct 18 22:43:15 2025