summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-09-20Provide an icon for subsurface.Gravatar Riccardo Albertini
I designed a simple blue icon for subsurface with a diver in the middle. As suggested by Dirk Hohndel, I added the surface line above diver's head, so that now the icon reflects better the new application name. Signed-off-by: Riccardo Albertini <ssirowain@gmail.com>
2011-09-20Added a comment about libusb dependency in Makefile.Gravatar Riccardo Albertini
Due to libdivecomputer's dependency, can be necessary to add libusb to pkg-config in order to compile, so I exported the pkg-config line in the subsurface target to LIBS variable, and added a comment about libusb. Signed-off-by: Riccardo Albertini <ssirowain@gmail.com>
2011-09-19Reinstate the main window titleGravatar Linus Torvalds
It got removed by some of my overly aggressive cleanup in commit fefcbf125e89 ("Remove dive info frame") because the dive info frame initialization also initialized the main window title.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Switch the dive list and dive profile panes aroundGravatar Linus Torvalds
It looks better this way, I think. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Hacky hard-coded font for dive list entriesGravatar Linus Torvalds
This really is too wrong for words, but I do think the dive list may look better with a smaller font. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Make helper function for creating TreeView columns in the dive listGravatar Linus Torvalds
Let's not repeat the boiler-plate code more than necessary. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add cylinder description to dive listGravatar Linus Torvalds
And I *really* would want to make the dive list be a ComboBox or something like that, rather than a ListView. I need to really understand those things, though. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Turn the rest of the duplicate string fields to use render functionsGravatar Linus Torvalds
So instead of having a depth field (in mm) for sorting, and the text field that contains the same thing in text, we now have all the fields we use in "native" format, and we just render them as text dynamically. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Use renderer function for divelist depth field tooGravatar Linus Torvalds
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Use a renderer function on the date fieldGravatar Linus Torvalds
Instead of creatign an extra column containing the date text, use a renderer function to create the text dynamically. Just the date right now, but we'll do them all this way. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Oops, fix typo. EAN, not EADGravatar Linus Torvalds
Typo turned EAN (Enriched Air Nitrox) to EAD. Which does mean something too, just to confuse people - but while it's still nitrox-related, it's entirely the wrong thing (Equivalent Air Depth). I don't think anybody would ever care to see *that*. With computers, why would you care? Anyway, Dirk noticed it, and suggested I just use O2% instead. It's not like EAN is all that readable either. Reported-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Update the divelist when dive info changesGravatar Linus Torvalds
This flushes the dive changes to the dive list, the way the old dive info frame would update as you update dive fields. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add air usage calculations to dive listGravatar Linus Torvalds
Hey, now you can sort your dives by how good your SAC is. Which sounds more useful than it probably actually is. But maybe you can see patterns in what makes your SAC suck.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add location to divelist tooGravatar Linus Torvalds
Sure, it's visible elsewhere, but this way you can search and sort for it, and see several entries at once. So again, having it visible in the dive list is a good thing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Clean up divelist generation some moreGravatar Linus Torvalds
.. and make the date string much more readable, now that we aren't actually size-constrained any more. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Start filling in temperature and nitrox data in dive listGravatar Linus Torvalds
Still more to go, but it's slowly fleshing out.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add temp/nitrox/sac entries to divelistGravatar Linus Torvalds
This doesn't really fill them, it just adds them to the possible entries. I'll get to it later. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Make the pane split be vertical rather than horizontalGravatar Linus Torvalds
Ok, this makes that dive list look empty and ugly, but as mentioned, we really should start filling it with all the useful information that we can sort by, like temperature and air use. And even stuff that might not make sense to sort by (would you want to sort by cylinder size or name? Or by nitrox percentage) could still be *shown* in the list fairly naturally. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Remove dive info frameGravatar Linus Torvalds
It has always been problematic, and I've been moving things in and out of it. And it just isn't a very powerful widget. You can't *do* anything with it. The information it shows you may be useful, but the core stuff already shows up in the dive list. And the dive list is actually a much superior widget over that static dive info frame. The information that shows up in the dive list can be sorted by column, for example. So when we show temperatures or SAC numbers in the dive info frame, that's actually a very bad place to show them: we would be much better off showing it in the dive list, and then we could sort by SAC or by temperature. In other words: just remove the thing. Instead, plan to extend the dive list to contain all the information. That will probably mean that we need to change the current pane widget to be a vertical pane, rather than a horizontal one, but what's wrong with that? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Make the divelist column naming clearerGravatar Linus Torvalds
Currently we use random hard-coded integers, and it's not always clear what is going on. Make it much more explicit with an enumeration of the different divelist columns. And change the column order to make it more logical, and make sure we actually catch all uses while at it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Attempt to smooth out the velocity readingsGravatar Dirk Hohndel
If the velocity is slower than FAST then we look back up to 30 seconds and calculate the velocity for the past 30 seconds instead. For the first version I'm not doing the average of the changes but simply the change from beginning to end. The alternative would be to do another triangle smoothing or something like that - but as we don't know how many samples we have in the 30 second window, it's a little harder here. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Flip tank pressure graph to show the RIGHT wayGravatar Dirk Hohndel
This annoyed me from the first moment Linus added the tank pressure graph. As the pressure goes down, the graph needs to go down. Seriously. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Stop plotting the gas / consumption information into the profileGravatar Dirk Hohndel
And move the code into info.c where it now belongs Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Make handling of empty airconsumption string consistentGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16More fixes to positioning of gas / consumption information in info_frameGravatar Dirk Hohndel
This gives the airconsumption label a fixed size and changes its alignment so it is anchored to the right. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Stop tank / gas / consumption info from changing info_frame sizeGravatar Dirk Hohndel
Simply set it to an empty string with TWO lines when there is nothing to display Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Indicate vertical velocity through colorGravatar Dirk Hohndel
So far Linus has hated all of my attempts to visualize vertical velocity through color. This time I'm trying something dramatically new: there is no PURPLE involved. Maybe that will convince him of the value. We simply calculate the vertical velocity for the current plot segment (last sample point to this sample point - in this version even without divisions by zero) and assign a label based on the rate of change. These labels are translated through a predefined table into colors: Dark green is +/- 5ft/min (stable) Light green is descents up to 30ft/min and ascents up to 15ft/min Yellow is descents up to 60ft/min and ascents up to 30ft/min Orange is descents up to 100ft/min and ascents up to 60ft/min Red is outside of those ranges - you are most likely in danger Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Show tank / nitrox / air consumption information in the info_frameGravatar Dirk Hohndel
Even though we go down to an 8pt font the info_frame changes size when the air info is added. I don't like this but want to see how Linus would like this resolved before going overboard. Minor tweaks to the formating (we don't need two decimals when printing the liters of air consumed). This patch does NOT remove the plot of the air information in the profile graph. I think we want to remove that once we like the text where it is, but I wanted to do one thing at a time. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Dirk can't count to tenGravatar Linus Torvalds
That's ok, Dirk. I've got your back. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Remove dive number from frame labelGravatar Dirk Hohndel
It's now in the window title - no point in having it twice. Also added a little "Dive #xx - " template. The old "##. " was a bit too minimalistic for my liking. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Put the dive number and location in the window title barGravatar Linus Torvalds
I suspect the "info" area is better used for actual values, so move the dive location into the window title instead (using date if no location info), and title the info frame with date and time. This just means that the date/time gets removed from inside the frame: we may want to put air consumption info in there instead? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Tweak temperature plot to look better for small fluctuationsGravatar Dirk Hohndel
If the temperature is in a very narrow range the existing code visually exaggerated the fluctuations. This tries to dampen that effect a bit. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Tweak plot scaling a bitGravatar Linus Torvalds
Change the duration max rounding as noted by Dirk, and move the air consumption down further towards the bottom right corner. In particular, I make the text positions not scale with the window size, purely by the size of the text. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Minor corrections to printing of the last temperatureGravatar Dirk Hohndel
- the time stamp where we printed the last temp was wrong - we really shouldn't check mK for being identical - especially on dive computers that store a lot of samples Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Use plot_info for final remaining temperature and pressure data plots tooGravatar Linus Torvalds
Ok, this is pretty much it now. Instead of having various random checks for "is the time of the sample past the end of the dive" hacks, we not plot all graphs from the cleaned-up plot_info structure instead of the raw samples. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Plot pressure data based on 'struct plot_info' rather than raw dive dataGravatar Linus Torvalds
Further movement to using the sanitized and cleaned-up plot info rather than the raw data. The raw dive data contains samples from the end of the dive that we don't want to drop, but that we also don't want to actually use for plotting the dive. So the eventual end goal here is to not ever use the raw dive samples directly for plotting, but use the diveplot data that we have analyzed for min/max (properly ignoring final entries) etc. There's still some data that we take from the samples when plotting, but it's getting rarer. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Do min/max pressure and temperature based on the non-surface dataGravatar Linus Torvalds
Do the min/max calculations only *after* we have removed the extra surface events at the end. The Uemis data in particular has a lot of surface events after the dive, and we don't really want to take them into account since we won't be plotting them anyway. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Plot temperature info using 'struct plot_info' rather than the raw dive samplesGravatar Linus Torvalds
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-16Start using 'plot_info' more for dive-time limitsGravatar Linus Torvalds
.. I'll want to move pressure limit calculations into the 'plot_info', so that we can do several passes of analysis and change dive limits etc without having to actually modify the dive data itself (or add new fields to 'struct dive' just for plotting). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Do libdivecomputer imports in a separate threadGravatar Linus Torvalds
This is the hackiest thing ever, unless you count the previous code that was even hackier (and just called the gtk main routine at random places). The libdivecomputer library is not really set up to be part of the gtk main loop, and cannot afford (for example) to have lots of mainloop events while it's parsing. Some dive computers are very timing sensitive for the communication. So just start a thread for doing the libdivecomputer stuff, and just continually call the gtk main loop while that thread is running. I'm sure we could actually use some gtk signalling thing to make the thread exit do the right thing, but instead we just poll the status every 100ms. I did say it was hacky. It does seem to work, though. No more temporary graying out of the windows when they don't react in a timely manner because libdivecomputer does some blocking operation. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Support gps coordinates for the location infoGravatar Linus Torvalds
Sadly, no way to show them yet. But it would be nice to let people enter them (and it would be doubly nice to have a dive computer that does it at the surface), and then perhaps just do the "point browser at google maps" thing. Saving/parsing tested by hand-feeding the location of Enenui (Molokini Crater) from google maps by hand into my divelog. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Rename the project 'subsurface'Gravatar Linus Torvalds
I never really liked 'diveclog' as a name - it's not like the C part is all that important. And while I could try to just make up another slang word for despicable person (in the tradition of naming all my projects after myself), I just can't see it. So let's just call it "subsurface". Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Print the end temperature of the diveGravatar Dirk Hohndel
Currently we print the temperature every five minutes. Especially with dive computers that keep rather frequent temperature samples that means that we have one more interesting data point that we don't label: the surface temperature at the end of the dive. This patch adds some logic to try to print the last temperature sample that was recorded before the dive ended - unless that same value has already been printed (to avoid silly duplications on dive computers with less frequent sampling) Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Don't draw temperature plot past the end of the diveGravatar Dirk Hohndel
Just like we end depth and tank pressure plots once we are on the surface (this is relevant for dive computers like the uemis Zurich that keep recording samples after the end of the dive) Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Fix uemis depth calculation in the uemis XML importerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Fix depth calculations in SDA importGravatar Dirk Hohndel
stole and fixed Linus' code in the uemis XML importer Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15Fix incorrect data dereferenceGravatar Dirk Hohndel
This caused incorrect "missing Dive100" messages when importing SDA file from the uemis Zurich. Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15First pass to parse uemis Zurich '.SDA' filesGravatar Dirk Hohndel
This is missing a ton of the information in the .SDA files It only parses the divelog.SDA file, not the dive.SDA file It ignores the information on the gas(es) used and all the data on the tanks. It still draws some strange artefacts at the end of the dive But it correctly hooks into the import dialogue, it gives you a file select box (somewhere, I'm sure, a gtk developer cries quietly) and then parses enough of this file to serve as a proof of concept. Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-14Flush any pending changes at notebook 'switch-page' timeGravatar Linus Torvalds
Dirk points out that equipment changes (cylinder size etc) do not cause a proper repaint of the dive profile with new SAC information. The reason? We haven't flushed the changes when the notebook changes from the equipment page to the dive profile page. Reported-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-14Quick fix to hardcode device name only onceGravatar Dirk Hohndel
Linus clearly wanted to make SURE that we use /dev/ttyUSB0 Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>