Rewrote a large part of the iRacing data parsing which should improve performance and prevent a lot of crashes related to "YAML parsing".
Added a list of all Sessions to the Timing Screen. The Session list shows the list of previous and upcoming sessions (e.g. Practice, Qualification, Race) and shows which session is currently active. You can 'select' a session by double clicking, or check a checkbox to keep the current session selected. Selecting a session is relevant for the new 'selected' data set, see below. This feature is in preparation of heat racing where there can be multiple race sessions.
Double-clicking a Session Event from the Session Events list now plays back the event (just like the Play right-click menu item does).
New data sets:
Added "selected" data set. This data set acts just like the "standings" data set (returns the standings, list of results) except it returns the data for the session selected in the new Sessions list. For example, during the Race you can select the Practice session and show data from the practice session in this way. When heat racing is released, this can be used to show data from a previous race heat.
Added "laptimes" data set. This returns a list of lap data (e.g. laptime) from the currently followed driver only, in order of descending lap number (e.g. last lap first).
New control:
Added Laptime Compare control which allows you to compare the laptimes of two drivers. The Laptime Compare control looks like two dropdowns side by side where you can select the two drivers. Beside drivers, you can also select the Leader or the Followed car for the first driver; and the Car Ahead or Car Behind for the second driver.
For each Laptime Compare control in your theme, a new data set will be added (named after the name of the Laptime Compare control). Select this data set for your Widget that needs to show the laptime comparisons.
Data bindings for the Laptime Compare data set include the delta time (laptime difference), details about both laps (laptime, number, position, etc), and details about both drivers (name, id, carnumber, etc). These bindings come in pairs where binding "1" (e.g. "carnumber_1") refers to the first driver and binding "2" (e.g. "carnumber_2") refers to the second driver.
Bug fixes:
Fixed a major bug where closing a theme in ATVO would not properly unload the theme and would keep triggers active, causing many issues after loading a new theme such as crashes on video playback. Themes are now unloaded properly and this should fix a number of issues with triggers.
Fixed a bug where the Driver column in the Session Events list was empty.