Feature image

Introducing a threaded, more robust Windows Client with improved library management


The next article in the run up to 1.4 looks at improvements to the Windows client’s connection to the Xibo server and its library management.

These improvements can be categorised into the following areas:

  • Reduced “lag” and “display jitter” when the client is connecting to the Server
  • Concurrent file downloads
  • Clearing up old and unused files in the library
  • Information window showing client status, library status and log information
  • Replacing the splash screen

Reduced display jitter

The Windows client has always been “single threaded” which means that it processed instructions one after the other in sequence. This meant that when the client was doing something intensive that wasn’t displaying content (such as verifying the files that needed download) there was a chance of display “lag” or jitter while this other action was occurring. Prime examples of this were displaying scrolling text, or loading new media when it reached the end of its play time.

The has been greatly reduced in the new client by “threading”, meaning the client is separated into different part which all act independently of each other. There are now seperate threads for the following:

  • Checking the schedule on the server
  • Checking the files required on the server
  • Downloading files from the server
  • Calculating the valid schedule

Concurrent File Downloads

Another effect of the “single threaded” design of the old client was that it could only download one file at a time, in sequence. The new client has been improved to allow a user configurable number of concurrent downloads.

This allows files to be pulled into clients faster and more efficiently.

In addition to this the client will now resume interrupted downloads, especially useful for clients with intermittent or slow connections.

[![Client Info Screenshot](/content/images/2012/06/Client-Info-Screenshot-300x286.jpg "Client Info Screenshot")](/content/images/2012/06/Client-Info-Screenshot.jpg)
The Client Info window showing status of all communications, schedule, library info and recent logs.
## Clearing up old and unused files

Anyone that has been running a client for a long time will have noticed that the local client library doesn’t automatically tidy itself up and will get larger and larger as time goes on.

The new client manages this library much more efficiently, clearing up files that are no longer needed (including temporary files).

This can be managed using the “required files look ahead” setting in the server – increasing this value causes the client to consider media to be required for longer.

Client status window

It has always been a challenge to see what is going in within the client, especially if it is not showing what you expect. The new client comes with an info screen which shows you the status of all communications with the server, the current schedule and the contents of the library (with progress indicators for current downloads).

Replacing the splash screen

Due to popular demand we have also included an option in the client to replace the Xibo splash screen with a file on the local PC. We have “resisted” this in the past because maintaining this website and the Xibo wiki does cost us some money – and de-branding the client has previously been a good method for funding this site.

However in the interests of being as “open” as we possibly can, we have chosen to make it easier to “de-brand” the client with this splash screen replacement feature. Apologies it has taken us so long to do this.

If you do decide to replace the splash screen with one of your own, then it would be fantastic for the project if you made a small donation.

If the image you select is invalid or cannot be found, Xibo will default back to the current splash screen.


Our long term intention is still to replace the Windows client with a fully cross platform client – however this is taking us longer than expected due to a number of technical reasons. We hope that these improvements to the current Windows client will be a good “stop-gap” for a more professional, reliable solution while development on the cross platform client continues.


Read more from the blog


Read more from the blog