File wxEDID.changes of Package wxEDID

-------------------------------------------------------------------
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
openSUSE Build Service is sponsored by