1
0
Fork 0

Merge branch 'next' of git://gitorious.org/fg/flightgear into next

This commit is contained in:
Erik Hofman 2010-11-06 10:05:46 +01:00
commit 9ad18de448
17 changed files with 491 additions and 758 deletions

View file

@ -368,6 +368,7 @@ case "${host}" in
dnl Mac OS X
LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework $macAPI -lobjc"
LDFLAGS="$LDFLAGS -headerpad_max_install_names"
joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
;;

View file

@ -1,409 +0,0 @@
Users' Guide to FlightGear Hud configuration
December 22 2000
Neetha Girish <neetha@ada.ernet.in>
This document describes the reconfigurable HUD of
FlightGear implemented through XML config files.
The present reconfigurable HUD code uses most of the code
of version 0.6.1 vintage and I have adapted the same to provide
a reconfigurable HUD for fgfs.
Corrections and additions are welcome.
Some History:
Older versions of FGFS had a hard coded display of HUD.
This was a less than ideal state of affairs when it came to
using different aircraft Huds. I remember, somewhere in the 0.6.1 HUD code
it was written that the HUD code is 'presently' hard coded but ideally should
be moved into the aircraft configuration dataset, so that when you choose
an aircraft, its HUD loads.
This implementation make that possible, all you have to do is to
create appropriate 'my_aircraft.xml' files in the HUD directory and
without re-compiling the code you could have 'your_aircraft' HUD, by choosing that
in the .fgfsrc file or as a command line option as described later. Of course,
as of now, I have only implemented those HUD instruments in .xml readable form
as was available in version 0.7.6 + few more used by ADA, Bangalore for our
aircraft carrier take-off/landing simulation studies <www.flightgear.org/projects/ADA>.
To use the ADA specific reticles/HUD objects, please contact me/ you can figure it out
yourself by studying the code. All of them are relevant 'only' if you use the conformal
climb/dive ladder, since they are all referenced to it.
The rewrite of Hud display code was done using pre and post release v0.7.6 code
allowing for configuration of the hud via XML.
The present Configurable Hud implements the entire functionality of
fgfs HUD (called default HUD) till this date.
Using Default/Custom Hud:
The default HUD location is $FG_ROOT/Huds/Default.
$FG_ROOT is the place on your filesystem where you installed FG
data files. Alternate huds can be specified on the command line
or set as the default in the $HOME/.fgfsrc or $FG_ROOT/preferences.xml
using a property specification. The command line format is as follows:
--prop:/sim/hud/path=Huds/Default/default.xml
The path description shown is relative to $FG_ROOT. An absolute
path may also be used for locations outside $FG_ROOT.
For the custom Hud the path will be Huds/Custom/default.xml
Hud - Implementation:
All of the hud configuration files are XML-encoded property lists.
The root element of each file is always named <PropertyList>. Tags are
always found in pairs, with the closing tag having a slash prefixing
the tag name, i.e </PropertyList>. The top level panel configuration
file is composed of a <name> and zero or more <instruments>.
Instruments are used by including a <"unique_name"> and a <path> to the
instruments configuration file.
Comments are bracketed with <!-- -->.
Example Top Level Hud Config
<PropertyList>
<name>Default Aircraft Hud</name>
<instruments>
<hudladder> <!--unique name -->
<path>Huds/Instruments/Default/hudladder.xml</path>
</hudladder>
<hudcard>
<path>Huds/Instruments/Default/hudcard.xml</path>
</hudcard>
<instrlabel>
<path>Huds/Instruments/Default/instrlabel.xml</path>
</instrlabel>
<fgTBI>
<path>Huds/Instruments/Default/fgtbi.xml</path>
</fgTBI>
</instruments>
</PropertyList>
The default location for instrument files is $FG_ROOT/Huds/Instruments/Default.
The location for custom instrument files is $FG_ROOT/Huds/Instruments/Custom.
The location for minimal instrument files is $FG_ROOT/Huds/Instruments/Minimal.
Alternate locations may be specified in the hud configuration, paths
must be absolute to use files outside $FG_ROOT.
About Instrument Placement:
For the sake of simplicity the FGFS HUD overlay is always 640 x 480 res.
so all x/y values for instrument placement should fall within these bounds.
Being an OpenGL program, 0,0 represents the lower left hand corner of the
screen.
Instrument Implementation:
Instruments are defined in separate configuration files.
The Instruments are basically classified into 4 types( Each of them an xml file) :
The Hud Ladder,
The Hud Card,
The Hud Label and
The Turn Bank Indicator
.... (Note that that the earlier HUD classes/objects have been retained)
Newer objects may be instantiated using the above classes, Unless a totally
new object is required).
The Default as well as the Custom directory have the same (in terms of properties)
set of configuration files (but with different values to suit the aircraft).
We have a Base class - Hud Instrument Item.
We derive two more base classes - Instrument Scale and Dual Instrument Item from this.
(This implementation owes its existence to all those who wrote the HUD code for 0.6.1)
The Hud Instrument Label is an instantiable class derived from Hud Instrument Item - for
displaying alphanumeric labels (altitude, velocity, Mach no and/or anything else as long you
have a call back function to pass the value using the property 'data_source').
The Hud Card is an instantiable class derived from Instrument scale - for displaying
tapes and guages (single variable display, for displaying aoa, g's, vsi, elevator_posn, etc.).
The Hud Ladder is an instantiable class derived from Dual Instrument Item - for displaying
pitch reference ladder or climb/dive ladder (two variable display, for dislaying two types of
ladders, the pitch reference ladder or the climb/dive ladder as defined by MIL-1787b).
The fgTBI Instrument is an instantiable class derived from Dual Instrument scale again
- for display of Bank angle and Sideslip (two variable display, for display of TSI info, kept
different from the two variable ladder object basically because of its totally different
draw member function).
Most Hud instruments may be instantiated using above. It is proposed to provide all
Hud objects as defined in MIL-STD-1797A, soon.
Here is how you position 'any' object:
x ____________ x+width
| |
| |
y ------------ y+height
this defines the objects position centered about the centroid of above rectangle
in HUD overlay plane (640x480) coordinates with 0,0 at bottom-left corner.
One more, pixels per degree in the ladder class represents the compression factor of the
pitch ladder. In case of conformal HUD (climd/dive ladder) it is <640/horizontal_fov>
or <480/vertical_fov>. In case of pitch reference ladder it is
<your_no_of vertical_pixels/your_no_of_ladder_degrees>.
Example of Hud Ladder xml file.
<PropertyList>
<ladders>
<l1>
<name>Pitch Ladder</name> <!-- Name can be Pitch Ladder or Climb/Dive Ladder -->
<x>260</x> <!-- x start -->
<y>150</y> <!-- y start -->
<width>120</width> <!-- x start + width = x end -->
<height>180</height> <!-- y start + height = y end -->
<compression_factor>2.68</compression_factor> <!-- Pixels per degree -->
<loadfn>roll</loadfn> <!-- Name of the function to be called, here get_roll() is called provision made in Hud.cxx -->
<loadfn1>pitch</loadfn1> <!-- Name of the function to be called, here get_pitch() is called -->
<span_units>45.0</span_units> <!-- Range of the Ladder seen at any instant -->
<division_units>10.0</division_units> <!-- Divisions -->
<screen_hole>70</screen_hole> <!-- Hole b/w the Ladder Bars-->
<lbl_pos>0</lbl_pos> <!-- Label Position to indicate pitch angle on bar -->
<enable_frl>false</enable_frl> <!-- To Enable Pitch Reference Symbol (used by us) -->
<enable_target_spot>true</enable_target_spot> <!-- To Enable Target Spot Symbol (fgfs uses this)-->
<enable_velocity_vector>false</enable_velocity_vector> <!-- To Enable Velocity Vector Symbol (use only with climb/dive ladder)-->
<enable_drift_marker>false</enable_drift_marker> <!-- To Enable Drift Marker Symbol (used by us)-->
<enable_alpha_bracket>false</enable_alpha_bracket> <!-- To Enable Alpha Bracket Symbol (used by us, presently hard coded bracket values, alpha values will be moved to xml file)-->
<enable_energy_marker>false</enable_energy_marker> <!-- To Enable Energy Marker Symbol (used by us)-->
<enable_climb_dive_marker>false</enable_climb_dive_marker> <!-- To Enable Climb/Dive Marker (used by us)-->
<enable_glide_slope_marker>false</enable_glide_slope_marker> <!--To Enable Glide/Slope Marker (tied to climb/dive ladder only)-->
<glide_slope>0.0</glide_slope> <!-- Glide slope angle (specify the angle for drawing the reference bar)
<enable_energy_worm>false</enable_energy_worm> <!-- To Enable Energy worm (used by us)>
<enable_waypoint_marker>false</enable_waypoint_marker> <!-- To Enable Way point Marker (bearing marker)-->
<working>true</working> <!use this to enable or disbale whole object>
</l1>
</ladders>
</PropertyList>
Before you read this, _____ this is tick_top | |
| | |
| |__________________|
| this is cap_right,tick_left cap_bottom tick_right
|
_____| this is tick_bottom
Example of Hud Card xml file.
<PropertyList>
<cards>
<c1>
<name>Gyrocompass</name>
<x>220</x>
<y>430</y>
<width>200</width>
<height>28</height>
<loadfn>heading</loadfn> <!-- Name of the function to be called, here get_Heading() is called -->
<options>4</options> <!-- Read Tape Options Below or Hud.hxx file for details -->
<maxValue>360.0</maxValue> <!-- Maximum scale value -->
<minValue>0.0</minValue> <!-- Minimum Scale Value -->
<disp_scaling>1.0</disp_scaling> <!-- Multiply by this to get numbers shown on scale -->
<major_divs>5</major_divs> <!-- major division marker units -->
<minor_divs>1</minor_divs> <!-- minor division marker units -->
<modulator>360</modulator> <!-- Its a rose, Roll Over Point -->
<value_span>25.0</value_span> <!-- Range Shown -->
<type>tape</type> <!-- Card type can be "tape" or "guage" -->
<tick_bottom>false</tick_bottom> <!-- Read Ticks and Caps below -->
<tick_top>false</tick_top>
<tick_right>true</tick_right>
<tick_left>true</tick_left>
<cap_bottom>true</cap_bottom>
<cap_top>false</cap_top>
<cap_right>false</cap_right>
<cap_left>false</cap_left>
<marker_offset>0.0</marker_offset> <!-- Read Marker offset below -->
<enable_pointer>true</enable_pointer> <!-- To draw a pointer -->
<pointer_type>fixed</pointer_type> <!-- Type of pointer, Fixed or Moving (yet to be implemented)-->
<working>true</working>
</c1>
</cards>
</PropertyList>
Tape Options:
HUDS_AUTOTICKS = 0x0001
HUDS_VERT = 0x0002
HUDS_HORZ = 0x0000
HUDS_TOP = 0x0004
HUDS_BOTTOM = 0x0008
HUDS_LEFT = HUDS_TOP
HUDS_RIGHT = HUDS_BOTTOM
HUDS_BOTH = (HUDS_LEFT | HUDS_RIGHT)
HUDS_NOTICKS = 0x0010
HUDS_ARITHTIC = 0x0020
HUDS_DECITICS = 0x0040
HUDS_NOTEXT = 0x0080
HUDS_LEFT | HUDS_VERT = 0x0006
HUDS_RIGHT | HUDS_VERT = 0x0010
HUDS_TOP | HUDS_NOTEXT = 0x0084
HUDS_BOTTOM | HUDS_NOTEXT = 0x0088
HUDS_VERT | HUDS_LEFT | HUDS_NOTEXT = 0x0086
HUDS_RIGHT | HUDS_VERT | HUDS_NOTEXT = 0x0090
For clarity, I repeat, Ticks and Caps :
1. Left Tick ->|_____|<- Right Tick
|
v
Bottom Cap
2. Top Cap
|
v
_____
| |
3. Top Tick
|
v
---
|
|<- Right Cap
|
---
|
v
Bottom Tick
4. ---
|
Left Cap -> |
|
---
Marker Offset :
To Draw pointer on the scale markings. In the case of a our hud with offset 10.0
The pointer is away from the scale and points at the markings.
-| -
-| -
<| -<
-| -
-| -
Marker offset = 0.0 Marker offset = 10.0
This should be useful when I implement the fixed tape/moving pointer.
Example of a Label xml file.
<PropertyList>
<labels>
<i1>
<name>machno</name>
<x>25</x>
<y>130</y>
<width>40</width>
<height>30</height>
<data_source>mach</data_source> <!-- Name of the function to be called, here get_Heading() is called -->
<label_format>%4.2f</label_format> <!-- The Label Format -->
<pre_label_string>blank</pre_label_string> <!-- String to be written Pre Label -->
<post_label_string>NULL</post_label_string> <!-- String to be written Post Label -->
<scale_data>1.0</scale_data>
<options>4</options> <!-- Read Tape options or Hud.hxx -->
<justification>2</justification> <!-- Justify the label, 0=LEFT_JUSTIFY, 1=CENTER_JUSTIFY, 2=RIGHT_JUSTIFY -->
<blinking>0</blinking> <!-- Yet to be implemented -->
<working>true</working>
<latitude>false</latitude> <!-- True if the label is to display Lattitude (special label, displays deg.min.sec)-->
<longitude>false</longitude> <!-- True if the label is to display Longitude (special label, displays deg.min.sec)-->
</i1>
</labels>
</PropertyList>
Example of a Turn Bank Indicator xml file.
<PropertyList>
<tbis>
<f1>
<name>fgTBI_Instrument</name>
<x>290</x>
<y>45</y>
<width>60</width>
<height>10</height>
<loadfn>roll</loadfn> <!-- Name of the function to be called, get_roll() is called here. -->
<loadfn1>sideslip</loadfn1> <!-- Name of the function to be called, get_sideslip() is called here. -->
<maxBankAngle>45.0</maxBankAngle> <!-- Maximum Angle of Bank -->
<maxSlipAngle>5.0</maxSlipAngle> <!-- Maximum Angle of Slip -->
<gap_width>5</gap_width> <!-- Screen Hole -->
<working>true</working>
</f1>
</tbis>
</PropertyList>
I have still got to implement dials (as in MIL-STD-1787b).
REMEMBER IF YOU NEED TO INDICATE ANY OTHER PARAMETER ON THE HUD OTHER THAN WHAT IS PROVIDED AS
CALLBACK FUNCTIONS (PROPERTY NAMES LISTED BELOW) YOU HAVE TO FIDDLE WITH THE CODE, AS YET. LET ME
KNOW AND I SHALL INCLUDE THAT.
<loadfn>anzg</loadfn> <!-- Here get_anzg() is called -->
<loadfn>heading</loadfn> <!-- Here get_heading() is called -->
<loadfn>aoa</loadfn> <!-- Here get_aoa() is called -->
<loadfn>climb</loadfn> <!-- Here get_climb() is called -->
<loadfn>altitude</loadfn> <!-- Here get_altitude() is called -->
<loadfn>agl</loadfn> <!-- Here get_agl() is called -->
<loadfn>speed</loadfn> <!-- Here get_speed() is called -->
<loadfn>view_direction</loadfn> <!-- Here get_view_direction() is called -->
<loadfn>aileronval</loadfn> <!-- Here get_aileronval() is called -->
<loadfn>elevatorval</loadfn> <!-- Here get_elevatorval() is called -->
<loadfn>rudderval</loadfn> <!-- Here get_rudderval() is called -->
<loadfn>throttleval</loadfn> <!-- Here get_throttleval() is called -->
<loadfn>aux16</loadfn> <!-- Here get_aux16() is called -->
<loadfn>aux17</loadfn> <!-- Here get_aux17() is called -->
<loadfn>aux9</loadfn> <!-- Here get_aux9() is called -->
<loadfn>aux11</loadfn> <!-- Here get_aux11() is called -->
<loadfn>aux12</loadfn> <!-- Here get_aux12() is called -->
<loadfn>aux10</loadfn> <!-- Here get_aux10() is called -->
<loadfn>aux13</loadfn> <!-- Here get_aux13() is called -->
<loadfn>aux14</loadfn> <!-- Here get_aux14() is called -->
<loadfn>aux15</loadfn> <!-- Here get_aux15() is called -->
<loadfn>aux8</loadfn> <!-- Here get_aux8() is called -->
<loadfn>ax</loadfn> <!-- Here get_Ax() is called -->
<loadfn>mach</loadfn> <!-- Here get_mach() is called -->
<loadfn>framerate</loadfn> <!-- Here get_frame_rate() is called -->
<loadfn>fov</loadfn> <!-- Here get_fov() is called -->
<loadfn>vfc_tris_culled</loadfn> <!-- Here get_vfc_tris_culled() is called -->
<loadfn>vfc_tris_drawn</loadfn> <!-- Here get_vfc_tris_drawn() is called -->
<loadfn>latitude</loadfn> <!-- Here get_latitude() is called -->
<loadfn>longitude</loadfn> <!-- Here get_longitude() is called -->

BIN
package/mac/FlightGear.icns Normal file

Binary file not shown.

View file

@ -0,0 +1,107 @@
#!/usr/bin/ruby
require 'ERB'
$osgLibs = ['osgFX', 'osgParticle', 'osg', 'osgGA', 'osgText', 'osgUtil', 'osgSim', 'osgViewer', 'osgDB']
$osgPlugins = ['ac', 'osg', 'freetype', 'qt', 'imageio', 'rgb', 'txf']
def runOsgVersion(option)
env = "export DYLD_LIBRARY_PATH=#{Dir.pwd}/dist/lib"
bin = Dir.pwd + "/dist/bin/osgversion"
return `#{env}; #{bin} --#{option}`.chomp
end
osgVersion = runOsgVersion('version-number')
$osgSoVersion=runOsgVersion('so-number')
$openThreadsSoVersion=runOsgVersion('openthreads-soversion-number')
puts "osgVersion=#{osgVersion}, so-number=#{$osgSoVersion}"
$alutSourcePath='/Library/Frameworks/ALUT.framework'
def fix_install_names(object)
#puts "fixing install names for #{object}"
$osgLibs.each do |l|
oldName = "lib#{l}.#{$osgSoVersion}.dylib"
newName = "@executable_path/../Frameworks/#{oldName}"
`install_name_tool -change #{oldName} #{newName} #{object}`
end
oldName = "libOpenThreads.#{$openThreadsSoVersion}.dylib"
newName= "@executable_path/../Frameworks/#{oldName}"
`install_name_tool -change #{oldName} #{newName} #{object}`
alutBundlePath = "@executable_path/../Frameworks/Alut.framework"
alutLib = "Versions/A/ALUT"
`install_name_tool -change #{$alutSourcePath}/#{alutLib} #{alutBundlePath}/#{alutLib} #{object}`
end
prefixDir=Dir.pwd + "/dist"
dmgDir=Dir.pwd + "/image"
srcDir=Dir.pwd + "/flightgear"
dmgPath = Dir.pwd + "/fg_mac_nightly.dmg"
puts "Erasing previous image dir"
`rm -rf #{dmgDir}`
bundle=dmgDir + "/FlightGear.app"
contents=bundle + "/Contents"
macosDir=contents + "/MacOS"
frameworksDir=contents +"/Frameworks"
resourcesDir=contents+"/Resources"
osgPluginsDir=contents+"/PlugIns/osgPlugins-#{osgVersion}"
volName="\"FlightGear Nightly Build\""
puts "Creating directory structure"
`mkdir -p #{macosDir}`
`mkdir -p #{frameworksDir}`
`mkdir -p #{resourcesDir}`
`mkdir -p #{osgPluginsDir}`
puts "Copying binaries"
bins = ['fgfs', 'terrasync', 'fgjs']
bins.each do |b|
`cp #{prefixDir}/bin/#{b} #{macosDir}/#{b}`
fix_install_names("#{macosDir}/#{b}")
end
puts "copying libraries"
$osgLibs.each do |l|
libFile = "lib#{l}.#{$osgSoVersion}.dylib"
`cp #{prefixDir}/lib/#{libFile} #{frameworksDir}`
fix_install_names("#{frameworksDir}/#{libFile}")
end
# and not forgetting OpenThreads
libFile = "libOpenThreads.#{$openThreadsSoVersion}.dylib"
`cp #{prefixDir}/lib/#{libFile} #{frameworksDir}`
$osgPlugins.each do |p|
pluginFile = "osgdb_#{p}.so"
`cp #{prefixDir}/lib/osgPlugins-#{osgVersion}/#{pluginFile} #{osgPluginsDir}`
fix_install_names("#{osgPluginsDir}/#{pluginFile}")
end
# custom ALUT
# must copy frameworks using ditto
`ditto #{$alutSourcePath} #{frameworksDir}/ALUT.framework`
# Info.plist
template = File.read("#{srcDir}/package/mac/nightly.plist.in")
output = ERB.new(template).result(binding)
File.open("#{contents}/Info.plist", 'w') { |f|
f.write(output)
}
`cp #{srcDir}/package/mac/nightly-readme.rtf #{dmgDir}/ReadMe.rtf`
`cp #{srcDir}/package/mac/FlightGear.icns #{resourcesDir}/FlightGear.icns`
`cp #{srcDir}/COPYING #{dmgDir}`
puts "Creating DMG"
createArgs = "-format UDBZ -imagekey bzip2-level=9 -quiet -volname #{volName}"
`rm #{dmgPath}`
`hdiutil create -srcfolder #{dmgDir} #{createArgs} #{dmgPath}`

View file

@ -0,0 +1,53 @@
{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww14720\viewh15300\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural
\f0\b\fs30 \cf0 FlightGear nightly build
\b0\fs24 \
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural
\b\fs26 \cf0 Introduction
\b0\fs24 \
\
This is an automatically generated build of FlightGear from the developer code repositories (Git), for Intel Macs running Mac OSX 10.5 (Leopard) or higher. It does not include a GUI launcher, despite being packaged as an application - see 'Running' below.\
\
This build receives NO manual testing, and only the most limited automatic testing (at present). Use it at your own risk, and report problems you encounter via the appropriate project communication channels - the {\field{\*\fldinst{HYPERLINK "https://lists.sourceforge.net/lists/listinfo/flightgear-devel"}}{\fldrslt developer mailing list}} or the {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/flightgear-bugs/issues/list"}}{\fldrslt bug tracker}}. Please don't use IRC or the forums as a bug-reporting tool, since they are difficult to track over time.\
\
\b\fs26 Running
\b0\fs24 \
\
No GUI launcher tool is included, unlike official releases. Launch the
\f1 fgfs
\f0 binary from Terminal, passing appropriate arguments, such as
\f1 --fg-root
\f0 ,
\f1 --aircraft
\f0 and
\f1 --airport
\f0 . If you're not familiar with using Terminal to launch a bundled application, or specifying arguments directly to FlightGear, this build is not for you!\
\
This build will read settings from
\f1 .fgfsrc
\f0 as normal, if you wish to save standard options (such as the root, aircraft and scenery dirs) instead of specifying them on the command line. Note all directory paths passed to FlightGear must be absolute.\
\
\b\fs26 Examples
\b0\fs24 \
\
\f1 ./FlightGear.app/Contents/MacOS/fgfs --fg-root=$HOME/Documents/fgdata --aircraft=b1900d\
\f0 \
\f1 ./FlightGear.app/Contents/MacOS/fgfs --fg-root=$HOME/fgdata --fg-scenery=$HOME/terrasync-scenery
\f0 \
\
\b\fs26 TerraSync
\b0\fs24 \
\
A terrasync binary is included in the bundle, also in Contents/MacOS. Again it is assumed the user is familiar with manually specifying appropriate terrasync arguments to specify a scenery direction, and also connecting terrasync to FlightGear.}

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIconFile</key>
<string>FlightGear.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>FlightGear nightly build</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>fgfs</string>
<key>CFBundleIdentifier</key>
<string>org.flightgear.FlightGear</string>
<key>CFBundleVersion</key>
<string>2.0</string>
<key>CFBundleShortVersionString</key>
<string>unstable nightly build</string>
<key>LSMinimumSystemVersion</key>
<string>10.5.0</string>
</dict>
</plist>

View file

@ -384,23 +384,6 @@
<ClCompile Include="..\..\..\src\Autopilot\pisimplecontroller.cxx" />
<ClCompile Include="..\..\..\src\Autopilot\predictor.cxx" />
<ClCompile Include="..\..\..\src\Autopilot\route_mgr.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\cockpit.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud.cxx">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_card.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_dnst.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_gaug.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_inst.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_labl.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_ladr.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_rwy.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_scal.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\hud_tbi.cxx">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\panel.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\panel_io.cxx" />
<ClCompile Include="..\..\..\src\Cockpit\built_in\FGMagRibbon.cxx" />
@ -409,7 +392,6 @@
<ClCompile Include="..\..\..\src\FDM\flightProperties.cxx" />
<ClCompile Include="..\..\..\src\FDM\JSBSim\FGFDMExec.cpp" />
<ClCompile Include="..\..\..\src\FDM\JSBSim\FGJSBBase.cpp" />
<ClCompile Include="..\..\..\src\FDM\JSBSim\FGState.cpp" />
<ClCompile Include="..\..\..\src\FDM\JSBSim\JSBSim.cxx" />
<ClCompile Include="..\..\..\src\Fdm\JSBSim\math\FGColumnVector3.cpp" />
<ClCompile Include="..\..\..\src\Fdm\JSBSim\math\FGCondition.cpp" />
@ -984,8 +966,6 @@
<ClInclude Include="..\..\..\src\Autopilot\pisimplecontroller.hxx" />
<ClInclude Include="..\..\..\src\Autopilot\predictor.hxx" />
<ClInclude Include="..\..\..\src\Autopilot\route_mgr.hxx" />
<ClInclude Include="..\..\..\src\Cockpit\cockpit.hxx" />
<ClInclude Include="..\..\..\src\Cockpit\hud.hxx" />
<ClInclude Include="..\..\..\src\Cockpit\panel.hxx" />
<ClInclude Include="..\..\..\src\Cockpit\panel_io.hxx" />
<ClInclude Include="..\..\..\src\Cockpit\built_in\FGMagRibbon.hxx" />
@ -994,7 +974,6 @@
<ClInclude Include="..\..\..\src\FDM\flightProperties.hxx" />
<ClInclude Include="..\..\..\src\FDM\JSBSim\FGFDMExec.h" />
<ClInclude Include="..\..\..\src\FDM\JSBSim\FGJSBBase.h" />
<ClInclude Include="..\..\..\src\FDM\JSBSim\FGState.h" />
<ClInclude Include="..\..\..\src\FDM\JSBSim\JSBSim.hxx" />
<ClInclude Include="..\..\..\src\Fdm\JSBSim\math\FGColumnVector3.h" />
<ClInclude Include="..\..\..\src\Fdm\JSBSim\math\FGCondition.h" />

View file

@ -228,39 +228,6 @@
<ClCompile Include="..\..\..\src\Autopilot\route_mgr.cxx">
<Filter>Lib_Autopilot</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\cockpit.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_card.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_dnst.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_gaug.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_inst.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_labl.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_ladr.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_rwy.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_scal.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\hud_tbi.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\Cockpit\panel.cxx">
<Filter>Lib_Cockpit</Filter>
</ClCompile>
@ -276,9 +243,6 @@
<ClCompile Include="..\..\..\src\FDM\JSBSim\FGJSBBase.cpp">
<Filter>Lib_JSBSim</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\FDM\JSBSim\FGState.cpp">
<Filter>Lib_JSBSim</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\FDM\JSBSim\JSBSim.cxx">
<Filter>Lib_JSBSim</Filter>
</ClCompile>
@ -1676,12 +1640,6 @@
<ClInclude Include="..\..\..\src\Autopilot\route_mgr.hxx">
<Filter>Lib_Autopilot</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\Cockpit\cockpit.hxx">
<Filter>Lib_Cockpit</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\Cockpit\hud.hxx">
<Filter>Lib_Cockpit</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\Cockpit\panel.hxx">
<Filter>Lib_Cockpit</Filter>
</ClInclude>
@ -1697,9 +1655,6 @@
<ClInclude Include="..\..\..\src\FDM\JSBSim\FGJSBBase.h">
<Filter>Lib_JSBSim</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\FDM\JSBSim\FGState.h">
<Filter>Lib_JSBSim</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\FDM\JSBSim\JSBSim.hxx">
<Filter>Lib_JSBSim</Filter>
</ClInclude>

View file

@ -1,207 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0F13A557-EC52-481D-ADFB-9209C068FCEB}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osgd.lib;osgDBd.lib;osgViewerd.lib;osgGAd.lib;openthreadsd.lib;osgParticled.lib;osgUtild.lib;osgTextd.lib;ul_d.lib;sg_d.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)fgviewer.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osgd.lib;osgDBd.lib;osgViewerd.lib;osgGAd.lib;openthreadsd.lib;osgParticled.lib;osgUtild.lib;osgTextd.lib;ul_d.lib;sg_d.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)fgviewer.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osg.lib;osgDB.lib;osgViewer.lib;osgGA.lib;openthreads.lib;osgParticle.lib;osgUtil.lib;osgText.lib;ul.lib;sg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osg.lib;osgDB.lib;osgViewer.lib;osgGA.lib;openthreads.lib;osgParticle.lib;osgUtil.lib;osgText.lib;ul.lib;sg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\utils\fgviewer\fgviewer.cxx" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\SimGear\projects\VC100\SimGear.vcxproj">
<Project>{22540cd3-d3ca-4c86-a773-80aeee3acded}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0F13A557-EC52-481D-ADFB-9209C068FCEB}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osgd.lib;osgDBd.lib;osgViewerd.lib;osgGAd.lib;openthreadsd.lib;osgParticled.lib;osgUtild.lib;osgTextd.lib;ul_d.lib;sg_d.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)fgviewer.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osgd.lib;osgDBd.lib;osgViewerd.lib;osgGAd.lib;openthreadsd.lib;osgParticled.lib;osgUtild.lib;osgTextd.lib;ul_d.lib;sg_d.lib;zlibd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)fgviewer.pdb</ProgramDatabaseFile>
<SubSystem>Console</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osg.lib;osgDB.lib;osgViewer.lib;osgGA.lib;openthreads.lib;osgParticle.lib;osgUtil.lib;osgText.lib;ul.lib;sg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100\OpenSceneGraph\lib;..\..\..\..\3rdParty\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalIncludeDirectories>..\..\..\..\SimGear;..\..\..\..\install\msvc100-64\OpenSceneGraph\include;..\..\..\..\boost_1_43_0;..\..\..\..\3rdParty.x64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>opengl32.lib;osg.lib;osgDB.lib;osgViewer.lib;osgGA.lib;openthreads.lib;osgParticle.lib;osgUtil.lib;osgText.lib;ul.lib;sg.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\..\..\install\msvc100-64\OpenSceneGraph\lib;..\..\..\..\3rdParty.x64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\utils\fgviewer\fgviewer.cxx" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\SimGear\projects\VC100\SimGear.vcxproj">
<Project>{22540cd3-d3ca-4c86-a773-80aeee3acded}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -303,7 +303,8 @@ bool ExponentialFilterImplementation::configure( const std::string & nodeName, S
/* --------------------------------------------------------------------------------- */
DigitalFilter::DigitalFilter() :
AnalogComponent()
AnalogComponent(),
_initializeTo(INITIALIZE_INPUT)
{
}
@ -335,6 +336,20 @@ bool DigitalFilter::configure(const string& nodeName, SGPropertyNode_ptr configN
return true;
}
if( nodeName == "initialize-to" ) {
string s( configNode->getStringValue() );
if( s == "input" ) {
_initializeTo = INITIALIZE_INPUT;
} else if( s == "output" ) {
_initializeTo = INITIALIZE_OUTPUT;
} else if( s == "none" ) {
_initializeTo = INITIALIZE_NONE;
} else {
SG_LOG( SG_AUTOPILOT, SG_WARN, "unhandled initialize-to value '" << s << "' ignored" );
}
return true;
}
SG_LOG( SG_AUTOPILOT, SG_BULK, "DigitalFilter::configure(" << nodeName << ") [unhandled]" << endl );
return false; // not handled by us, let the base class try
}
@ -344,8 +359,22 @@ void DigitalFilter::update( bool firstTime, double dt)
if( _implementation == NULL ) return;
if( firstTime ) {
SG_LOG(SG_AUTOPILOT,SG_DEBUG, "First time initialization of " << get_name() << " to " << _valueInput.get_value() );
_implementation->initialize( _valueInput.get_value() );
switch( _initializeTo ) {
case INITIALIZE_INPUT:
SG_LOG(SG_AUTOPILOT,SG_DEBUG, "First time initialization of " << get_name() << " to " << _valueInput.get_value() );
_implementation->initialize( _valueInput.get_value() );
break;
case INITIALIZE_OUTPUT:
SG_LOG(SG_AUTOPILOT,SG_DEBUG, "First time initialization of " << get_name() << " to " << get_output_value() );
_implementation->initialize( get_output_value() );
break;
default:
SG_LOG(SG_AUTOPILOT,SG_DEBUG, "First time initialization of " << get_name() << " to (uninitialized)" );
break;
}
}
double input = _valueInput.get_value() - _referenceInput.get_value();

View file

@ -53,6 +53,12 @@ class DigitalFilter : public AnalogComponent
private:
SGSharedPtr<DigitalFilterImplementation> _implementation;
enum InitializeTo {
INITIALIZE_OUTPUT,
INITIALIZE_INPUT,
INITIALIZE_NONE
};
protected:
bool configure( const std::string & nodeName, SGPropertyNode_ptr configNode);
void update( bool firstTime, double dt);
@ -61,6 +67,7 @@ protected:
InputValueList _samples;
InputValueList _rateOfChange;
InputValueList _gain;
InitializeTo _initializeTo;
public:
DigitalFilter();

View file

@ -125,7 +125,7 @@ fgfs_LDADD = \
$(openal_LIBS) \
$(EVENT_LIBS)
fgfs_LDFLAGS = $(fgfs_PLIB_FW) $(fgfs_OSG_FW)
fgfs_LDFLAGS = $(fgfs_PLIB_FW) $(fgfs_OSG_FW) $(LDFLAGS)
metar_SOURCES = metar_main.cxx

View file

@ -1211,23 +1211,15 @@ do_play_audio_sample (const SGPropertyNode * arg)
static bool
do_presets_commit (const SGPropertyNode * arg)
{
// unbind the current fdm state so property changes
// don't get lost when we subsequently delete this fdm
// and create a new one.
globals->get_subsystem("flight")->unbind();
// set position from presets
fgInitPosition();
fgReInitSubsystems();
#if 0
if ( ! fgGetBool("/sim/presets/onground") ) {
fgSetBool( "/sim/freeze/master", true );
fgSetBool( "/sim/freeze/clock", true );
if (fgGetBool("/sim/initialized", false)) {
fgReInitSubsystems();
} else {
// Nasal can trigger this during initial init, which confuses
// the logic in ReInitSubsystems, since initial state has not been
// saved at that time. Short-circuit everything here.
fgInitPosition();
}
#endif
return true;
}

View file

@ -1491,6 +1491,8 @@ bool fgInitSubsystems() {
// End of subsystem initialization.
////////////////////////////////////////////////////////////////////
fgSetBool("/sim/initialized", true);
SG_LOG( SG_GENERAL, SG_INFO, endl);
// Save the initial state for future
@ -1503,25 +1505,32 @@ bool fgInitSubsystems() {
void fgReInitSubsystems()
{
// static const SGPropertyNode *longitude
// = fgGetNode("/sim/presets/longitude-deg");
// static const SGPropertyNode *latitude
// = fgGetNode("/sim/presets/latitude-deg");
static const SGPropertyNode *altitude
= fgGetNode("/sim/presets/altitude-ft");
static const SGPropertyNode *master_freeze
= fgGetNode("/sim/freeze/master");
SG_LOG( SG_GENERAL, SG_INFO,
"fgReInitSubsystems(): /position/altitude = "
<< altitude->getDoubleValue() );
SG_LOG( SG_GENERAL, SG_INFO, "fgReInitSubsystems()");
// setup state to begin re-init
bool freeze = master_freeze->getBoolValue();
if ( !freeze ) {
fgSetBool("/sim/freeze/master", true);
}
fgSetBool("/sim/signals/reinit", true);
fgSetBool("/sim/crashed", false);
// do actual re-init steps
globals->get_subsystem("flight")->unbind();
// reset control state, before restoring initial state; -set or config files
// may specify values for flaps, trim tabs, magnetos, etc
globals->get_controls()->reset_all();
globals->restoreInitialState();
// update our position based on current presets
fgInitPosition();
// Force reupdating the positions of the ai 3d models. They are used for
// initializing ground level for the FDM.
globals->get_subsystem("ai_model")->reinit();
@ -1532,11 +1541,11 @@ void fgReInitSubsystems()
// reload offsets from config defaults
globals->get_viewmgr()->reinit();
globals->get_controls()->reset_all();
globals->get_subsystem("time")->reinit();
globals->get_subsystem("tile-manager")->reinit();
// setup state to end re-init
fgSetBool("/sim/signals/reinit", false);
if ( !freeze ) {
fgSetBool("/sim/freeze/master", false);
}
@ -1546,27 +1555,9 @@ void fgReInitSubsystems()
void doSimulatorReset(void) // from gui_local.cxx -- TODO merge with fgReInitSubsystems()
{
static SGPropertyNode_ptr master_freeze = fgGetNode("/sim/freeze/master", true);
bool freeze = master_freeze->getBoolValue();
if (!freeze)
master_freeze->setBoolValue(true);
fgSetBool("/sim/signals/reinit", true);
globals->get_subsystem("flight")->unbind();
globals->restoreInitialState();
// update our position based on current presets
fgInitPosition();
fgReInitSubsystems();
fgSetBool("/sim/signals/reinit", false);
if (!freeze)
master_freeze->setBoolValue(false);
}
///////////////////////////////////////////////////////////////////////////////

View file

@ -29,6 +29,7 @@
#include <cstdlib> // atoi()
#include <string>
#include <algorithm>
#include <simgear/debug/logstream.hxx>
#include <simgear/io/iochannel.hxx>
@ -76,15 +77,13 @@ FGIO::FGIO()
{
}
#include <algorithm>
using std::for_each;
static void delete_ptr( FGProtocol* p ) { delete p; }
FGIO::~FGIO()
{
shutdown_all();
for_each( io_channels.begin(), io_channels.end(), delete_ptr );
}
@ -94,7 +93,7 @@ FGIO::parse_port_config( const string& config )
{
SG_LOG( SG_IO, SG_INFO, "Parse I/O channel request: " << config );
vector<string> tokens = simgear::strutils::split( config, "," );
string_list tokens = simgear::strutils::split( config, "," );
if (tokens.empty())
{
SG_LOG( SG_IO, SG_ALERT,
@ -315,9 +314,8 @@ FGIO::init()
// parse the configuration strings and store the results in the
// appropriate FGIOChannel structures
typedef vector<string> container;
container::iterator i = globals->get_channel_options_list()->begin();
container::iterator end = globals->get_channel_options_list()->end();
string_list::iterator i = globals->get_channel_options_list()->begin();
string_list::iterator end = globals->get_channel_options_list()->end();
for (; i != end; ++i )
{
p = parse_port_config( *i );
@ -339,7 +337,6 @@ FGIO::reinit()
{
}
// process any IO channel work
void
FGIO::update( double delta_time_sec )
@ -347,9 +344,8 @@ FGIO::update( double delta_time_sec )
// cout << "processing I/O channels" << endl;
// cout << " Elapsed time = " << delta_time_sec << endl;
typedef vector< FGProtocol* > container;
container::iterator i = io_channels.begin();
container::iterator end = io_channels.end();
ProtocolVec::iterator i = io_channels.begin();
ProtocolVec::iterator end = io_channels.end();
for (; i != end; ++i ) {
FGProtocol* p = *i;
@ -369,24 +365,24 @@ FGIO::update( double delta_time_sec )
}
}
void
FGIO::shutdown_all() {
FGIO::shutdown()
{
FGProtocol *p;
// cout << "shutting down all I/O channels" << endl;
typedef vector< FGProtocol* > container;
container::iterator i = io_channels.begin();
container::iterator end = io_channels.end();
ProtocolVec::iterator i = io_channels.begin();
ProtocolVec::iterator end = io_channels.end();
for (; i != end; ++i )
{
p = *i;
if ( p->is_enabled() ) {
p->close();
}
p = *i;
if ( p->is_enabled() ) {
p->close();
}
delete p;
}
io_channels.clear();
}
void

View file

@ -45,7 +45,7 @@ public:
void unbind();
void update( double dt );
void shutdown_all();
void shutdown();
private:
@ -55,7 +55,9 @@ private:
// define the global I/O channel list
//io_container global_io_list;
std::vector< FGProtocol* > io_channels;
typedef std::vector< FGProtocol* > ProtocolVec;
ProtocolVec io_channels;
};

View file

@ -172,6 +172,7 @@ FGGlobals::~FGGlobals()
delete ai;
}
subsystem_mgr->shutdown();
subsystem_mgr->unbind();
delete subsystem_mgr;