Release Notes ============= Full lib documentation of the most recent version can always be found here: http://lfs.fullmotionracing.com/ 0.16b ----- - InSim relay support via IInSimRelayHandler - Added auto-reconnect feature to handler (really only works for TCP, since UDP is connectionless) - CameraPositionInfo now allows ShiftU & related properties to be set - Updated TrackingInterval to accept values as low as 50ms - BUGFIX: Fixed race condition where a LFSState event could be fired on a separate thread before the main thread noticed that LFS was connected, allowing for invalid NotConnected exceptions to occur. - BUGFIX: Fixed Ping event (was looking for the wrong packet) - BUGFIX: RaceTrackPlayer.HandicapIntakeRestriction always returned zero 0.15b ----- - More naming cleanup: - SetButton has been deprecated in favor of ShowButton - Added DeleteButton versions that take actual LfsButtons as arguments instead of IDs - BUGFIX: Eliminated race condition in static population of encodings - BUGFIX: Fixed bug with text-less button - BUGFIX: Socket clean-up in UDP handling could throw unexpected exceptions - BUGFIX: OutSim & OutGauge used bad buffer sizes if ID was 0 and would throw an OutOfRangeException - BUGFIX: Close() could throw NotConnected exception, which was useless - BUGFIX: AXI & AXO packets were not properly received and killed the TCP handler 0.14b ----- - Added TextColor helper class - Fixed problem w/ TCP, if LFS closed down unexpectantly - Added InSimHandler.StateChanged to detect that the handler has lost its connection - Fixed bug with receiving a large number of packets at once - Code naming cleanup: - CarInfo.Position has been deprecated in favor of CarInfo.Location - CarInfo.RacePosition added toexpose the position of the car in the race ladder - All Race Track events that concern a particular player now are named in the RaceTrackPlayer* convention (with exception to the RaceTrackCar* events): - RaceTrackResult (event and event args) has been deprecated in favor of RaceTrackPlayerResult - RaceTrackSplitTime (event and event args) has been deprecated in favor of RaceTrackPlayerSplitTime - RaceTrackLapTime (event and event args) has been deprecated in favor of RaceTrackPlayerLap - Renamed the increasingly misleading RaceTrackNewPlayerJoinHandler to RaceTrackPlayerHandler 0.13b ----- CONTAINS BREAKING CHANGES - Full patch X2 compliance (compatible with X) - A number of types were changed to fit into overall framework changes - Some events lost or gained information as the underlying data structures changed - Added all new patch X features including: - LFS Button system - Many new race tracking events - TCP connection mode - Removed "asyncEventHandling" from InSimHandler. It had the potential to create to many insidious threading problems. 0.12b ----- - This is only a stop-gap test patch to move existing functionality to LFS 0.5X with the least API changes. These API changes are relatively solid, but a lot of API additions are scheduled for 0.13b - Moved to .NET 2.0 and Visual Studio 2k5 - Swapped out back-end for dealing with InSim packets to more closely resemble the native LFS formats and removed the intermediate Msg* classes (all internal changes) - Finally mostly functional Unicode support for LFS message in and out transfers - Updated existing functionality to work against patch X, with some breaking changes in what is available in Events and how that data is represented. - Full patch X protocol implemented, just not yet exposed, so new packets don't come across as unknown packets - New features of patch X are not yet exposed or implemented (notably no TCP) 0.11b ----- - Fixed OutSim and OutGauge handling when protocol ID is not set - Added OutSim form to Tester - Added Roll to OutSim (was missing) 0.10b ----- MAJOR REFACTORING - Changed assembly structure to bring InSim/OutSim/OutGauge into the same library so that InSim can be used to process OutSim and OutGauge events as well as have those two protocols work in - Changed namespace from LiveForSpeed.* to FullMotion.LiveForSpeed.* so as to not monopolize the LiveForSpeed namespace from other implementations of these protocols - Added new config options to the Configuration object and methods to InSimHandler to initialize and handle OutSim and OutGauge events within the InSim object. When used those packets are transmitted on the InSim channel and can be subscribed to like other InSim events. 0.09b ----- - InSim changes for Lfs Alpha S/T/U 0.08b ----- - BeginInvoke Fixes in Tester - Updates to get LFSLib to compile run under C# 2.0 - Updated log4net to 1.2.9 beta compiled for C# 2.0 0.07b ----- - Minor bug fixes - Changed Initialize to wait max 10 seconds - Added Initialize(wait) to control how long initialize should wait 0.06b ----- - added changes to the RaceTrackAckResult packet from the S2 Alpha 0.5P build - added Async event handling (Events are fired on their own threads) - added additional, separate events for every race tracking type, so you don't have to subscribe to all and then pick out the ones you really care about - added State fetching as a connection pre-requisite - added an additional two exceptions for initializaton failures - fixed bug in all 'Plate' Properties - change PlayerNum to byte in events.RaceTrackPlayer, events.RaceTrackLapTime, events.RaceTrackPlayerLeave, events.RaceTrackPlayerPits and events.RaceTrackSplitTime - Switched out manual xml config code for XmlSerializable objects - Added ability to embed xml config in Application Configuration settings or external XmlSerializable location - fixed Byte2String to return null on null input instead of throwing an exception - changed Configuration.TrackingInterval to be in milliseconds like the TrackingInterval method on InSimHandler. Updated InSimhandler to adjust tracking interval post connect to adjust for the second vs. millisecond resolution issue in the Init packet. 0.05b ----- - Initial Source Release - Considered feature complete, exposes all of InSim 0.01a ----- - first alpha of the InSim Library - can automatically handle ACKs for keep alive - receives all known insim messages, but does not currently expose them for usage - will auto-ack race tracking messages - retrieves Version at start-up - Only exposes two events publicly right now: - LFSMessage for normal and split messages - LFSState for state events