.. adds overlay widgets to show telemetry on top
of video as you ride with a customisable view.
.. not tested but pulled into the repo to enable
testing to start with a view to inclusion in
the 3.3 release.
... introduce new "home" Folder structure object representing the
previous flat-folder
... adjust relevant QDir home - access to use the sub-folder method of
the new object
Note: the new structure is not yet active ! - everything is written to
the main folder still
To Do:
... add upgrade procedure for existing folder content to merge to the
new folders
.. you can now select what kind of video widget you
want to build.
GC_VIDEO_NONE - No media support compiled in
GC_VIDEO_VLC - Use VLC (only on Win/Linux)
GC_VIDEO_QUICKTIME - Use Apple QuickTime (only on OS X)
GC_VIDEO_QT5 - QT5 video and associated backends (O/S dependent)
NOTE: This needs testing on non-Linux platforms.
.. if you are building with QT5.2.1 or higher we are no
longer going to use VLC for video playback.
.. the QT Multimedia module seems to finally have made
the grade and works as advertised on Linux and Windows
.. FOR NOW we will continue to use QTKit on Mac but that
may also change soon.
This is to enable overlays -- placing the video behind the
charts etc.
New strategy to enable build on QT5 or QT4.8 is quite
simple to enact as most of the fixes for QT5 can be
applied to earlier releases.
This patch fixes up some of the special cases for QT5 so
they will continue to build on earlier releases.
Porting the codebase to QT 5 (5.2) to get the
latest bug fixes, performance and improved platform
support.
This first part is to fixup the codebase to compile
on Qt 5, but some aspects have been broken (video).
The second part is to migrate from Qwt 6.0.1 to the
latest Qwt for multiaxis support.
The third part will be to fixup any platform specific
issues or issues identified at runtime.
Decoupled classes from MainWindow to reference Context
and Athlete (and introduced a couple of new headers).
We no longer pass around a MainWindow pointer to children
but pass a context instead.
There are still a few pieces left in MainWindow that need
to move to a better place;
* Setting/clearing filter selection
* Working with Intervals
* Adding/Deleting Rides
* Save on Exit
As mentioned previously there are lots of other parts to
this refactor left to do;
* break MainWindow Gui elements into Toolbar and Views
* migrate from RideItem and Ridelist to ActivityCollection
and Activity classes that are not tied into gui elements.
* introduce Application Context and AthleteCollection
Breaking the MainWindow 'god object' into
separate classes for Athlete and Context.
Further updates will need to;
- break MainWindow Gui elements into Toolbar and Views
- migrate from RideItem and Ridelist to ActivityCollection
and Activity classes that are not tied into gui elements.
- introduce Application Context and AthleteCollection
Once these are done we will be in a position to decouple
most classes from mainwindow and also introduce tabbed
athletes.
Implementing a workout library that keeps
track of media and workouts that can be used
in train view.
This first part implements;
- library.xml to record search paths
- search dialog to find media/workouts
Part 2 and 3 will bring:
- Sqllite libraryDB to store found details
- Update traintool to use libraryDB and display
icons, duration/distance, IF and TSS in list
- import and drag-n-drop of new media/workouts
When using the fast forward and rewind buttons for
a workout we now also fast forward and rewind the
video playback on Linux/Windows.
The same feature needs to be incorporated under
Mac where we use QTKit for video playback.
Fixes#594.
Passing a filename with spaces in it causes some issues
on WinXP/2003, this patch converts all filenames to valid
URLs (which is the preferred way to reference media in VLC).
Specifically;
* The file path is prepended with file://
* backslashes in filenames are converted to forward slashes in URLs
* Spaces are converted to %20
VLC will disable the screensaver during playback. This patch
exploits this functionality bringing it in line with the Mac
builds.
One small nit remains; under Windows/Linux the screensaver
is only disabled if video playback is being used, whilst on
the Mac the screensaver is disabled whenever you are active
(e.g. on a basic workout or streetview).
The train view video/media list is constructed by attempting
to parse any file found in the workout directory. This was
a strategy to avoid missing files with odd extensions that
could be processed by VLC and also to avoid needing to
maintain a list of common extensions.
In practice, this was very slow to process and quite annoying.
VLC would load large volumes of DLLs and Codecs when trying
to parse.
In addition, the most common file types /by far/ are from
a relatively short list i.e; .mov, .avi, .mkv, .mp4 etc.
The strategy is now adjusted to search for a common list of
file types, namely;
3GP ASF AVI DIVX FLAC FLV M4V MKV MOV MP4 MPEG MPG
MXF Nut OGG OGM RM VOB WAV WMA WMV
The filename is checked without case sensitivity, i.e. files
will match regardless of whether they are in upper or lower
case (or combination of upper/lower).
The libvlc options setup used --extraintf=logger, which
causes a debug console window to be opened on Windows.
This patch removes this since debug output is only of
value to developers and should not be in released code.
The code to select media and then start/stop/pause
playback during a workout has been implemented.
This requires libvlc to be installed at compile time
and will also require Videolan (and desired codecs)
installed at runtime.
Since the main headaches are likely to be related to
deployment rather than coding this update has been
pushed for deployment support to be enhanced and
tested before closing the feature request on the
bug tracker.
Updated the realtime plots and dials to use the colour
settings from the ride plot. So if you prefer plots of
light colours on dark backgrounds you can do this now.
The use of colour on the telemetry values makes it easier
to distinguish which value related to power et al .. especially
when you're pushing out that last max power interval.
The training view (aka realtime) is now configurable
allowing users to drag and drop appropriate charts
and dials onto the main view.
The controls for this view are static and comprise the
old controls with start/stop buttons, device selections etc.
I have removed deprecated code too, the following are removed
from the repository;
* ViewSelection
* RealtimeWindow
* TrainWindow
* TrainTabs
Fixes#290.
Fixups to compile video on WIN32 and added more configurability
in the realtime screens, but still not the chart and video use-case
needs to be decided.
Update to training mode to improve the UI and overall
user experience. This initial patch introduces:
* Video Window - but ghetto and not fully functional
* Congigurable - drag and drop 'dials' onto homewindow
In future updates we need to:
* Support Video fully - Only Linux in this patch
* HomeWindow - Make Training mode the same as HomeWindow
* More Dials - Support metrics (e.g. BikeScore)
* RT Charts - Make RT plot drag/drop and support other
types of charts (e.g. Time In Zone)
* Controls - Add more controls for FFWD/REW, Skip etc
This patch has been tested on Linux ONLY. It is being committed
to support further build/deployment work for Win32 and Mac OSX.