aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-09-10Add new cylinder models to the cylinder model storeGravatar Linus Torvalds
We also need to actually fill the model store with the cylinder models we have in our dive lists to begin with. This makes it all *trivial* to add a new cylinder model: just use a new description, fill in the size and working pressure, and you're done. The type automatically gets filled in, unless that description already existed (in which case we leave it alone). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Let people manage their cylinders in cuft and psiGravatar Linus Torvalds
If the output units are set to cuft and psi, then we should show the cylinder size and pressure properly. NOTE! In the absense of pressure data, we *always* show the cylinder volume in liter. There's no way to convert it to imperial units, since the imperial units are not in physical size, but in air volume normalized to surface pressure.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Declare 'update_dive()' properlyGravatar Linus Torvalds
Avoid a compiler warning.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Now that we don't mess up import, we can save the cylinder working pressureGravatar Linus Torvalds
We used to have the heuristic that if we saw a cylinder working pressure, then the cylinder size would be in cuft. Which meant that we couldn't export our working pressures, because it would mess things up on import. But working pressure is actually nice to know, if you ever work with cylinders in imperial units. So now that the import is fixed, add the working pressure to the export. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Don't guess input cylinder size as cubic feetGravatar Linus Torvalds
That just screws up the good xml files that have everything in well-defined units and chose the sane metric units. So do the cuft -> liter conversion only if the input units are explicitly CUFT, or known ambiguous input (SUUNTO). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Actually connect the cylinder configuration with the diveGravatar Linus Torvalds
It seems to be sufficiently useful to be worth updating the dive information now. This still doesn't handle multiple cylinders in any way. I need to think about the interface for that. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09Getting closer to a usable cylinder management interfaceGravatar Linus Torvalds
Not quite there yet, though. And never mind multiple cylinders.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09First (broken) try at actually tracking cylinder typesGravatar Linus Torvalds
This doesn't actually change the cylinder type info in the dive, because it's too broken for that. Instead it prints out what it would change things to. The gtk2 notion of text input focus is *really* odd. Why is the cylinder type sometimes selected, and sometimes not? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09Rename 'cylinder.c' as 'equipment.c'Gravatar Linus Torvalds
Make it about general equipment management, and start hooking up functions to show new equipment information when changing dives (and to flush changes to equipment information for the previously active dive). Nothing is hooked up yet, and it's now showing just one (really big) cylinder choice, so this is all broken. But it should make it possible to at least get somewhere some day. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09Show tank type and O2 mix for air usageGravatar Linus Torvalds
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09Add a notebook for cylinder informationGravatar Linus Torvalds
Ok, so it's not connected to anything yet, and the tank choices (that don't do anything) are some random hardcoded collection, but maybe it will do something some day. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-08Use the analyzed local minima/maxima for depth text plottingGravatar Linus Torvalds
Instead of relying on our ad-hoc minmax finder, just use the local minima/maxima information directly. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-08Use an indirect pointer to min/max entry rather than valueGravatar Linus Torvalds
This way we can always find the actual min/max entry that generated the local minima/maxima. Which is useful for visualization. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-08Save default units using GConfGravatar Linus Torvalds
That seems to be the gtk2 way. Whatever. diveclog ends up defaulting to metric units, because we all know that's the right thing to do. However, I learnt to dive in the US, so I'm used to seeing psi and feet. So despite the sane defaults, I want diveclog to use the broken imperial units for me. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-08Show the min/max data in funky purple shadingGravatar Linus Torvalds
Dirk likes purple. I mean - Dirk REALLY likes purple. And what's better than "purple"? You got it: "funky purple". So this shows the one- two- and three-minute min/max information in some seriously funky purple fringing. It's not really necessarily meant to be serious, but it's a quick hack to visualize the data until we figure out what to *really* do with it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-08Start analyzing depth profile: smoothing and time-based min/max/avgGravatar Linus Torvalds
This turns the depth profile into a generic "plot_info" and calculates minima, maxima and averages over 1-, 2- and 3-minute intervals for each point. It also creates a smoothed version. We currently don't actually show the results, but that's the next step.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Remove unused variableGravatar Dirk Hohndel
This fixes a compile warning Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Show the shallow points of the dive tooGravatar Linus Torvalds
.. unless they are so shallow that they are basically at the surface. These show up automatically in out min/max logic, so just go ahead and show them. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Move text rendering function upwardsGravatar Linus Torvalds
No change in semantics, I'm just contemplating doing some text renderign from within the "minmax" function itself. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Add font size to the text_render_options structureGravatar Linus Torvalds
Ok, so it's really a 'double', but for now we're only using integer font sizes, so let's see if we ever want to do anything but that. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Add vertical alignment setting to text outputGravatar Dirk Hohndel
Add new valign enum to text_render_options_t and update all callers to plot_text Signed-off-by: Dirk Hohndel <dirk@hohndel.org> [ Fixed spelling, updated to newer base - Linus ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Turn tail recursion back into a loopGravatar Linus Torvalds
I still think there should be some way to partition the space automatically, but the algorithm that worked best was the simple tail-recursive one. Which might as well be expressed as a loop. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Get rid of timelimit code and corner casesGravatar Linus Torvalds
The recursive minmax is now robust without them. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Clean up plot_text_samples() furtherGravatar Linus Torvalds
We don't actually use the 'dive' structure any more, since we now always have the sample pointers directly. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Simplify/clean up depth min/max finderGravatar Linus Torvalds
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Fix up horribly broken cairo scalingGravatar Linus Torvalds
The way cairo does scaling is really really inconvenient, and one of the things in cairo that is fundamentally mis-designed. Cairo scaling always affects both coordinates and object sizes, and the two can apparently never be split apart. Which is very much not what we want: we want just coordinate scaling. So we cannot use 'cairo_scale()' to scale our canvas, because that screws up lines and text size too. And no, you cannot "fix" that by de-scaling the line size etc - because line size is one-dimensional, so you can't undo the (different) scaling in X/Y. Sad. I realize that often you do want to scale object size with coordinate transformation, but quite often you *don't* want to. Yeah, we could do random context save/restore in odd places etc, but that's just a sign of the bad design of cairo scaling. Work around it by introducing our own graphics context with scaling, which does it right. I don't like this, but it seems to be better than the alternatives. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Use a recursive (instead of iterative) minmax depth finderGravatar Linus Torvalds
This is a bit more natural, and makes it much easier to do scale independence. In particular, I want to make it possible to grow and shrink the graph, and this should make it particularly simple to react by giving more or fewer minmax points. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Tweak depth next_minmax() interfaceGravatar Linus Torvalds
Use start/end sample pointers to make a recursive algorithm possible. Also, clean up the end condition - we don't want to return an uninteresting minmax result just because we ran out of samples. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Update the dive units without destroyng and rebuilding the dive listGravatar Linus Torvalds
Just iterate over the dive list entries, updating them one by one. This avoids the "selection destroyed" when the dive units are changed. And it's cleaner anyway. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Add Ok/Cancel buttons to unit dialogGravatar Linus Torvalds
.. instead of just having a live running dialog all the time. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Do output unit conversion in the dive info window tooGravatar Linus Torvalds
This should take care of it all, unless I missed some case. Now we should just save the default units somewhere, and I should do the divelist update much cleaner (instead of re-doing the divelist entirely, it should just repaint it - now we lose the highlited dive etc). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Honor depth unit settings when plotting the depth profileGravatar Linus Torvalds
This shows the depth properly in meter or feet depending on unit selection. It also changes the horizontal depth rulers to be at 10m/30ft intervals rather than the previous 15ft. With the textual depth markers, the horizontal lines aren't as important any more. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Make divelist honor the length unitsGravatar Linus Torvalds
Show dives in meter or feet depending on the output unit setting. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Add GtkTreeViewColumn information to 'struct DiveList'Gravatar Linus Torvalds
We will need the column information in order to update the naming when the units change. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-07Add radio buttons for temperature and volumeGravatar Linus Torvalds
.. and clean up some of the conversions. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Make a 'units' dialog windowGravatar Linus Torvalds
Set the output units to feet/meter or psi/bar. Of course, we only actually react to the psi/bar one right now, but it's all coming some day. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Start doing gas management using output unitsGravatar Linus Torvalds
Ok, it's an odd place to start, but this now shows the pressure curve details and the air usage in the proper units. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Clean up type handling of cylinder pressure plotGravatar Linus Torvalds
Soon we'll show things in psi or bar depending on user choice. Let's not get confused about units before we do. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Start "output unit management" supportGravatar Linus Torvalds
This doesn't actually *do* anything yet, but it introduces the notion of output units, and allows you to pick metric or imperial. Of course, since the output doesn't currently care, the units you pick are irrelevant. But just wait.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Fix drawing artifacts with dives that have samples past the dive durationGravatar Dirk Hohndel
The UEMIS Zurich SDA keeps recording samples for quite a while after the dive ended. These provide no additional information, but confuse our drawing algorithm as they can cause us to draw both the depth and tank pressure plots beyond the right edge of our canvas. Stop drawing if sample->time.seconds is larger than dive->duration.seconds. Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Minimally parse some UDDF format divesGravatar Linus Torvalds
Dive dates (at least partial parsing), depths and times. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Add framework for UDDF importerGravatar Linus Torvalds
There are several sample UDDF files around on the net, so we might as well start importing some of it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Use 'cairo_translate()' instead of manual translationGravatar Linus Torvalds
I'd like to do 'cairo_scale()' too, but that messes up line sizes. I'll think about it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Merge branch 'dirk'Gravatar Linus Torvalds
* dirk: Print starting and ending pressures Fix up conflicts in profile.c due to different ways to set the text formatting. Dirk's 'text_format_options' thing is prettier than mine. Use it.
2011-09-06Print starting and ending pressuresGravatar Dirk Hohndel
This is very simplistic as far as placement of the text goes. It makes the plot_text function somewhat more generic. Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Add some information about properly formatted commit messagesGravatar Linus Torvalds
It does seem like a lot of github users are not used to good commit message rules, and may never have used git for a project that actually cares about good logs and nice summary lines. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Merge branch 'patch-1' of git://github.com/schacon/diveclogGravatar Linus Torvalds
* 'patch-1' of git://github.com/schacon/diveclog: Add more explicit contributing explanation
2011-09-06Add some air usage statistics to the dive plotGravatar Linus Torvalds
Show "absolute volume" used, and SAC/m (surface-equivalent per minute). I'm not going to guarantee the calculations. And I show the result in cubic feet. Sue me. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Do cylinder pressure plot first, then depth, then text notesGravatar Linus Torvalds
Text notes need to be last, so that they don't get stepped on by the other graph elements. Also, separate the depth text plot out into a function of its own. Tidier that way. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-06Add more explicit contributing explanationGravatar Scott Chacon
Most developers on GitHub are not used to projects that use the Signed-off-by convention. They do, however, tend to read the READMEs to see which conventions the author prefers to follow. If you are explicit about what you prefer in the README with easy to follow instructions, it is more likely people will follow those conventions. Signed-off-by: Scott Chacon <schacon@gmail.com>