Commit Graph

57 Commits

Author SHA1 Message Date
Klaus Basan
ea8198d26e [AFV] Allow to set the tx/rx values for the AFV client
Simplified function
2020-06-12 18:42:46 +01:00
Klaus Basan
7d4e897b88 [AFV] Displayed sync. (integrated with COM unit) flag in cockpit 2020-06-12 18:42:40 +01:00
Klaus Basan
c46ca3c616 [AFV] restart function 2020-01-22 20:02:01 +01:00
Klaus Basan
5f6912e814 [AFV] deadlock prevention in AFV client,
follow up of fixing the loading of audio settings

* use "m_mutexSampleProviders" for finer granularity
* call output/input volume in AFV client thread (avoid potential deadlocks)
* tryLock for a critical part which has caused deadlocks in the past (just precautionary)

remarks:
* mixing QTimer::singleShot and QMutex is mixing two concepts (not good)
* this is just a pragmatic apporach at this time to avoid some noticed issues as the AFVClient was 1st running in the main thread, then was moved into background (improved performance)
2020-01-22 19:47:25 +01:00
Klaus Basan
091fa5f338 [Audio] Get/set audio device volume (this is the device's value, NOT the logical AFV value) 2020-01-07 19:57:23 +00:00
Klaus Basan
efee7968dc [AFV] Using the aliased frequencies can be enabled/disabled
* flag
* "dot command"
* register audio "dot commands" for audio
2020-01-07 19:57:20 +00:00
Klaus Basan
881ec39043 [AFV] Fix aliased frequency handling
* ONLY use HF frequency if stations match and is closest station
* better log messages
2020-01-07 19:46:19 +00:00
Klaus Basan
53de0d56b9 Style 2020-01-07 19:46:17 +00:00
Klaus Basan
9447db00bc [AFV] Ref T739, audio can now be disabled from UI 2020-01-07 19:05:41 +00:00
Klaus Basan
767b999330 [AFV] Ref T739, start/stop audio improvements
* signals
* "restart" without devices
2020-01-07 19:05:40 +00:00
Klaus Basan
a63fe0dc21 [AFV] Ref T739, unified callsign functions in CAfvClient
* improved CallsignSet from QStringList
* renamed the functions which just return a string
* added functions for CCallsignSet
2019-10-23 00:38:26 +02:00
Klaus Basan
be99911372 Style, minor adjustments 2019-10-23 00:38:26 +02:00
Klaus Basan
49272d3b1c [AFV] Ref T739, use QMutex::Recursive to avoid deadlock in same thread 2019-10-23 00:38:25 +02:00
Klaus Basan
a8c7575d9d Style 2019-10-18 10:36:25 +02:00
Klaus Basan
f81fc31da6 [AFV] Ref T730, fetch settings in correct thread (i.e. context thread) 2019-10-18 10:36:25 +02:00
Klaus Basan
439f76c9bb [AFV] Ref T730, extra lock for volume (less blocking) 2019-10-18 10:36:25 +02:00
Roland Rossgotterer
1051cc5751 [AFV] Add fuzzy callsign matching before aliasing a HF station
# Conflicts:
#	src/blackcore/afv/clients/afvclient.h
2019-10-18 10:36:24 +02:00
Roland Rossgotterer
2362e25593 [AFV] Add client version to API auth 2019-10-18 10:36:24 +02:00
Klaus Basan
f980fd02d5 [AFV] Ref T739, check if COM integration is used and make sure to use TX/RX defaults if NOT
There was a bug that COM integration was used although it was disabled
2019-10-18 10:36:24 +02:00
Klaus Basan
632a85d079 [AFV] changed AFV update rate to 20secs 2019-10-18 10:36:23 +02:00
Klaus Basan
218c099456 [AFV] Ref T730, Ref T739, mutexes for some parts which still were NOT threadsafe
* connection object
* auto logoff if FSD terminates and voice client is still online
* "the server is full" is a good test case for the auto logoff,
  FSD login fails, AFV login works, and needs to be terminated

IMPORTANT: using the mutex before login results in a situation where the EventLoop runs into a deadlock
See https://discordapp.com/channels/539048679160676382/623947987822837779/633338177922269224
2019-10-16 17:40:33 +02:00
Klaus Basan
de75cdc214 [AFV] Ref T730 incorporated MS fixes
see https://discordapp.com/channels/539048679160676382/623947987822837779/633025547999510530
2019-10-16 17:40:32 +02:00
Klaus Basan
af2fb4933d [AFV] Ref T730, init in/out dB values - avoid issue with unitialized values 2019-10-13 19:49:19 +02:00
Klaus Basan
73f191619a [AFV] Ref T730, renamed to COutput 2019-10-13 16:47:41 +02:00
Klaus Basan
0a24d80291 [AFV], Ref T730 only startAudio and stopAudio
* start audio restarts if devices change
* restart no longer needed
* stop normally is only needed at the end of the lifetime of CAfvClient
* signal: startAudio
2019-10-13 16:47:41 +02:00
Klaus Basan
541ce76fb6 [AFV] Ref T730, check for same device 2019-10-13 16:47:41 +02:00
Klaus Basan
3880de5e0c [AFV] Ref T730, added graceful shutdown in AFV client itself
Also disconnect from network during "shutdown"
2019-10-13 16:47:40 +02:00
Klaus Basan
d2de52f818 [AFV] Ref T730, use CoInitializeEx on windows for threaded CAfvClient 2019-10-13 16:47:40 +02:00
Klaus Basan
a9166d4e4c [AFV] Ref T730, improved volume handling
* for the asymmetric output volume -60/18dB, make sure that normalized 50 means 0dB
* slider is centered
* return value if value for volume was changed
2019-10-13 16:47:40 +02:00
Mat Sutcliffe
b929eb442a [AFV] CContextAudio::m_voiceClient is a raw pointer, and CAfvClient doesn't have a parent 2019-10-11 19:40:43 +01:00
Roland Rossgotterer
01d144b528 [AFV] Hide AFV client behind context 2019-10-11 19:00:52 +01:00
Klaus Basan
ef9e7b0bf1 Ref T730, Ref T739 update from own aircraft in one step
* update all values from own aircraft in "one step"
* rational: avoid "single property" updates and numerous round trips (signals, transceiver updates)
* also allow updates of not yet connect, as "a kind of preset"
* do NOT send to network if not authenticated
2019-10-11 19:00:49 +01:00
Klaus Basan
f81a9e8447 Ref T730, Ref T739, make sure transmitting receivers are correct
* deferred init, make sure values from context are used (if possible)
* only use 1 transmitting transceiver
2019-10-11 19:00:48 +01:00
Klaus Basan
e485824bfc Ref T730, allow to update voice server URL 2019-10-11 19:00:45 +01:00
Klaus Basan
c604ced11c [AFV] Ref T730, improved "locking"
* use more fine granular locks
* do NOT lock signals (when emit is used)
2019-10-11 19:00:43 +01:00
Roland Rossgotterer
d3a1eb1d60 [AFV] First version of threaded CAfvClient 2019-10-11 19:00:38 +01:00
Klaus Basan
6e9fa0b2ad Ref T730, style 2019-10-11 19:00:33 +01:00
Roland Rossgotterer
a2e3700739 Replace QAudioDeviceInfo with CAudioDeviceInfo where possible
QAudioDeviceInfo is a low level technical class, which shouldn't be used in higher level code. Remove it from all APIs
where possible and just create it in order to interface with QAudio
2019-10-11 19:00:31 +01:00
Roland Rossgotterer
8d84dcbe08 [AFV] Make sure all QObjects below AfvClient have a parent 2019-10-11 19:00:30 +01:00
Roland Rossgotterer
1f2d4a10b1 [AFV] Add HF simulation 2019-10-11 19:00:27 +01:00
Klaus Basan
91b65fa2b6 Ref T730, AFV client fixes
* correct quint32 for frequency
* make sure frequencies are not updated twice, only update position
* re-init transceivers if stopped and started again
2019-10-11 19:00:23 +01:00
Klaus Basan
cf6434f49b Ref T730, fixed using wrong member "m_outputVolume", added new member "m_outputVolumeDb" 2019-10-11 19:00:23 +01:00
Klaus Basan
088ef74392 Ref T730, swift style functions in AFC client
* COM unit related functions
* signal to indicate changed COM values
2019-10-11 19:00:04 +01:00
Klaus Basan
7c89234f8c Ref T730, callsign set used for received callsigns 2019-10-11 19:00:02 +01:00
Klaus Basan
661a6576c5 Ref T730, AFV client
* restart function
* bogus mute function (needs implementation)
* float -> double
* log categories
* settings
2019-10-11 19:00:01 +01:00
Klaus Basan
6b19ed665e Ref T730, added settings in AFV client 2019-10-11 18:59:56 +01:00
Klaus Basan
e21fdeb039 Ref T730, pass PTT key events to client
* currently passing from context to client, so context and client know the state
* PTT enum in own file so it can be reused
2019-10-11 18:59:55 +01:00
Klaus Basan
992d624c18 Ref T731, moved AFV station model and client to BlackCore::Afv
* the QML map can also be used in dialog
* ATC station list also can be used in BlackCore
2019-10-11 18:59:53 +01:00
Klaus Basan
66b02e61c5 Ref T730, directly use context from sApp
* using sApp->getIContextOwnAircraft()
* no need to pass context, avoid issues when shutting down
* minor style changes
2019-10-11 18:59:53 +01:00
Klaus Basan
99edc9cb13 Ref T730, code style, adding namespaces 2019-10-11 18:59:45 +01:00