Commit Graph

1748 Commits

Author SHA1 Message Date
Mathew Sutcliffe
db4c05dd9f refs #84 removed the CValueObject::compare method and added a friend function BlackMisc::compare to replace it.
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.
2014-01-17 01:38:27 +00:00
Mathew Sutcliffe
e40c93fe1b Removed CEarthAngle::toAngle, because implicit conversion already works.
Applied a different workaround to resolve the hiding of an inherited name in CEarthAngle, same as was done in CAltitude.
refs #84
2014-01-17 01:29:03 +00:00
Roland Winklmeier
4d6564af64 Remove member string initialization to empty string in constructor
QString always treats null strings and empty strings the same,
except in isNull, so there is no need for this.
2014-01-15 21:24:15 +01:00
Roland Winklmeier
e36448f0a1 Replaced c++ standard integer types with Qt types
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
2014-01-15 21:12:01 +01:00
Mathew Sutcliffe
7f99c6d953 using qSwap in CTextMessage::toggleSenderRecipient 2014-01-14 23:30:20 +00:00
Mathew Sutcliffe
b5f1b101f6 CTransponder::setModeAsString 2014-01-14 23:30:19 +00:00
Klaus Basan
3627d340b2 Enable flag for modulator. Used with the GUI for MUTE. 2014-01-13 02:43:45 +01:00
Klaus Basan
4303cb8897 Hash value 2014-01-13 02:35:33 +01:00
Klaus Basan
43e5e54f22 Added received timestamp. Taken renaming to sender /recipient
one step further. getSender will be used later to return
the real CUser object
2014-01-13 02:30:42 +01:00
Klaus Basan
7cc35b24d3 Get current callsign as observer callsign.
This will be used with OBS mode login.
2014-01-13 01:57:42 +01:00
Roland Winklmeier
05c121b214 Fixed a mistake where CContainerBase::marshallToDbus was using the wrong version of QDBusArgument::beginArray,
leading to the qdbuscpp2xml error "read from a write-only object" reported by Klaus.
2014-01-11 16:58:32 +00:00
Mathew Sutcliffe
405ad7165e Iterator classes: removed templated ctors and added static methods to replace them,
for consistency with the container classes and to avoid any potential infinite recursion with MSVC2010.
See also commit:6a9065b

Also fixed a mistake in CSequence and CCollection, where Pimpl::erase was calling the wrong version of m_impl.erase
reported by Roland.
2014-01-11 16:53:21 +00:00
Mathew Sutcliffe
6a9065b37f Container classes: removed templated ctors and added static methods to replace them.
This resolves an issue with infinite recursion and stack overflows in MSVC2010.
See also http://connect.microsoft.com/VisualStudio/feedback/details/522094/
2014-01-11 01:32:24 +00:00
Mathew Sutcliffe
784d93139b CTextMessage: fromCallsign and toCallsign become sender and recipient (to and from looked like conversion methods)
refs #81
2014-01-10 00:20:22 +00:00
Mathew Sutcliffe
4f4b77f2b2 CSequence: added sort method, an in-place companion to the sorted method
refs #81
2014-01-10 00:20:22 +00:00
Mathew Sutcliffe
08e978c8d6 moved from CContainerBase to CSequence those methods which only support sequential containers
refs #81
2014-01-10 00:20:21 +00:00
Mathew Sutcliffe
bc611263e9 slight change to how we declare our qHash overload for CValueObject,
which fixes some include order dependency shenanigans when compiling with GCC,
which was caused by the requirement to overload qHash for CCollection
and the way qHash interacts with the dreaded two-phase lookup for C++ templates

refs #81
2014-01-09 01:16:02 +00:00
Klaus Basan
64e14b7965 input and output volume stored as part of CModulator
refs #81
2014-01-09 01:16:02 +00:00
Mathew Sutcliffe
b475d7eff1 INetwork builds up the ATIS as it is received, line-by-line, keeping this implementation detail more encapsulated
refs #81
2014-01-09 01:16:01 +00:00
Klaus Basan
37d1466a83 added CCallsign::m_callsignPronounced
refs #81
2014-01-09 01:15:59 +00:00
Klaus Basan
1c1fdabd2e all voice changes from kbatclist branch
refs #81
2014-01-09 01:15:58 +00:00
Klaus Basan
bb61654a29 style and consistency:
* 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
2014-01-09 01:15:56 +00:00
Klaus Basan
0c01da4c8e Minor changes such as parameter warnings, added metatype registration for voice
refs #81
2014-01-08 01:01:26 +00:00
Roland Winklmeier
db4a3c5de4 Refactoring and clean up of voice implementation
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
2014-01-08 01:01:23 +00:00
Roland Winklmeier
0bae898db8 Added commands to voice sample. Test successfull refs #36 - Added commands to list input and output devices - Fixed some compiler errors on win - Voice confirmed working on windows and linux
Signed-off-by: Roland Winklmeier <roland.m.winklmeier@gmail.com>

refs #81
2014-01-08 01:01:20 +00:00
Roland Winklmeier
158de31c0b Added CAudioDevice and cleaning up IVoice
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
2014-01-08 01:00:57 +00:00
Roland Winklmeier
fcebc44b02 Added class CVoiceRoom
refs #36
- This class encapsulates the information on a voice server room.
- It basically consists of the tuple hostname and channel

refs #81
2014-01-08 01:00:50 +00:00
Roland Winklmeier
f24d16019f Minor fixes for linux build
refs #36
- Fixed compiler error in context.cpp (is not used anymore, but was still annoying)
- GCC was complaining about the template definitons in blackgui. Removing typename fixed it.
- Fixed a bug in qmake. Unfortunately qmake mkspec was just linux-g++ (not linux-g++-64), so added this case.
- Fixed a PRE_TARGETDEPS bug
- QMake has strange behaviour with DBUS_ADAPTORS: include the header somewhere, otherwise it won't be generated.

refs #81
2014-01-08 01:00:39 +00:00
Klaus Basan
7410d6aeb2 translations files for all kbatclist branch changes
refs #81
2014-01-08 01:00:31 +00:00
Klaus Basan
1f2a88e502 context classes, runtime classes, and related infrastructure
refs #81
2014-01-08 01:00:24 +00:00
Klaus Basan
7cbfca1402 do rounding in CModulator::setFrequency functions
refs #81
2014-01-08 01:00:10 +00:00
Klaus Basan
2bf9042ffa fixed mistake in CModulator::getFrequencyStandby
refs #81
2014-01-08 01:00:06 +00:00
Klaus Basan
bf0a849a7c CTransponder: setting code as string and refactored validation
refs #81
2014-01-08 01:00:02 +00:00
Mathew Sutcliffe
c37e160a42 simple memory profiling on Windows using the CRT debug heap
refs #81
2014-01-08 00:59:59 +00:00
Klaus Basan
4747b3b484 new value objects for aviation, network, and settings
refs #81
2014-01-08 00:59:39 +00:00
Klaus Basan
fe1a570c39 classes for status messages
refs #81
2014-01-08 00:59:34 +00:00
Mathew Sutcliffe
a57e640398 generic type-erased container types CSequence and CCollection, including predicate-based algorithms
refs #81
2014-01-08 00:59:31 +00:00
Klaus Basan
c72e8a4a27 made strictness optional in CMeasurementUnit::unitFromSymbol
refs #81
2014-01-08 00:59:27 +00:00
Klaus Basan
f247399575 register CMeasurementUnit as a Qt meta type
refs #81
2014-01-08 00:59:24 +00:00
Klaus Basan
2cdc2abeb5 CMath::epsilonEqual fuzzy comparison function for doubles
refs #81
2014-01-08 00:59:19 +00:00
Klaus Basan
b0e212998f degree/radian conversion functions
refs #81
2014-01-08 00:59:16 +00:00
Klaus Basan
f49341841e suppress a compiler warning
refs #81
2014-01-08 00:59:13 +00:00
Klaus Basan
f6905d1d8b format latitude and longitude strings with cardinal directions
refs #81
2014-01-08 00:59:10 +00:00
Klaus Basan
76e2421ba2 WGS84 function in CCoordinateGeodetic
refs #81
2014-01-08 00:59:06 +00:00
Klaus Basan
bf1837b414 CValueMap generic representation of a value object as a map of QVariants
refs #81
2014-01-08 00:59:03 +00:00
Klaus Basan
a280d239e6 using hashes to perform comparisons between blackmisc value objects stored inside of QVariant
refs #81
2014-01-08 00:59:00 +00:00
Klaus Basan
67a5dbfe48 converting value objects to/from QVariant
refs #81
2014-01-08 00:58:56 +00:00
Klaus Basan
0518e680c3 add greatCircleDistance
refs #81
2014-01-08 00:58:53 +00:00
Klaus Basan
ded6fc012e rename CStreamable to CValueObject
refs #81
2014-01-08 00:58:50 +00:00
Klaus Basan
c6da7b0d35 removing unneeded code
refs #81
2014-01-08 00:58:08 +00:00