Release Notes Version 1.10.1
- Added a channel selector in the ATVO and Theme Editor Settings window to switch between Stable, Beta and Alpha builds. More explanation below.
- Scripts can now be executed on every data-update automatically by enabling their 'Auto-execute' property. This way the script is executed even if it is not part of a data binding. In this case, the "item" parameter is the Script object (so you can still use that to retrieve the Theme and its contents). The "value" and "parameter" parameters are null. Use the "Execute order" property to control in which order multiple auto-execute scripts will be run.
- Added additional formatting options to the lapcounter special binding, to specify a separate formatting if the time remaining is less than one hour, or less than one minute.
- Added Corner Radius property to all Widget, SubWidget and Label to specify the radius of rounded corners.
- Added more options to retrieve data from a Spreadsheet via scripts. On the Spreadsheet object you can now call 'FindRows' (potentially returns multiple rows) or 'FindRow' (returns the first match). Specify the identifier value you are looking for and the column to search in.
- Added several data bindings for average lap speed: speedfast_mph, speedfast_kph, speedprev_mph, speedprev_khp, fl_speed_mph, fl_speed_kph.
- Added improved error logging.
The new launcher application is practically the same as the old one but with some big improvements:
It supports three separate development channels: Stable, Beta and Alpha. You can subscribe to other channels in the Settings of ATVO or the Theme Editor.
- You can now skip an update, but you will be asked to update every time subsequently).
- The download should now properly show download progress.
- You can view the release notes within the launcher. This is currently not fully working so we will post a link to this thread for now, soon it will support full release notes.
More importantly, the new launcher is the first release of our back-end server which will become very important in the future. You won't see much of this yet at the moment, but if you notice any problems with the launcher (e.g. it cannot connect to our server) please let us know.
From now on we will be working with Stable, Beta and Alpha channels. The different channels mean different branches of development. In short:
- Stable means updates that were tested well, usually also by the users, and are unlikely to contain bugs or incomplete features. Use this to make sure your ATVO installation is stable for example for a big stream. Of course, the time between updates is longer and it may take more time before new features make it to the Stable branch.
- Beta means updates that were reasonably tested, but possibly only by developers. It will be used to release work-in-progress features or bug fixes that require more testing to ensure everything works properly. In general, the Beta channel should also be relatively stable and should not contain broken features, but it is a testing grounds for new updates and therefore could break existing things in theory. Beta channel will see more frequent updates than Stable channel.
- Alpha means updates that are brand new and may not be tested at all. We may release very early new features that cause unexpected problems, or bug fixes that have untested side effects. You can subscribe to Alpha channel to see new features early, but don't use it for real broadcasting work.
If you are on a less stable channel and we release an update on a more stable channel, you will also receive this update. For example, if you are on Alpha channel and we release a Beta update, you will receive that update too. This way you won't miss any updates that skip Alpha or Beta.
What channel should I pick?
In general, you should stay on the Stable branch if you are actually using ATVO on a regular basis.
If you are only using ATVO or the Theme Editor for developing a theme and you are not going to use it soon for a real broadcast, you could consider switching to the Beta channel so you get more frequent updates. This way, you can also help us debug new features or bug fixes and help us release Stable updates more quickly.
If you are curious about fresh updates, you can consider the Alpha branch. Usually we will try to post an update on the forum about an upcoming Alpha branch so you can temporarily switch if you want to.
Switching between channels
Switching channels can be done whenever you want. To switch between channels all you need to do is start ATVO or Theme Editor and go into the Settings. Under the Updates tab you can select the desired channel. Close ATVO or the Theme Editor, and restart them as usual (via the launcher).
The launcher will detect the changed channel, and will "update" you to the new channel. This could be a downgrade in version in case you are going from a less stable to a more stable version (e.g. from Alpha to Stable).
Time estimation update
I am working on improving the time estimation and have found some problems with our lap counting. This is not finished yet and is not in the update 1.10.1. However, I will try to release this soon as a Beta build as version 1.10.2. I'll let you know when that is done, but it will also serve as a test to see if you can receive beta updates.
F1 Styled Theme is no longer compatible with ATVO.
Release Notes Version 1.9
- Spreadsheets can now be used as Data Sets. Data is returned in the Sort order of the Spreadsheet, where the Data Offset is the row number.
- Spreadsheet data can now be sorted on a specific column. You can specify the Sort Column Index and the Sort Direction in the Spreadsheet properties. This is only useful when you're using the Spreadsheet as a Data Set. At this time, the sorting algorithm tries to sort the data as numeric data if all rows in the sort column are integers. If there is any row that is not an integer, the data is sorted as strings (meaning "10" comes before "2").
- Add new 'Custom' delimiter option for Spreadsheets. When selecting 'Custom' delimiter, you have to set the 'Delimiter Text' property which will then be used as the delimiter.
- Labels will now compress or stretch their text if necessary also in the Theme Editor. Previously the compression was only visible when running the theme in ATVO, now you can also see it in the Editor.
- Add Stretch and Stretch Direction properties to Label to control how the contents are stretched or compressed. The default values (Stretch to Fill and Direction to DownOnly) will only compress the text (never stretch it out), but you can control the behaviour with these two properties.
- Add 'OneToGreen' event trigger which should trigger when there is one more pace lap to go and the pace car lights go out.
- Fix bug where no sim data was obtained in sessions using the Ford GT 2017 or Ferrari 488 GTE cars.
- Fixed a bug where Max Height and Max Width where not applied correctly.
- Fixed a bug where laps could fail to be marked as 'under caution', potentially messing up session time estimation.
Release Notes 1.8.1:
- Add Default Selected Index property to Dropdowns. If set to a value of 0 or higher, the Dropdown will select the item with that index by default when the theme loads. If the Apply Mode is set to 'ApplyOnSelect' it will immediately apply the actions of the selected item (as well as the actions to trigger on any selection change). Leave this value empty (or < 0) to have no selected item by default.
- You can now double-click errors in the Error List. If the error is aware of the item from which it originated, that item will be opened. There may be a small set of errors which cannot be opened in this way.
- For .NET scripts (C# or VB), errors originating from usage of unknown types in your script give some assistance when double-clicked. The editor performs a search for the type you are trying to use in all of the assemblies known to ATVO, and will display a list of exact and partial matches. If your type is found, you can copy the necessary "using" or "Imports" statement to paste it at the top of your file.
- Add 'Hide all scenes' action.
- Add "racedistance_mi" and "racedistance_km" bindings, which return the race distance as track length multiplied by number of laps dictated. Note this will be wrong if the race is decided by time!
- Added visible indication to the timing screen whether a car is visible on the track or not in world.
- Fixed a bug where Script Execute actions would incorrectly complain that specifying a Value is invalid. Specifying a Value is optional and the error list no longer flags this as a warning.
- Fixed a bug where Widgets with a Dynamic Video would not play when triggered from an Action.
- Fixed a bug where only one Spreadsheet could be used.
- Fixed several additional bugs with session length estimation:
- The estimated time remaining will be more accurate and will update in real-time (rather than once per lap).
- The Timing Screen display of the time remaining will no longer flicker.
- The estimation now takes qualification times into account properly (if necessary).
Release Notes Version 1.8:
- Add new Dropdown theme control item. You can add dropdown items to your Dropdown and give them some text. For each item, you can specify a list of Actions to execute. Use the Apply Mode property to control when the Actions are executed. Use ApplyOnSelect to execute the Actions as soon as you select the item. Use ApplyWithAction to delay the execution until you execute a "Dropdown Apply" action (which you can do with a separate Button for example). Besides Actions for each item, you can also specify common Actions that get executed whenever the selected item changes, regardless of which item was selected.
- Add Change Camera actions.
- Use Change Camera Group action to change the camera group. Supply the name of the group in the Value field.
- Use Change Camera Focus action to change the focus of the current camera. The value field controls where the focus will go. There are several options:
- Change to a certain position using "P" followed by position number, e.g. "P3".
- Change to a certain car using "#" followed by car number, e.g. "#23".
- Change to a certain driver using his customer ID, e.g. "74968".
- Change to a position relative to the current position using "relative_pos(x)", where "x" is the number of positions to move.
- Change to a car relative to the current car in order of their track location using "relative_track(x)", where x is the number of cars to move.
- Added Data Explorer (access via Window - Data Explorer menu). The Data Explorer shows you a list of all Data Sets and their Data Bindings. You can see the data updating live (4 times per second) when connected to iRacing. This is a useful tool to see what data is available and what format it is. For bindings that return 'objects', you can expand the object and see what is available to use for scripting. Note that expanded objects do not update live.
- Added Object Explorer (access via Window - Object Explorer menu). The Object Explorer is useful for scripting and gives you a rundown of available things in the Simulation and Theme objects which you can access in advanced scripts. You can dig down into properties and collections and see exactly what properties and methods are available, as well as their return type and invocation signature. Primitive values (e.g. numbers and strings) in the Object Explorer will update live (4 times per second), but complex objects will not update live (for example, if you add a new Widget, it will not show up in the Theme.Widgets list until you refresh the Object Explorer).
- Fixed a bug in session length estimation that incorrectly estimated the session length if it was limited by both laps and time.
- Improved session length estimation by ignoring caution laps.
- Fixed a bug where the Theme Editor could crash when selecting a Data Trigger
Release Notes Version 1.7.3:
- Added icons for configurable bindings.
- Fixed custom classes.
- Fixed crash with incorrect actions. They will now be written to the event log.
Release Notes Version 1.7.2:
- Fixed a bug where label text was wrongly left-top aligned in some cases.
- Fixed a bug where configurable data bindings (lapcounter, interval, gap, etc) could be missing for themes with driver pickers or inputs.
- Fixed a bug where the Timing Screen session timer could stop updating if you had not seen a session change yet.
- Fixed a bug where text was mistakenly copied to your clipboard when using a Ticker in your theme.
- Fixed a bug where loading a new theme without closing ATVO first could cause an issue with data binding.
In case there are any other issues with this version for the 24h race you can always go back to version 1.6.9.
You can download it here: https://atvo.appgineer.in/downloads/1.6/bin.zip
Just unzip the folder and run the ATVO.exe or ATVO.ThemeEditor.exe.
Themes that have been saved under version 1.7 or above might load with incorrect text alignment settings for labels.
Release Notes Version 1.7.0:
- Add new 'Child Layout' options to Widgets and SubWidgets. The default layout 'Absolute' is the same as previous versions and allows you to set absolute Left, Top, Width and Height values of all child elements. New options include Stack (Horizontal / Vertical), Wrap (Horizontal / Vertical) and Dock. In Stack mode, child elements will stack next to each other and move as their siblings change size. Wrap mode is similar but wraps elements to a new row (or column) when they exceed the space of their parent. In Dock mode you can use the Dock property of the child elements to dock elements to one side (Left, Top, Right, Bottom). Finally, use the Last Child Fill property of the parent (in Dock layout mode) to make the last child take up all remaining space after docking all other children.
- NOTE: When you have a Widget Editor or SubWidget Editor open, changing this property will not be reflected in the currently open Editor. Close and re-open the Editor to see the changes.
- Add new properties to support new layouts. Use Margin property to set a margin of space around the child. use Horizontal or Vertical Alignment properties to control how elements are aligned (to one side, centered, or stretched out).
- Label now has separate margins and alignments for the text inside it. Use Text Margin, Horizontal Text Alignment and Vertical Text Alignment to control how the text is aligned in the Label. These properties were previously called Margin, Horizontal Alignment and Vertical Alignment but have now been renamed to avoid conflict with the new properties available for all Widgets.
- Add Auto Size property which gives a parent element only as much space as required by its children, it will scale up or down depending on content.
- Add ability to use negative Widths and Heights which are similar to Auto Size except you can set just one direction only (e.g. Height = -1 to auto-size in height only).
Session length estimation:
- ATVO now estimates the session length (correct number of laps or total time, whichever is not fixed by the session settings).
- Estimated session length is used by the lapcounter binding.
- Estimated session length is also shown in the Timing Screen.
- New bindings:
- sessionlength (length as dictated by the session)
- estimated_sessionlength (length estimated)
- estimated_sessiontimeremaining (estimated time remaining)
- estimated_lapstotal (estimated total laps)
- estimated_lapsremaining (estimated laps remaining)
- estimated_sessiondecidedbylaps (estimated whether session is limited by laps or time)
- finallap (true if this is the last lap, potentially estimated)
- interval_behind (Interval to car behind)
- liveinterval_behind (Live interval to car behind)
- average_laptime (Average pace of the session leader, estimated from the 5 most recent and most relevant laps)
- "lapcounter_special" binding renamed to "lapcounter". Old non-configurable "lapcounter" binding has been removed.
- IMPORTANT NOTE: Themes using "lapcounter_special" will NOT be updated automatically, you will need to set the new binding manually.
- "lapcounter" binding updated:
- Add option to show 'Gridding' text.
- Add option to show 'Pacing' text.
- Add option to show 'Time Remaining' text, formatted to your desire.
- Add 'Display Mode' option to choose between display Laps (e.g. "Lap 3 of 15"), TimeRemaining (e.g. "04:23") or Automatic to let ATVO decide.
- Lap counter now estimates the race length accurately so it can display Laps in a race limited by a time limit, or display TimeRemaining in a race limited by laps. This is not recommended though as the estimation fluctuates during the race.
- If configured correctly, lap counter can now display 'X Laps To Go' even in a race decided by time. The laps remaining are estimated based on the average pace of the field.
- Lap counter should show 'Final Lap' text when appropriate, e.g. when the leader starts the last lap and not just when the timer expires.
- All "interval" and "gap" bindings are now configurable
- Can choose "positive" and "negative" sign other than "+" or "-" (e.g. to reverse them, or customize fully).
- Can choose translation for "Lap" and "Laps" text.
- Applies to "gap", "livegap", "classgap", "classlivegap", "interval", "liveinterval", "interval_behind" and "liveinterval_behind".
- Fixed bug where ticker could get stuck after session change.
- Fixed bug where ticker showed empty data just after resetting to first page.
- Fixed bug where Font Weight could not be selected from a drop down. Added option "Inherited" to inherit font weight from parent item.
- Fixed a bug that could cause a crash during a driver change.