Commit Graph

66 Commits

Author SHA1 Message Date
Mark Liversedge
694dcb1731 Fix pause/unpause bug
When you press stop it should clear the paused flag.

Fixes #440.
2013-01-11 08:57:36 +00:00
Mark Liversedge
ea174a758e VLC is Optional - don't SEGV
Ugh. Fixed a couple of SEGV when library importing
is used with video but no video support is compiled in.
2012-12-24 16:45:44 +00:00
Mark Liversedge
274c2c5a71 Workout Library fixups
Remember the selected video or workout when refreshing list
on data change. This is particularly relevant when dragging
and dropping in videos and workouts.
2012-12-24 16:05:07 +00:00
Mark Liversedge
a9a6f9ffb8 Further Workout Library Fixups
- Added drag and drop dialog and functionality
- if only 1 video/workout imported it is imported and selected
- if multiple they are imported with a dialog
- now shows any references in the scan function

The use of references to avoid making copies of videos is
a touch complicated -- the workflow could be friendlier.
2012-12-24 15:23:16 +00:00
Mark Liversedge
2a149bd454 Workout Library Part 3 fixups
Some fixups to recent update for the workout
library support;

- ergDB download now updates the DB
- mainwindow menu options names more consistent
- sort order in the video and workout list
- hooks for import/drag and drop

Will now write the importer for drag-n-drop and
import workouts menu option.
2012-12-23 17:56:41 +00:00
Mark Liversedge
a603dd5b5b Workout Library Part 3 of 3
Linked up the training db to the train tool to
allow users to select from the db.

Further enhancements to the list could be made,
but leaving this till we move to OpenTrainer.

Still need to add drag and drop to copy into
the library or add reference to the file.

Fixes #301.
2012-12-22 19:05:36 +00:00
Mark Liversedge
2d73924f25 ErgFile lookup CP
Instead of passing the CP value for the rider
when opening an ErgFile it now looks up the CP
value itself. Simplifies the API.
2012-12-21 11:09:52 +00:00
Mark Liversedge
d2ebedac20 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
Mark Liversedge
14859d8a51 Context Menu for Devices in Train View
Right click to add/delete a new device on the device list
in the train view sidebar.

It is temporary to bring the train view in line with the rest
of GC, but will then be updated as we remove functionality that
is hidden behind a right click.
2012-12-15 14:07:45 +00:00
Damien
8eee2ddb25 Choose Metric/Imperial units in New Athlete dialog
fixes #34
2012-11-26 23:35:35 +01:00
Mark Liversedge
9ee2eab311 UI Polish: Move train view controls to scope bar
Now we have a scope bar we can move the train view controls
out of the sidebar.
2012-11-20 17:21:22 +00:00
Mark Liversedge
41796abb43 UI Nits: train labels in white
Last commit accidentally changed the color for the
IF/TSS labels on the train tool to black but this
is only appropriate for the Mac implementation.
2012-11-19 22:31:09 +00:00
Mark Liversedge
1cdb5568d3 UI Nits: Goodbye ToolBox
The left sidebar is now a stacked widget and the toolbox
has been consigned to history. We are now ready to add a
left sidebar for the metric "home" view.
2012-11-19 22:15:35 +00:00
Mark Liversedge
f43ac923c5 Mac Native UI (Part 1 of 3)
Part of a series of commits to adjust the UI on a Mac to
look more native and conform better to the Mac UI design
guidelines.

This patch introduces a unified title and toolbar which hosts
a search field and buttons for commonly used functions like
import, split ride, delete etc.

Since it is not possible (or more importantly good practice) to
hide and show toolbar items the Train View controls have now been
moved to the sidebar on a Mac. This is a temporary measure and
will be resolved in future updates.

Further updates planned are;
Part 2 - fixup the preferences pane to be more Mac-like
Part 3 - Spit and Polish around the charts; drop shadows, controls etc
2012-11-18 15:55:07 +00:00
Mark Liversedge
f48ae3d2a8 Mac UI Sidebar Cosmetics
The sidebar elements all get a blue focus rectangle on
Mac OSX. This is a platform specific setting. This patch
removes the focus rectangle for sidebar components only.
2012-11-06 11:16:41 +00:00
Andrew Bryson
0430568d99 Allow user to select another video when paused
Fixes #648

Also little play/pause fix.
2012-03-16 12:28:20 +00:00
Mark Liversedge
43b1c61d6b Add Device Wizard
Introduce a wizard for adding realtime devices since it
is prone to user error, is relatively complicated and is
something most users will only ever do once or twice.

There are several logical updates within this patch:

First; Fix intermittent ANT+ not working
* LibUsb     - check bufRemaining is > 0 not non-zero
* LibUsb     - Always reset the USB stick on open
* ANT.cpp    - Support > 4 channels on USB2
* ANTChannel -  Do not use pairing, but always
*               unassign, assign and set channel id.

Second; Fix device discovery
* Find and discover support in realtime controllers
* Extend Serial.cpp to cover more Serial devices
* Support for 4 or 8 ANT channels for USB1/USB2

Third; Introduce Add Device Wizard with
* General and Specific wizard pages for each device type
* Device pairing with telemetry display
* fixed compile time warnings

Fourth; Update Device Config Page
* use wizard to add new device
* remove edit fields, replaced by wizard
* remove pair, firmware buttons replaced by wizard

Fifth; Deprecate/Remove Device Types
* Null Device - used by developers only
* Quarqd client - replaced by Native ANT+
* GC Server - not implemented yet

I have also introduced a device specific wheel size
and flags for controlling the default selection and
sources for sensor data when in multi-device mode. These
are not yet supported in the code.

Fixes #611.
Fixes #497.
2012-01-21 20:28:33 +00:00
Mark Liversedge
0a6875df3b Fix Crash on no ErgFile selected
Fixes #600.
2012-01-14 15:34:42 +00:00
Mark Liversedge
20f4a0659f Hold down FFwd/Rewind Buttons to skip
When jumping forward and back through a workout
the FFwd/Rewind buttons can now be held down to
auto-repeat and skip quickly.
2012-01-13 19:13:47 +00:00
Andrew Bryson
ea50611649 Add lap time remaining data series
Fixes Feature #592.
2012-01-13 17:52:07 +00:00
Mark Liversedge
3b85037a7b 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
Andrew Bryson
f3594d5dd0 Fixed lap averages only working with lap button
Fixes bug 590.

Lap averages will now correctly reset on a new lap from an erg file.
2012-01-11 20:23:21 +00:00
Mark Liversedge
a3c75eff7d Fix Computrainer Manual Ergo Mode LOAD display
When working with a computrainer in manual ergo mode
the display does not update as the load is increased
and decreased.

Fixes #586.
2012-01-11 20:13:08 +00:00
Mark Liversedge
9f91617161 Further fixup for USB2 sticks
Added a usb_init() call prior to starting a workout, this
appears to clear state inside libusb.

Also added some commented code for displaying diagnostics
when sending/receiving ANT messages.

This should make the ANT+ connection more robust on first
use, since subsequent uses are now fine.

This may be related to the state the USB host controller (stick)
is left in after we first connect, more investigation is required.
2012-01-06 16:57:39 +00:00
Mark Liversedge
51dccacb52 Restore SpinScan
The recent commit for multi device support cleared
the spinscan data, breaking the plot updates. This update
retrieves the spinscan data if a computrainer has been
selected for the workout.
2012-01-06 09:47:21 +00:00
Mark Liversedge
f97e700ea1 Clear device list before reload on config change 2012-01-05 21:22:23 +00:00
Andrew Bryson
0e48e57c41 Reset the lap timer based on erg file
Resets the lap timer when we get to a new lap in a training plan.
Previously it would only reset when the user pressed lap

fixes Bug #576
2012-01-05 20:53:16 +00:00
Mark Liversedge
30f1113ac5 Add Multi-device support in Train View
It is now possible to select multiple devices to
workout with.

To enable multi-device support a new setting in
tools->options (preferences on Mac) allows the
user to enable multi-device selections (this just
enables the user to select more than one device
in the side bar).

When a workout is started the user can select which
devices will supply which data.

This enables ANT+ devices to override information
provided by Computrainers or Fortius devices.

Fixes #578.
2012-01-05 20:47:04 +00:00
Mark Liversedge
265e310a9c Fix nan/inf values for Virtual Speed. 2011-12-21 18:56:39 +00:00
Mark Liversedge
98e504e382 Virtual Speed
Tom Compton of AnalyticCycling.com has provided
a formula to calculate virtual speed based upon
slope, weight, power, cdA, crr and air density.

This is now implemented as 'Virtual Speed'.

It is expected that this new virtual speed will
be used to control streetview, video rendering
and future implementations of group riding over
a predefined course.

Fixes #527.
2011-12-21 17:22:37 +00:00
Mark Liversedge
ae1f80dd35 TrainTool make Fortius dependant upon GC_HAVE_LIBUSB. 2011-12-17 15:59:39 +00:00
Mark Liversedge
67983b81c3 Tacx Fortius Support
Initial support for Tacx Fortius devices.

Note this requires libusb support to be present and will
work on Linux, Mac and Windows.

The handlebar buttons up/down will increase/decrease the
load/intensity in a similar fashion to the +/- keys on
the Computrainer controller.

The cancel button will stop a workout and the enter key
is used to mark a lap.

Slope and Ergo modes are supported, but we do not set the
brake at all if the speed is below 10kph, this is to
ensure it does not get burnt out when users 'grind'.

SPECIAL NOTE:

   The Fortius handlebar controller is a Ez-Usb device
   and requires firmware to be loaded when it is connected.
   Since this is copyrighted by Tacx BV we do not distribute
   it, instead, when the user sets up a Fortius device they
   must also provide the file. Full instructions on how this
   should be done are given when configuring the device.

Additionally, for Linux users udev rules should be added to
ensure that the USB devices are accessible to non-root users.

Fixes #538.
2011-12-12 17:26:59 +00:00
Mark Liversedge
088587c8fb Fix Target load Dial
When working with ANT+ devices the load dial always
showed zero, because the ANT device was not updating
the realtime data with the desired load.

In addition, the target load telemetry always showed
watts even when working in slope mode (where it should
show the gradient).

Fixes #532.
2011-12-01 21:35:39 +00:00
Mark Liversedge
344cccb913 Added SpinScan Plot
I finally got round to decoding the spinscan data
from computrainers. This is now implented in train
view.

A new chart is available 'Pedal Stroke' to show the
spinscan data returned by the computrainer.

I am unsure if the decoding is 100% on the money but
have been testing for a week and it seems ok.

Fixes #530.
2011-11-30 23:26:20 +00:00
Mark Liversedge
b07284f1b3 Download from ErgDB
A new menu option added to download workout
files from the ErgDB. Will also need to look
at upload so we can share amongst the GC
community.

Fixes #521.
2011-11-26 17:57:14 +00:00
Mark Liversedge
a5f4dc7503 Computrainer Calibration Mode on F3
Pressing F3 on the handlebar controller now starts calibration
mode and pauses all video and recording. Pressing F3 again will
resume the workout and restart.

Fixes #392.
2011-11-25 21:22:06 +00:00
Mark Liversedge
cca15e375a Toolbar buttons didn't move on a Mac
Mostly caused by the Nazi style police in Cocoa wanting
huge margins etc. Steve knows best. Now uses the Windows
style for toolbar buttons so we get control back from
you know who.
2011-11-19 17:26:21 +00:00
Mark Liversedge
18a0b27cc4 Reinstate Lap button
Recent mods to move the realtime controls to the toolbar
managed to lose the Lap function. This patch reinstates it.

Fixes #514.
2011-11-14 22:18:31 +00:00
Mark Liversedge
fb626e683f Add support for Tacx/RLV Workout (.pgmf)
The Tacx ergometer has a workout file format
(.pgmf) that is similar in concept to the
Racermate .CRS/.ERG/.MRC file format.

This patch adds support for this kind of
workout file.

Further work is required to support the .rlv
file format in order to support video playback
to match the user's speed (keeping the video
in sync as you ride).

In addition, for Turbos that do not support
variable load using gradient/slope we will need
to add an algorithm to approximate speed from
power/weight/slope.

Fixes #382
2011-11-12 18:30:56 +00:00
Mark Liversedge
2de1160fe5 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
2007759ca1 Fix play icon after stop pressed. 2011-11-07 19:06:12 +00:00
Mark Liversedge
ad046efc0c minor alignment fix in train buttons. 2011-11-06 22:42:22 +00:00
Mark Liversedge
053bd6ca69 Train View controls in Toolbar
Updated the realtime view (Train) to put the
realtime controls in the toolbar and removed
the old realtime controls chart.  They only
appear in Train view.

Additionally, the workout list and media list
are now in the sidebar under 'Workout Library'.

Finally, the first device configured is always
selected at startup, but this is a temporary
change until the realtime device wizard is coded
to set a default device.
2011-11-06 19:34:46 +00:00
Mark Liversedge
57c1102b50 Mac OS X Realtime Fixups
A few minor fixups for Mac OS X;

* LionFullScreen.mm compile issues resolved by introducing
  a new define in gcconfig.pri. This will hopefully go when
  issues with Qt and AvailabilityMacros are resolved. See
  DEFINES += GC_HAVE_LION in gcconfig.pri.in

* The buttons on the realtime controls are now set to GTK to
  avoid Qt constraints regarding spacing and format of
  QPushButtons. This will hopefully go when we move the controls
  to a task bar at the bottom of the screen.
2011-11-05 23:21:28 +00:00
Mark Liversedge
da6a2dc6d4 Further realtime improvements
A number of new features / enhancements;

* Display IF/TSS or Elevation/Grade in the controller
  when a workout is selected.

* Added buttons for forward/back which emulate the
  forward/back from a computrainer controller

* Added a slider to increase and decrease intensity/grade
  on-the-fly (during a workout), tied in with the
  computrainer controller's + and - keys.

* Unpicked the manualOverride code previously implemented

Mostly, or at least for this release, fixes #494.
2011-11-05 18:31:55 +00:00
Mark Liversedge
3ca9c14710 Workout (ErgFile) computes metrics
When a workout file is opened, the contents are used
to calculate the NP,xPower thru TSS/Bikescore values
for the workout.

This is in preparation for on-the-fly adjustment of the
intensity of a workout and displaying the target stress
load (TSS/BikeScore) the workout will produce.

No user functional change.
2011-11-04 23:09:06 +00:00
Mark Liversedge
c4f41447de Disable Screensaver on Mac OS X
Update training view on a Mac to disable the screen saver
and power saver when a workout is active.
2011-11-04 18:34:18 +00:00
Mark Liversedge
1e8b6edb62 Show kJoules, TSS/BikeScore et al on Train View
The refactoring of the realtime display last year
removed the display of metrics such as BikeScore and
kJoules.

This patch adds more metrics that can be displayed;
* Averages for; power, hr, cadence, speed
* KJoules of work
* Coggan Metrics; NP, TSS, IF, VI
* Skiba Metrics; xPower, BikeScore, RI, Skiba VI

Also included is an updated default layout to
include some of these metrics.

Fixes #231
2011-11-04 16:28:36 +00:00
Mark Liversedge
09724e5796 Mac Video Playback via QTKit not VLC
Ghetto code with video selection and all the basic
building blocks in place. Playback is only via the
quicktime controls, paint issues abound and there
is a problem with deallocation of the movie object.

But the basic stuff is there, time to refine and iron
out all the little bugs.

Written whilst on hols in Gran Canaria :)
2011-10-30 22:35:23 +00:00
Mark Liversedge
85e9b8861e Realtime Controls tweak
Make the buttons expand to fit space, so as you resize
the controls the buttons increase in size.

This is a temporary measure as the controls are going
to move to the toolbar later anyway.
2011-10-25 00:11:35 +01:00