Elections Player for XPression Release Notes

Please use Elections Player for Chameleon 7.0.0.0 or later as a replacement for the Elections Player for XPression application.

Flow-for-Chameleon v13.5.2.1 or later is required as of Player v6.0.0.64.

Gears for XPression v1.0.0.27 or later is required as of Player v6.0.0.99.

Version 6.0.0.102

  • Changed setting of party logos to use the XPression SetVolatileTexture API instead of assigning the shader's filename. This allows the graphic designer to use the same material on different logo objects without running into any issues whereas previously this wouldn't work since the last change to any of the logos would override all other changes.

Version 6.0.0.101

  • Fixed a bug with acquiring project/scene info on app start which caused the default scene framebuffer and layer definitions to be lost and when taken to air, show up on framebuffer 0 and layer 0. Bug was introduced in v6.0.0.99.

Version 6.0.0.100

  • Fixed bugs related to having Rundown Party Scene items that do not have assigned playlist of contests nor an event.

Version 6.0.0.99

  • Added text box control for specifying Flow API Key in the Preferences dialog.

  • Added support for using API Key when using BLADE API calls to Flow.

  • Added a '<None>' Playlist Bin entry for the Bins drop-down lists in the Rundowns tabs.

  • Gears for XPression 1.0.0.27 or later is required.

Version 6.0.0.98

  • Fixed a bug when acquiring list of candidates for a contest by using the contest's area and office instead of directly referencing the contest itself.

Version 6.0.0.97

  • Added support for filtered playlists and rundowns where the filter defined in Flow is attached to playlists and rundowns.

  • Added label to show area # of total areas for Area/Riding scenes in Fullscreen scenes UI.

  • Modified support for playlists in Fullscreen scenes and Ticker Riding Results to refresh the playlist contests when the last contest has been shown.

  • Removed support for 'Skip Contests if No Votes' preference option since this is now supported by Flow filtering of playlists and rundowns.

  • Fixed a bug in DbSupport::GetCandidates(eventID, officeID, areaID) when attempting to sort based on party info where there is a mix of candidates with and without party information.

Version 6.0.0.96

  • Fixed bug with getting contests when some contests may not have any district information.

  • Fixed bug with Elections Settings dialog with selecting a Date, the list of available Events is not correct.

  • Added tool tips to Scene drop-down list controls to show the selected full project and scene.

  • Made clearing of output on app shutdown more efficient.

  • Added Garbage Collection calls to occur after 100 XPression scenes have been freed. This prevents the XPression Engine from losing too many handles and memory.

Version 6.0.0.95

  • Added support for Ticker Timer section to support Timer scenes.

  • Added support for paged News and Breaking News scenes. Will play out as a crawl or page based on whether the selected XPression scene is a Scene Group or not.

  • Added logs/messaging when GetPreferences fails attempting to connect to Flow.

Version 6.0.0.94

  • Fixes bug with initial click on the PlaylistID drop-downs with allow key entry enabled not opening the drop-down list when clicking on the down-arrow button.

  • Added tooltips when hovering over playlist item Status images.

  • Fixed a bug with updating playlist that wouldn't change the position of the items in the list if the items are the same items but in different positions.

  • Fixed loss of the status of all Playlist items on updating playlists.

  • Updated to MySql.Data.dll v8.0.29 & ReaderUtils.dll 1.0.48.

Version 6.0.0.93

  • Fixed bug Playlist Notes not being updated on an 'Update Playlists' action.
  • Fixed bug with Playlist Cue label not being hidden after Cueing is disabled.
  • Added check for updates on startup and will post a message in the status if a new build is available.
  • Added Online Help menu option.
  • Changed label of Preferences->General->Playlist Settings->'Show Information Tabs' option to 'Show Image & Notes Information Tab'.

Version 6.0.0.92

  • Fixed a bug with acquiring the list of widgets from a project that was caused by using the truncated project name from the selected widget scene.

Version 6.0.0.91

  • Added support for Ticker Clock Widgets which are useful for displaying clock times, count up or count down clocks.

Version 6.0.0.90

  • Added check for minimum Flow Version on startup.
  • Added preferences to use and set the location of the Generic headshot image if the candidate image is unavailable
  • Added ^choice.office.shortname' as an alias of the '^choice.office.code' tag.

Version 6.0.0.89

  • Fixed a bug caused having Events belonging to a non-Global group.
  • Added party colour tag aliases: ^choice.party.color & ^choice.party.colorvalue.
  • Changed setting of Party Colour tags to use temporary materials so that back-to-back scenes can show properly.

  • Added back handling for Crawls going offline to clean up when crawl scene is set offline.

Version 6.0.0.88

  • Fixed a bug with not saving TagPaths for graphics tags which resulted in duplicate graphics tags not working.

Version 6.0.0.87

  • Added support for updating the Agent Status of the Player in Flow.

Version 6.0.0.86

  • Modified the interactions of the Headshots Menu option settings so that they behave more consistently.
  • Added support for using the Letter-Specified Headshots File Format.

Version 6.0.0.85

  • Added missing ^choice.office.positions & ^choice.office.name tags for Choice scenes.
  • Added missing ^choice.votesPrevious% tag for Contest scenes.
  • Removed unsupported Party tags related to showing differences for party totals or votes between different events. These tags are: ^choice.party.totaldiff, ^choice.party.vote(s).diff, ^choice.party.vote(s).diff%, ^choice.party.gain & ^choice.party.loss.

Version 6.0.0.84

  • Clicking on the OK button for the Elections Settings dialog will now always force a reload of the DB even if no options were changed.
  • Added ^choice.party.colour and ^choice.party.colourvalue tags for Choice, Contest and Party scenes.
  •  Added an Other Party Colour option for assigning colour values for the Other party.
  • Forces the XPression engine to be cleaned up on app exit.

Version 6.0.0.83

  • Fixed bug with playing the 1st page of a multi-paged Rundown item twice when transitioning from another item.
  • Fixed bug with Rundown content information not updating for an item that was on air when another item goes on air.
  • Fixed bug with attempting to update the Candidate textboxes in the Rundown Information tab when the item that uses a Contest scene but didn't have an assigned contest.
  • Fixed bug with Play Rundown timer not being stopped when the app automatically stops the Rundown when reaching the end of the list (with looping not enabled).
  • Fixed bug caused by attempting to get an assigned candidate ID for an item that uses a Choice scene but has no candidates assigned.
  • Fixed bug with loss of the use of an MySqlDataReader instance when the underlying SQL command fails and throws an exception.

Version 6.0.0.81

  • Fix bug with not setting the selected Content Group object on startup if the name of the Content Group read from Preferences is not found.
  • Fixed bug with not setting the URL correctly when attempting to update the application using CheckForUpdates.

Version 6.0.0.80

  • Fixed bug with incorrectly playing an item with 'Play Rundown' when there is only a single item (or only 1 active item) in the Rundown and the item can playout multiple pages.
  • Fixed bug on 'Update Rundown' with item information not updating in the grid.
  • When acquiring list of available XPFs, sub-folders in the Project Folder starting with '!' are also ignored.

Version 6.0.0.79

  • Fixed a bug with setting the Candidate scenes FillVotePct() function which didn't set the text object content properly.
  • Load the new contest total votes and votes previous (i.e., the popular votes and votes previous).
  • Modified to Candidate & Contest scenes to get the total votes and total previous votes from the contest itself (if available) and only calculate these totals if they aren't available (i.e., 0).

Version 6.0.0.78

  • Added support for activating an XPression Project on player launch. Selecting which project to activate is done in the Preferences dialog.

  • Fixed a bug with Ticker News and Breaking News (crawls) which cleared off the crawl the items prior to setting the scene offline.

Version 6.0.0.77

  • Updated to ReaderUtils 1.0.44 so that Flow Credential verification can use the additional MySQL parameters.

  • Fixed a bug with not getting all Districts from the DB on initialization when '<All Events>' is not selected as the 'Current Event'.

Version 6.0.0.76

  • Fixed a bug with getting contests for all events which caused the DB to be accessed multiple times for each contest.

  • Modified display of Contest entries in Fullscreen Scenes & Tickers Contest Results drop-down to show Area name first.
  • Fixed a bug with not restoring selected contest in Fullscreen Scenes & Tickers Contest Results drop-down when switching how contest entries are displayed.
  • Cache all areas and offices so that when creating a display name for a contest, the cached info is used instead of accessing the DB.

Version 6.0.0.75

  • Replaced SSL Mode specification in Preferences to use a textbox to allow specification of additional MySQL parameters.

Version 6.0.0.74

  • Changed Preferences to allow specifying SSL mode and Timeout value for MySQL connection.

  • Fixed bugs that due to using incomplete elections data in the DB (eg, events with no contests or contests with no candidates).
  • Updated to use MySql.data.dll v8.0.25, ReaderUtils.dll v1.0.42 and Google.Protobuf v3.14.0.

Version 6.0.0.73

  • Changed scene preparation to only cache the XPression object when the tag for the object is not unique in the scene.

  • Changed handling of scene tags to be a dictionary of lists of tags instead of a straight list of tags to handle duplicate tags in the scene.
  • Added ^choice.eligibleVotes & ^choice.popTotalVotes to Choice & Contest scenes.
  • Added Preference for Timers spin-controls to enable or disable use 10ths of second. Default setting is disable.
  • Added Preference to 'Hide Candidates with 0 Seats' and to 'Hide Candidates with 0 Votes'.
  • Made Fullscreen Scene drop-down selections sticky across restarts.
  • Fixed a bug in Election Settings dialog that caused the date selection to be lost after the dialog is closed.
  • Fixed bug in Fullscreen Scenes and Ticker Contest Results which resulted in acquiring and filling the Contests drop-down twice in a row.
  • Fixed paging for Fullscreen Scenes, Ticker Contest Results and Rundown items that use Contest scenes.
  • Fixed issue with playing a contest twice after changing the current contest while looping contests for Fullscreen Scenes and Ticker Contest Results.

Version 6.0.0.72

  • Added support for ^choice.popvotes% and ^choice.popvotesPrevious% tags for Contest scenes.

Version 6.0.0.71

  • Fixed a bug with filling of the ^choice.votesdiff% tag which incorrectly used the seats diff%.
  • Fixed a bug with getting party name from cached list of parties based on the party shortname/code (which may not be unique).
  • Added support for '{partyaltname}' keyword to ^choice.custom tag and fixed but with getting party info based on party shortname/code.

Version 6.0.0.70

  • Modified handling of Choice percentage values of votes, votesPrevious, votes2 (seats) and votes2Previous based on whether those percentage values are read from the DB or needs to be calculated.
  • Added new Choice scene tags: ^choice.popvotes% and ^choice.popvotesPrevious%.
  • Added new keywords: {name} and {firstletter} to ^choice.custom tag.

Version 6.0.0.69

  • Fix a bug caused by missing total calculations for votesPrevious, votes2, votes2Previous and related percentages.

Version 6.0.0.68

  • Added support for new Contest & Choice scene tags: ^choice.votesPrevious, ^choice.votesPrevious%, ^choice.votediff, ^choice.votediff%, ^choice.seatsPrevious, ^choice.seatsPrevious%, ^choice.seats, ^choice.seats%, ^choice.seatsdiff, and ^choice.seatsdiff%.
  • Added support for new Contest, Choice & Party scene tag: ^choice.party.altName.
  • Added Party scene alias tags: ^choice.party.votesdiff as alias for ^choice.party.votes% as alias for ^choice.party.vote%, ^choice.party.votesdiff as alias for ^choice.party.votediff, ^choice.party.votesdiff% as alias for ^choice.party.votediff%.
  • Added Contest & Choice alias scene tags: ^choice.votes% as alias for ^choice.vote%, ^choice.votesdiff for ^choice.votediff, ^choice.votesdiff% for ^choice.votediff%.
  • Added support for votes2 and votes2Previous in Choice DB table.

  • Added Preference setting to set default results sort type for Rundown items that use Party or Contest scenes.
  • Disabled support for "vote%" keyword for Custom candidate tags.
  • Added new Preference setting for showing number of decimal places for Percentage displays. Default is 'Auto Detect' based on text assigned during design phase.
  • Fixed a bug in Fullscreen Scenes handling when showing a Contest scene again with the 'Candidate Paging Settings' set to 'Top X where X is available candidate tags' option.
  • Added support 'Cancel' option for the startup Timed Message box which will close the app.
  • Fixed a bug in Ticker Contest Results which caused existing output to be cleared prior to taking the new output. This interferes with TL from working correctly sometimes.
  • Also fixed all other take code to check the current output against the new output prior to taking the new output to see if the current output needs to be hidden or not.
  • Fixed a bug with handling of custom tags when there is a '.' inside the custom definition string.
  • Fixed a bug with changing the Loop Order parameter for Contest scenes in Fullscreen Scenes UI which caused an uncaught exception message to appear.
  • Fixed issue caused by not setting the Scenes background board if the current item is showing the same background when looping through all contests.
  • On launch, added new InitBoardThumbnails() functionality. InitBoards() now only acquire the board info without the thumbnails. This is in case we have very slow cloud connections and getting thumbnails can fail.
  • Cueing and showing no longer use Events. Instead, commands are added directly to the Background workers.
  • Changed Headshots caching dialog to be more responsive to user input during the caching process.

  • Modified Fullscreen Scenes UI when a Contest scene is selected will cause the Event drop-down to select the current event date by default.
  • Fixed a bug with Ticker Contest Results that causes Contests to be repeated on output when the 'Skip Contests with 0 votes' preference setting is enabled.
  • Changed Project selection in Preferences to ignore XPFs that start with '!'.
  • Fixed bug caused by switching a playlist or event with no contests in the Ticker Contest Results section. This can occur with 'Skip Contests with 0 votes' preference enabled.
  • Changed display of Contests drop-down list control in the Ticker Contest Results section to indicate absence of contests.
  • Fixed bugs with hotkeys in the Fullscreen Scenes section that caused Numpad+, Numpad- and Numpad. to not work.
  • Added support for adding a <All Bins> selection to Rundown Bin list to show Playlists from all bins in the PlaylistID drop-down list controls. <All Bins> option is not implemented in the UI.
  • Added support for key entry to change the selection in Rundown Bin, ListID, Event, Playlist and Contest drop-down list controls.
  • Added Preference setting to allow or disallow key entry to change selection in Rundown Bin, ListID, Event, Playlist and Contest drop-down list controls.
  • Fixed bug with filling Party scene tags that used both party seats and party votes tags when one or more main parties have no seats but has votes.
  • Cosmetic change for logging to show Rundown # consistently.

Version 6.0.0.67

  • Fixed bugs with cached headshots filename such that DistrictNum is checked to be > 0 otherwise the District.ID is used instead.
  • Fixed a bug which prevented acquiring Contests from the DB when using "All Events".
  • Checks the Elections Settings on start up for invalid Current Event values. Only does this if the Db Manager has been successfully initialized.

Version 6.0.0.66

  • Fixed a bug in custom name tags for Candidate scenes.
  • Fixed a bug that caused a deadlock situation when the CG Engine failed to initialize.
  • Handle CG Engine errors more gracefully instead of throwing out errors constantly.

Version 6.0.0.65

  • Added buttons to force refresh of Ticker Crawls (for News and Breaking News).

  • Fixed bug in showing preview of Contest scenes in Fullscreen Scenes section where it wasn't showing any data.

  • Fixed bug in showing of background scenes where it could be taken off unintentionally when another scene is taken to air.

  • Added separate settings for Preview Framebuffers for Rundowns, Tickers, Fullscreen Scenes and Main Background.

Version 6.0.0.64

  • Requires Flow-for-Chameleon v13.5.2.1 or later.
  • Fixed bug with Rundown Items that uses Party Scenes with Playlists that displays results form all contests of the chosen event instead of those in the playlist.
  • Removed scenes read from the DB if their projects are not in the selected projects list (in the Preferences dialog).
  • Updated Rundown Contest column to show information about the Events or Playlists in items that use Party scenes.
  • Modified Rundown information tabs to show Event, Playlist and Parties for items that use Party scenes. This is similar to the items that use Contest scenes.
  • Indicate Rundown items that use scenes from unloaded Projects in the Type column and also uncheck the items' output checkboxes.
  • Added Ticker functionality which includes support for Bug, Sponsor, Ticker Background, Party Totals, Contest Results, Utility Party scene (Party Majority), News and Breaking News crawls.

  • Added Candidate Paging support for Ticker Contest Results functionality.

  • Added Party Paging support for Ticker Party Totals and Party Majority functionality.

  • Added Party Paging support for Rundown items and Fullscreen Scenes. Paging information for Rundown items that use Party scenes are shown in the Content column just like for items that use Contest scenes.
  • Implemented sorting results by Results descending, Party Order ascending, Last-name ascending, First-name Last-name ascending, Party abbreviation ascending and Party name ascending.

  • Indicate the results sort type for the Rundown items in the Type column.
  • Converted all play back and most database access functionality to be asynchronous and decoupled from the UI thread.
  • Added setting to Preferences to enable or disable showing of the Image & Notes tab in the Rundown Information tabs. Default  setting is disabled.
  • The image in the Image & Notes Rundown Information tab will show the live thumbnail of the selected item (if the Live Thumbnails option is enabled).
  • Removed the Preview Layer setting in Preferences since this setting is never used. Layer of scenes shown in Preview are derived from their default TakeItem layer setting in XPression in the same way that as for Program output.
  • Forces a Garbage Collect call on exiting the app. This clears all XPression scene handles and causes the XPression UI to close consistently after the app is closed.

Version 6.0.0.63

  • Added support to acquire headshots using BLADE.

Version 6.0.0.62

  • Fixed bug on taking a Rundown item that leaves the current Rundown item on-air if the new item has a different layer.

Version 6.0.0.61

  • Fixed a minor bug with Check for Updates option that doesn't show a message dialog if the currently installed app is up to date.

  • Made the names of the Elections tags identical to those that are in use in the Chameleon Web Server.

  • Added the 'Check for Updates' option to the Help menu.

Version 6.0.0.60

  • Supports use of IP Commands to control Rundown play out and previews. This feature is optional and can be enabled via the Preferences dialog.

Version 6.0.0.58

  • Fixed issues with Db usage collision by introducing a Db Instance Pool manager (DbInstMgr) to handle access to Db instances.

  • Replaced all Globals.Db (DbSupport) usage with a Db Pool Instance acquired from DbInstMgr.
  • Fixed bug with disabling/enabling 'Output' with Rundown items which didn't work before.
  • Fixed bugs related to having slow internet connection when attempting to access a cloud based Db.
  • Fixed a bug in rendering live thumbnails caused by file locking when an new thumbnail is generated.
  • Converted to use Nuget PackageReferences instead of packages.config.

Version 6.0.0.56

  • Fixed issue with Db instances becoming unavailable due to collision caused by generating live thumbnails and playing output at the same time.

  • Fixed bug with Fullscreen Scene UI showing the Candidate controls in the wrong spot for Contest scenes following the selection of a Choice scene.

  • Candidate IDs are no longer shown as part of the displayed candidate info. This is a settings.ini option 'CandDisplayShowID' that has to be manually edited to be true to show the IDs.

  • Changed Rundown grid cells to allow text wrapping of contents for the 'Type', 'Content' and 'Contest' columns.

Version 6.0.0.55

  • Requires Gears for XPression 1.0.0.5 or later.
  • Fixed a bug with XPrSupport::BLXpSceneAutoData:ShowPctForTag() function which assumed that GetXPrTagOrgText() always returned a string - it can return null as well.
  • Changed detection of Contest/Area, Choice and Party scenes to NOT look for 'Name' and instead allow any text to be prior to the '( )' type markers.

Version 6.0.0.54

  • Requires Flow version 12.2.2.3 or newer.
  • Added support for using logo files with optional prefixes when replace party logo tags.

Version 6.0.0.52

  • Modified Thumbnail rendering to give priority to the playlist items of a Rundown when it's 'Update Playlists' button is pressed.

  • Changed the default auto-update playlist timer interval from 6 seconds to 1 minute. 

  • Fixed issue with XPression application not closing after the Player is closed. This was caused by the live thumbnails feature keeping some scene references active.

  • Fixed manifest version build # to match exe version.

Version 6.0.0.51

  • Fixed a bug with Rundown playback which clears the currently showing item before playing the next item. This bypasses TL functionality.

  • Added support for generating Live Thumbnails for Rundowns. Live Thumbnails can be enabled or disabled via Preference settings.

  • Fixed a bug with the auto-scrolling of the rundown grid when auto-playing a rundown that doesn't account for the row size.

Version 6.0.0.50

  • Fixed a bug with FillHeadshot functions where the extension of the headshots images in the DB are not PNGs.

Version 6.0.0.49

  • Initial release candidate.
  • Fixed a bug with Update Rundown causing the grid to freeze.

  • Fixed bug with rundown items that have empty contents that causes an unhandled exception to occur.

  • Fixed bug with XPression Preview settings not being sticky.

  • Fixed bug with Rundown On-Air and Cued status not being maintained when the Rundown is updated.

  • Removed the hidden StatusCode column from all Rundown grids as they are no longer needed.

  • Added ability to resize the grid rows using a drop-down list.

  • Added tab LEDs to indicate whether an item in the respective tab is on-air.

  • Added a textbox in the Cache Headshots dialog to indicate that the headshots are only being cached for the current event.

  • Headshots are cached using the LASTNAME_Firstname_PARTYCODE_AreaID file format.

  • Ensure scene tags are blank if the content is missing.

Version 6.0.0.48

  • Internal test build only.
  • Changed tag indices to be 0 based instead of 1 based.

  • Fixed bug with Rundown item Cue status not being maintained when an item is taken to or off air.

  • Uses FormAbout with generic graphics for background.
  • Implemented new Rundown hotkeys for Take, Clear and Cue buttons. Hotkeys can be changed using the Preferences dialog.
  • Added a message box to indicate a restart is needed when the list of selected projects is changed in the Preferences.
  • Changed app name to 'Elections Player for XPression'.
  • Fixed a bug in the Preferences dialog for not refreshing the list of available projects when the Projects folder is changed.

Version 6.0.0.47

  • Initial build with UI built using Telerik controls. Internal test build only.
  • Based on code and UIs from Elector Player v5.1.xxxx.46