View Issue Details

IDProjectCategoryView StatusLast Update
0003379Ham Radio DeluxeMaintenancepublic2019-11-08 02:31
ReporterK7ZCZAssigned ToK7ZCZ 
Status closedResolutionfixed 
Product Version6.6.0.236 
Target VersionFixed in Version6.7.0.244 
Summary0003379: Rig Control's drop-down buttons structure is inefficient
DescriptionOne of the large data structures used in rig Control to describe radio settings and their representative UI is aButtonsMulti, which is an array of anonymous structures that contain radio, button title, and descriptive information that describe and implement drop-down buttons in the Rig Contro UI.

In the long term, we should replace this array of sturctures with a map of polymorphic classes keyed by the radio name. This approach has been demonstrated to work well with other structures, since linear searching isn't necessary. Further, special-case code can be encapsulated in the classes rather than spread throughout the code as is done onw.

One initial step toward that change is to get rid of the lpszSpecial string which is used to flag special handling for certain entries. This is terrible, since string comparisons each time the entry is touched and those calls are embedded in loops. Lots of temporary CString objects are created, memory is thrashed, and so on.

A first cut would be to replace the strings with an enum value. These are trivial integer comparisons, are type-safe, and more descriptive in the source code and the debugger.

TagsNo tags attached.
ModuleRig Control
Sub-ModuleRadio Support
Testing Beta Successful



2019-07-06 09:18

developer   ~0008201

Converted strings to an enum, replaced all references in this checkin:


2019-09-23 06:20

viewer   ~0008609

The Rig Control drop downs work OK with my IC-7610


2019-09-24 00:18

administrator   ~0008628

I'll accept John's observation as confirmed.

Issue History

Date Modified Username Field Change
2019-07-05 22:34 K7ZCZ New Issue
2019-07-06 09:18 K7ZCZ Note Added: 0008201
2019-07-13 16:47 K7ZCZ Assigned To => K7ZCZ
2019-07-13 16:47 K7ZCZ Status new => resolved
2019-07-13 16:47 K7ZCZ Resolution open => fixed
2019-08-30 13:48 K7ZCZ Fixed in Version =>
2019-09-23 06:20 g3ucq Note Added: 0008609
2019-09-24 00:18 WA9PIE Status resolved => closed
2019-09-24 00:18 WA9PIE Testing Not Started => Beta Successful
2019-09-24 00:18 WA9PIE Note Added: 0008628
2019-11-08 02:16 WA9PIE Fixed in Version =>
2019-11-08 02:31 WA9PIE Project 3 - Current Dev List => Ham Radio Deluxe