Commit Graph

28 Commits

Author SHA1 Message Date
Mark Liversedge
c6f8bf3c2d GC_VIDEO_XXX Configuration
.. 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.
2014-06-28 14:49:33 +01:00
Mark Liversedge
31efa4136c QT5.2 Remove VLC Dependency
.. 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.
2014-02-17 11:58:38 +00:00
Mark Liversedge
c237378c3e Fix #if in VideoWindow
.. wrong logic in #if for Linux and Qt5 in both
   the header and source.
2013-12-11 06:52:40 +00:00
Mark Liversedge
37b1e0e215 QT5 -- Enable build on 4.8.4 -OR- 5.2.0
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.
2013-12-10 16:07:41 +00:00
Mark Liversedge
e32ac44785 QT5 -- Windows Build Fixups
Fix errors on Win32

* FLOAT reserved word from yacc grammars
* toAscii() becomes toLatin1()
* ->winId() returns int (BROKEN)
2013-12-10 13:56:32 +00:00
Mark Liversedge
82baf90131 QT5 -- 1 of 3
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.
2013-12-09 09:57:13 +00:00
Mark Liversedge
24b0b8d97d Fixup MainWindow refactor Part 2
.. VideoWindow needed updating
.. QTFullScreen needed updating
.. Fix use of lower case n #include
2013-07-11 20:59:05 +01:00
Mark Liversedge
0fcbbe1b77 Refactor MainWindow Part 2 of 5
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
2013-07-11 14:02:02 +01:00
Mark Liversedge
c56c5a9567 MainWindow Refactor Part 1 of 5
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.
2013-07-07 15:50:28 +01:00
Mark Liversedge
ea6cfa9f3d Code cleanup: Video player
.. comments don't reflect that we implemented video playback on
Mac using the QTKit API.
2013-02-10 11:14:47 +00:00
Mark Liversedge
3752c80f52 Workout Library Part 1 of 3
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
2012-12-20 13:30:49 +00:00
Andrew Bryson
324d4aebf1 Allow user to select another video when paused
Fixes #648

Also little play/pause fix.
2012-03-16 12:28:20 +00:00
Andrew Bryspn
4b040bc24a Allow videos to be in subdirectories. They can also be symlinked from the place where videos normally live.
Fixes #637
2012-02-06 20:54:59 +00:00
Mark Liversedge
b0b9042ee4 FFwd and Rewind Video (VLC)
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.
2012-01-12 11:39:31 +00:00
Mark Liversedge
a9d7879498 Windows URIs are file:///c: not file://c: 2011-11-27 15:33:20 +00:00
Mark Liversedge
eb468aad72 VLC Filename convert to file:// URL
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
2011-11-27 15:03:31 +00:00
Mark Liversedge
8a15a625af Linux/Win disable screensaver using VLC
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).
2011-11-12 20:01:45 +00:00
Mark Liversedge
db8abed904 Windows/Linux (VLC) DVD Playback
Added the option to select "DVD" from the video/media
list to playback a DVD if one is present.
2011-11-09 18:16:08 +00:00
Mark Liversedge
8200a34605 VLC --no-xlib on Linux
To avoid errors related to threading during video
playback.
2011-11-08 22:46:45 +00:00
Mark Liversedge
b3c39be5d8 Fix slow startup of Train View on Windows
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).
2011-11-05 00:53:37 +00:00
Mark Liversedge
123cc43884 Remove VLC debug output console on Windows
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.
2011-11-05 00:37:59 +00:00
Mark Liversedge
37858973f2 Initial 'proper' support for Video Playback
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.
2011-10-24 22:25:14 +01:00
Mark Liversedge
baecd71eea Realtime honours color settings
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.
2011-10-22 16:53:51 +01:00
Mark Liversedge
fc741fb9b4 Make Training View Configurable
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.
2011-05-10 18:21:08 +01:00
Mark Liversedge
c2e0bbe534 Realtime checkpoint - WIN32 and Configurable Realtime
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.
2011-04-10 18:03:21 +01:00
Mark Liversedge
37bda1efeb Fix video on startup. 2011-04-06 21:00:23 +01:00
Mark Liversedge
6c787e6e60 Training Mode Improvements - Part 1 of 3
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.
2011-04-03 18:30:35 +01:00
Mark Liversedge
805e74de5a Inital V3 Branch 2010-12-30 17:35:23 +00:00