1
0
Fork 0
Commit graph

3001 commits

Author SHA1 Message Date
Scott Giese
7b914bc5fb Removed unreachable code 2020-08-29 11:20:40 -05:00
James Turner
66f938be8e Sentry: fix naming clash. 2020-08-26 15:29:55 +01:00
James Turner
a882b75c9b Sentry: fix fatal-error event type. 2020-08-26 13:57:44 +01:00
James Turner
5dbab6e90e CMake: overhaul how we find 3rd-party files
Handle the standard windows-3rd-party setup (used by fgmeta) with no
extra options, and also handle the slightly odd setup we use on Jenkins.
Try to tolerate all permutations of setting MSVC_3RDPARTY_ROOT to 
different places in the hierarchy.

We no longer try to guess Boost_INCLUDEDIR by looking at parent dirs of
MSVC_3RDPARTY_ROOT, since this seemed kind of bad to me. Let’s try 
it and see.
2020-08-26 13:57:24 +01:00
Automatic Release Builder
9d775cdfe7 Fix duplicate init of Sentry on reset 2020-08-26 09:52:16 +01:00
Automatic Release Builder
73b4c3839d Sentry: more breadcrumbs 2020-08-26 09:52:09 +01:00
Automatic Release Builder
d9b7435dab Sentry logging of exceptions, fatal errors 2020-08-26 09:52:02 +01:00
Automatic Release Builder
bade1ec4c6 Attempt to fix ref-ptr crash on exit
Fixing Sentry issue FLIGHTGEAR-9
2020-08-26 09:51:55 +01:00
James Turner
cf424e4344 Rename buildId header file
Avoid the very common name ‘build.h’ in favour of something clearer
and FlightGear specific.
2020-08-24 15:05:16 +01:00
James Turner
178d1beb80 Cmake: Remove version.h machinery
Merge this file into config.h, this means we can save an include path
everywhere.
2020-08-24 15:04:24 +01:00
James Turner
95fd692af1 CMake: move install() rule for compatability
Older CMake versions can’t install(TARGET…) from a different directory.
2020-08-23 21:50:36 +01:00
James Turner
218df89b29 Embedded resources: better cmake command
Use add_custom_command and an intermediate OBJECT library to avoid
rerunning fgrcc unless the XML input file has actually changed.
2020-08-23 11:31:37 +01:00
James Turner
47ff3e9f67 Improve CMake strucutre 2020-08-23 11:31:37 +01:00
Scott Giese
dc1519bfe8 REVIEW: Memory Leak - screensaver_control
2,056 bytes in 1 blocks are still reachable
352 bytes in 1 blocks are indirectly lost
320 bytes in 1 blocks are still reachable
2020-08-22 22:59:33 -05:00
Scott Giese
f21eb3a484 REVIEW: Memory Leak - Options ctor
15,768 bytes in 219 blocks are still reachable
2020-08-22 17:23:55 -05:00
Automatic Release Builder
bbce95b5ea Updates for sentry.io 0.4.0 API 2020-08-18 16:51:27 +01:00
Automatic Release Builder
439c5bf4f4 Adjust how we enable/disable Sentry.io
This allows for crash-reporting in the launcher,
but still disabling via default.xml or the command line.
2020-08-18 16:51:21 +01:00
James Turner
09067eecda Protocols: additional Hz rate validation
Patch by Huntley Palmer, to warn when passing Hz=0 for the protocol
args, which does not work so well.
2020-08-17 12:15:40 +01:00
James Turner
86f6b94300 Use new thread-safe particles manager.
Requires corresponding SG commit
2020-08-17 10:00:42 +01:00
James Turner
06e6883396 Call new simgear clearSharedTreeGeometry
Should remove the Final Effect (TM) and fix one source of memory
corruption on reset.
2020-08-14 16:47:02 +01:00
James Turner
977bfb06bf Reset: ensure mobile tacan drop its AI references
Add a slightly ugly hook, to force mobile nav records to drop their
refs into the property tree on reset.
2020-08-12 16:37:52 +01:00
James Turner
c913b752fc Improve reset main-loop interaction.
Actually remove our main-loop properties, and clear them from the
EventHandler, so we don’t report them as leaked properties.
2020-08-11 18:44:29 +01:00
Hans Kunkell
4743ede3b3 generates io channel names and adds to property tree 2020-08-10 10:49:09 +01:00
Hans Kunkell
2992e1b100 implements reinit of IO channels 2020-08-10 10:27:51 +01:00
James Turner
379748fc6b Remove obsolete terraSync code 2020-08-03 17:57:59 +01:00
Florent Rougon
3300ac543e Print missing --data path in the "fatal message box"
As suggested by Slawek Mikula:

  https://sourceforge.net/p/flightgear/codetickets/2164/#c397
2020-07-28 10:25:25 +02:00
Florent Rougon
f105e8dfb2 Improve locale handling
- fgfs --language=fr-FR now works as expected for the launcher (also with
  --language=fr_FR as before): the value added by option --language to
  the _languages member of FGLocale is normalized in "underscore" style
  (e.g., fr_FR).

- Add-on translations must now use a hyphen in their property node names
  in addon-metadata.xml (talking about children of <localized>): i.e.,
  use for instance <fr-FR> there, not <fr_FR>. An exception
  (addons::errors::error_loading_metadata_file) is thrown if one of
  these nodes has a name containing an underscore.
2020-07-14 12:23:23 +01:00
James Turner
54264e6591 Add —disable-gui option
Prevents showing a GUI message box if the user wants to run from the
console.

As requested here:
   https://sourceforge.net/p/flightgear/codetickets/2306/
2020-07-14 12:05:53 +01:00
Florent Rougon
37aba7dbd4 Remove unused code and fix typos 2020-07-11 13:22:33 +02:00
James Turner
0bb9600795 Add-ons localization support
Add-on meta-data can be localized now, in the same manner as aircraft
metadata.
2020-07-09 18:14:56 +01:00
James Turner
73c15c4d5c Improve a method name, as suggested by Florent 2020-07-03 12:34:37 +01:00
James Turner
9e00715079 Allow cmd line & add-ons to supply FGData extensions
Allow add-ons to define an FGData subdir, and support multiple —data=
command line arguments, to avoid the need to modify FG_ROOT (which might
be read-only). Allow additional data paths to be either higher or lower
priority than FG_ROOT, so that add-ons cannot replace files in FG_ROOT.
2020-07-03 12:29:21 +01:00
James Turner
de89d72593 Keep more old log files
Suggested on the tracker, keep log files around longer. Currently we
keep the previous ten files.

Note we still don’t log for secondary running copies, since this would
violate the ‘only one copy can write to FGHome’ principle.

https://sourceforge.net/p/flightgear/codetickets/2243/
2020-06-26 10:13:13 +01:00
James Turner
05e40bfde3 Log-to-file level can be raised to debug/bulk
Fixes ticket:
https://sourceforge.net/p/flightgear/codetickets/2100/
2020-06-25 11:01:52 +01:00
James Turner
ee6f4388ee Change how fatalMessageBoxThenExit works
This avoids crashing when using Qt : we cannot call exit() safely since
QGuiApplication won’t shut down correctly. Instead throw a special
marker object and catch this in boostrap.

For an instance of this, see:

https://sourceforge.net/p/flightgear/codetickets/2070/
2020-06-24 15:48:02 +01:00
James Turner
3883b19556 Remove use of unary_function, binary_function
Preparing for switch to C++17
2020-06-22 10:25:51 +01:00
James Turner
bd666f952e Raise minimum OSG version to 3.4.1 2020-06-18 17:39:48 +01:00
James Turner
112d1028bf I18N: fix behaviour when defaultLocale == current 2020-06-18 12:57:30 +01:00
Julian Smith
a4457d995b src/Main/options.cxx: fix gcc initialisation warnings and minor reformat. 2020-06-17 22:46:42 +01:00
James Turner
dbec99abc9 Translate weather scenarios names+descriptions
Allow weather scenarios to be translated, and display this in the
launcher.
2020-06-17 16:15:01 +01:00
James Turner
00d34b67e1 Fix translation of migration-notification dialog.
Was being shown before locale was selected, so always using default
translation. Fixed by deferring the dialog, and also added an assert
for debug builds, if trying to access translated string too early.
2020-06-17 10:57:34 +01:00
James Turner
9326c88f9b Move Qt root path variable to top-level CMakeList 2020-06-10 17:59:09 +01:00
Julian Smith
4de00657c9 Multiplayer replay: added properties showing memory usage info. 2020-06-05 21:21:14 +01:00
James Turner
a9e5a27e55 UI handling tweaks
- add class to handle top-level windows
- remove requirement to use custom graphics-window
- order alongside PUI UI
2020-06-05 17:54:27 +01:00
James Turner
023fbe35ea Tweaks to avoid a crash when asking for FGData path
exit(-1) early in startup seems to cause QApplication to be cleaned
up in a weird way
2020-06-04 17:43:27 +01:00
James Turner
26b0148747 Preserve developer-mode on reset
Thanks to Henning for pointing out problem.
2020-06-01 11:15:45 +01:00
James Turner
13bb1adf54 Better fix for orientation nodes init
(Avoid the chance that we overwrite a value set earlier)
2020-05-31 12:24:36 +01:00
James Turner
c0d347859f Ensure various properties have a value on start.
Ensure /orientation/heading-magnetic-deg, etc have a type of double
immediately. Showed up as a bug in the SenecaII, since the property
is created but has NIL value until the first update() call.
2020-05-31 12:18:07 +01:00
James Turner
0423524b82 Fix crash on first-run on macOS 2020-05-25 14:13:21 +01:00
Lars Toenning
265d721bab [swift] Transfer connection settings to defaults.xml
Related to commit d0cb2f on fgdata
2020-05-24 14:15:27 +01:00
Lars Toenning
f3edffd42b Exit on startup if defaults.xml is corrupted 2020-05-21 22:49:57 +01:00
James Turner
63fe5237c6 Improve interaction of —parkpos and repositioning
Re-work how position-init and ATC-manager work together to do
parking assignment and fallback (when the parking is unavailable).
Improve the logic for the reposition case, and teach ATC-manager about
reposition explicitly.

When the parking is unavailable, explicitly fall back to best-runway
selection in finalizePosition.

Add many additional position-init tests, to cover all of this.
2020-05-19 18:00:34 +01:00
James Turner
620a02bad3 Make sentry APi key customisable 2020-05-12 12:01:59 +01:00
James Turner
6b41eb69eb Lock-file dialog: allow quit-ing, make translated
Add translation macros for the text of the lock-file warning dialog,
and update the default text after some discussion on the devel list.
Also allow quiting the app, as an alternative option.
2020-05-07 16:49:50 +01:00
James Turner
a01f3442c6 Fix non-Qt build.
Thanks Huntley for the catch.
2020-05-04 21:29:23 +01:00
James Turner
ddc7baada2 Improve UI around read-only mode / lock-files
See ticket:
https://sourceforge.net/p/flightgear/codetickets/2133/

Give the user a chance to intervene, if we select read-only mode.
Offer a button to clear the lock file if it’s stale, and start in
read-write mode.

This is still evolving, but want to get some feedback on it.
2020-05-03 18:02:20 +01:00
James Turner
d2a04cecf7 Fix string category for locale 2020-04-30 16:22:59 +01:00
James Turner
4a485adcf3 Fix crash on —show-aircraft
Change how we return, so QApplication doesn’t explode. exit() is not
a happy thing for QApplication.

Ticket:
https://sourceforge.net/p/flightgear/codetickets/2139/
2020-04-29 14:55:37 +01:00
James Turner
de0826294c Aircraft-loading: resolve symlinked dirs earlier.
This is to ensure we pass a realpath when validating Nasal / dialogs,
to fix: https://sourceforge.net/p/flightgear/codetickets/2057/
2020-04-29 12:33:25 +01:00
James Turner
954385ce0d Improve log message when fgfs_lock.pid exists
Part of addressing:
https://sourceforge.net/p/flightgear/codetickets/2133/

Still need to decide about a better GUI dialog for this.
2020-04-29 11:44:21 +01:00
James Turner
489e6abb2a Allow translation of ‘autosave migration’ dialog.
Thanks to Slawek Mikula for the suggestion, this can now be
translated.
2020-04-29 11:44:13 +01:00
James Turner
b69055ffca Fix normalization of heading-mag-deg 2020-04-27 14:21:47 +01:00
James Turner
fdd509a080 Logging for Nasal errors, disabled for now.
Code to log Nasal, as well as C++, errors. But need a way to reduce
the false-positive rate, so disabled for now.
2020-04-20 11:03:35 +01:00
Stuart Buchanan
682293c0d0 Fix for C++11 using simgear::strutils::lowercase 2020-04-18 22:00:04 +01:00
James Turner
d96d903c0b Sentry: fix conversion of Build-ID to string 2020-04-18 18:13:37 +01:00
Stuart Buchanan
52a6245b49 Add --carrier-position command line argument
Takes special values "FLOLS" and "abeam" to set up
aligned for final approach or at the 180 for the carrier flight
deck.  Or alternatively a catapult or parking position.
2020-04-17 20:25:18 +01:00
James Turner
faee5dbabf Code changes for crash reporting with Sentry. 2020-04-17 17:55:34 +01:00
James Turner
a24301f746 UI for enabling crash-reporting in the launcher 2020-04-16 22:33:37 +01:00
James Turner
e1d00509c7 Enable sentry linkage (for Jenkins)
Note this require a sentry-native build with this commit applied:
0c631f6ec7
2020-04-14 11:15:40 +01:00
Erik Hofman
2fd0877824 Only load the video settings when the autosave file is not found. This requires the properties in the video settings configuration file to have the archive attribute set but it solves the problem of loading the autosave file twice (and too late in the process) 2020-04-13 17:03:37 +02:00
Stuart Buchanan
6ab7c08aa5 Fix --heading for --ndb position option.
Previously setting an offset for an NDB start position
resuled in any --heading setting being ignored.  This fixes it.
2020-04-12 21:45:20 +01:00
James Turner
4571769ee7 Quiet some log messages 2020-04-10 19:12:10 +01:00
James Turner
0a6fe33bc3 Add support for compatible-fg-version in -set.xml
This is to evaluate if this is a good idea, not sure if we actually
want to commit to this approach yet.
2020-04-10 10:40:32 +01:00
James Turner
9304bcc9af Change some warnings to developer mode. 2020-04-10 10:40:32 +01:00
James Turner
b1395a86ba Add —disable-hold-short option for MP
Allow explicit disabling of the hold-short behaviour when it causes
problems.
2020-04-10 10:40:32 +01:00
Richard Harrison
b8f28d54c6 Carrier init:
As well as "FLOLS" in the runway allow it in the parkpos; probably we should rename this to "position" rather than "parkpos"
2020-04-10 00:06:00 +02:00
James Turner
f5b04684cf Disable linking to sentry for now, due to a bug
Discovered na upstream issue in sentry-native’s exported CMake targets,
at least on macOS. Disabling until I hear back from them.
2020-04-08 16:07:31 +01:00
James Turner
2500534b1e Build changes for new crash-reporting system. 2020-04-07 09:38:13 +01:00
Stuart Buchanan
00fd5fbaec Carrier "abeam" position support
Support for --carrier-abeam option, which places the aircraft
at the end of a downwind opposite the FLOLS.

Add launcher support for above.

Add carrier display for launcher showing position relative to
carrier.
2020-04-05 23:13:32 +01:00
Stuart Buchanan
6b17604ba8 Carrier launcher: Allow setting altitude 2020-04-03 20:37:37 +01:00
James Turner
968fbd82e0 Fix typo breaking mag-compass and others 2020-04-03 09:57:13 +01:00
James Turner
f24b886ce4 Launcher: fix favourites loading
Also fix some warnings, closer to no output from the launcher.
2020-04-02 16:13:12 +01:00
gallaert
1ce36af298 - When HLA is enabled in Simgear, HLA is also enabled in Flightgear
making the build between Simgear and Flightgear consistent.
- Fix an issue with lib/lib64 path between CentOS/RedHat distributions
  and Debian derived distributions.
- Fix a compilation issue with HLA in the Flightgear code.
2020-04-01 21:02:24 +01:00
James Turner
005ddf7c98 Optimisation: avoid property name lookups 2020-04-01 16:20:29 +01:00
James Turner
8ddf4d6699 Fix reset-data-path dialog logic
Use correct root path key in QSettings, everywhere
Use the direct Win32 API until Qt wrapper is fixed.
2020-03-26 17:35:01 +00:00
Fernando García Liñán
6f676ee85b Compositor: Added $FG_ROOT/Compositor/Effects as a resource provider. 2020-03-24 19:44:05 +01:00
James Turner
5f0c10d94d Fix incorrect write() return code handling 2020-03-20 22:24:44 +00:00
James Turner
162ba266d0 Fix a warning 2020-03-20 11:40:47 -07:00
James Turner
26b527f151 Fix Linux compilation 2020-03-20 11:40:32 -07:00
James Turner
177fc565da Launcher: initial carrier support
Allow selecting carriers from scenarios, and starting at either a
parking position, or a distance offset from the FLOLS (effectively
a crude ‘on-final’)

Extend the —carrier startup option to accept a runway ident of FLOLS,
in conjunction with the existing —offset-distance argument.
2020-03-20 15:51:47 +00:00
James Turner
f903cdfa50 Linux/macOS: use flock() to implement exclusive launch.
Previous implementation wasn’t correct, use a better one now. In the
case of a non-clean exit we will leave a stale .pid file in FG_HOME,
but we clear stale files on the next launch.
2020-03-20 12:08:35 +00:00
James Turner
d52f1b5d47 Improve in-sim launcher behaviour
Restrict the UI to the pieces which make sense.
2020-03-17 10:00:17 +00:00
James Turner
8edcaa4853 Merge /u/ltoenning/flightgear_sim/ branch fix/2146 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/190/
2020-03-13 13:53:30 +00:00
Lars Toenning
2c9d64dcc6
Fix broken sound mute function
Fixes #2146
2020-03-13 11:13:30 +01:00
James Turner
e492ddd5a0 Event more local8Bit -> UTF8 fixes 2020-03-13 09:53:49 +00:00
James Turner
27410761f3 Lots of UTF8 path correctness fixes 2020-03-12 14:23:44 +00:00
James Turner
5b41f374c6 L10N fixes: handle UTF8 paths in more places.
Still not complete, but now we set the command line args to be UTF-8 on
Windows, we can strip out more of the ‘local 8-bit’ places (which
screw up, generally).
2020-03-12 10:51:49 +00:00
Julian Smith
ab7e7ec7b4 src/Main/globals.cxx: don't load /ai/models/ from autosave.xml file.
This cleans things up if earlier 'next' build as added spurious property items
to autosave.
2020-03-11 21:49:15 +00:00
James Turner
a405d0508b Fix a dumb allocation bug on Windows 2020-03-09 16:28:22 +00:00
Bertrand Coconnier
973bf32074 [JSBSim] Added the ability to log properties in a CSV file. 2020-01-25 16:05:30 +01:00
Scott Giese
a9365cd34e Embedded Resources: Fix for Ninja 1.9
Refactor to break circular references.
New custom target generates the resource files.
FGFS and Test_Suite targets declare a dependency to the generated files.
2019-12-26 01:26:44 -06:00
James Turner
be628b36b7 Allow add/remove of IO channels at runtime
Commands:

	add-io-channel
	remove-io-channel
2019-12-19 00:00:41 +00:00
Edward d'Auvergne
4105b70f74 Options: Only set the logging priority if the command line option is supplied.
This prevents the changing of the logstream priority as set by the test suite
permanently to "alert" during the execution of tests.  Setting a default value
of SG_ALERT is not required as this is the simgear logstream default anyway.
2019-11-08 13:59:17 +01:00
Edward d'Auvergne
0f0361efb8 Options::setupRoot: Removal of the logic that fg_root is currently not set.
This allows the test suite to preset fg_root using its own bootstrapping logic.
2019-11-08 13:59:16 +01:00
Julian Smith
88644185b3 src/Main/metar_main.cxx: added -s option to decode explicit METAR string without contacting server. 2019-10-31 22:53:41 +00:00
Julian Smith
4b1cfbc5ed src/Main/metar_main.cxx: use SGMetar::getDescription(). 2019-10-31 22:49:09 +00:00
Julian Smith
335547160c src/Main/fg_init.cxx: use /sim/log-file-line to control output of file:line in logs.
We call sglog().setFileLine() in response to changes to /sim/log-file-line.
2019-09-04 10:55:43 +01:00
Julian Smith
f3d1135320 Various fixes for building on OpenBSD. 2019-09-04 10:55:43 +01:00
Scott Giese
1ede51f3f6 Improved OSG Version detection. 2019-08-26 17:45:16 -05:00
Edward d'Auvergne
34a6cb3c74 SGSubsystem classes: Registration of all subsystems. 2019-07-01 14:51:32 +02:00
Edward d'Auvergne
d259c70560 SGSubsystem classes: Addition of staticSubsystemClassId() to all subsystems. 2019-07-01 14:51:32 +02:00
Edward d'Auvergne
332c240b38 SGSubsystemGroup: Removal of the subsystem group naming.
This is a partial reversion of 5253215065, the
changes of which are incompatible with the subsystem class IDs.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
fb5c36fc82 SGSubsystem classes: Renaming of the subsystem ID variables and functions. 2019-07-01 14:27:30 +02:00
Edward d'Auvergne
7a6e63ddb9 SGSubsystem classes: Subsystem and subsystem group API declaration standardisation.
This is a cleanup commit.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
60a2444766 SGSubsystem classes: Whitespace standardisation of the declarations.
This is a clean up commit prior to the subsystem API standardisation to simplify
the diffs.  It includes all SGSubsystem and SGSubsystemGroup derived classes.
2019-07-01 14:27:28 +02:00
Scott Giese
47e3e7baed [Emesary] Fix compile on Linux. 2019-06-14 21:45:11 -05:00
Richard Harrison
6ebc91d3f7 Added mainloop frame notifications
Using Emesary Global Transmitter the following events are notified

* Frame Begin
* Frame End
* Mainloop started
* Mainloop stopped

This integrates with the background threaded Nasal Garbage collection (simgear:nasal/cppbind/NasalEmesaryInterface.hxx) and is also controlled by the properties as follows

* /sim/nasal-gc-threaded (true) - use background threaded GC
* /sim/nasal-gc-threaded-wait (false) - at the start of the frame wait for the previous GC thread to complete.

I initially thought that the wait at the start of the frame would be necessary; however in 100 or so hours of flight without the await for completion at the start of frame no threading problems (or any other problems) were shown; so nasal-gc-threaded-wait is defaulted to false which gives a slight boost in performance.

So what this does is to it removes the GC pause of 10-20ms every 4 seconds (test using the F-15). This change doesn't really give much extra performance per frame because normally GC is only performed when needed.
2019-06-11 14:38:38 +02:00
James Turner
d8b6fbfef0 macOS / DBus : avoid abort on startup
Don’t do the fgOSDisableScreensave DBus stuff on macOS - there is no
global DBus daemon configured by default.
2019-05-27 16:05:19 +01:00
James Turner
88a78dd314 Remove last hard-coded default airport ID
Neither Torsten nor I can recall why we continued to hard-code this,
so make it dynamic for now. When we remember why we hard-code it,
we can add a BigComment from future-James to future-future-James about
why not to do this again :)
2019-05-27 11:42:53 +01:00
Fernando García Liñán
fa4ef2ab52 Added a property to indicate compositor support 2019-05-20 23:44:16 +02:00
James Turner
bac5d6c713 Windows: read Unicode command line
One more step in full Unicode support.
2019-04-27 18:54:13 +01:00
Dan Wickstrom
1948304157 Fix problem where AI planes are placed on top of user aircraft when user either selects a specific spot or user selects parking to be an available spot. 2019-04-25 11:39:41 +01:00
James Turner
4e8e69b4f8 Migrate invert-mouse-wheel setting from pre 2019.x
Flip the sense of this property, since the interpretation in SG is
also flipped now.
2019-04-11 20:40:17 +01:00
Lars Toenning
85acefab95 Swift: initial support 2019-04-11 11:36:22 +01:00
James Turner
64eaf6fe03 Fix for route-path when leg 0 is not a runway
Avoid doing turn-computation for the first waypoint, even if it’s not
a runway. Add a unit-test to cover this case.

Reported by Josh Davidson
2019-03-26 22:50:46 +01:00
James Turner
7c2a5e9e99 FlightGear support for queued commands
This enables queued commands to be processed once per main event loop.
At present this is done after subsystem updates.
2019-03-24 17:59:23 +00:00
Richard Harrison
a95daa2a5a add command line options to enable and disable DDS Texture cache. 2019-03-01 19:06:42 +01:00
Richard Harrison
8e35b7efc7 OSG 3.4.0 compilation fixes. 2019-02-20 19:12:02 +01:00
Fernando García Liñán
bec41e7e17 Compositor: FG now gracefully quits if no valid Compositor has been found. Added a command line option (--compositor) to choose the default Compositor. 2019-02-20 03:09:17 +01:00
James Turner
c2fb01ccb7 Partial revert of METAR fix, now SimGear is fixed.
This reverts commit 2fdc24c109.
2019-02-17 19:03:19 +00:00
Richard Harrison
5253215065 Improvements to performance monitoring.
* Ensure that subsystems are named.
* Nasal timers are named appropriately
2019-02-10 18:07:07 +01:00
Scott Giese
2fdc24c109 METAR fix 2019-02-07 01:26:05 -06:00
James Turner
dee1998979 Less Boost. 2019-02-06 17:36:36 +00:00
Scott Giese
7fd7c599a2 Fix missing header file for strutils 2019-02-04 23:49:02 -06:00
James Turner
a9a49bc2e6 Unboosting files
Use simgear::strutils replacements in places, C++11 features in others
2019-02-04 15:20:22 +00:00
James Turner
49c4dc5213 Scenarios from FG_HOME, aircraft and add-ons
Enhancements suggested by Nikolai Verner-Christensen - support loading
scenarios from {FG_HOME}/Scenarios, {aircraft-dir}/Scenarios and
{add-on}/Scenarios. 

Additionally, allow passing the path to a scenario file to
 —ai-scenario, eg —ai-scenario=/home/jmt/FGFS/my-test-scenario.xml

When a scenario defines a carrier, and —carrier is used to request a
carrier start, we now auto-load the corresponding scenario, to give
a nicer user experience.
2019-02-03 12:12:00 +00:00
Richard Harrison
6e2443d268 Change to print exception type (inherited exceptions) 2019-01-20 23:26:58 +01:00
James Turner
845e7c6bef Improved ‘is MP enabled’ check for pos-init
This fixes the MP detection check when selecting MP on the command-line
2019-01-08 23:20:51 +00:00
James Turner
b0dc850df1 Fix type of some numerical constants
Patch by Ron Haertel
2019-01-06 14:30:58 +00:00
James Turner
9339fd2375 Add some /sim/presets properties to setDefaults
Ensure these properties are always defined, but with default values,
to simplify usage.
2018-12-04 09:50:48 +01:00
James Turner
1e104bbdfe Version the FG-root setting
This ensures fresh installs will see an empty value, and hence 
default to the shipped version.
2018-11-25 14:06:51 +00:00
Richard Harrison
1e636ce4cf Support for DDS Texture Cache
- pass texture cache control properties to simgear
 - /sim/rendering/texture-cache/cache-enabled
 - /sim/rendering/texture-cache/compress-transparent
 - /sim/rendering/texture-cache/compress-solid
 - /sim/rendering/texture-cache/compress

- support --texture-cache-dir command line option
- set max reported supported texture size during splashscreen.
2018-11-24 20:21:46 +01:00
James Turner
3b3c99777d Reduce level of a log message 2018-11-07 09:39:54 +01:00
James Turner
49c3fc064a XLIFF: Fix loading of indexed strings 2018-10-13 21:22:18 +01:00
James Turner
2313f482a3 Add missing C-string include for strcmp 2018-10-13 09:07:32 +01:00
James Turner
dbb99ee550 XLIFF: fix null approved-attr handling 2018-10-13 08:42:05 +01:00
James Turner
53de09d151 Fix dumb commit for XLIFF approved-attr handling 2018-10-13 00:20:38 +01:00
James Turner
adea824bd3 XLIFF parser ignores un-approved translations
As suggested by Florent, ensure we respect the XLIFF ‘approved’
attribute, so we can track translations which don’t work yet due to
PLIB limitations.
2018-10-12 22:24:33 +01:00
James Turner
f819750287 Launcher respects --language arg if set 2018-10-12 11:37:39 +01:00
Erik Hofman
43c201d9d0 Fix an almost certain buffer overflow 2018-10-10 09:24:02 +02:00
James Turner
a66f0243bf Use GetUserPreferredUILangauges on Windows
This should accurately reflect the user's language preferences in the control
panel, unlike the previous method.
2018-09-28 12:09:24 +01:00
James Turner
098c489ae0 Make —parking-id an alias for —parkpos 2018-09-20 10:26:48 +01:00
James Turner
110aec6039 Tiny code cleanups while doing other changes 2018-09-18 17:34:23 +01:00
James Turner
72e1737aa6 Reset: wipe the Effect UniformCache 2018-09-13 23:52:52 +02:00
James Turner
72239c9a52 Code cleanups while checking reposition performance
Some C++11 fixes and give FDMShell, Reply a subsystem-name
2018-09-09 13:42:51 +01:00
James Turner
525cfadfa3 Reset: persist USERARCHIVE settings
Save user-setting properties to disk before beginning a reset, so
they are restored correctly.
2018-09-01 19:21:47 +01:00
James Turner
40d5d918ba Allow local acft to override packaged acft
When an explicit aircraft-dir is set, check this location before 
checking installed packages. This allows setting —aircraft and 
-aircraft-dir to correctly take precedence over a package.
2018-08-30 15:23:45 +01:00
James Turner
41687767b9 Translations looked up correctly
Tweak both the launcher and main locale lookups, to tolerate the
different region suffixes encountered in reality.
2018-08-28 23:34:44 +01:00
James Turner
f4b98cf204 Fix CMake dependencies for translations
When only building the fgfs target (which IDEs tend to do), we didn’t
update the translations. Add an explicit dependency to remedy this.
2018-08-28 12:04:56 +01:00
James Turner
3f5a0a47ad Improved build.h generation (each build)
Use a custom_target to recursively invoke Cmake at build time; this
ensures the build ID and Git revision are always up to date.
2018-08-19 16:06:16 +01:00
James Turner
09918a6862 Fix Nasal duplicate init
Also ensure Nasal reset is handled correctly (requires corresponding
SimGear commit)
2018-08-19 12:34:27 +01:00
James Turner
f5117109fe Load translations from XLIFF format
When an <xliff> entry is present inside a locale specification,
this takes precedence over the legacy translations.
2018-08-12 11:18:50 -07:00
James Turner
d534a5ba36 Move build-ID variables to their own header
This is to reduce rebuilding by changing version.h needlessly, since
only a few places use the build ID info.
2018-08-12 11:18:50 -07:00
James Turner
696c95d612 Fix passing —-config files via the launcher
Curt found this, allow using --config from the launcher additional
settings box.
2018-08-10 12:51:51 +01:00
Edward d'Auvergne
feb854946e TestSuite: Complete removal of FG_TESTLIB. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
4699939275 Globals: Initial support for a runtime headless mode. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
b0c5a5481d TestSuite: Migration of the autosaveMigration tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
James Turner
72d5f1efa0 Basic support for structured authors data 2018-07-25 13:58:48 +01:00
James Turner
c684701b7f Fix 'restart the app' functionality on Windows
The read-only lock in fghome was tripping things up. Explicitly
release the lock in the restart-the-app situation.
2018-07-02 23:13:36 +01:00
James Turner
ea5608b769 Use simgear formatting of lat/lon values
The code was basically moved into Simgear, this is just closing the
circle.
2018-06-27 11:27:12 +01:00
James Turner
82f23e556e Improve MSVC project generation
- set startup project to fgfs
- guess a value for PATH based on the build config
2018-06-16 13:03:23 +01:00
James Turner
7c9b1b391f Guard against SGPath::document()s returning null
Underlying bug is fixed in SimGear, but let's also guard against a failure here,
by falling back to FG_HOME on Windows.

For discussion see:
https://sourceforge.net/p/flightgear/codetickets/2019/
2018-06-15 11:11:05 +01:00
Erik Hofman
2edf1443d3 Detect AeonWave and if it is installed use it, otherwise fall back to OpenAL. Also let get_available_devices() use C++ strings instead of const char* 2018-06-02 14:06:36 +02:00
James Turner
a5aa6fb61b Cleanup the resource manager when deleting globals 2018-05-28 22:43:05 +02:00
Edward d'Auvergne
c8729be38f Init: Minor log formatting fixes. 2018-05-23 12:19:23 +02:00
Edward d'Auvergne
667cd86656 fgValidatePath: Typo fix allowing the animated jetways to save files again.
The typo was introduced in 7e607b8403 from July
2016.  The result was a series of alert messages such as:

savexml: writing to 'Path "/flightgear/home/.fgfs/runtime-jetways/0.xml"' denied
(unauthorized directory - authorization no longer follows symlinks)
2018-04-13 09:08:07 +02:00
Edward d'Auvergne
3b79530b06 CMake: Split the target links and includes into separate CMake modules. 2018-04-05 21:06:02 +02:00
Edward d'Auvergne
6a730b5820 CMake: The main sources/headers have been shifted into FG_{SOURCES,HEADERS}.
This allows the sources and headers in src/Main/ to be used by other targets.
They are grouped into the new "Main" flightgear component via the macro in the
FlightGearComponent CMake module.  The bootstrap.cxx file with its main function
has been separated out into a separate variable MAIN_SOURCE for use by the fgfs
binary.

All these files have therefore been removed from the test_suite CMakeLists.txt
file, as they are added via FG_SOURCES and FG_HEADERS.  The MSVC grouping code
also does not need to deal with the now deleted separate SOURCE and HEADER
variables for these files.
2018-04-05 21:06:02 +02:00
Edward d'Auvergne
e88017eba3 CMake: Shifted the Mac bundle commands into its own CMake module. 2018-04-05 21:06:02 +02:00
Edward d'Auvergne
93c4aab885 CMake: Shifted the MSVC grouping code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.
2018-04-05 21:05:54 +02:00
Edward d'Auvergne
f8e57f921d CMake: Shifted the FlightGear embedded resources code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.

The generated source and header files have also been removed from the main
source list and placed in the CMake module as the global variables
EMBEDDED_RESOURCE_SOURCES and EMBEDDED_RESOURCE_HEADERS.
2018-04-05 21:05:30 +02:00
Edward d'Auvergne
bd3a3db50b CMake: Shifted the target setup code into its own CMake module.
This is for simplifying the main src/Main/CMakeLists.txt file and allowing the
code to be shared with the test suite.
2018-04-05 21:05:16 +02:00
Edward d'Auvergne
0f96032487 TestSuite: Shift of the globals unit test helper functions into the test suite.
The setting of the SG log levels and developer mode has been removed as this
clashes with the output control set by the test suite main() function.
2018-03-23 17:26:05 +01:00
Edward d'Auvergne
7616f1ec3e TestSuite: Migration of the posinit unit tests. 2018-03-23 17:26:05 +01:00
Edward d'Auvergne
941c5dc8f2 Main: Formatting standardization for the src/Main/CMakeLists.txt file.
This includes spacing, tab to space replacements, and alphabetical ordering.
2018-03-23 17:26:04 +01:00
Florent Rougon
9a044a474b Add-ons: new Addon methods to access the storage area beneath $FG_HOME/Export
New methods Addon::createStorageDir() and Addon::getStoragePath() with
corresponding Nasal bindings in the addons.Addon ghost:

  createStorageDir() method (returns the dir, doesn't fail if it already
                     exists)
  storagePath        read-only attribute to get the dir

The directory reserved for each add-on is
$FG_HOME/Export/Addons/ADDON_ID, but please use the above methods (or
the corresponding C++ ones) to avoid hardcoding such paths in your code.

Also create directory $FG_HOME/Export/Addons in fgInitConfig() as a way
of reserving the namespace, in order to prevent future failures in case
someone would have the strange idea to create it as a file...
2018-03-11 11:30:05 +01:00
Florent Rougon
30cfbd1f91 Add-ons: load add-on-specific menu bar items from addon-menubar-items.xml
If an add-on has a file named addon-menubar-items.xml in its base
directory, load it and add its items to the FG menubar.

Logically, fgStartNewReset() should call
flightgear::addons::AddonManager::instance()->addAddonMenusToFGMenubar()
in order to re-add the items, however doing so would cause the
add-on-specific menus to be added one more time on every reset, because
for some reason, commit 45ea8b5daa added
the PRESERVE attribute to /sim/menubar (apparently to preserve the state
of menu entries upon reset?).

Note: the addon-menubar-items.xml files are reloaded during reset,
      however the menu bar doesn't reflect this, since adding the
      reloaded items to the menu bar in fgStartNewReset() would cause
      the add-on-specific menus to appear several times in the menu bar,
      as explained above.
2018-02-27 13:17:42 +01:00
Richard Harrison
a6718cc73d 2018.1: fix default Airport.
As it says in the comments this really shouldn't be hardcoded...
2018-02-27 05:09:11 +01:00
James Turner
a05cdce793 Telent protocol Nasal command 2018-02-11 21:15:45 +00:00
Florent Rougon
da961b97f2 Add-ons: more specific file names for the interface between FG core and add-ons
The add-on framework now uses the following files in each add-on
directory:
  - addon-config.xml (previously: config.xml)
  - addon-main.nas   (previously: main.nas)

This is consistent with the addon-metadata.xml file that is already part
of the interface between FG core and add-ons. The goal is to make it
clearer, when browsing an add-on directory, which files belong to the
"FG core <-> add-on" interface and which files belong to the add-on
proper. This will be beneficial also when more files are added to the
"FG core <-> add-on" interface, such as possibly addon-events.xml in the
future.

This change is incompatible, thus it is the right time to do *before*
2018.2.1 is out, especially considering that this upcoming release
already has incompatible changes in the add-on API, namely the
requirement of the addon-metadata.xml file and the type of the argument
passed to each add-on's main() function. We'll try harder not to break
compatibility in the add-on API once 2018.2.1 is out. For now, it is
still a good time to try to get the API as clean as possible.
2018-02-10 19:49:02 +01:00
James Turner
4d28146796 Give TimeManager a subsystem-name
Also modernise the lookups now this is added.
2018-01-29 10:46:08 +00:00
James Turner
aa9ad6a780 Fix view right-drag interaction with PUI
When PUI doesn’t handle the right-mouse down, ensure it ignores the
mouse-up event.
2018-01-14 13:17:59 +00:00
James Turner
08a877cb8e Message box on start if FG-home is read-only
If running with the launcher, and FG-home is read-only, show a warning
to the user, since this is probably a surprise to them.

(In non-launcher mode we don’t show the box, since it’s more likely to
be an intentional duplicate launch)
2018-01-12 22:18:59 +00:00
Florent Rougon
717fdfec39 Add-ons: register the add-on ResourceProvider with the simgear::ResourceManager
This makes it possible to look up files from add-on directories using
for instance FGGlobals::resolve_resource_path(), passing a string such
as "[addon=ADDON_ID]relative/path" as explained in the previous commit.
2018-01-10 01:25:36 +01:00
Florent Rougon
f5ab26bd71 Add-ons: move all code to the flightgear::addons namespace 2017-12-26 19:44:15 +01:00
Florent Rougon
48f52f14c4 Improved infrastructure for add-ons: C++ classes, metadata file, Nasal interface
This commit adds C++ classes for add-on management, most notably
AddonManager, Addon and AddonVersion. The AddonManager is used to
register add-ons. It relies on an std::map<std::string, AddonRef> to
hold the metadata of each registered add-on (keys of the std::map are
add-on identifiers, and AddonRef is currently SGSharedPtr<Addon>).
Accessor methods are available for:

  - retrieving the list of registered or loaded add-ons (terminology
    explained in $FG_ROOT/Docs/README.add-ons);

  - checking if a particular add-on has already been registered or
    loaded;

  - for each add-on, obtaining an Addon instance which can be queried
    for its name, id, version, base path, the minimum and maximum
    FlightGear versions it requires, its base node in the Property Tree,
    its order in the load sequence, short and long description strings,
    home page, etc.

The most important metadata is made accessible in the Property Tree
under /addons/by-id/<addon-id> and the property
/addons/by-id/<addon-id>/loaded can be checked or listened to, in
order to determine when a particular add-on is loaded. There is also a
Nasal interface to access add-on metadata in a convenient way.

In order to provide this metadata, each add-on must from now on have in
its base directory a file called 'addon-metadata.xml'.

All this is documented in much more detail in
$FG_ROOT/Docs/README.add-ons.

Mailing-list discussion:

  https://sourceforge.net/p/flightgear/mailman/message/36146017/
2017-12-08 00:36:41 +01:00
James Turner
78950fea57 Fix crash on reset if terrasync is disabled
Also use C++11 iteration for group names in reset start code.
2017-12-04 21:41:05 +00:00
ThorstenB
147ff104cd Adds support for NMEA messages for traffic reporting (flarm). Also extends the NMEA base class to handle bidirectional communication. Allows FlightGear to feed position and traffic data (for multi-player and AI aircraft) to NAV/moving-map clients, like xcsoar, skydemon, skymap etc. Some basic flarm configuration commands are also emulated, to properly persuade the clients. By default, all moving aircraft are reported (traffic information). Actual threat-alerts are also supported, but require the installation of the "TCAS instrument". 2017-11-24 22:54:32 +01:00
ThorstenB
19b19f05bd Correct range checks for network protocol parameters.
Several checks were off by one, resulting in a segfault when only one
parameter was missing.
Also improve error messages, giving details about what is expected.
2017-11-19 17:30:12 +01:00
ThorstenB
27e2776890 Minor cleanup in parse_port_config. 2017-11-19 17:30:05 +01:00