The new compare is implemented using "multimethods" described in the book Advanced C++ Programming Styles and Idioms by James Coplien.
First, the isA method is used to determine which of the values being compared is the most general. (For example, CLength is more general than CAltitude.)
Then the compareImpl method is called on the most general value, with the other value as an argument.
If there is not a direct inheritance relation between the two values (or they are the same class) then the comparison is invalid and a assert is triggered.
In order to be consistent, all standard integer types have been
replaced by the equivalent Qt ones in voice/audio code.
Projects covered
- BlackCore
- BlackMisc
- sample_voice_client
refs #99
* rename CStatusMessages to CStatusMessageList
* rename NetworkVatlib to CNetworkVatlib
* replace all occurrences of Realname with RealName (correct camel case)
* CSequence method corresponding to CList::append is push_back
* don't compile the qdbuscpp2xml metadata plugin by default
* CAircraftIcao string members always trimmed and capitalized
* added CComSystem::roundTo25KHz
* using epsilon comparison in a couple of places
refs #81
refs #36
- Cleanup of library and sample code
- Completed now all signals in voice sample
- Fixed minor bugs with the user list
- TODO: Remove the VATSIM id from the user string
refs #81
refs #36
- Added a common class CAudioDevice encapsulating each audio device
- One subclass for input and output devices
- Changed IVoice interface slightly to better fit into the event flow
refs #81