Added:
* wxEDID_Frame::ChkNumValidBlocks()
Fixed:
* (BUG) SaveRep(), ExportHex(): writing extension block data if
BED::num_ext is changed to zero.
* (BUG) wxEDID_Frame::DTD_Ctor_set_DTD(): sct_hborder->data and
sct_vborder->data must be set to zero for T7VTDB - otherwise
the DTD_Ctor could draw border lines from previously selected
DTD.
* few typos in textual descriptions
OBS-URL: https://build.opensuse.org/package/show/hardware/wxEDID?expand=0&rev=30
857 lines
38 KiB
Plaintext
857 lines
38 KiB
Plaintext
-------------------------------------------------------------------
|
||
Sat Oct 18 15:29:31 UTC 2025 - Mia Herkt <mia@0x0.st>
|
||
|
||
- Update to v0.0.33
|
||
Added:
|
||
* wxEDID_Frame::ChkNumValidBlocks()
|
||
|
||
Fixed:
|
||
* (BUG) SaveRep(), ExportHex(): writing extension block data if
|
||
BED::num_ext is changed to zero.
|
||
* (BUG) wxEDID_Frame::DTD_Ctor_set_DTD(): sct_hborder->data and
|
||
sct_vborder->data must be set to zero for T7VTDB - otherwise
|
||
the DTD_Ctor could draw border lines from previously selected
|
||
DTD.
|
||
* few typos in textual descriptions
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Mar 16 18:25:40 UTC 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 17:49:08 UTC 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 9 23:47:09 UTC 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 04:40:40 UTC 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 22:49:37 UTC 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 19:13:13 UTC 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 06:44:15 UTC 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 02:21:19 UTC 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 17:44:07 UTC 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 8 01:53:45 UTC 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
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jul 14 20:11:09 UTC 2020 - Mia Herkt <mia@0x0.st>
|
||
|
||
- Update to v0.0.21
|
||
Fixed
|
||
* (BUG): BlockTree: root node was not showing EDID file name if
|
||
the file path was provided as an cmd line argument
|
||
(both binary and --text).
|
||
* (BUG) cea_hdrs_cl::init(): Incorrect min size for
|
||
"HDR Static Metadata Data Block" (TagCode=7, ExtTagCode=6):
|
||
the min. block size is 3, not 6 bytes. Fields for bytes 4..6
|
||
are marked as unused, depending on the block size.
|
||
* (BUG) cea_hdrs_cl: incorrect bitfield definitions for reserved
|
||
fields: "ET6-7" & "SM1-7"
|
||
* Wrong evt ID for importing HEX-text EDID from cmd line arg:
|
||
should be id_mnu_imphex, not id_mnu_exphex.
|
||
* (Regression) if config file doen't exist, the
|
||
config.b_dtd_keep_aspect is set to OFF, but by default it
|
||
should be set to ON.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 5 11:35:37 UTC 2020 - Mia Herkt <mia@0x0.st>
|
||
|
||
- Add wxedid-no-implicit-string-conversion.patch
|
||
Works around compilation issues with openSUSE’s wxWidgets
|
||
packages, which do not enable implicit string type conversion.
|
||
- Update to v0.0.20
|
||
Added
|
||
* Added: Loading/Importing EDID files from path passed as cmd
|
||
line argument.
|
||
* Added: Save settings: last used directory + last opened file,
|
||
dtd_keep_aspect_ratio
|
||
|
||
Changed
|
||
* lower-case name for the final executable: wxEDID -> wxedid
|
||
|
||
Fixed
|
||
* (BUG) cea_y42c_cl::gen_data_layout() never tested: buggy code,
|
||
memory corruption. Program crash if EDID data contains
|
||
"YCBCR 4:2:0 Capability Map Data Block"
|
||
(TagCode=7, ExtTagCode=15)
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jan 5 17:21:10 UTC 2020 - Martin Herkt <9+suse@cirno.systems>
|
||
|
||
- Update to v0.0.19
|
||
Fixed
|
||
* evt_blktree_sel(): the cell editor must be closed before
|
||
switching to newly selected data block. Otherwise the cell
|
||
editor can be "orphaned" and its window stays opened until
|
||
another cell editor is activated. This problem was visible
|
||
only when the cell editor was activated from Value Selector
|
||
Menu event and if evt_blktree_sel() was invoked with opened
|
||
cell editor.
|
||
* EDID_cl::ProdWk(): wxString::operator<<() requires type casting
|
||
to <int> when appending a byte -> otherwise <u8_t> is
|
||
interpreted as <char>
|
||
* menu Options::"Ignore EDID errors" must be always enabled,
|
||
because otherwise the option will be unavailable until a valid
|
||
EDID structure is loaded.
|
||
|
||
Added
|
||
* Menu Help::Flags & Types: info about flags displayed in the
|
||
block data grid.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Jul 24 13:57:06 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
|
||
|
||
- Update to v0.0.18
|
||
Fixed
|
||
* Removed unused "Hex View" menu item
|
||
|
||
Added
|
||
* Menu Options: "DTD preview: keep aspect ratio": keep aspect
|
||
ratio of the DTD preview screen.
|
||
* DTD_Constructor: active screen area size is now displayed on
|
||
the DTD screen preview. H/V borders are excluded from active
|
||
area.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Dec 23 18:43:51 UTC 2018 - Martin Herkt <9+suse@cirno.systems>
|
||
|
||
- Update to v0.0.17
|
||
Changed
|
||
* Increased default Log Window size from 400x300 to 500x400.
|
||
* All panels & controls are now using default system font instead
|
||
of fixed one.
|
||
|
||
Fixed
|
||
* (BUG::wxSmith) Menu "Quit" and "About" handlers were connected
|
||
dynamically in the frame constructor, even though they were
|
||
already present in the static event table.
|
||
* Options menu: all menu items except "Log window" should stay
|
||
disabled until edid data is loaded/imported.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Dec 6 13:05:39 UTC 2018 - Martin Herkt <9+suse@cirno.systems>
|
||
|
||
- Update to v0.0.16
|
||
Added
|
||
* support for wxWidgets v3.1.x : *experimental*
|
||
|
||
Changed
|
||
* DTD panel: all the controls are now configured to use default
|
||
min sizes - this is rather a disadventage, because f.e. the
|
||
default controls in gtk3 are ridiculously big. However,
|
||
the minimal App frame size is now re-calculated dynamically,
|
||
basing on the min. size reported by the DTD sizer - so this
|
||
is a more flexible solution.
|
||
* Dropped support for old wxWidgets versions (<3.0.0).
|
||
* Changed proportions of AUI panes.
|
||
|
||
Fixed
|
||
* DTD panel: dtd_screen: background was erased twice on resize
|
||
event → now the refreshing is performed in a single call to
|
||
the paint event.
|
||
* wxWidgets v3.1.x wxGrid::SetCellValue(wxString&, int, int)
|
||
is deprecated, new version is wxGrid::SetCellValue(int, int,
|
||
wxString&)
|
||
* wxWidgets v3.1.x: wxEVT_GRID_CELL_CHANGE is no longer
|
||
supported → renamed to wxEVT_GRID_CELL_CHANGED
|
||
* wxEDID_Frame::evt_frame_size() missing call to sizer->Layout()
|
||
→ quick resizing of the frame could cause incorrect placement
|
||
of child windows on the DTD panel.
|
||
* (BUG::old): DTD_Ctor_WriteInt(): value change event log:
|
||
missing field names. Only the first letter of field name was
|
||
printed due to missing conversion from ASCII to wxString.
|
||
* (BUG::old): EDID_class.cpp: wxString AltDesc wasn't really
|
||
initializing the alternative desriptors' "Desc" fields.
|
||
Now the AltDesc is just a char string, and the "Desc" fields
|
||
are proprly initialized by calling wxString::FromUTF8(AltDesc).
|
||
* DTD_Ctor_WriteInt(), WriteField(): value change event log:
|
||
print the whole message string in a single call to
|
||
guilog::DoLog() - eliminates printing of multiple timestamps
|
||
per event.
|
||
* Corrected few textual descriptions of EDID fields.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Nov 28 03:47:08 UTC 2017 - 9@cirno.systems
|
||
|
||
- update to v0.0.15
|
||
* Fixed: (BUG) RCD_RETURN_FALSE() returns RCD_TRUE
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Oct 30 16:49:24 UTC 2017 - 9@cirno.systems
|
||
|
||
- update to v0.0.14
|
||
* Update: guilog.h v0.2
|
||
* Fixed: Info panel: BG & FG colors were theme-dependent, which
|
||
could make the panel look "ugly" or even completely unreadable.
|
||
Now the FG is forced to black and the BG is white.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Sep 5 23:46:02 UTC 2017 - 9@cirno.systems
|
||
|
||
- update to v0.0.13
|
||
* Fixed: (GCC 6.x): silenced some warnings (false-positives)
|
||
regarding "possibly unitialized variables" in EDID_class.cpp
|
||
* Fixed: (GCC 6.x, C11 mode): wxEDID_Main.h: C11 requires a space
|
||
between literal and string macro [-Wliteral-suffix].
|
||
* Update: returncode.h v0.8.3
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Apr 1 02:41:15 UTC 2017 - 9@cirno.systems
|
||
|
||
- Initial commit
|